:root{
  --forest:#1D4433;--night:#182F23;--gold:#E0A32E;--gold-h:#C98E1E;--brick:#C1502E;
  --cream:#F7F4EC;--cream-d:#F3EFE3;--sand:#ECE6D6;--ink:#20241F;--text:#3D433B;--muted:#4A5048;
  --pale:#CFD6CC;--sage:#9FB0A3;--white:#FFFFFF;
  --line:rgba(32,36,31,.14);--line-d:rgba(243,239,227,.18);--ring:rgba(32,36,31,.2);
  --head:"Sora",sans-serif;--body:"Karla",sans-serif;
  --r:24px;--r-sm:16px;
  --max:1200px;
  --pad:max(clamp(20px,5.6vw,80px),calc((100vw - var(--max)) / 2));
  --sec:clamp(80px,9.7vw,140px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{margin:0;background:var(--cream);font-family:var(--body);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:var(--forest);text-decoration:none}
h1,h2,h3,p,figure,blockquote{margin:0}
button{font:inherit;cursor:pointer;color:inherit}
img{display:block;height:auto}
.page{overflow:hidden}
/* clip sideways overflow without making .page a scroll container, so position:sticky (TOC, spec box) works */
@supports (overflow:clip){.page{display:flow-root;overflow:visible;overflow-x:clip}}
.arr{width:20px;height:20px;flex:none}

/* concept bar */
.wf{background:#0f1f17;color:var(--cream-d);font-size:12.5px}
.wf .in{max-width:1440px;margin:0 auto;padding:0 var(--pad);display:flex;gap:16px;align-items:center;min-height:36px;flex-wrap:wrap}
.wf .sp{flex:1}
.wf a{color:var(--cream-d);border-bottom:1px solid rgba(243,239,227,.4)}

/* photo slot */
.ph{position:relative;overflow:hidden;border-radius:var(--r);background:#E4DCC8}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
a:hover .ph img{transform:scale(1.03)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:60px;padding:0 30px;border-radius:999px;font:700 17px var(--body);transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-h)}
.btn-line{border:1.5px solid var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--cream)}
.btn-light{border:1.5px solid var(--cream);color:var(--cream)}
.btn-light:hover{background:var(--cream);color:var(--forest)}
.btn-white{border:1.5px solid var(--white);color:var(--white)}
.btn-white:hover{background:var(--white);color:var(--forest)}
.ulink{display:inline-flex;align-items:center;gap:10px;font:700 17px var(--body);color:var(--forest);border-bottom:1.5px solid var(--forest);padding-bottom:4px;white-space:nowrap}
.ulink:hover{color:var(--ink);border-color:var(--ink)}
.ulink .arr{width:18px;height:18px}
.circ{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ring);color:var(--forest);flex:none;transition:background .2s,color .2s,border-color .2s}
.circ.solid{width:56px;height:56px;border:0;background:var(--forest);color:var(--cream)}
a:hover .circ:not(.solid){background:var(--forest);border-color:var(--forest);color:var(--cream)}

/* hero button animation: fill sweep + arrow loop, always pill */
.btn-fx{--fx:var(--forest);--fx-on:var(--cream);position:relative;overflow:hidden;isolation:isolate;transition:color .45s cubic-bezier(.23,1,.32,1),border-color .45s,transform .35s cubic-bezier(.23,1,.32,1),box-shadow .45s}
.btn-fx-dark{--fx:var(--ink)}
.btn-gold.btn-fx{--fx:var(--gold-h);--fx-on:var(--ink)}
.btn-gold.btn-fx:hover,.btn-gold.btn-fx:focus-visible{border-color:transparent}
.btn-fx::before{content:"";position:absolute;inset:-2px;z-index:-1;border-radius:inherit;background:var(--fx);clip-path:circle(0% at 0% 50%);transition:clip-path .6s cubic-bezier(.23,1,.32,1)}
.btn-fx:hover,.btn-fx:focus-visible{color:var(--fx-on);border-color:var(--fx);transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(24,47,35,.55)}
.btn-gold.btn-fx:hover,.btn-gold.btn-fx:focus-visible{background:var(--gold)}
.btn-line.btn-fx:hover,.btn-line.btn-fx:focus-visible{background:transparent}
.btn-fx:hover::before,.btn-fx:focus-visible::before{clip-path:circle(150% at 0% 50%)}
.btn-fx:active{transform:translateY(0) scale(.97);box-shadow:0 4px 10px -6px rgba(24,47,35,.5)}
.btn-fx-light{--fx:var(--cream);--fx-on:var(--forest)}
.btn-fx-white{--fx:var(--white);--fx-on:var(--forest)}
.btn-light.btn-fx:hover,.btn-light.btn-fx:focus-visible,.btn-white.btn-fx:hover,.btn-white.btn-fx:focus-visible{background:transparent}
.btn-fx .ico{position:relative;display:inline-block;width:20px;height:20px;overflow:hidden;flex:none}
.btn-fx .ico .arr{position:absolute;inset:0;transition:transform .55s cubic-bezier(.23,1,.32,1)}
.btn-fx .ico .a2{transform:translateX(-140%)}
.btn-fx:hover .ico .a1,.btn-fx:focus-visible .ico .a1{transform:translateX(140%)}
.btn-fx:hover .ico .a2,.btn-fx:focus-visible .ico .a2{transform:translateX(0)}

/* type */
.h2{font:700 clamp(36px,4.2vw,60px)/1.03 var(--head);letter-spacing:-.04em;text-wrap:balance}
.lead{font:400 18px/1.6 var(--body);color:var(--text);text-wrap:pretty}
.num{font:700 18px var(--head);color:var(--forest)}
.sec{padding:var(--sec) var(--pad)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:48px}
.sec-head .lead{margin-top:20px;max-width:560px}

/* topbar */
.topbar{background:var(--night);color:var(--cream-d);font:500 14px var(--body)}
.tb-in{display:flex;gap:24px;align-items:center;min-height:38px;padding:0 var(--pad)}
.topbar a{color:var(--cream-d);transition:color .2s}
.topbar a:hover{color:var(--gold)}
.topbar .sp{flex:1}

/* header */
.hdr{position:sticky;top:0;z-index:40;transition:transform .55s cubic-bezier(.23,1,.32,1),box-shadow .35s;will-change:transform;display:flex;align-items:center;justify-content:space-between;gap:24px;height:88px;padding:0 var(--pad);border-bottom:1px solid var(--line);background:var(--cream)}
.hdr.hdr-hide{transform:translateY(-100%)}
.hdr.hdr-shadow{box-shadow:0 14px 34px -22px rgba(24,47,35,.45)}
.logo{display:flex;align-items:baseline;gap:8px;color:var(--forest);flex:none}
.logo b{font:800 26px var(--head);letter-spacing:-.04em}
.logo span{font:600 26px var(--head);letter-spacing:-.03em;color:var(--ink)}
.nav{display:flex;align-items:center;gap:2px;font:600 16px var(--body)}
.ni{position:relative}
.nl{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 13px;color:var(--ink);white-space:nowrap;transition:color .25s}
.ni:hover>.nl,.ni:focus-within>.nl{color:var(--forest)}
.nl.on{color:var(--forest);text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:8px}
.chev{width:16px;height:16px;flex:none;transition:transform .35s cubic-bezier(.23,1,.32,1)}
.ni:hover .chev,.ni:focus-within .chev{transform:rotate(180deg)}
.dd{position:absolute;top:calc(100% + 12px);left:-8px;z-index:45;min-width:290px;padding:10px;background:var(--white);border-radius:20px;box-shadow:0 0 0 1px var(--line),0 28px 60px -24px rgba(24,47,35,.4);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .4s cubic-bezier(.23,1,.32,1),visibility .25s}
.dd::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.ni:hover .dd,.ni:focus-within .dd{opacity:1;visibility:visible;transform:none}
.dd a{display:block;padding:10px 14px;border-radius:12px;color:var(--ink);font:500 15px/1.3 var(--body);transition:background .2s,color .2s}
.dd a:hover,.dd a:focus-visible{background:var(--cream);color:var(--forest)}
.dd a[aria-current="page"]{color:var(--forest);font-weight:700}
.dd .dd-ov{margin-bottom:6px;padding:12px 14px;background:var(--cream)}
.dd .dd-ov:hover{background:var(--sand)}
.dd-ov b{display:block;font:700 16px var(--head);letter-spacing:-.02em;color:var(--forest)}
.dd-ov small{display:block;margin-top:3px;font:500 13px var(--body);color:var(--muted)}
.dd-2{display:grid;grid-template-columns:1fr 1fr;column-gap:4px;min-width:540px}
.dd-2 .dd-ov{grid-column:1/-1}
.dd-r{left:auto;right:-8px}
.hdr-r{display:flex;align-items:center;gap:16px;flex:none}
.hdr-r .btn{height:48px;padding:0 24px;font-size:16px}
.burger{display:none;width:48px;height:48px;margin-right:-10px;border:0;background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.burger span{width:24px;height:2.5px;border-radius:2px;background:var(--ink)}

/* mobile menu */
.menu{position:fixed;inset:0;z-index:50;background:var(--forest);padding:0 20px 28px;display:flex;flex-direction:column;clip-path:inset(0 0 100% 0);pointer-events:none;transition:clip-path .5s cubic-bezier(.65,0,.25,1);overflow-y:auto}
body.menu-on .menu{clip-path:inset(0 0 0 0);pointer-events:auto}
body.menu-on{overflow:hidden}
.menu-top{display:flex;align-items:center;justify-content:space-between;min-height:68px;border-bottom:1px solid var(--line-d)}
.menu-top .logo b{color:var(--white);font-size:21px}
.menu-top .logo span{color:var(--cream-d);font-size:21px}
.close{position:relative;width:48px;height:48px;margin-right:-10px;border:0;background:transparent}
.close span{position:absolute;left:12px;top:23px;width:24px;height:2.5px;border-radius:2px;background:var(--white);transform:rotate(45deg)}
.close span+span{transform:rotate(-45deg)}
.menu nav{margin-top:8px;display:flex;flex-direction:column}
.mg{border-bottom:1px solid var(--line-d)}
.mrow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mrow>a{flex:1;display:flex;justify-content:space-between;align-items:center;padding:14px 0;font:800 30px/1.1 var(--head);letter-spacing:-.04em;color:var(--white)}
.mrow>a .arr{width:22px;height:22px;color:var(--cream-d)}
.mtog{flex:none;width:48px;height:48px;margin-right:-8px;border:0;border-radius:50%;background:transparent;color:var(--cream-d);display:flex;align-items:center;justify-content:center}
.mtog svg{width:26px;height:26px;transition:transform .35s cubic-bezier(.23,1,.32,1)}
.mg.open .mtog svg{transform:rotate(180deg)}
.msub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.23,1,.32,1)}
.mg.open .msub{grid-template-rows:1fr}
.msub>div{overflow:hidden}
.msub>div>div{padding:0 0 14px 2px;display:flex;flex-direction:column}
.msub a{padding:8px 0;font:600 18px/1.3 var(--body);color:var(--cream-d)}
.msub a:hover{color:var(--gold)}
.menu-foot{margin-top:auto;padding-top:28px;display:flex;flex-direction:column;gap:16px}
.menu-foot .row{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font:600 16px var(--body)}
.menu-foot .row a{white-space:nowrap}
.menu-foot .row a:first-child{font:700 18px var(--head);letter-spacing:-.02em;color:var(--white)}
.menu-foot .row a+a{color:var(--cream-d)}
.menu-foot .btn{height:60px;font-size:18px}

/* hero */
.hero{padding:clamp(36px,5vh,64px) var(--pad) 0}
.hero h1{font:800 clamp(54px,6.6vw,108px)/1.14 var(--head);letter-spacing:-.05em;color:var(--forest)}
.hero-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:64px;align-items:end;margin-top:32px}
.mark{width:56px;height:4px;border-radius:2px;background:var(--brick);margin-bottom:28px}
.hero-row p{max-width:540px;font:400 20px/1.55 var(--body);color:var(--text);text-wrap:pretty}
.hero-act{display:flex;flex-direction:column;gap:20px;align-items:flex-end}
.hero-btns{display:flex;gap:12px}
.trust{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font:600 16px var(--body);color:var(--text)}
.trust i{font-style:normal;color:var(--forest)}
.hero-media{position:relative;margin-top:40px}
.hero-img{position:relative}
.hero-media .ph{height:clamp(340px,52vh,560px);background:#C9C1AA}
.badge{position:absolute;top:28px;right:28px;width:156px;height:156px;border-radius:50%;background:var(--forest);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center}
.badge b{font:800 42px/1 var(--head);letter-spacing:-.04em;color:var(--gold)}
.badge span{display:block;font:600 15px/1.25 var(--body);color:var(--cream);text-wrap:balance}
.cats{position:relative;margin:-80px 40px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--white);border-radius:var(--r);box-shadow:0 20px 50px rgba(24,47,35,.12);overflow:hidden}
.cats a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:26px 32px;color:var(--ink);transition:background .2s}
.cats a+a{border-left:1px solid var(--line)}
.cats a:hover{background:var(--cream-d)}
.cats strong{display:block;font:700 24px var(--head);letter-spacing:-.03em}
.cats small{display:block;margin-top:6px;font:400 16px var(--body);color:var(--muted)}

/* stats */
.stats{margin-top:96px;background:var(--forest);padding:72px var(--pad)}
.stats-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{padding:0 32px}
.stat:first-child{padding-left:0}
.stat:last-child{padding-right:0}
.stat+.stat{border-left:1px solid var(--line-d)}
.stat b{display:block;font:800 clamp(44px,5.6vw,80px)/1 var(--head);letter-spacing:-.05em;color:var(--gold)}
.stat span{display:block;margin-top:14px;font:500 18px var(--body);color:var(--cream-d)}

/* what we build */
.intro2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:80px;align-items:end}
.build{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px;margin-top:64px}
.bcard{display:flex;flex-direction:column;gap:24px;color:var(--ink)}
.bcard:hover{color:var(--forest)}
.bcard.big{gap:28px}
.bcard.big .ph{height:640px}
.bcard .ph{height:300px}
.bmeta{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:start}
.bmeta .num{padding-top:6px}
.bmeta h3{font:700 28px var(--head);letter-spacing:-.035em}
.bmeta p{margin-top:8px;font:400 17px/1.6 var(--body);color:var(--text)}
.big .bmeta{gap:24px}
.big .bmeta .num{padding-top:8px}
.big .bmeta h3{font-size:36px}
.big .bmeta p{margin-top:10px;max-width:520px;font-size:18px}
.bcol{display:flex;flex-direction:column;gap:48px}

/* why */
.why{background:var(--cream-d);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.why>.ph{border-radius:0;min-height:560px;background:#D8CFB8}
.why-c{padding:80px var(--pad) 80px 80px;display:flex;flex-direction:column;justify-content:center}
.why-c .h2{font-size:clamp(32px,3.3vw,48px)}
.why-c .lead{margin-top:24px;max-width:500px}
.list{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:baseline;padding:22px 0 0;border-top:1px solid var(--line)}
.li>div{display:contents}
.li p{grid-column:1/-1}
.li:nth-child(n+3){margin-top:28px}
.li .num{padding-top:0;font-size:16px}
.li h3{font:700 21px var(--head);letter-spacing:-.03em}
.li p{margin-top:6px;font:400 16px/1.55 var(--body);color:var(--text)}

/* references */
.refs{background:var(--forest)}
.refs .h2{color:var(--cream)}
.refs .lead{color:var(--pale);max-width:520px}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{height:48px;padding:0 22px;border-radius:999px;border:1.5px solid rgba(243,239,227,.32);background:transparent;color:var(--cream);font:600 16px var(--body);transition:all .2s;flex:none}
.chip:hover{border-color:var(--cream)}
.chip[aria-pressed="true"]{background:var(--cream);border-color:var(--cream);color:var(--forest)}
.rgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 32px;margin-top:64px}
.rcard{grid-column:span var(--span);display:flex;flex-direction:column;gap:22px;color:var(--cream);animation:fade .5s ease both}
.rcard:hover{color:var(--white)}
.rcard .ph{height:var(--h);background:#2A5642}
.rmeta{display:flex;justify-content:space-between;align-items:baseline;gap:24px}
.rmeta h3{font:700 26px var(--head);letter-spacing:-.03em}
.rmeta small{display:block;margin-top:6px;font:500 16px var(--body);color:var(--pale)}
.rmeta span{font:600 16px var(--head);color:var(--pale)}
.refs .more{display:flex;justify-content:center;margin-top:72px}
@keyframes fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin-top:80px}
.step{display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:20px;align-items:center;align-content:start;padding-top:28px;border-top:2px solid var(--forest)}
.step-top,.step-c,.step .t{display:contents}
.step-top b{grid-column:1;grid-row:1;font:800 40px/1 var(--head);letter-spacing:-.04em;color:var(--forest)}
.step .pill{grid-column:2;grid-row:1}
.step h3{grid-column:1/-1;grid-row:2}
.step p{grid-column:1/-1;grid-row:3}
.pill{padding:6px 14px;border-radius:999px;background:var(--sand);font:600 15px var(--body);color:var(--ink);white-space:nowrap}
.step h3{font:700 24px var(--head);letter-spacing:-.03em}
.step p{font:400 17px/1.6 var(--body);color:var(--text)}

/* tour */
.tour{position:relative;height:820px;background:#24402F;color:var(--cream-d)}
.tour>.ph{position:absolute;inset:0;border-radius:0;background:#24402F}
.tour-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,47,35,.82) 0%,rgba(24,47,35,.55) 45%,rgba(24,47,35,0) 75%);pointer-events:none}
.tour-c{position:absolute;left:var(--pad);top:0;bottom:0;width:620px;max-width:calc(100% - 2*var(--pad));display:flex;flex-direction:column;justify-content:center}
.deg{display:flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;border:1.5px solid rgba(243,239,227,.5);font:700 20px var(--head);color:var(--cream)}
.tour h2{margin-top:36px;color:var(--white)}
.tour p{margin-top:24px;max-width:500px;font:400 19px/1.6 var(--body);color:var(--cream-d)}
.tour .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}

/* testimonials */
.quotes{background:var(--sand)}
.quotes .h2{max-width:760px}
.qgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:24px;margin-top:48px}
.q{background:var(--cream);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;gap:20px}
.q.main{background:var(--forest);padding:36px;gap:20px}
.stars{display:flex;gap:3px;color:var(--forest)}
.stars svg{width:18px;height:18px}
.q.main .stars{gap:4px;color:var(--gold)}
.q.main .stars svg{width:22px;height:22px}
.q blockquote{font:400 17px/1.6 var(--body);color:var(--ink)}
.q.main blockquote{font:600 clamp(19px,1.5vw,22px)/1.35 var(--head);letter-spacing:-.025em;color:var(--cream);text-wrap:pretty}
.q figcaption{margin-top:auto}
.q figcaption b{display:block;font:700 17px var(--body)}
.q figcaption span{display:block;margin-top:4px;font:500 15px var(--body);color:var(--muted)}
.q.main figcaption{padding-top:20px;border-top:1px solid var(--line-d)}
.q.main figcaption b{font-size:18px;color:var(--white)}
.q.main figcaption span{font-size:16px;color:var(--pale)}
.qcol{display:contents}

/* blog */
.blog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:48px}
.posts{display:contents}
.feat,.post{display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.feat:hover,.post:hover{color:var(--forest)}
.feat .ph,.post .ph{height:clamp(180px,15vw,220px);border-radius:var(--r)}
.tagrow{display:flex;gap:10px;align-items:center;font:600 15px var(--body);color:var(--muted)}
.tag{padding:4px 11px;border-radius:999px;background:var(--forest);color:var(--cream)}
.post small{display:block;font:600 15px var(--body);color:var(--muted)}
.post small em{font-style:normal}
.feat h3,.post h3{font:700 20px/1.3 var(--head);letter-spacing:-.02em;text-wrap:pretty}

/* faq */
.faq{background:var(--cream-d);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:96px;align-items:start}
.faq-l{display:flex;flex-direction:column;gap:28px}
.faq-l .h2{font-size:clamp(34px,3.6vw,52px)}
.faq-l .ulink{align-self:flex-start}
.call{margin-top:24px;padding:32px;border-radius:var(--r);background:var(--white)}
.call b{display:block;font:700 20px var(--head);letter-spacing:-.02em}
.call p{margin-top:8px;font:400 17px/1.6 var(--body);color:var(--text)}
.call a{display:inline-block;margin-top:16px;font:700 24px var(--head);letter-spacing:-.02em;color:var(--forest)}
.call a:hover{color:var(--ink)}
.acc{border-top:1px solid var(--line)}
.acc-i{border-bottom:1px solid var(--line)}
.acc-b{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 0;background:none;border:0;text-align:left;color:var(--ink)}
.acc-b:hover{color:var(--forest)}
.acc-b>span:first-child{font:700 22px/1.3 var(--head);letter-spacing:-.025em}
.pm{position:relative;flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ring);display:flex;align-items:center;justify-content:center}
.pm::before,.pm::after{content:"";position:absolute;width:16px;height:2px;background:currentColor;transition:transform .25s}
.pm::after{transform:rotate(90deg)}
.acc-b[aria-expanded="true"] .pm::after{transform:rotate(0)}
.acc-p{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.acc-p>div{overflow:hidden}
.acc-p p{padding:0 80px 32px 0;font:400 18px/1.65 var(--body);color:var(--text)}
.acc-b[aria-expanded="true"]+.acc-p{grid-template-rows:1fr}
.m-only{display:none}

/* photo CTA */
.cta{position:relative;height:760px;background:#2C3A2C;color:var(--cream-d)}
.cta>.ph{position:absolute;inset:0;border-radius:0;background:#2C3A2C}
.cta-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(24,47,35,.88) 0%,rgba(24,47,35,.45) 55%,rgba(24,47,35,.15) 100%);pointer-events:none}
.cta-c{position:absolute;left:var(--pad);right:var(--pad);bottom:96px;display:flex;justify-content:space-between;align-items:flex-end;gap:64px}
.cta h2{font:800 clamp(50px,7.8vw,112px)/.95 var(--head);letter-spacing:-.05em;color:var(--white)}
.cta .line{margin-top:28px;font:500 24px var(--body);color:var(--cream-d)}
.cta-act{display:flex;flex-direction:column;align-items:flex-end;gap:20px;flex:none}
.cta-act .btn{height:68px;padding:0 38px;font-size:19px}
.cta-act .btn .arr{width:22px;height:22px}
.cta-act .tel{font:600 22px var(--head);letter-spacing:-.02em;color:var(--white)}
.cta-act .tel:hover{color:var(--gold)}

/* footer */
.ftr{background:var(--night);color:var(--cream-d);padding:100px var(--pad) 40px}
.ftr-g{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:48px}
.ftr .logo b{font-size:28px;color:var(--white)}
.ftr .logo span{font-size:28px;color:var(--cream-d)}
.contact{margin-top:32px;display:flex;flex-direction:column;gap:10px;font:400 17px/1.5 var(--body);color:var(--pale)}
.contact a{color:var(--cream-d)}
.contact a:hover{color:var(--white)}
.contact .big{font:600 22px var(--head);letter-spacing:-.02em;color:var(--white)}
.contact .big:hover{color:var(--gold)}
.fcol h4{margin:0;font:700 15px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--sage)}
.fcol div{margin-top:20px;display:flex;flex-direction:column;gap:12px;font:500 17px var(--body)}
.fcol a{color:var(--cream-d)}
.fcol a:hover{color:var(--white)}
.legal{margin-top:88px;padding-top:28px;border-top:1px solid var(--line-d);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font:400 15px var(--body);color:var(--sage)}
.legal>span:first-child{flex:1 1 0;min-width:280px}
.legal>span:last-child{white-space:nowrap}
.legal a{color:var(--sage)}
.legal a:hover{color:var(--cream-d)}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- laptop ---------- */
@media (max-width:1240px){
  .cats a{padding:28px}
  .why-c{padding:96px var(--pad) 96px 64px}
}
/* ---------- tablet ---------- */
@media (max-width:1080px){
  .hdr-r .btn{display:none}
  .hero-row{grid-template-columns:1fr;gap:32px}
  .hero-act{align-items:flex-start}
  .hero-media .ph{height:clamp(320px,48vh,480px)}
  .cats{margin:-72px 24px 0}
  .cats a{padding:24px}
  .intro2{grid-template-columns:1fr;gap:20px}
  .bcard.big .ph{height:480px}
  .bcard .ph{height:220px}
  .why{grid-template-columns:1fr}
  .why>.ph{min-height:0;height:520px}
  .why-c{padding:var(--sec) var(--pad)}
  .sec-head{flex-direction:column;align-items:flex-start;gap:28px}
  .rcard .ph{height:calc(var(--h) * .72)}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px}
  .tour{height:680px}
  .tour-shade{background:linear-gradient(90deg,rgba(24,47,35,.85) 0%,rgba(24,47,35,.6) 60%,rgba(24,47,35,.2) 100%)}
  .qgrid{grid-template-columns:1fr 1fr}
  .q.main{grid-column:1/-1}
  .blog{grid-template-columns:1fr 1fr;gap:40px 24px}
  .faq{grid-template-columns:1fr;gap:48px}
  .cta-c{flex-direction:column;align-items:flex-start;gap:32px}
  .cta-act{align-items:flex-start}
  .ftr-g{grid-template-columns:1fr 1fr 1fr}
  .ftr-g>div:first-child{grid-column:1/-1}
}
/* ---------- mobile (design 390) ---------- */
@media (max-width:760px){
  .hdr{height:68px}
  .logo b,.logo span{font-size:21px}
  .logo{gap:6px}
  .hero{padding-top:36px}
  .hero h1{font-size:clamp(44px,13.8vw,54px);line-height:1.12}
  .hero-row{margin-top:24px;gap:28px}
  .mark{width:44px;margin-bottom:16px}
  .hero-row p{font-size:18px}
  .hero-act{align-items:stretch}
  .hero-btns{flex-direction:column;gap:10px}
  .hero-btns .btn{height:56px;width:100%}
  .trust{justify-content:center;font-size:15px;gap:8px 10px}
  .hero-media{margin-top:28px}
  .hero-media .ph{height:360px}
  .badge{top:auto;right:auto;left:16px;bottom:16px;width:auto;height:auto;border-radius:var(--r-sm);flex-direction:row;gap:12px;padding:14px 18px;text-align:left}
  .badge b{font-size:30px}
  .badge span{font-size:14px}
  .cats{margin:16px 0 0;grid-template-columns:1fr;box-shadow:none}
  .cats a{padding:20px 22px;gap:12px}
  .cats a+a{border-left:0;border-top:1px solid var(--line)}
  .cats strong{font-size:20px}
  .cats small{margin-top:2px;font-size:15px}
  .cats .circ{width:44px;height:44px}
  .stats{margin-top:56px;padding:40px 20px}
  .stats-g{grid-template-columns:1fr 1fr}
  .stat{padding:0 16px 24px 0}
  .stat+.stat{border-left:0}
  .stat:nth-child(2){padding:0 0 24px 20px;border-left:1px solid var(--line-d)}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line-d)}
  .stat:nth-child(3){padding:24px 16px 0 0}
  .stat:nth-child(4){padding:24px 0 0 20px;border-left:1px solid var(--line-d)}
  .stat span{margin-top:8px;font-size:16px}
  .lead{font-size:17px}
  .what{padding-left:0;padding-right:0}
  .what .intro2{padding:0 20px;gap:16px}
  .build{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 20px;padding:0 20px;margin-top:32px;scrollbar-width:none}
  .build::-webkit-scrollbar,.chips::-webkit-scrollbar,.qgrid::-webkit-scrollbar{display:none}
  .bcol{display:contents}
  .bcard,.bcard.big{flex:none;width:min(304px,80vw);scroll-snap-align:start;gap:18px}
  .bcard .ph,.bcard.big .ph{height:380px}
  .bmeta,.big .bmeta{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center}
  .bmeta .num{grid-column:1;padding:0;font-size:15px}
  .bmeta>div{display:contents}
  .bmeta h3,.big .bmeta h3{grid-column:1;grid-row:2;font-size:26px}
  .bmeta .circ{grid-column:2;grid-row:1/3;width:48px;height:48px;border:0;background:var(--forest);color:var(--cream)}
  .bmeta p,.big .bmeta p{grid-column:1/-1;margin-top:2px;font-size:16px;line-height:1.55}
  .why>.ph{height:420px}
  .why-c{padding:48px 20px 72px}
  .why-c .h2{font-size:34px}
  .why-c .lead{margin-top:16px}
  .list{margin-top:32px;grid-template-columns:1fr;border-bottom:1px solid var(--line)}
  .li:nth-child(n+3){margin-top:0}
  .li{padding:22px 0}
  .li{grid-template-columns:auto minmax(0,1fr);gap:0 12px;padding:22px 0}
  .li .num{font-size:15px}
  .li h3{font-size:20px}
  .li p{margin-top:6px;font-size:16px;line-height:1.55}
  .refs{padding:72px 0}
  .refs .sec-head{padding:0 20px;gap:0}
  .refs .lead{margin-top:14px}
  .chips{flex-wrap:nowrap;overflow-x:auto;gap:8px;margin:24px -20px 0;padding:0 20px;width:calc(100% + 40px)}
  .chip{height:44px;padding:0 18px;font-size:15px}
  .rgrid{display:flex;flex-direction:column;gap:32px;margin-top:28px;padding:0 20px}
  .rcard{gap:16px}
  .rcard .ph{height:var(--mh)}
  .rmeta h3{font-size:21px}
  .rmeta small{margin-top:4px;font-size:15px}
  .rmeta span{font-size:14px}
  .refs .more{margin-top:40px;padding:0 20px}
  .refs .more .btn{width:100%;height:56px}
  .process .sec-head{gap:0}
  .process .sec-head .lead{margin-top:14px}
  .process .sec-head .ulink{display:none}
  .steps{position:relative;display:flex;flex-direction:column;gap:32px;margin-top:36px}
  .steps::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:var(--forest)}
  .step{position:relative;grid-template-columns:44px minmax(0,1fr);gap:0 18px;align-items:start;padding:0;border:0}
  .step-top b{grid-column:1;grid-row:1;width:44px;height:44px;border-radius:50%;background:var(--forest);color:var(--cream);display:flex;align-items:center;justify-content:center;font:700 15px var(--head);letter-spacing:0}
  .step-c{display:flex;flex-direction:column;gap:6px;grid-column:2;grid-row:1}
  .step .pill,.step h3,.step p{grid-column:auto;grid-row:auto}
  .step-c .t{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px}
  .step h3{font-size:20px}
  .step p{font-size:16px;line-height:1.55}
  .pill{padding:5px 12px;font-size:14px}
  .process .m-only{display:inline-flex;margin-top:36px}
  .tour{height:auto;background:var(--night)}
  .tour>.ph{position:relative;height:440px}
  .tour>.ph img{object-position:78% center}
  .tour-shade{display:none}
  .deg{position:absolute;left:20px;top:20px;width:68px;height:68px;border:0;background:var(--forest);font-size:16px}
  .tour-c{position:static;width:auto;max-width:none;padding:40px 20px 64px}
  .tour h2{margin-top:0;font-size:34px}
  .tour p{margin-top:16px;font-size:17px}
  .tour .btns{flex-direction:column;gap:10px;margin-top:28px}
  .tour .btns .btn{height:56px}
  .quotes{padding:72px 0}
  .quotes .h2{padding:0 20px;font-size:34px}
  .qgrid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 20px;padding:0 20px;margin-top:32px;scrollbar-width:none}
  .qcol{display:contents}
  .q,.q.main{flex:none;width:min(310px,82vw);scroll-snap-align:start;padding:28px;gap:20px}
  .q.main .stars{gap:3px}
  .q.main .stars svg{width:18px;height:18px}
  .q.main blockquote{font-size:19px;line-height:1.4}
  .q blockquote{font-size:17px;line-height:1.55}
  .q.main figcaption{padding-top:18px}
  .q figcaption b,.q.main figcaption b{font-size:16px}
  .q figcaption span,.q.main figcaption span{margin-top:2px;font-size:14px}
  .posts-sec .sec-head .ulink{display:none}
  .blog{grid-template-columns:1fr;margin-top:28px;gap:28px}
  .posts{display:block}
  .feat h3{font-size:23px;line-height:1.22;letter-spacing:-.03em}
  .feat{gap:16px}
  .feat .ph{height:240px}
  .tagrow{font-size:14px;gap:10px}
  .tag{padding:4px 11px}
  .posts{border-top:1px solid var(--line)}
  .post,.post:first-child,.post:last-child{grid-template-columns:96px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
  .post .ph{height:84px;border-radius:var(--r-sm)}
  .post{display:grid;align-items:center}
  .post>div:last-child{display:block}
  .post small{font-size:14px}
  .post small em{display:none}
  .post h3{margin-top:4px;font-size:17px}
  .posts-sec .m-only{display:inline-flex;margin-top:28px}
  .faq{padding:72px 20px;gap:28px}
  .faq-l .h2{font-size:34px}
  .faq-l .ulink,.call{display:none}
  .acc-b{padding:20px 0;gap:16px}
  .acc-b>span:first-child{font-size:18px;letter-spacing:-.02em}
  .pm::before,.pm::after{width:14px}
  .acc-p p{padding:0 0 24px;font-size:16px;line-height:1.6}
  .faq .m-only{display:inline-flex;justify-self:start}
  .cta{height:620px}
  .cta-shade{background:linear-gradient(0deg,rgba(24,47,35,.92) 0%,rgba(24,47,35,.5) 60%,rgba(24,47,35,.1) 100%)}
  .cta-c{left:20px;right:20px;bottom:40px;gap:28px}
  .cta h2{font-size:clamp(44px,14.4vw,56px);line-height:.96}
  .cta .line{margin-top:16px;font-size:19px}
  .cta-act{align-self:stretch;align-items:stretch;gap:14px}
  .cta-act .btn{height:58px;font-size:17px}
  .cta-act .tel{text-align:center;font-size:18px}
  .ftr{padding:56px 20px 40px}
  .ftr .logo b,.ftr .logo span{font-size:24px}
  .ftr-g{grid-template-columns:1fr 1fr;gap:32px 20px}
  .contact{margin-top:24px;gap:8px;font-size:16px}
  .contact .big{font-size:20px}
  .fcol h4{font-size:13px}
  .fcol div{margin-top:14px;gap:10px;font-size:16px}
  .legal{margin-top:40px;padding-top:20px;flex-direction:column;gap:6px;font-size:14px}
  .legal>span:first-child{flex:none;min-width:0}
  .legal>span:last-child{white-space:normal}
}
/* ---------- header breakpoints ---------- */
@media (max-width:1200px){
  .nav{display:none}
  .burger{display:flex}
  .hdr{position:sticky;top:0}
}
@media (max-width:760px){
  .topbar .tb-hide{display:none}
  .tb-in{min-height:34px;font-size:13px}
}
/* cookie bar */
.ck{position:fixed;left:50%;bottom:16px;z-index:60;width:max-content;max-width:calc(100% - 32px);border-radius:28px;background:var(--night);color:var(--cream-d);border:1px solid rgba(243,239,227,.16);box-shadow:0 18px 40px -18px rgba(0,0,0,.55);font:500 14px/1.45 var(--body);transform:translate(-50%,calc(100% + 32px));opacity:0;transition:transform .5s cubic-bezier(.23,1,.32,1),opacity .35s}
.ck.on{transform:translate(-50%,0);opacity:1}
.ck-row{display:flex;align-items:center;gap:20px;padding:10px 10px 10px 24px}
.ck p{margin:0}
.ck-b{display:flex;align-items:center;gap:8px;flex:none}
.ck button{font:700 14px var(--body);cursor:pointer}
.ck .ck-btn{height:38px;padding:0 18px;border-radius:999px;transition:background .2s,color .2s,border-color .2s}
.ck .ck-no{border:1.5px solid rgba(243,239,227,.35);background:transparent;color:var(--cream-d)}
.ck .ck-no:hover{border-color:var(--cream);color:var(--white)}
.ck .ck-yes{border:0;background:var(--gold);color:var(--ink)}
.ck .ck-yes:hover{background:var(--gold-h)}
.ck .ck-set{margin-right:6px;padding:0;border:0;background:none;color:var(--cream-d);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(243,239,227,.5)}
.ck .ck-set:hover{color:var(--white);text-decoration-color:var(--white)}
.ck-panel{display:none;width:min(520px,calc(100vw - 32px));padding:22px 22px 18px}
.ck.open .ck-row{display:none}
.ck.open .ck-panel{display:block}
.ck.open{border-radius:22px}
.ck-panel h2{margin:0 0 4px;font:700 18px var(--head);letter-spacing:-.02em;color:var(--white)}
.ck-panel>p{color:var(--pale)}
.ck-opt{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line-d)}
.ck-opt:first-of-type{margin-top:12px}
.ck-opt b{display:block;color:var(--white);font-weight:700}
.ck-opt small{display:block;margin-top:2px;color:var(--pale);font-size:13px}
.ck-sw{position:relative;flex:none;width:44px;height:26px}
.ck-sw input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.ck-sw span{position:absolute;inset:0;border-radius:999px;background:rgba(243,239,227,.22);transition:background .2s;pointer-events:none}
.ck-sw span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--white);transition:transform .25s cubic-bezier(.23,1,.32,1)}
.ck-sw input:checked+span{background:var(--gold)}
.ck-sw input:checked+span::after{transform:translateX(18px)}
.ck-sw input:disabled{cursor:not-allowed}
.ck-sw input:disabled+span{opacity:.6}
.ck-sw input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.ck-pb{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media (max-width:640px){
  .ck{width:calc(100% - 24px);max-width:none;bottom:12px;border-radius:20px}
  .ck-row{flex-direction:column;align-items:stretch;gap:12px;padding:16px;text-align:center}
  .ck-b{flex-wrap:wrap;justify-content:center}
  .ck-b .ck-btn{flex:1}
  .ck .ck-set{order:3;flex-basis:100%;margin:4px 0 0}
  .ck-panel{width:auto;padding:18px 16px 16px}
  .ck-pb .ck-btn{flex:1}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* skip link */
.skip{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden;white-space:nowrap}
.skip:focus-visible{position:fixed;left:16px;top:16px;z-index:100;width:auto;height:auto;overflow:visible;padding:10px 18px;border-radius:99px;background:var(--night);color:var(--cream);font:600 15px/1.2 var(--body);outline:3px solid var(--gold);outline-offset:2px}
main:focus{outline:none}

/* consent link inside form checkbox labels */
.check a{text-decoration:underline;text-underline-offset:2px}
