:root{
  --moss:#2B3A33;--moss-2:#34463D;--sage:#D3DDD0;--sage-2:#B7C4B3;
  --ink:#151614;--paper:#FFFFFF;--paper-2:#F3F5F1;--muted:#4A554F;--line:#DCE3D9;
  --err:#A3322A;
  --sans:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --wrap:1180px;--gut:clamp(16px,4vw,48px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-weight:300;letter-spacing:-.03em;line-height:1.05;margin:0}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.02em}
.skip{position:absolute;left:-999px;top:8px;background:var(--sage);padding:8px 12px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--sage-2);outline-offset:3px}

/* header */
.hdr{position:sticky;top:0;z-index:20;background:var(--moss);color:var(--sage);border-bottom:1px solid rgba(211,221,208,.12)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.logo{font-weight:300;font-size:28px;letter-spacing:-.045em;text-decoration:none;color:var(--sage);line-height:1}
.nav{display:flex;align-items:center;gap:28px}
.nav .links{display:flex;gap:28px}
.nav a{text-decoration:none;font-size:15px;color:var(--sage)}
.nav a:hover{color:#fff}
.nav a.btn-sage,.nav a.btn-sage:hover{color:var(--moss)}
.lang{display:flex;border:1px solid rgba(211,221,208,.35);border-radius:999px;overflow:hidden}
.lang button{all:unset;cursor:pointer;font:400 12px var(--mono);padding:8px 12px;min-width:20px;text-align:center;color:var(--sage)}
.lang button:focus-visible{outline:2px solid var(--sage);outline-offset:-2px}
.lang button[aria-pressed="true"]{background:var(--sage);color:var(--moss)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:999px;font:500 15px var(--sans);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .2s,color .2s}
.btn-sage{background:var(--sage);color:var(--moss)}
.btn-sage:hover{background:#fff}
.btn-ghost{border-color:rgba(211,221,208,.45);color:var(--sage);background:transparent}
.btn-ghost:hover{border-color:var(--sage)}
.btn-moss{background:var(--moss);color:var(--sage)}
.btn-moss:hover{background:var(--ink)}
.hdr .btn{min-height:40px;padding:0 16px;font-size:14px}
@media (max-width:860px){.nav{gap:12px}.nav .links{display:none}}
.hdr .btn{white-space:nowrap}
@media (max-width:480px){.hdr .btn{display:none}.logo{font-size:24px}}
.contact-mail{margin-top:20px;font-size:18px}
.contact-mail a{color:var(--sage);text-underline-offset:4px}

/* hero */
.hero{background:var(--moss);color:var(--sage);padding:clamp(40px,7vw,88px) 0 clamp(36px,5vw,60px)}
.hero .mono{color:var(--sage-2)}
.hero h1{font-size:clamp(40px,7vw,92px);margin:16px 0 24px;max-width:14ch}
.hero .lead{font-size:clamp(17px,1.6vw,20px);color:var(--sage);max-width:56ch;font-weight:300}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:clamp(32px,5vw,56px);border-top:1px solid rgba(211,221,208,.2)}
.facts div{padding:20px 20px 0 0}
.facts b{display:block;font-weight:300;font-size:clamp(26px,3vw,36px);letter-spacing:-.03em;color:#fff}
.facts span{font-family:var(--mono);font-size:12px;color:var(--sage-2)}
@media (max-width:640px){.facts{grid-template-columns:1fr}.facts div{padding:16px 0;border-bottom:1px solid rgba(211,221,208,.15)}}

/* sections */
section{padding:clamp(48px,6.5vw,84px) 0}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px;margin-bottom:clamp(24px,3.5vw,40px)}
.sec-head .mono{color:var(--muted);padding-top:10px}
.sec-head h2{font-size:clamp(34px,4.6vw,56px)}
.sec-head p{color:var(--muted);margin-top:16px;max-width:52ch}
@media (max-width:760px){.sec-head{grid-template-columns:1fr;gap:8px}}

.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:var(--paper);padding:28px 26px 32px;display:flex;flex-direction:column;gap:12px;min-height:220px}
.card .mono{color:var(--muted)}
.card h3{font-size:26px;font-weight:400;letter-spacing:-.02em}
.card p{color:var(--muted);font-size:15.5px}
.card.dark{background:var(--moss);color:var(--sage)}
.card.dark .mono,.card.dark p{color:var(--sage-2)}
@media (max-width:960px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.grid{grid-template-columns:1fr}.card{min-height:0}}

.alt{background:var(--paper-2)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid #C5CFC2;border-radius:999px;padding:10px 18px;font-size:16px;background:var(--paper)}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;counter-reset:s}
.steps li{border-top:1px solid var(--ink);padding-top:18px;counter-increment:s}
.steps li::before{content:"0" counter(s);font:400 12px var(--mono);color:var(--muted);display:block;margin-bottom:16px}
.steps h3{font-size:22px;font-weight:400;letter-spacing:-.02em;margin-bottom:10px}
.steps p{color:var(--muted);font-size:15.5px}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px)}
.about .big{font-size:clamp(24px,2.6vw,32px);font-weight:300;letter-spacing:-.02em;line-height:1.25}
.about ul{list-style:none;margin:0;padding:0}
.about li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.about li .mono{color:var(--muted);padding-top:3px}
.note{margin-top:20px;padding:18px 20px;background:var(--paper-2);font-size:14.5px;color:var(--muted)}
@media (max-width:820px){.about{grid-template-columns:1fr}.about li{grid-template-columns:1fr;gap:4px}}

.zone{background:var(--ink);color:var(--sage)}
.zone .sec-head .mono,.zone .sec-head p{color:var(--sage-2)}
.zone .grid{background:#2A2D29;border-color:#2A2D29}
.zone .card{background:var(--ink);min-height:0}
.zone .card .mono,.zone .card p{color:var(--sage-2)}

/* form */
.contact{background:var(--moss);color:var(--sage)}
.contact .sec-head .mono,.contact .sec-head p{color:var(--sage-2)}
form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.f{display:flex;flex-direction:column;gap:8px}
.f.full{grid-column:1/-1}
label{font:400 12px var(--mono);color:var(--sage-2)}
input,textarea{font:400 16px var(--sans);color:var(--ink);background:var(--paper);border:1px solid transparent;border-radius:10px;padding:13px 14px;min-height:48px;width:100%}
textarea{min-height:140px;resize:vertical}
input:focus,textarea:focus{outline:2px solid var(--sage);outline-offset:1px}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#E8A49E;outline-color:#E8A49E}
.hp{display:none!important}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.f-err{margin:0;font-size:13px;line-height:1.35;color:#F2C2BD}
.f-err[hidden]{display:none}
.form-msg{font-size:14.5px;color:#F2C2BD;min-height:1em}
@media (max-width:680px){form{grid-template-columns:1fr}.form-foot .btn{width:100%}}

/* compact contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(24px,5vw,72px);align-items:start}
.contact-grid h2{font-size:clamp(34px,4.6vw,56px);margin:16px 0}
.contact-grid > div > p{color:var(--sage-2);max-width:40ch}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact form{gap:14px 16px}
.contact textarea{min-height:112px}
.svc-chips{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.svc-chips legend{font:400 12px var(--mono);color:var(--sage-2);padding:0;margin-bottom:8px}
.svc-chips label{position:relative;cursor:pointer}
.svc-chips input{position:absolute;opacity:0;width:1px;height:1px}
.svc-chips span{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid rgba(211,221,208,.6);border-radius:999px;font:400 14px var(--sans);color:var(--sage);transition:background .15s,color .15s}
.svc-chips label:hover span{border-color:var(--sage)}
.svc-chips input:checked + span{background:var(--sage);color:var(--moss);border-color:var(--sage)}
.svc-chips input:focus-visible + span{outline:2px solid var(--sage);outline-offset:2px}
.legal-note{font-size:12.5px;line-height:1.45;color:var(--sage-2);max-width:42ch;flex:1 1 240px}
.form-foot .f-err{margin:0;font-size:13px;line-height:1.35;color:#F2C2BD}
.f-err[hidden]{display:none}
.form-msg{flex-basis:100%}

/* footer */
.ftr{background:var(--ink);color:var(--sage-2);padding:40px 0 32px;font-size:14px}
.ftr .top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-end;padding-bottom:28px;border-bottom:1px solid #2A2D29;margin-bottom:24px}
.ftr .logo{font-size:56px;color:var(--sage)}
.ftr .legal{display:flex;flex-wrap:wrap;gap:8px 24px;font-family:var(--mono);font-size:12px}

/* thank you */
.ty{min-height:calc(100vh - 64px);background:var(--moss);color:var(--sage);display:flex;align-items:center;padding:64px 0}
.ty h1{font-size:clamp(48px,9vw,112px);margin:20px 0 24px}
.ty p{max-width:52ch;font-weight:300;font-size:19px}
.ty .cta{margin-top:36px}
