
:root{--green:#00522e;--dark:#003c27;--bright:#00853e;--pale:#eff8f1;--ink:#18352a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#202b24;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 64px));margin-inline:auto}.header{background:#fff;position:sticky;top:0;z-index:30;box-shadow:0 1px 7px #00000012}.head-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:12px;min-width:300px}.brand img{width:64px;height:60px;object-fit:contain}.brand b{display:block;font-size:17px;color:var(--dark);line-height:1.3}.brand small{font-size:11px}.nav{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:700}.nav>a:not(.btn){padding:25px 0 21px;border-bottom:3px solid transparent;white-space:nowrap}.nav>a.active{border-color:var(--bright)}.btn{background:linear-gradient(135deg,#007d43,#00512c);color:#fff!important;padding:12px 24px;border:0;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 4px 10px #003c2722;cursor:pointer;white-space:nowrap}.btn:hover{filter:brightness(1.12)}.btn-outline{border:2px solid white;background:#002f2380}.btn-light{color:var(--green)!important;border:1px solid var(--green);background:white;box-shadow:none}.menu-toggle{display:none}.hero-home{height:480px;position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(90deg,#003f26 0%,#005a32 48%,#b7dbb9 100%)}.hero-photo{position:absolute;inset:0 0 0 42%;background-image:linear-gradient(90deg,#00532e 0%,transparent 27%),url('hero-new.jpg');background-size:cover;background-position:55% 40%;z-index:-1}.hero-content{padding-top:72px;color:#fff;position:relative;z-index:2}.hero-content h1{font-size:clamp(29px,3.3vw,46px);line-height:1.35;margin:0 0 22px;text-shadow:0 2px 6px #0007;letter-spacing:.02em}.hero-content p{font-size:17px;font-weight:600;max-width:570px;text-shadow:0 1px 4px #0007}.hero-actions{display:flex;gap:16px;margin-top:28px}.hero-wave{position:absolute;bottom:-1px;width:100%;height:95px;z-index:3}.home-services{padding:26px 0 48px}.center-title{text-align:center;color:var(--dark);font-size:30px;line-height:1.4;margin:0 0 15px}.center-title:after{content:"";display:block;width:46px;height:2px;background:var(--green);margin:16px auto}.center-copy{text-align:center;font-weight:600;margin:0 auto 34px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-tile{text-align:center;background:linear-gradient(145deg,#f7fbf9,#eef6f0);border-radius:11px;padding:23px 12px;min-height:160px}.service-tile h3{font-size:19px;color:var(--dark);margin:4px 0}.service-tile p{font-size:13px;margin:0}.tile-icon{font-size:43px;line-height:1;color:var(--green)}.recruit-banner{display:grid;grid-template-columns:29% 1fr auto;align-items:center;gap:30px;overflow:hidden;border-radius:12px;border:1px solid #d8e6d9;background:linear-gradient(115deg,#fff 75%,#c9f1aa);min-height:164px}.recruit-banner>img{width:100%;height:164px;object-fit:cover;object-position:center}.recruit-copy>span{color:var(--bright);font-weight:800}.recruit-copy h2{color:var(--dark);font-size:24px;margin:0}.recruit-copy p{font-size:14px;margin:10px 0 0}.recruit-banner>.btn{margin-right:25px}.bottom-columns{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:55px 0 65px}.section-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd;margin-bottom:14px}.section-head h2,.left-heading{border-left:6px solid var(--bright);padding-left:15px;color:var(--dark);font-size:24px;line-height:1.3}.section-head h2 small{display:block;font-size:12px;color:var(--bright);margin-top:3px}.section-head>a{font-size:13px;color:var(--green);font-weight:700}.company-teaser{display:grid;grid-template-columns:1fr 180px;gap:20px;align-items:center}.company-teaser img{height:150px;width:180px;object-fit:cover;border-radius:6px}.company-teaser p{margin-top:0}.empty-note{padding:23px 8px;border-bottom:1px solid #ddd;color:#66756a}.footer{background:linear-gradient(120deg,#004c30,#003d27);color:#fff;padding:35px 0 15px}.footer-main{display:flex;justify-content:space-between;gap:35px}.foot-brand{display:flex;align-items:center;gap:10px;font-size:19px}.foot-brand img{width:62px;height:62px;object-fit:contain;background:#fff;border-radius:4px}.footer p{font-size:13px;line-height:2}.footer-links{display:grid;grid-template-columns:repeat(2,170px);gap:8px;font-size:14px;font-weight:600}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ffffff80;margin-top:20px;padding-top:12px;font-size:12px}.subhero{height:245px;background-image:linear-gradient(90deg,#004d31 0%,#004d31e0 25%,transparent 75%),var(--hero-image);background-size:cover;background-position:center;display:flex;align-items:center;color:#fff}.subhero h1{font-size:38px;margin:0}.subhero p{font-weight:700;margin:0}.page-section{padding:45px 0 75px;min-height:410px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.detail-card{display:grid;grid-template-columns:37% 1fr;align-items:center;gap:20px;padding:12px;border:1px solid #ddd;border-radius:10px;min-height:170px}.detail-card img{aspect-ratio:1/1;height:auto;width:100%;object-fit:contain;border-radius:6px}.detail-card h3{color:var(--dark);margin:0 0 8px}.detail-card p{font-size:14px;margin:0}.left-heading{font-size:22px;margin:25px 0 15px}.recruit-layout{display:grid;grid-template-columns:3fr 1.15fr;gap:24px}.info-table{border-collapse:collapse;width:100%;font-size:14px}.info-table th,.info-table td{border:1px solid #ddd;padding:12px 14px;text-align:left;vertical-align:top}.info-table th{width:28%;background:#f3f5f4}.welcome{background:#f0f8f2;padding:20px;border-radius:10px}.welcome h3{color:var(--dark);font-size:21px;line-height:1.4;margin:0 0 15px}.welcome p{font-size:14px}.center-action{text-align:center;margin-top:25px}.caution{font-size:13px;color:#795b36}.company-layout{display:grid;grid-template-columns:2fr 1fr;gap:26px;align-items:start}.company-layout>img{width:100%;height:300px;object-fit:cover;border-radius:8px}.spaced{margin-top:38px}.message-panel{padding:25px;background:#f7faf8;border-radius:8px}.contact-form{max-width:900px;margin:0 auto}.form-row{display:grid;grid-template-columns:200px 1fr;align-items:start;gap:20px;margin-bottom:16px}.form-row label{font-weight:700;padding-top:10px}.form-row em{background:#bd2733;color:#fff;font-style:normal;font-size:11px;padding:3px 6px;border-radius:3px;margin-left:8px}.form-row input,.form-row textarea{width:100%;border:1px solid #c8d2cb;border-radius:5px;padding:12px;font:inherit}.form-notice{text-align:center;color:#5a645c;font-size:13px}.form-notice a{text-decoration:underline;color:var(--green)}.contact-form button:disabled{opacity:.55;cursor:not-allowed}.legal{max-width:900px}.legal h1{color:var(--dark)}@media(max-width:950px){.head-inner{height:70px}.brand{min-width:0}.menu-toggle{display:block;border:1px solid #c8d5ce;background:#fff;padding:8px;border-radius:5px}.nav{display:none;position:absolute;left:0;right:0;top:70px;background:#fff;flex-direction:column;align-items:stretch;padding:12px 25px;gap:0;box-shadow:0 8px 15px #0002}.nav.open{display:flex}.nav>a:not(.btn){padding:12px 0}.recruit-banner{grid-template-columns:25% 1fr}.recruit-banner>.btn{grid-column:2;justify-self:start;margin:0 0 20px}.recruit-banner>img{grid-row:span 2;height:100%}}@media(max-width:650px){.container{width:min(100% - 32px,1180px)}.brand img{width:48px;height:50px}.brand b{font-size:13px}.brand small{font-size:9px}.hero-home{height:560px;background:#00482d}.hero-photo{inset:0;background-image:linear-gradient(0deg,#00452ef2 0%,#00452e80 50%,transparent 100%),url('hero-new.jpg');background-position:65% center}.hero-content{padding-top:250px}.hero-content h1{font-size:28px}.hero-content p{font-size:14px}.hero-actions{gap:9px}.hero-actions .btn{padding:10px;font-size:12px}.hero-wave{height:55px}.center-title{font-size:24px}.service-grid,.detail-grid,.bottom-columns{grid-template-columns:1fr 1fr;gap:12px}.service-tile{padding:18px 8px;min-height:145px}.service-tile h3{font-size:16px}.service-tile p{font-size:12px}.recruit-banner{display:block}.recruit-banner>img{height:160px}.recruit-copy{padding:15px}.recruit-copy h2{font-size:21px}.recruit-banner>.btn{margin:0 15px 18px}.bottom-columns{grid-template-columns:1fr;gap:25px}.company-teaser{grid-template-columns:1fr 120px}.company-teaser img{width:120px;height:110px}.footer-main{display:block}.footer-links{grid-template-columns:1fr 1fr;margin-top:22px}.footer-bottom{gap:10px;flex-wrap:wrap}.subhero{height:180px}.subhero h1{font-size:29px}.detail-grid{grid-template-columns:1fr}.detail-card{grid-template-columns:35% 1fr}.recruit-layout,.company-layout{grid-template-columns:1fr}.form-row{grid-template-columns:1fr;gap:5px}.form-row label{padding:0}.page-section{padding:30px 0 55px}}

/* 下層ページの写真付きタイトル。背景画像のURLはCSSファイルからの相対パス。 */
.subhero{background-color:#075337;background-image:linear-gradient(90deg,rgba(0,65,39,.98) 0%,rgba(0,65,39,.88) 25%,rgba(0,65,39,.20) 65%,rgba(0,65,39,.04) 100%),var(--hero-image);background-position:center center;background-size:cover;background-repeat:no-repeat}
.subhero .container{position:relative;z-index:1}.subhero h1,.subhero p{text-shadow:0 2px 5px rgba(0,0,0,.25)}

/* Crisp, home-style photographic page headers. Never stretch thumbnail assets. */
.subhero{position:relative;isolation:isolate;overflow:hidden;background:#075337;background-image:none!important;min-height:245px;height:auto;}
.subhero::before{content:"";position:absolute;inset:0 0 0 34%;background-image:var(--hero-image);background-size:cover;background-position:center center;background-repeat:no-repeat;z-index:-2;}
.subhero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#00452b 0%,#00452b 28%,rgba(0,69,43,.86) 43%,rgba(0,69,43,.06) 76%);z-index:-1;}
.subhero>.container{padding-top:65px;padding-bottom:65px;}
@media(max-width:650px){.subhero{min-height:180px}.subhero::before{inset:0 0 0 22%;background-position:center}.subhero::after{background:linear-gradient(90deg,#00452b 0%,rgba(0,69,43,.90) 45%,rgba(0,69,43,.15) 100%)}.subhero>.container{padding-top:40px;padding-bottom:40px}}

/* The URL inside --hero-image is resolved relative to assets/style.css. */
.subhero::before{background-size:cover;background-position:center center;}

/* FIX 2026-11-01: explicit HTML image paths, independent of CSS URL resolution. */
.subhero{position:relative;isolation:isolate;overflow:hidden;background:#06492f!important;background-image:none!important;min-height:245px;height:245px;display:flex;align-items:center}
.subhero::before,.subhero::after{content:none!important;display:none!important}
.subhero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;max-width:none}
.subhero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,62,39,.98) 0%,rgba(0,65,40,.88) 25%,rgba(0,65,40,.36) 57%,rgba(0,65,40,.02) 100%)}
.subhero>.container{padding-top:0!important;padding-bottom:0!important;position:relative;z-index:1}
@media(max-width:650px){.subhero{height:180px;min-height:180px}.subhero-photo{object-position:62% center}.subhero-shade{background:linear-gradient(90deg,rgba(0,62,39,.97),rgba(0,65,40,.6) 62%,rgba(0,65,40,.1))}}

/* Keep service introduction phrases together on narrow screens. */
.services-content .service-title-part,.services-content .service-phrase{display:inline-block;max-width:100%;overflow-wrap:anywhere}
@media(max-width:650px){.services-content .center-title{font-size:clamp(20px,5.5vw,26px);line-height:1.6}.services-content .service-title-part{display:block}.services-content .center-copy{font-size:16px;line-height:1.9}}

/* Phrase-aware wrapping without changing the copy. */
.text-phrase{display:inline-block;max-width:100%;overflow-wrap:anywhere}
main p,main li{line-break:strict;text-wrap:pretty}
main h1,main h2,main h3{text-wrap:balance;line-break:strict}
main a[href^="mailto:"],.footer a[href^="mailto:"]{overflow-wrap:anywhere}
@media(max-width:650px){
 .hero-home{height:auto;min-height:560px}
 .hero-content{padding-bottom:85px}
 .hero-content h1{font-size:clamp(23px,6vw,28px);line-height:1.5}
 .recruitment .center-title{font-size:clamp(21px,5.6vw,24px);line-height:1.6}
 .center-copy{line-height:1.9}
 .company-table,.company-table tbody,.company-table tr,.company-table th,.company-table td{display:block;width:100%}
 .company-table th{border-bottom:0}.company-table tr+tr th{border-top:0}
 .company-teaser{grid-template-columns:minmax(0,1fr) 100px;gap:16px}.company-teaser img{width:100px}
 .menu-toggle{flex-shrink:0;white-space:nowrap}
 .head-inner{gap:10px}.brand{gap:8px}
 .brand b{font-size:clamp(11px,3.3vw,13px)}
 .contact-card h2{line-height:1.6}
 .legal p{overflow-wrap:anywhere}
}

@media(max-width:360px){.service-grid{grid-template-columns:1fr}.company-teaser{grid-template-columns:1fr}.company-teaser img{width:100%;height:150px}}

/* High contrast service link over the home hero photograph. */
.hero-actions .btn-service-hero{background:#fff;color:#00452b!important;border:2px solid #fff;box-shadow:0 4px 14px #001e1959}
.hero-actions .btn-service-hero:hover{background:#eff8f1;border-color:#eff8f1;filter:none}
.hero-actions .btn-service-hero:focus-visible{outline:3px solid #fff;outline-offset:4px}

/* Service-specific vector icons with consistent visual weight. */
.service-tile .tile-icon{display:block;width:56px;height:56px;margin:0 auto 10px;color:var(--green);font-size:0;line-height:0}
.service-tile .tile-icon svg{display:block;width:100%;height:100%}
@media(max-width:650px){.service-tile .tile-icon{width:48px;height:48px}}

/* Keep the representative greeting together at natural phrase boundaries. */
.message-panel .greeting-phrase{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.footer-contact-text{overflow-wrap:anywhere}
@media(max-width:650px){#representative-message{padding:20px;line-height:1.9}.message-panel .greeting-phrase{line-height:1.9}}
