:root{--green:#0f3534;--green2:#1b4f4c;--gold:#c2a15f;--gold2:#e3cf9f;--ink:#152120;--muted:#5d6968;--bg:#f8f5ee;--line:#e6dfd0;--card:#fff;--r:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Heebo",Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased}
h1,h2,h3{line-height:1.12;margin:0 0 .5em;letter-spacing:-.02em}
a{color:var(--green2)}img{max-width:100%;height:auto;display:block}
.skip{position:absolute;right:-999px;top:0;background:var(--gold);color:#000;padding:8px 14px;z-index:99}.skip:focus{right:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{max-width:1240px;margin:auto;padding:0 22px}
header{position:sticky;top:0;z-index:50;background:rgba(248,245,238,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:.3s}
header.sc{border-color:var(--line);box-shadow:0 6px 24px rgba(15,53,52,.06)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--green)}
.brand img{height:46px;width:auto;border-radius:8px}
.brand b{display:block;font-size:1.05rem;font-weight:700}.brand small{display:block;color:var(--gold);font-size:.72rem;letter-spacing:.18em;font-weight:500}
nav ul{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0}
nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:.97rem}nav a:hover{color:var(--gold)}
.cta{background:var(--green);color:#fff!important;padding:10px 20px;border-radius:99px}.cta:hover{background:var(--green2)}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:12px;width:44px;height:44px;font-size:1.3rem;color:var(--green);cursor:pointer}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--gold);font-weight:600;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.eyebrow:before{content:"";width:28px;height:1px;background:var(--gold)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;border-radius:99px;font-weight:600;text-decoration:none;font-size:1rem;transition:.25s;border:1.5px solid transparent;font-family:inherit;cursor:pointer}
.btn.p{background:var(--green);color:#fff}.btn.p:hover{background:var(--green2);transform:translateY(-2px)}
.btn.g{background:var(--gold);color:#13201f}.btn.g:hover{background:var(--gold2);transform:translateY(-2px)}
.btn.o{border-color:var(--green);color:var(--green)}.btn.o:hover{background:var(--green);color:#fff}
.btns{display:flex;flex-wrap:wrap;gap:12px}
/* hero */
.hero{padding:70px 0 90px}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.hero h1{font-size:clamp(2.6rem,5.6vw,5rem);font-weight:800;color:var(--green)}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero .lead{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--muted);max-width:560px;margin:0 0 34px;font-weight:300}
.hero figure{margin:0 auto;position:relative;max-width:440px;width:100%}
.hero figure img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:200px 200px var(--r) var(--r)}
.hero figure:before{content:"";position:absolute;inset:24px -24px -24px 24px;border:1.5px solid var(--gold);border-radius:200px 200px var(--r) var(--r);z-index:-1}
.badge{position:absolute;bottom:28px;right:-28px;background:#fff;border-radius:18px;padding:14px 20px;box-shadow:0 18px 40px rgba(15,53,52,.14);font-size:.9rem;line-height:1.4}
.badge b{display:block;color:var(--green);font-size:1rem}
.facts{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:40px;padding-top:26px;border-top:1px solid var(--line);color:var(--muted);font-size:.95rem}
.facts span:before{content:"✓ ";color:var(--gold);font-weight:700}
/* sections */
section{padding:110px 0}
.head{max-width:720px;margin-bottom:56px}
.head h2,h2.big{font-size:clamp(2rem,4vw,3.3rem);font-weight:800;color:var(--green)}
.head p{color:var(--muted);font-size:1.15rem;margin:0}
.about .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}
.about img{border-radius:var(--r);aspect-ratio:1/1.05;object-fit:cover;width:100%}
.about p{font-size:1.1rem;color:#33403f}
.quote{margin:34px 0 0;padding:26px 30px;background:var(--green);color:#f2ead7;border-radius:var(--r);font-size:1.15rem;font-weight:300}
.quote cite{display:block;color:var(--gold2);font-style:normal;font-size:.9rem;margin-top:10px;font-weight:500}
.tabs{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:99px;padding:5px;margin-bottom:34px}
.tabs button{border:0;background:none;padding:11px 24px;border-radius:99px;font:600 1rem "Heebo",sans-serif;color:var(--muted);cursor:pointer}
.tabs button[aria-selected=true]{background:var(--green);color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:32px 28px;transition:.3s}
.card:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(15,53,52,.09);border-color:var(--gold2)}
.card .n{color:var(--gold);font-weight:700;font-size:.85rem;letter-spacing:.1em}
.card h3{font-size:1.3rem;color:var(--green);margin:14px 0 10px;font-weight:700}
.card p{margin:0;color:var(--muted);font-size:.99rem}
[role=tabpanel][hidden]{display:none}
.dark{background:var(--green);color:#e9e3d3}
.dark .head h2,.dark h3{color:#fff}.dark .head p{color:#b9c8c4}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;counter-reset:s}
.step{border-top:1px solid rgba(227,207,159,.35);padding-top:26px}
.step:before{counter-increment:s;content:"0" counter(s);display:block;color:var(--gold);font-size:2.6rem;font-weight:800;line-height:1;margin-bottom:18px}
.step h3{font-size:1.35rem}.step p{margin:0;color:#c3d0cc}
.tgrid{columns:3 300px;column-gap:18px}
@media(max-width:600px){.tcard blockquote{font-size:.95rem}.card{padding:24px 22px}}
.tcard{break-inside:avoid;margin:0 0 18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px}
.tcard blockquote{margin:0 0 16px;color:#33403f;font-size:1rem}
.tcard figcaption{font-weight:700;color:var(--green);display:flex;align-items:center;gap:10px}
.tcard figcaption:before{content:"";width:22px;height:2px;background:var(--gold)}
.stars{color:var(--gold);letter-spacing:3px;margin-bottom:10px;font-size:.9rem}
.band{background:linear-gradient(120deg,var(--green),#174a48);color:#fff;border-radius:32px;padding:64px 56px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.band h2{font-size:clamp(1.8rem,3.4vw,2.8rem);margin:0 0 8px;font-weight:800}.band p{margin:0;color:#c8d5d1}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.info{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:12px}
.info li{display:flex;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 20px}
.info b{color:var(--muted);font-weight:500}.info a,.info span{color:var(--green);font-weight:600;text-decoration:none;text-align:left}
.map{width:100%;height:260px;border:0;border-radius:var(--r)}
form{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px}
label{display:block;font-weight:600;margin:14px 0 6px;font-size:.95rem}
input,textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;font:inherit;background:var(--bg)}
input:focus,textarea:focus{border-color:var(--gold);outline:none;background:#fff}
textarea{min-height:120px}.note{font-size:.85rem;color:var(--muted)}
footer{background:#0b2928;color:#a9bab6;padding:46px 0;font-size:.92rem}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
footer a{color:var(--gold2)}
.wa{position:fixed;left:20px;bottom:20px;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 26px rgba(0,0,0,.2);z-index:60}
.wa svg{width:30px;height:30px}
.page{max-width:860px;margin:auto;padding:70px 22px 100px}
.page h1{font-size:clamp(2.2rem,4.5vw,3.4rem);color:var(--green);font-weight:800}
.page h2{font-size:1.45rem;color:var(--green);margin-top:1.8em}
.page article{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(26px,5vw,56px)}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}
@media (max-width:900px){
 .burger{display:block}
 nav ul{display:none;position:absolute;top:74px;right:0;left:0;background:var(--bg);flex-direction:column;align-items:stretch;gap:0;padding:10px 22px 22px;border-bottom:1px solid var(--line)}
 nav ul.open{display:flex}nav li a{display:block;padding:12px 0}.cta{text-align:center;margin-top:8px}
 .hero .wrap,.about .wrap,.contact{grid-template-columns:1fr;gap:44px}
 .hero figure{order:-1;max-width:300px;margin:0 auto}.hero figure img{aspect-ratio:auto;height:340px;object-position:center 20%}.badge{display:none}.hero figure:before{inset:14px -14px -14px 14px}.badge{right:-10px}
 section{padding:72px 0}.steps{grid-template-columns:1fr;gap:28px}.band{padding:40px 28px}
 .tabs{display:flex}.tabs button{flex:1;padding:11px 10px}
}
.hero{position:relative;isolation:isolate;background:linear-gradient(rgba(248,243,232,.70),rgba(248,243,232,.80)),url(../assets/img/office-lobby.jpg) center/cover no-repeat;border-bottom:3px solid var(--gold)}
header{background:rgba(248,245,238,.9)}
.dark{border-top:3px solid var(--gold);border-bottom:3px solid var(--gold)}
#testimonials{background:var(--green)}#testimonials .head h2{color:#fff}
#testimonials .tcard{border-color:rgba(227,207,159,.4)}
.card{border-top:3px solid var(--gold2)}.card:hover{border-top-color:var(--gold)}
.head h2:after{content:"";display:block;width:64px;height:3px;background:var(--gold);margin-top:18px;border-radius:3px}
.hero{background-position:left center,left center}
#services{background:var(--green);border-top:3px solid var(--gold)}#services .head h2{color:#fff}#services .head p{color:#b9c8c4}
#services .tabs{background:rgba(255,255,255,.08);border-color:rgba(227,207,159,.4)}#services .tabs button{color:#e3cf9f}#services .tabs button[aria-selected=true]{background:var(--gold);color:#13201f}
#how.dark{background:var(--bg);color:var(--ink);border:0}#how .head h2,#how h3{color:var(--green)}#how .head p{color:var(--muted)}#how .step{border-color:var(--gold)}#how .step p{color:var(--muted)}
#testimonials{border-top:3px solid var(--gold);border-bottom:3px solid var(--gold)}
/* alive layer */
body{background:radial-gradient(1200px 600px at 85% -10%,#fff8e6 0,transparent 60%),linear-gradient(180deg,#faf5e9,#f3eadb 50%,#f8f1e2);background-attachment:fixed}
body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero{background:radial-gradient(700px 420px at 75% 30%,rgba(255,246,222,.75),transparent 70%),radial-gradient(500px 400px at 15% 80%,rgba(194,161,95,.22),transparent 70%),linear-gradient(135deg,rgba(250,243,228,.72),rgba(238,224,196,.8)),url(../assets/img/office-lobby.jpg) left center/cover no-repeat}
.hero h1 em,.dark .step:before,.band h2 em{background:linear-gradient(100deg,#a8843f,#e9d39b 45%,#b8924b 70%,#d9bd7c);-webkit-background-clip:text;background-clip:text;color:transparent}
#about,#contact{background:radial-gradient(800px 400px at 10% 0,rgba(227,207,159,.28),transparent 70%),linear-gradient(160deg,#fffdf8,#f6eedd)!important}
#services,#testimonials{position:relative;background:radial-gradient(900px 500px at 85% 0,rgba(64,140,120,.35),transparent 65%),radial-gradient(700px 500px at 5% 100%,rgba(194,161,95,.16),transparent 70%),linear-gradient(155deg,#134a45,#0f3534 45%,#081f1e)!important}
#services .card,#testimonials .tcard{background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.04));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(227,207,159,.28);box-shadow:0 20px 50px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.12)}
#services .card h3,#testimonials figcaption{color:#fff}#services .card p,#testimonials blockquote{color:#d6e1dd}
#services .card:hover{border-color:var(--gold);box-shadow:0 26px 60px rgba(0,0,0,.35),0 0 0 1px rgba(227,207,159,.4)}
#how.dark{background:linear-gradient(120deg,rgba(250,243,228,.92),rgba(240,226,198,.85)),url(../assets/img/desk-detail.jpg) center/cover!important}
#how .step{background:rgba(255,255,255,.55);backdrop-filter:blur(8px);border-radius:var(--r);padding:28px;border:1px solid rgba(194,161,95,.35);box-shadow:0 14px 34px rgba(15,53,52,.08)}
.band{background:linear-gradient(120deg,rgba(8,31,30,.93),rgba(19,74,69,.82)),url(../assets/img/office-desk.jpg) center/cover;box-shadow:0 30px 70px rgba(15,53,52,.3);position:relative;overflow:hidden;border:1px solid rgba(227,207,159,.35)}
.band:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(233,211,155,.18) 50%,transparent 60%);pointer-events:none}
.card,.tcard,form,.info li{box-shadow:0 10px 30px rgba(15,53,52,.06)}
.btn.g{background:linear-gradient(135deg,#d9bd7c,#b8924b);box-shadow:0 10px 24px rgba(184,146,75,.35)}
.btn.p{background:linear-gradient(135deg,#1b5550,#0f3534);box-shadow:0 10px 24px rgba(15,53,52,.3)}
footer{background:linear-gradient(180deg,#0f3534,#061a19);border-top:1px solid rgba(227,207,159,.35)}
.hero figure img,.about img{box-shadow:0 30px 60px rgba(15,53,52,.25)}
@media(max-width:900px){#how.dark{background-attachment:scroll!important}}
.hero figure img{object-position:center 18%}
.about img{object-position:center 20%}
#how.dark{background:linear-gradient(120deg,rgba(250,243,228,.9),rgba(240,226,198,.82)),url(../assets/img/insta-12.jpg) center/cover!important}
.band{background:linear-gradient(120deg,rgba(8,31,30,.94),rgba(19,74,69,.8)),url(../assets/img/insta-11.jpg) center 30%/cover}
.gallery{padding:0 0 110px;background:transparent}
.strip{display:grid;grid-template-columns:1fr 1.2fr 1.4fr 1.2fr 1fr;gap:14px;padding:0 22px;max-width:1500px;margin:auto;align-items:center}
.strip figure{margin:0;border-radius:var(--r);overflow:hidden;box-shadow:0 24px 50px rgba(15,53,52,.18)}
.strip img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 25%;transition:transform 1.2s}
.strip figure:nth-child(odd) img{aspect-ratio:3/4.6}.strip figure:hover img{transform:scale(1.05)}
@media(max-width:900px){.strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.strip figure{flex:0 0 68%;scroll-snap-align:center}.gallery{padding-bottom:72px}.hero figure img{object-position:center 22%}}

.hero h1.classic-quote{font-family:"Frank Ruhl Libre",serif;font-weight:400;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.55;color:var(--green);letter-spacing:.01em;max-width:22em}
.hero .quote-src{font-family:"Frank Ruhl Libre",serif;font-size:.95rem;color:#a8843f;letter-spacing:.08em;margin:.6em 0 1.4em;display:flex;align-items:center;gap:.7em}
.hero .quote-src:before{content:"";width:38px;height:1px;background:#b8924b}
/* ===== TYPE SYSTEM (single source of truth) ===== */
:root{
 --ff-serif:"Frank Ruhl Libre",Georgia,serif; --ff-sans:"Heebo",Arial,sans-serif;
 --fs-display:clamp(1.75rem,3vw,2.5rem); --lh-display:1.4; --fw-display:400;
 --fs-h3:1.25rem; --lh-h3:1.4; --fw-h3:600;
 --fs-lead:1.125rem; --lh-lead:1.75;
 --fs-body:1rem; --lh-body:1.75;
 --fs-small:.875rem;
 --fs-eyebrow:.8125rem; --ls-eyebrow:.18em;
 --fs-btn:1rem;
 --sp-section:clamp(72px,9vw,112px); --sp-head:clamp(36px,4vw,56px);
 --on-light:var(--green); --on-dark:#f4ecd8;
}
body{font-family:var(--ff-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:400}
/* display: hero h1, all section h2, page h1 */
.hero h1,.hero h1.classic-quote,.head h2,h2.big,.band h2,.page h1{font-family:var(--ff-serif)!important;font-size:var(--fs-display)!important;line-height:var(--lh-display)!important;font-weight:var(--fw-display)!important;letter-spacing:0!important;color:var(--on-light);margin:0 0 .6em}
.dark .head h2,#services .head h2,#testimonials .head h2,.band h2{color:var(--on-dark)!important}
#how .head h2{color:var(--on-light)!important}
.hero h1 em,.band h2 em{color:var(--gold);background:none;-webkit-text-fill-color:currentColor;font-style:normal}
.head h2:after,.page h1:after{content:"";display:block;width:48px;height:1px;background:var(--gold);margin-top:.6em}
.band h2:after{display:none}
/* subheadings */
h3,.card h3,.step h3,.dept,.page h2{font-family:var(--ff-sans)!important;font-size:var(--fs-h3)!important;line-height:var(--lh-h3)!important;font-weight:var(--fw-h3)!important;letter-spacing:0!important;margin:0 0 .5em}
.page h2{color:var(--green);margin-top:2em}
.card h3{margin-top:14px}
/* eyebrow */
.eyebrow,.card .n,.quote-src,.hero .quote-src{font-family:var(--ff-sans)!important;font-size:var(--fs-eyebrow)!important;letter-spacing:var(--ls-eyebrow)!important;font-weight:500!important;color:var(--gold)!important;text-transform:uppercase}
.hero .quote-src{margin:0 0 2em}
.step:before{font-family:var(--ff-serif);font-weight:400;font-size:2rem;background:none!important;-webkit-text-fill-color:var(--gold);color:var(--gold)}
/* body + lead */
p,li,.card p,.step p,.tcard blockquote,.about p,.info li,label,input,textarea{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:400}
.hero .lead,.head p,.band p{font-size:var(--fs-lead)!important;line-height:var(--lh-lead);font-weight:400!important;margin:0}
.hero .lead{margin-bottom:2em}
.quote{font-family:var(--ff-serif);font-size:var(--fs-lead);line-height:var(--lh-lead);font-weight:400}
.quote cite,.note,.facts,.badge,footer{font-size:var(--fs-small)!important}
.brand b{font-family:var(--ff-serif);font-weight:500;font-size:1.15rem}
.tcard figcaption{font-size:var(--fs-body);font-weight:600}
/* buttons: one family */
.btn,.cta,.tabs button{font-family:var(--ff-sans);font-size:var(--fs-btn)!important;font-weight:500!important;letter-spacing:.01em;border-radius:99px}
.btn{padding:14px 28px}.cta{padding:10px 22px}
.btn.o.on-dark{border-color:rgba(244,236,216,.8);color:var(--on-dark)}.btn.o.on-dark:hover{background:var(--on-dark);color:var(--green)}
nav a{font-size:.9375rem;font-weight:500}
/* rhythm */
section{padding:var(--sp-section) 0}
.head{margin-bottom:var(--sp-head)}
.gallery{padding:var(--sp-section) 0}
.cta-sec{padding-top:0}
#about,#contact{background:radial-gradient(800px 400px at 10% 0,rgba(227,207,159,.28),transparent 70%),linear-gradient(160deg,#fffdf8,#f6eedd)}
.page{padding:var(--sp-section) 22px}
@media(max-width:900px){.hero{padding:30px 0 var(--sp-section)}}
body{background-attachment:scroll}
.hero{background:radial-gradient(520px 300px at 88% 18%,rgba(250,244,230,.97),rgba(250,244,230,.6) 60%,transparent 80%),radial-gradient(500px 400px at 15% 80%,rgba(194,161,95,.2),transparent 70%),linear-gradient(135deg,rgba(250,243,228,.74),rgba(238,224,196,.82)),url(../assets/img/office-lobby.jpg) left center/cover no-repeat}
.gallery{background:linear-gradient(180deg,#f6eedd,#efe3c9)}
