:root{--ink:#17372d;--green:#1d4c3d;--lime:#b4d247;--cream:#f4f2e9;--paper:#fbfaf6;--line:#d9ded5;--serif:'Playfair Display',serif;--sans:'DM Sans','Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.9}a{color:inherit;text-decoration:none}img{display:block;width:100%}.demo-bar{height:34px;background:#142b24;color:#fff;display:flex;align-items:center;justify-content:center;gap:18px;font-size:10px;letter-spacing:.08em}.demo-bar span{color:var(--lime);letter-spacing:.2em}.demo-bar small{opacity:.58}.site-header{height:84px;padding:0 4.5vw;display:flex;align-items:center;gap:4vw;background:rgba(251,250,246,.94);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(23,55,45,.08);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;margin-right:auto;line-height:1}.brand-mark{width:43px;height:43px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:17px}.brand b{font-family:var(--serif);font-size:21px;letter-spacing:.12em}.brand small{display:block;font-size:7px;letter-spacing:.26em;margin-top:5px}.nav{display:flex;gap:2.7vw;font-size:12px;font-weight:600}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--ink);transition:.25s}.nav a:hover:after{right:0}.header-actions{display:flex;align-items:center;gap:18px}.lang{background:none;border:0;display:flex;gap:6px;font-size:9px;cursor:pointer}.lang span{padding:4px;opacity:.4}.lang .active{opacity:1;border-bottom:1px solid}.button{border:0;background:var(--lime);padding:15px 24px;display:inline-flex;align-items:center;justify-content:center;gap:40px;font-weight:700;font-size:12px;letter-spacing:.05em;transition:.25s;cursor:pointer}.button:hover{background:#c8e65a;transform:translateY(-2px)}.button.small{padding:11px 18px}.menu-btn{display:none}.hero{min-height:calc(100vh - 118px);height:760px;position:relative;color:#fff;overflow:hidden}.hero>img{height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,29,23,.78) 0%,rgba(9,30,24,.54) 38%,rgba(7,23,19,.08) 72%),linear-gradient(0deg,rgba(8,25,20,.42),transparent 45%)}.hero-copy{position:absolute;left:8vw;top:50%;transform:translateY(-50%);max-width:680px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.28em;margin:0 0 22px}.eyebrow.green{color:#557d50}.hero h1,.statement h2,.section-head h2,.business h2,.company h2,.faq h2,.contact h2{font-family:var(--serif),'Noto Sans JP',serif;font-weight:500;letter-spacing:-.035em;margin:0}.hero h1{font-size:clamp(48px,6.4vw,92px);line-height:1.22}.hero h1 span{color:var(--lime)}.hero .lead{max-width:580px;font-size:14px;margin:30px 0;color:rgba(255,255,255,.86);line-height:2}.hero-buttons{display:flex;align-items:center;gap:32px}.text-link{font-size:12px;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:5px}.text-link b{margin-left:16px}.hero-note{position:absolute;right:4vw;bottom:40px;text-align:right;font-size:9px;letter-spacing:.15em}.hero-note span{display:block;color:var(--lime);margin-bottom:6px}.hero-note i{font-style:normal;opacity:.4;margin:0 8px}.scroll{position:absolute;left:3vw;bottom:30px;writing-mode:vertical-rl;font-size:8px;letter-spacing:.2em;display:flex;align-items:center;gap:10px}.scroll span{height:38px;width:1px;background:#fff}.statement{display:grid;grid-template-columns:110px 1fr 310px;gap:5vw;padding:140px 8vw;background:var(--cream)}.section-index{writing-mode:vertical-rl;font-size:9px;letter-spacing:.25em;border-right:1px solid #cbd1c8;padding-right:25px}.statement h2,.section-head h2,.business h2{font-size:clamp(38px,4.5vw,64px);line-height:1.35}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:55px;color:#4d625b;font-size:13px}.quote-card{background:var(--green);color:#fff;padding:40px;align-self:center;min-height:300px;display:flex;flex-direction:column;justify-content:space-between}.quote-card>span{font-family:var(--serif);font-size:70px;color:var(--lime);line-height:.6}.quote-card blockquote{font-family:var(--serif);font-size:31px;margin:0;line-height:1.35}.quote-card small{letter-spacing:.15em;font-size:8px}.strengths{padding:130px 8vw;background:#12372d;color:#fff}.section-head{display:flex;justify-content:space-between;align-items:end;gap:8vw;margin-bottom:70px}.section-head>p{max-width:400px;color:#b9c8c2;font-size:13px}.cards{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.2)}.card{padding:40px 3vw;border-right:1px solid rgba(255,255,255,.2);min-height:370px}.card:first-child{padding-left:0}.card:last-child{border:0}.card>b{font-size:9px;color:var(--lime)}.card h3{font-size:19px;margin:24px 0 15px}.card p{font-size:12px;color:#b9c8c2}.line-icon{width:55px;height:55px;border:1px solid var(--lime);border-radius:50%;margin-top:38px;position:relative}.line-icon:after,.line-icon:before{content:"";position:absolute}.globe:after{inset:9px 16px;border:1px solid var(--lime);border-radius:50%}.globe:before{left:9px;right:9px;top:26px;border-top:1px solid var(--lime)}.leaf:after{width:22px;height:31px;border:1px solid var(--lime);border-radius:100% 0 100% 0;left:16px;top:10px;transform:rotate(12deg)}.leaf:before{height:27px;border-left:1px solid var(--lime);left:28px;top:21px;transform:rotate(35deg)}.link:after{width:25px;height:12px;border:1px solid var(--lime);border-radius:20px;left:8px;top:15px;transform:rotate(-35deg);box-shadow:13px 10px 0 -1px #12372d,13px 10px 0 0 var(--lime)}.business{display:grid;grid-template-columns:1.15fr .85fr;min-height:760px}.business-photo{position:relative}.business-photo img{height:100%;object-fit:cover}.photo-label{position:absolute;left:30px;bottom:30px;background:rgba(255,255,255,.92);padding:14px 18px;width:190px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.15em}.business-copy{padding:100px 7vw;background:var(--paper)}.business-copy>p:not(.eyebrow){font-size:13px;color:#63736d;max-width:440px}.service-list{padding:20px 0 0;margin:30px 0 0;list-style:none;border-top:1px solid var(--line)}.service-list li{display:flex;align-items:center;gap:24px;padding:19px 0;border-bottom:1px solid var(--line)}.service-list li>span{font-family:var(--serif);color:#759176}.service-list b{font-size:14px}.service-list small{display:block;font-size:7px;letter-spacing:.2em;color:#829088}.cases{padding:130px 8vw;background:var(--cream)}.section-head.compact{align-items:end;margin-bottom:45px}.demo-caption{font-size:10px!important}.case-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}.case{height:440px;position:relative;overflow:hidden;background-size:cover;background-position:center}.case:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,32,24,.75),transparent 65%);transition:.4s}.case:hover:before{background:linear-gradient(0deg,rgba(9,32,24,.88),rgba(9,32,24,.05))}.case-a{background-image:url('hero.png');background-position:72% center}.case-b{background-image:url('quality.png');background-position:48% center}.case>div{position:absolute;left:35px;bottom:30px;color:#fff}.case span{font-size:8px;letter-spacing:.22em;color:var(--lime)}.case h3{font-family:var(--serif),'Noto Sans JP';font-size:25px;margin:7px 0}.case p{font-size:11px;margin:0;opacity:.8}.process{text-align:center;padding:110px 8vw;background:#dce6cc}.process h2{font-family:var(--serif),'Noto Sans JP';font-size:42px;font-weight:500}.steps{margin:60px auto 0;max-width:980px;display:flex;align-items:center;justify-content:space-between}.steps div{width:150px}.steps b{display:grid;place-items:center;width:62px;height:62px;border:1px solid var(--green);border-radius:50%;margin:auto;font-family:var(--serif);font-size:19px}.steps span{display:block;font-weight:600;font-size:12px;margin-top:14px}.steps i{font-style:normal;color:#799079}.company{padding:130px 8vw;display:grid;grid-template-columns:.7fr 1.3fr;gap:10vw}.company h2,.faq h2{font-size:50px}.placeholder-note{font-size:10px;color:#859189;margin-top:20px}.company dl{margin:0;border-top:1px solid var(--line)}.company dl div{display:grid;grid-template-columns:130px 1fr;padding:22px 0;border-bottom:1px solid var(--line)}dt{font-size:10px;color:#71817a}dd{margin:0;font-size:13px}dd em{font-style:normal;font-size:10px;color:#829088}.faq{padding:120px 8vw;display:grid;grid-template-columns:.65fr 1.35fr;gap:9vw;background:#f0eee5}.accordions{border-top:1px solid #bdc5ba}details{border-bottom:1px solid #bdc5ba}summary{list-style:none;display:grid;grid-template-columns:40px 1fr 20px;align-items:center;padding:25px 0;cursor:pointer}summary::-webkit-details-marker{display:none}summary span{font-family:var(--serif);font-size:12px}summary b{font-size:13px}summary i{font-style:normal;font-size:22px;transition:.25s}details[open] summary i{transform:rotate(45deg)}details p{font-size:12px;color:#65736c;padding:0 40px 24px;margin:0}.contact{padding:120px 8vw;background:var(--green);color:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw}.contact h2{font-size:60px;color:var(--lime);line-height:1.3}.contact-intro>p:not(.eyebrow){font-size:13px;color:#bfcbc6;margin-top:30px}.contact-intro small{font-size:9px;color:#89a198}form{display:grid;grid-template-columns:1fr 1fr;gap:25px}label span{display:block;font-size:9px;letter-spacing:.12em;color:#b9c9c3;margin-bottom:8px}input,textarea{width:100%;background:transparent;border:0;border-bottom:1px solid #779087;border-radius:0;padding:10px 0;color:#fff;font:inherit;outline:none}textarea{resize:vertical}.full{grid-column:1/-1}.contact .button{margin-top:15px}.form-status{grid-column:1/-1;margin:0;font-size:11px;color:var(--lime)}footer{padding:45px 5vw;background:#0d211b;color:#fff;display:flex;align-items:center;justify-content:space-between}footer .brand{margin:0}footer .brand-mark{border-color:#fff}footer p{text-align:center;font-size:9px;letter-spacing:.12em;opacity:.7}footer p span{font-size:7px}.back{font-size:8px;letter-spacing:.16em}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.site-header{height:68px;padding:0 20px}.nav{position:fixed;inset:102px 0 auto 0;background:var(--paper);padding:30px;display:none;flex-direction:column;font-size:15px}.nav.open{display:flex}.header-actions .button{display:none}.menu-btn{display:block;border:0;background:none;width:32px;padding:5px}.menu-btn i{display:block;border-top:1px solid var(--ink);margin:7px}.hero{height:720px;min-height:auto}.hero>img{object-position:63% center}.hero-shade{background:linear-gradient(90deg,rgba(8,29,23,.83),rgba(8,29,23,.3))}.hero-copy{left:7vw;right:7vw}.hero h1{font-size:50px}.hero-note{display:none}.statement{grid-template-columns:1fr;padding:90px 7vw}.section-index{writing-mode:initial;border-right:0;border-bottom:1px solid #cbd1c8;padding:0 0 15px}.quote-card{max-width:420px}.cards{grid-template-columns:1fr}.card{padding:35px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.2);min-height:auto}.business{grid-template-columns:1fr}.business-photo{height:520px}.case-grid{grid-template-columns:1fr}.company,.faq,.contact{grid-template-columns:1fr}.steps{display:grid;grid-template-columns:1fr 1fr;gap:35px}.steps i{display:none}}
@media(max-width:600px){.demo-bar{gap:8px;font-size:8px}.demo-bar small{display:none}.brand b{font-size:17px}.brand-mark{width:37px;height:37px}.hero{height:670px}.hero-copy{top:47%}.hero h1{font-size:40px}.hero .lead{font-size:12px}.hero-buttons{align-items:flex-start;flex-direction:column;gap:20px}.scroll{display:none}.statement,.strengths,.cases,.company,.faq,.contact{padding:80px 6vw}.two-col{grid-template-columns:1fr;gap:8px;margin-top:30px}.section-head{display:block;margin-bottom:40px}.section-head>p{margin-top:20px}.statement h2,.section-head h2,.business h2{font-size:36px}.business-photo{height:390px}.business-copy{padding:70px 6vw}.case{height:360px}.process{padding:80px 6vw}.process h2{font-size:34px}.company h2,.faq h2{font-size:39px}.company dl div{grid-template-columns:90px 1fr}.contact h2{font-size:44px}form{grid-template-columns:1fr}form .full{grid-column:1}footer{flex-direction:column;gap:25px}.back{display:none}}
