:root{--green:#4ca719;--dark:#125a20;--orange:#ff8a00;--ink:#323b39;--muted:#89918b;--width:1300px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;color:var(--ink);background:#fff;font-family:"Noto Sans JP","Yu Gothic","Meiryo",sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}a:focus-visible,button:focus-visible{outline:3px solid #ee7900;outline-offset:5px}a{transition:color .2s,filter .2s,background .2s}a:hover{color:var(--green)}.section-inner{width:calc(100% - 120px);max-width:var(--width);margin:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;left:15px;top:-80px;background:#fff;padding:15px;z-index:100}.skip-link:focus{top:10px}.site-header{height:78px;background:#fff;border-top:5px solid #f4f6f0;position:relative;z-index:20}.header-inner{height:100%;width:calc(100% - 120px);max-width:var(--width);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:24px;flex-shrink:0}.brand img{width:312px;height:auto}.brand span{font-size:9px;letter-spacing:.02em;color:#80877e}.global-nav{display:flex;align-items:center;gap:27px;font-size:12px;font-weight:700;white-space:nowrap}.global-nav>a{padding:15px 0;position:relative}.global-nav>a[aria-current]{color:var(--green)}.global-nav>a[aria-current]:after{content:"";height:2px;background:var(--green);position:absolute;bottom:5px;left:0;right:0}.global-nav .nav-contact{background:var(--orange);color:#fff;padding:12px 24px;border-radius:5px}.nav-toggle{display:none}.hero{height:470px;position:relative;isolation:isolate;overflow:hidden;background:#bfe3ec}.hero-image{position:absolute;width:77%;height:100%;right:0;object-fit:cover;object-position:center 57%;z-index:-3}.hero-panel{position:absolute;inset:0;background:linear-gradient(125deg,#177519 8%,#3c9c17 48%,#7cc632 78%);clip-path:polygon(0 0,55% 0,34% 100%,0 100%);z-index:-1}.hero-panel-accent{position:absolute;inset:0;clip-path:polygon(51% 0,61% 0,41% 100%,31% 100%);background:linear-gradient(120deg,#91d24ec9,#c7ef8480);z-index:-2}.hero:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(129deg,transparent 13%,#9ad54b25 13%,#9ad54b25 19%,transparent 19%,transparent 35%,#135e1729 35%,#135e1729 37%,transparent 37%)}.hero:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:72px;background:#fff;clip-path:polygon(0 75%,64% 100%,100% 10%,100% 100%,0 100%)}.hero-inner{position:relative;max-width:var(--width);width:calc(100% - 120px);height:100%;margin:auto}.hero-copy{padding:67px 0 0 28px;color:white}.hero h1{font-size:clamp(38px,4.1vw,60px);letter-spacing:.065em;line-height:1.34;margin:0 0 17px;font-weight:800;text-shadow:0 2px 12px #155d1930}.hero-copy>p{font-size:16px;font-weight:600;line-height:1.9;letter-spacing:.08em;margin:0 0 23px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:45px;padding:11px 28px;border-radius:30px;font-size:14px;font-weight:700;letter-spacing:.08em}.orange{color:white;background:linear-gradient(100deg,#ff9907,#ff8000);box-shadow:0 4px 10px #713b0310}.orange:hover{color:#fff;filter:brightness(1.08);transform:translateY(-1px)}.button span{font-size:22px;line-height:1}.hero-english{margin-top:23px;font-family:Arial,sans-serif;font-size:10px;line-height:1.8;letter-spacing:.43em;color:#d4ebbd}.hero-note{position:absolute;right:29px;top:22px;transform:rotate(-10deg);font-size:24px;font-family:"Yu Mincho",serif;font-weight:700;line-height:1.75;letter-spacing:.12em;color:#233b46;text-shadow:0 0 8px #fff,0 0 8px #fff}.hero-note span{border-bottom:2px solid #e8a03e;padding-bottom:8px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.section-heading h2{font-size:24px;letter-spacing:.07em;margin:0;border-left:5px solid var(--green);padding-left:15px;line-height:1.05;display:flex;align-items:center;gap:16px}.section-heading h2 small{color:#9b9f98;font-size:10px;letter-spacing:.18em;font-weight:500}.all-link{font-size:11px;letter-spacing:.04em;color:var(--green);font-weight:700;white-space:nowrap}.all-link span{margin-left:12px;font-size:18px}.services{padding-top:22px;padding-bottom:32px}.service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.service-card{border:1px solid #e8eee4;display:block;background:#fff;box-shadow:0 3px 8px #214c0804;transition:box-shadow .2s,transform .2s}.service-card:hover{transform:translateY(-4px);box-shadow:0 7px 18px #214c0817}.service-photo{aspect-ratio:1.72;background-image:url('../images/services.png');background-size:500% auto;background-repeat:no-repeat}.photo-0{background-position:0% center}.photo-1{background-position:25% center}.photo-2{background-position:50% center}.photo-3{background-position:75% center}.photo-4{background-position:100% center}.service-copy{padding:15px 16px 20px;position:relative}.service-copy svg{width:32px;height:32px;color:var(--green);margin-top:-25px;background:#fff;border-radius:2px;padding:2px;box-sizing:content-box;position:relative}.service-copy h3{font-size:17px;letter-spacing:.03em;color:#438826;margin:4px 0 7px;white-space:nowrap}.service-copy p{font-size:12px;line-height:1.7;margin:0;color:#747c74}.card-arrow{position:absolute;bottom:16px;right:12px;color:var(--green);font-size:17px}.vision{height:166px;position:relative;isolation:isolate;overflow:hidden;background:#236b27 url('../images/hero.png') center 62%/cover}.vision:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#10521df5 0%,#267e24ed 48%,#4da53270 75%,#66b02c66);z-index:-1}.vision-person{position:absolute;inset:0 9% 0 auto;width:32%;background:url('../images/recruit.png') 0% 35%/cover;z-index:-2}.vision-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:30px;color:#fff}.eyebrow{font:10px Arial,sans-serif;letter-spacing:.3em;color:#c8e5b7;margin:0 0 9px}.vision h2{font-size:32px;letter-spacing:.07em;line-height:1.3;margin:0 0 13px}.vision-description{font-size:12px;letter-spacing:.07em;margin:0}.vision .button{flex-shrink:0;min-width:220px}.strengths{display:grid;grid-template-columns:1fr 150px;gap:36px;padding-top:28px;padding-bottom:30px}.strength-main{position:relative}.strengths .section-heading{margin-bottom:24px}.strength-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e8ede5;background:#fff}.strength-card{display:flex;gap:17px;align-items:flex-start;padding:25px 18px;border-right:1px solid #e8ede5}.strength-card:last-child{border:0}.strength-card svg{flex:0 0 40px;width:40px;height:40px;color:var(--green)}.strength-card h3{font-size:18px;letter-spacing:.1em;margin:2px 0 9px;color:#52783d}.strength-card p{font-size:10px;line-height:1.8;color:#8b9289;margin:0}.strength-message{border-left:1px solid #edf0e9;padding:24px 0 0 25px;position:relative}.strength-message p{font-size:17px;line-height:1.65;letter-spacing:.2em;margin:0 0 10px;color:#7d8679}.strength-message small{display:block;font:9px/1.3 Arial,sans-serif;letter-spacing:.19em;color:#bccca6}.strength-watermark{display:block;text-align:right;font:700 42px/1 Arial,sans-serif;color:#f0f5e9;letter-spacing:.04em;margin-top:5px;height:30px}.updates{display:grid;grid-template-columns:1fr 1fr;gap:46px;padding-top:0;padding-bottom:27px}.updates .section-heading{margin-bottom:17px}.news-row{display:grid;grid-template-columns:77px 66px minmax(0,1fr) 10px;align-items:center;gap:14px;min-height:44px;border-bottom:1px solid #e6eae3;font-size:11px}.news-row time{font:11px Arial,sans-serif;color:#939c92}.news-tag{background:#75b844;color:#fff;font-size:9px;text-align:center;padding:3px 5px}.news-row:first-child .news-tag{background:var(--orange)}.news-row b{color:var(--green)}.recruit-banner{height:190px;position:relative;overflow:hidden;background:#eaf5f5}.recruit-banner>img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}.recruit-copy{position:absolute;top:12px;right:22px;text-align:center;width:53%}.recruit-copy h3{font-size:20px;line-height:1.6;font-family:"Yu Mincho",serif;font-weight:700;transform:rotate(-7deg);margin:0 0 13px;color:#28464a;text-shadow:0 0 7px white}.recruit-copy p{font-size:10px;line-height:1.7;margin:0 0 11px;color:#65766e}.recruit-copy .button{font-size:11px;min-height:32px;padding:7px 20px;gap:20px}.site-footer{background:linear-gradient(110deg,#f4f6f0,#edf3e7);border-top:1px solid #e4e8df;padding:25px 0 13px;position:relative}.footer-main{display:grid;grid-template-columns:205px 1fr 310px;align-items:center;gap:35px}.footer-brand img{width:170px;mix-blend-mode:multiply}.footer-brand small{font-size:8px;color:#90988a;display:block;margin-top:10px}.footer-links nav{display:flex;flex-wrap:wrap;gap:13px 20px;font-size:10px;font-weight:600}.privacy{display:inline-block;font-size:9px;color:#949c8d;margin-top:18px}.footer-main address{font-style:normal;font-size:10px;color:#6e7868;line-height:1.8}.footer-main address strong{color:#3a4a30}.footer-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.footer-bottom>small{font-size:8px;color:#98a090}.back-top{width:35px;height:35px;display:grid;place-items:center;color:#fff;background:#69a933;border-radius:50%;font-size:22px}.back-top:hover{color:#fff;background:#427b22}
@media(min-width:1600px){.hero-image{width:74%}.hero-panel{clip-path:polygon(0 0,53% 0,37% 100%,0 100%)}.hero-panel-accent{clip-path:polygon(50% 0,59% 0,43% 100%,34% 100%)}}
@media(max-width:1250px){.section-inner,.header-inner,.hero-inner{width:calc(100% - 64px)}.brand span{display:none}.global-nav{gap:19px;font-size:11px}.brand img{width:272px}.hero-copy{padding-left:0}.hero h1{font-size:48px}.service-grid{gap:14px}.service-copy{padding:13px 11px 17px}.service-copy h3{font-size:14px}.service-copy p{font-size:11px}.vision h2{font-size:27px}.strengths{grid-template-columns:1fr 110px;gap:20px}.strength-card{padding:20px 12px;gap:10px}.strength-card svg{width:32px;height:32px;flex-basis:32px}.strength-card h3{font-size:16px}.strength-message{padding-left:20px}.strength-message p{font-size:14px}.footer-main{grid-template-columns:170px 1fr 260px;gap:24px}.updates{gap:30px}.news-row{gap:8px;font-size:10px;grid-template-columns:60px 57px 1fr 8px}.recruit-copy h3{font-size:17px}}
@media(max-width:980px){.site-header{height:70px}.nav-toggle{display:flex;flex-direction:column;gap:5px;border:0;background:#f2f7ed;padding:12px;border-radius:3px;color:var(--dark)}.nav-toggle>span{width:23px;height:2px;background:currentColor}.global-nav{display:none;position:absolute;left:0;right:0;top:65px;background:#fff;padding:16px 32px;box-shadow:0 10px 15px #12331110;white-space:normal;flex-wrap:wrap;gap:12px 26px}.global-nav.is-open{display:flex}.hero{height:435px}.hero h1{font-size:42px}.hero-copy{padding-top:68px}.hero-copy>p{font-size:13px}.hero-note{font-size:18px;right:0}.hero-panel{clip-path:polygon(0 0,62% 0,40% 100%,0 100%)}.hero-panel-accent{clip-path:polygon(56% 0,69% 0,48% 100%,35% 100%)}.section-heading h2{font-size:21px}.service-grid{gap:10px}.service-copy h3{font-size:12px;letter-spacing:0}.service-copy p{font-size:10px}.service-copy p br{display:none}.service-photo{aspect-ratio:1.25}.vision h2{font-size:23px}.vision .button{min-width:170px;font-size:12px;padding:10px 18px}.vision-description{font-size:10px;line-height:1.8}.strengths{grid-template-columns:1fr}.strength-message{display:none}.strength-card{gap:11px;padding:20px 12px}.updates{gap:25px}.updates .section-heading h2{font-size:21px}.news-row{grid-template-columns:56px 51px 1fr;min-height:47px;font-size:9px;gap:6px}.news-row b{display:none}.news-tag{font-size:8px}.recruit-banner{height:190px}.recruit-copy{right:7px;top:23px;width:55%}.recruit-copy h3{font-size:14px}.recruit-copy p{font-size:9px}.recruit-copy .button{font-size:10px;padding:7px 10px;gap:8px}.footer-main{grid-template-columns:160px 1fr;gap:20px}.footer-main address{grid-column:2}.footer-links nav{gap:12px}}
@media(max-width:640px){.section-inner,.header-inner,.hero-inner{width:calc(100% - 40px)}.site-header{height:65px}.brand img{width:254.4px}.global-nav{top:60px;flex-direction:column;align-items:stretch;font-size:14px}.global-nav>a{padding:10px}.hero{height:605px}.hero-image{width:100%;height:57%;top:0;object-position:58% center}.hero-panel{clip-path:polygon(0 41%,100% 54%,100% 100%,0 100%);background:linear-gradient(120deg,#207d19,#419d1d)}.hero-panel-accent{clip-path:polygon(0 34%,100% 48%,100% 62%,0 47%);z-index:-1;background:#82c8419c}.hero:after{height:23px;clip-path:polygon(0 25%,65% 100%,100% 30%,100% 100%,0 100%)}.hero:before{display:none}.hero-copy{position:absolute;top:282px;left:0;padding:0}.hero h1{font-size:clamp(25px,6.65vw,41px);line-height:1.45;letter-spacing:.025em;margin-bottom:13px}.hero-copy>p{font-size:11px;letter-spacing:.04em;margin-bottom:17px}.hero .button{font-size:12px;min-height:39px;padding:9px 23px}.hero-english{font-size:8px;margin-top:15px;line-height:1.5;letter-spacing:.3em}.hero-note{font-size:16px;top:7px;right:4px}.services{padding-top:27px;padding-bottom:27px}.section-heading{margin-bottom:20px}.section-heading h2{font-size:20px;padding-left:10px;gap:10px;border-width:4px}.section-heading h2 small{font-size:8px;letter-spacing:.12em}.all-link{font-size:9px}.all-link span{margin-left:5px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 13px}.service-photo{aspect-ratio:1.6}.service-copy{padding:14px 12px 18px}.service-copy h3{font-size:13px;margin:4px 0 7px}.service-copy p{font-size:11px;line-height:1.8}.service-card:last-child{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr}.service-card:last-child .service-photo{aspect-ratio:auto;height:100%}.service-card:last-child .service-copy svg{margin-top:0}.vision{height:auto;min-height:240px}.vision-inner{padding-top:30px;padding-bottom:28px;display:block}.vision h2{font-size:22px;line-height:1.6;max-width:340px;margin-bottom:8px}.eyebrow{font-size:8px;letter-spacing:.17em}.vision-description{font-size:10px;line-height:1.9;max-width:330px;margin-bottom:17px}.vision .button{min-height:37px;font-size:11px}.vision-person{width:80%;right:0;opacity:.6}.vision:before{background:linear-gradient(90deg,#125520f5,#277d27bc)}.strengths{padding:28px 0 23px}.strengths .section-heading{flex-wrap:wrap;gap:12px}.strengths .all-link{margin-left:15px}.strength-grid{grid-template-columns:repeat(2,1fr)}.strength-card{padding:20px 10px;gap:9px;border-bottom:1px solid #e8ede5}.strength-card:nth-child(2){border-right:0}.strength-card:nth-child(3){border-bottom:0}.strength-card svg{width:28px;height:28px;flex-basis:28px}.strength-card h3{font-size:15px;margin-top:0}.strength-card p{font-size:9px}.strength-watermark{font-size:30px;height:22px}.updates{grid-template-columns:1fr;gap:30px;padding-bottom:30px}.news-row{grid-template-columns:60px 57px 1fr;font-size:10px;min-height:52px;gap:8px}.news-tag{font-size:9px}.recruit-banner{height:215px}.recruit-copy{top:23px;right:9px;width:54%}.recruit-copy h3{font-size:16px}.recruit-copy p{font-size:10px;margin-top:18px}.recruit-copy .button{font-size:11px;padding:9px 12px;margin-top:5px}.site-footer{padding-top:26px}.footer-main{display:flex;flex-direction:column;align-items:flex-start;gap:24px}.footer-brand img{width:160px}.footer-links nav{gap:16px 23px;font-size:11px}.privacy{margin-top:17px}.footer-main address{font-size:11px}.footer-bottom{margin-top:10px}.footer-bottom>small{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a{transition:none}.service-card:hover,.orange:hover{transform:none}}

@media(min-width:981px) and (max-width:1400px){.brand span{display:none}}
/* Approach the visible logo, rebound, then settle before repeating. */
.site-header .brand span{animation:logo-tagline-bounce 6s forwards,logo-tagline-reveal 6s ease-out forwards;transform-origin:left center;will-change:transform}
@keyframes logo-tagline-bounce{
  0%,18%{transform:translateX(0);animation-timing-function:cubic-bezier(.55,.02,.85,.5)}
  43%{transform:translateX(var(--logo-approach,-160px));animation-timing-function:cubic-bezier(.12,.7,.25,1)}
  58%{transform:translateX(12px);animation-timing-function:ease-in-out}
  68%{transform:translateX(-7px);animation-timing-function:ease-in-out}
  77%{transform:translateX(0);animation-timing-function:cubic-bezier(.22,.61,.36,1)}
100%{transform:translateX(var(--logo-approach,-160px))}
}
.site-header .brand:hover span,.site-header .brand:focus-visible span{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.site-header .brand span{animation:none;transform:none;will-change:auto}}

@keyframes logo-tagline-reveal{0%{color:#fff;opacity:0}100%{color:#80877e;opacity:1}}
/* Reveal the entire main visual from white on each page load. */
@keyframes hero-white-reveal{from{opacity:1}to{opacity:0}}
.hero .hero-reveal{position:absolute;inset:0;background:#fff;z-index:10;pointer-events:none;animation:hero-white-reveal 6s ease-out both}
@media(prefers-reduced-motion:reduce){.hero .hero-reveal{animation:none;opacity:0}}
/* Mobile refinement: shared across the complete site. */
@media(max-width:980px){
 .header-inner{gap:12px}.brand{min-width:0;flex-shrink:1}.brand img{max-width:100%}
 .nav-toggle{min-width:46px;min-height:46px;align-items:center;justify-content:center;flex-shrink:0}
 .global-nav{max-height:calc(100dvh - 70px);overflow-y:auto;overscroll-behavior:contain}
 .global-nav>a{min-height:46px;display:flex;align-items:center}
 .nav-toggle[aria-expanded="true"]>span:nth-child(1){transform:translateY(7px) rotate(45deg)}
 .nav-toggle[aria-expanded="true"]>span:nth-child(2){opacity:0}
 .nav-toggle[aria-expanded="true"]>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
@media(max-width:640px){
 body{font-size:15px;overflow-wrap:break-word}
 .site-header{height:74px}.header-inner{width:calc(100% - 32px)}
 .brand{flex-basis:254.4px}.brand img{width:254.4px}.global-nav{top:69px;padding:14px 20px;gap:4px;max-height:calc(100dvh - 74px)}
 .global-nav>a{padding:12px 15px;border-bottom:1px solid #edf1e8}.global-nav .nav-contact{margin-top:8px;justify-content:center}
 .hero{height:auto;min-height:620px;background:#328d1d}
 .hero-image{height:300px;width:100%;object-position:58% center}
 .hero-panel{clip-path:polygon(0 240px,100% 285px,100% 100%,0 100%)}
 .hero-panel-accent{clip-path:polygon(0 215px,100% 260px,100% 300px,0 255px)}
 .hero-inner{height:auto}.hero-copy{position:relative;top:auto;left:auto;padding:305px 0 45px}
 .hero h1{font-size:clamp(24px,6.3vw,38px);letter-spacing:.015em;line-height:1.5}
 .hero-copy>p{font-size:13px;line-height:1.9}.hero-english{font-size:9px}
 .button,.hero .button,.vision .button{min-height:46px;font-size:13px}
 .section-heading{flex-wrap:wrap;row-gap:10px}.section-heading h2{line-height:1.4;flex-wrap:wrap}
 .all-link{min-height:44px;display:inline-flex;align-items:center;font-size:11px}
 .service-copy h3{font-size:15px;white-space:normal}.service-copy p{font-size:13px;line-height:1.85}
 .service-card:last-child{display:block;grid-column:auto}.service-card:last-child .service-photo{height:auto;aspect-ratio:1.6}.service-card:last-child .service-copy svg{margin-top:-25px}
 .vision-description{font-size:13px}.vision h2{max-width:none}.vision-description{max-width:none}
 .strength-card{flex-direction:column;padding:18px 13px}.strength-card p{font-size:12px}.strength-card p br{display:none}
 .news-row{grid-template-columns:75px 70px 1fr;padding:14px 0;gap:9px;font-size:13px}
 .news-row time{font-size:12px}.news-tag{font-size:10px}.news-row>span:nth-of-type(2){grid-column:1 / -1;line-height:1.8}
 .recruit-banner{height:auto;background:#eff6f1}.recruit-banner>img{height:200px;object-position:left center}
 .recruit-copy{position:static;width:auto;padding:23px 18px 26px}.recruit-copy h3{font-size:22px;transform:none;margin-bottom:14px}.recruit-copy p{font-size:13px;margin:0 0 17px}.recruit-copy .button{min-height:46px;font-size:13px;padding:11px 22px}
 .footer-links nav{gap:4px 18px}.footer-links nav a,.privacy{min-height:44px;display:inline-flex;align-items:center;font-size:12px}
 .footer-main address{font-size:13px}.footer-main address a{display:inline-block;padding:7px 0}.back-top{width:46px;height:46px}
}
@media(max-width:380px){.service-grid{grid-template-columns:1fr}.service-photo{aspect-ratio:1.8}.service-copy{padding:16px 18px 20px}.service-copy h3{font-size:18px}.strength-grid{grid-template-columns:1fr}.strength-card{flex-direction:row;border-right:0;border-bottom:1px solid #e8ede5!important}.strength-card:last-child{border-bottom:0!important}.hero-copy>p{font-size:12px}}
