/* GLB Partners — site styles */
@font-face{font-family:"Fraunces";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/fraunces.9b7629b1.woff2)) format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/fonts/archivo.258a93fe.woff2)) format("woff2")}


:root{
  --slate:#2F472F; --slate-2:#413427; --slate-3:#514232;
  --concrete:#F4EEE2; --paper:#FFFDF7; --line:#E1D7C2; --line-dark:rgba(255,245,228,.17);
  --ochre:#5A8353; --ochre-ink:#8A6417; --survey:#8DB47F;
  --ink:#32291C; --muted:#6F6250; --on-dark:#FFF9EE; --on-dark-muted:#CFC0A7;
  --font:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wide:100%; --narrow:100%;
  --s-1:.875rem; --s0:1.0625rem; --s1:1.3125rem; --s2:1.6875rem; --s3:2.25rem; --s4:clamp(2.25rem,4.6vw,3.5rem); --s5:clamp(2.6rem,6.4vw,5rem);
  --wrap:1240px; --gut:clamp(1.25rem,4vw,2.5rem);
  --r:12px; --r-lg:18px;
  --header-h:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}
body{margin:0;font-family:var(--font);font-size:var(--s0);line-height:1.6;color:var(--ink);background:var(--concrete);font-stretch:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.08;font-weight:600;font-stretch:var(--wide);letter-spacing:-.01em}
h1,h2{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:500;font-stretch:100%;letter-spacing:0;line-height:1.08;font-variation-settings:"SOFT" 70,"WONK" 0,"opsz" 60}
h1{font-size:var(--s5)}
h2{font-size:var(--s4)}
h3{font-size:var(--s1);line-height:1.2;font-stretch:100%;font-weight:600;letter-spacing:0}
h4{font-size:var(--s0);font-stretch:100%;font-weight:600}
ul,ol{margin:0;padding:0}
[hidden]{display:none!important}
[tabindex="-1"]:focus{outline:none}
:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--ochre);color:var(--slate);padding:.75rem 1rem;z-index:100;font-weight:600}
.skip:focus{left:1rem;top:1rem}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.measure{max-width:64ch}
.lead{font-size:var(--s1);line-height:1.5;color:var(--muted)}
.dark .lead,.dark .muted{color:var(--on-dark-muted)}
.muted{color:var(--muted)}
.cond{font-stretch:var(--narrow)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;min-height:48px;padding:.7em 1.45em;border-radius:999px;border:2px solid var(--ochre);background:var(--ochre);color:var(--slate);font-weight:600;font-stretch:100%;text-decoration:none;line-height:1.1;cursor:pointer;font-size:1rem;font-family:inherit;transition:background .15s,border-color .15s,color .15s}
.btn:hover{background:#1D2B1E;border-color:#1D2B1E}
.btn-line{background:transparent;color:inherit;border-color:currentColor}
.btn-line:hover{background:rgba(201,150,46,.12);border-color:var(--ochre)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.textlink{font-weight:600;text-decoration:underline;text-decoration-color:var(--ochre);text-decoration-thickness:2px;text-underline-offset:.25em}
.textlink:hover{color:var(--ochre-ink)}
.dark .textlink:hover{color:var(--ochre)}

/* Header */
.site-head{position:sticky;top:0;z-index:50;background:var(--slate);color:var(--on-dark);border-bottom:1px solid var(--line-dark)}
.site-head .wrap{display:flex;align-items:center;gap:1.5rem;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--on-dark);flex:none}
.brand svg{height:40px;width:auto;display:block}
.brand-name{font-weight:600;font-stretch:var(--wide);font-size:1.12rem;line-height:1;letter-spacing:-.005em}
.brand-name small{display:block;font-weight:500;font-stretch:100%;font-size:.72rem;color:var(--on-dark-muted);letter-spacing:0;margin-top:.3em}
.nav{margin-left:auto;display:flex;align-items:center;gap:.25rem}
.nav>ul{display:flex;list-style:none;gap:.1rem;align-items:center}
.nav a,.nav button.navbtn{display:flex;align-items:center;gap:.35em;padding:.55rem .75rem;border-radius:var(--r);color:var(--on-dark);text-decoration:none;font:inherit;font-size:.97rem;font-weight:500;background:none;border:0;cursor:pointer}
.nav a:hover,.nav button.navbtn:hover,.nav a[aria-current="page"]{background:var(--slate-2)}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--ochre)}
.navbtn svg{transition:transform .15s}
.has-sub{position:relative}
.sub{position:absolute;left:0;top:calc(100% + 6px);min-width:250px;background:var(--paper);color:var(--ink);border-radius:var(--r);box-shadow:0 18px 40px rgba(22,34,23,.22);padding:.5rem;list-style:none;display:none}
.sub a{color:var(--ink);padding:.6rem .8rem;display:flex;justify-content:space-between;gap:1rem}
.sub a:hover,.sub a[aria-current="page"]{background:var(--concrete);box-shadow:none}
.sub .pc{font-stretch:var(--narrow);color:var(--muted);font-weight:600}
.has-sub.open>.sub{display:block}
.has-sub.open>.navbtn svg{transform:rotate(180deg)}
.head-cta{display:flex;gap:.5rem;margin-left:.75rem}
.nav .head-cta a.btn{min-height:42px;padding:.55em 1.05em;font-size:.95rem;background:var(--ochre);color:var(--slate);border:2px solid var(--ochre);font-weight:600;box-shadow:none}
.nav .head-cta a.btn:hover{background:#1D2B1E;border-color:#1D2B1E}
.nav .head-cta a.btn-line{background:transparent;color:var(--on-dark);border-color:rgba(255,255,255,.45)}
.nav .head-cta a.btn-line:hover{background:var(--slate-2);border-color:var(--ochre)}
.head-cta .btn-line{color:var(--on-dark)}
.menu-btn{display:none;margin-left:auto;background:none;border:2px solid var(--line-dark);color:var(--on-dark);border-radius:var(--r);height:44px;padding:0 .9rem;font:inherit;font-weight:600;cursor:pointer;align-items:center;gap:.5rem}
@media (min-width:961px) and (max-width:1120px){
  .nav .head-cta a.btn-line{display:none}
}
@media (max-width:960px){
  .menu-btn{display:inline-flex}
  .nav{position:fixed;inset:var(--header-h) 0 0 0;background:var(--slate);flex-direction:column;align-items:stretch;padding:1rem var(--gut) 6rem;overflow:auto;display:none;margin:0}
  .nav.open{display:flex}
  .nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .nav>ul>li{border-bottom:1px solid var(--line-dark)}
  .nav a,.nav button.navbtn{padding:1rem .25rem;font-size:1.15rem;width:100%;justify-content:space-between}
  .sub{position:static;box-shadow:none;background:transparent;padding:0 0 .75rem 0;min-width:0}
  .sub a{color:var(--on-dark);padding:.6rem .25rem .6rem 1rem;font-size:1rem}
  .sub a:hover,.sub a[aria-current="page"]{background:var(--slate-2)}
  .sub .pc{color:var(--on-dark-muted)}
  .head-cta{margin:1.5rem 0 0;flex-direction:column}
  .nav .head-cta a.btn,.nav .head-cta a.btn-line{display:flex;justify-content:center;min-height:52px;font-size:1.05rem}
  body.menu-open{overflow:hidden}
}

/* Hero */
.hero{position:relative;background:var(--slate);color:var(--on-dark);overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(var(--line-dark) 1px,transparent 1px),linear-gradient(90deg,var(--line-dark) 1px,transparent 1px);background-size:48px 48px;opacity:.28;mask-image:linear-gradient(90deg,transparent,#000 45%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-areas:"head head" "copy draw";column-gap:2rem;padding-top:clamp(3rem,7vw,5.5rem);padding-bottom:clamp(2.5rem,5vw,4rem)}
.hero-head{grid-area:head;position:relative;z-index:2}
.hero-copy{grid-area:copy;position:relative;z-index:2;padding-top:1.5rem;align-self:end}
.hero-kicker{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;color:var(--on-dark-muted);margin-bottom:1.25rem;font-size:.98rem}
.hero-kicker::before{content:"";width:28px;height:2px;background:var(--ochre)}
.hero h1{font-size:clamp(2.35rem,5.4vw,4.4rem);line-height:.98;margin:0;letter-spacing:-.015em}
.hero h1 span{display:block}
.hero p.sub-copy{font-size:var(--s1);line-height:1.45;color:#D3DCE3;max-width:36ch;margin:0}
.hero .btn-line{color:var(--on-dark)}
.hero-draw{grid-area:draw;position:relative;min-height:460px;margin-top:-3.5rem;margin-right:calc(var(--gut) * -1)}
.hero-draw canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.titleblock{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(255,255,255,.28);margin-top:2.5rem;max-width:520px;background:rgba(28,43,57,.7);backdrop-filter:blur(2px)}
.titleblock div{padding:.8rem 1rem .9rem;border-left:1px solid rgba(255,255,255,.28)}
.titleblock div:first-child{border-left:0}
.titleblock dt{font-size:.8rem;color:var(--on-dark-muted);font-stretch:100%;line-height:1.25;order:2}
.titleblock dd{margin:0 0 .15rem;font-weight:600;font-stretch:var(--wide);font-size:1.75rem;line-height:1.05;color:var(--on-dark)}
.titleblock .tb-foot{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.28);display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;color:var(--on-dark-muted);padding:.5rem 1rem}
.titleblock .tb-foot b{color:var(--on-dark);font-weight:600}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;grid-template-areas:"head" "draw" "copy"}
  .hero-draw{min-height:300px;margin:.5rem calc(var(--gut) * -1) 0}
  .hero-copy{padding-top:0}
}

/* Page head (inner pages) */
.page-head{position:relative;background:var(--slate);color:var(--on-dark);padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(2.5rem,5vw,3.75rem);overflow:hidden;isolation:isolate}
.page-head::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--line-dark) 1px,transparent 1px),linear-gradient(90deg,var(--line-dark) 1px,transparent 1px);background-size:48px 48px;opacity:.22;mask-image:linear-gradient(90deg,transparent 30%,#000)}
.page-head h1{font-size:var(--s4);max-width:22ch;margin-bottom:.6rem}
.page-head .lead{color:var(--on-dark-muted);max-width:58ch;margin:0}
.crumbs{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;font-size:.9rem;color:var(--on-dark-muted);margin-bottom:1.5rem}
.crumbs li+li::before{content:"/";margin-right:.35rem;opacity:.6}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.tag{display:inline-block;font-stretch:var(--narrow);font-weight:600;font-size:.9rem;line-height:1;padding:.4em .6em;border:1px solid currentColor;border-radius:999px;padding:.45em .85em;color:var(--ochre-ink)}
.dark .tag,.page-head .tag{color:var(--ochre)}

/* Sections */
.section{padding:clamp(3.5rem,8vw,6.5rem) 0}
.section.paper{background:var(--paper)}
.section.dark{background:var(--slate);color:var(--on-dark)}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 3rem;align-items:end;margin-bottom:clamp(2rem,4vw,3rem)}
.section-head h2{margin:0}
.section-head p{margin:0;color:var(--muted);font-size:var(--s1);line-height:1.45;max-width:46ch}
.dark .section-head p{color:var(--on-dark-muted)}
@media (max-width:800px){.section-head{grid-template-columns:1fr}}

/* Service index (home) */
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--slate)}
.svc{padding:1.75rem 1.75rem 2rem 0;border-bottom:1px solid var(--line);position:relative}
.svc:not(:nth-child(3n+1)){padding-left:1.75rem;border-left:1px solid var(--line)}
.svc svg{width:44px;height:44px;color:var(--slate);margin-bottom:1.1rem}
.svc svg .acc{color:var(--ochre)}
.svc h3{margin-bottom:.5rem}
.svc p{color:var(--muted);margin:0}
.svc a{text-decoration:none}
.svc a::after{content:"";position:absolute;inset:0}
.svc:hover h3{text-decoration:underline;text-decoration-color:var(--ochre);text-decoration-thickness:2px;text-underline-offset:.2em}
@media (max-width:900px){.svc-grid{grid-template-columns:1fr 1fr}.svc:not(:nth-child(3n+1)){padding-left:0;border-left:0}.svc:nth-child(2n){padding-left:1.5rem;border-left:1px solid var(--line)}}
@media (max-width:600px){.svc-grid{grid-template-columns:1fr}.svc:nth-child(2n){padding-left:0;border-left:0}.svc{padding-right:0}}

/* Main services list (services page) */
.svc-rows{list-style:none;border-top:2px solid var(--slate)}
.svc-row{border-bottom:1px solid var(--line)}
.svc-row a{display:grid;grid-template-columns:64px minmax(0,1.1fr) minmax(0,1.6fr) auto;gap:1.5rem;align-items:center;padding:1.75rem 0;text-decoration:none}
.svc-row svg{width:48px;height:48px}
.svc-row h2{font-size:var(--s2);margin:0}
.svc-row p{margin:0;color:var(--muted)}
.svc-row .areas{font-size:.92rem;margin-top:.4rem;color:var(--ink)}
.svc-row .go{width:48px;height:48px;border:2px solid var(--slate);border-radius:50%;display:grid;place-items:center;transition:background .15s,color .15s}
.svc-row a:hover .go{background:var(--ochre);border-color:var(--ochre)}
.svc-row a:hover h2{text-decoration:underline;text-decoration-color:var(--ochre);text-underline-offset:.15em}
@media (max-width:760px){.svc-row a{grid-template-columns:48px 1fr;}.svc-row p,.svc-row .go{grid-column:2}.svc-row .go{display:none}}

/* Projects */
.proj-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.25rem)}
.proj{grid-column:span 6;display:flex;flex-direction:column;background:var(--paper);text-decoration:none;color:var(--ink);transition:transform .2s}
.proj.wide{grid-column:span 12}
.proj.third{grid-column:span 4}
.proj figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--slate-3) linear-gradient(135deg,var(--slate-2),var(--slate-3))}
.proj.wide figure{aspect-ratio:21/9}
.proj img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.proj:hover img{transform:scale(1.035)}
.proj-body{padding:1.25rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.proj-body h2,.proj-body h3{margin:0;font-size:var(--s1);line-height:1.2;font-stretch:100%;font-weight:600;letter-spacing:0}
.proj.wide .proj-body h2,.proj.wide .proj-body h3{font-size:var(--s2)}
.proj:hover h2,.proj:hover h3{text-decoration:underline;text-decoration-color:var(--ochre);text-decoration-thickness:2px;text-underline-offset:.2em}
.proj-body p{margin:0;color:var(--muted);font-size:.98rem}
.proj-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.92rem;color:var(--ink);margin-top:auto;padding-top:.6rem;border-top:1px solid var(--line)}
.proj-meta span{font-stretch:var(--narrow);font-weight:600}
.proj-meta span b{font-weight:400;color:var(--muted);font-stretch:100%;margin-right:.35em}
.proj-place{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.proj-place .loc{font-weight:600;color:var(--muted);font-size:.95rem}
.filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.filter button{font:inherit;font-weight:600;min-height:44px;padding:.5rem 1.1rem;border-radius:999px;border:2px solid var(--slate);background:transparent;color:var(--slate);cursor:pointer}
.filter button[aria-pressed="true"]{background:var(--slate);color:var(--on-dark)}
.filter button:hover{border-color:var(--ochre)}
@media (max-width:900px){.proj,.proj.third{grid-column:span 12}.proj.wide figure{aspect-ratio:4/3}}
@media (min-width:600px) and (max-width:900px){.proj,.proj.third{grid-column:span 6}.proj.wide{grid-column:span 12}}

/* Process (sequence) */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;counter-reset:step;position:relative}
.steps li{counter-increment:step;position:relative;padding-top:4.2rem}
.steps li::before{content:counter(step);position:absolute;top:0;left:0;width:3rem;height:3rem;border-radius:50%;border:2px solid var(--ochre);display:grid;place-items:center;font-weight:600;font-stretch:var(--wide);font-size:1.15rem;background:inherit}
.steps li::after{content:"";position:absolute;top:1.5rem;left:3.5rem;right:-1.5rem;height:0;border-top:2px dashed var(--line)}
.dark .steps li::after{border-color:var(--line-dark)}
.steps li:last-child::after{display:none}
.steps h3{margin-bottom:.4rem}
.steps p{color:var(--muted);margin:0}
.dark .steps p{color:var(--on-dark-muted)}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}.steps li::after{display:none}}
@media (max-width:540px){.steps{grid-template-columns:1fr}}

/* Areas */
.area-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem;border-top:2px solid var(--slate)}
.area-list li{border-bottom:1px solid var(--line)}
.area-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:1.15rem 0;text-decoration:none}
.area-list strong{font-size:var(--s1);font-stretch:100%;font-weight:600}
.area-list .pc{font-stretch:var(--narrow);font-weight:600;color:var(--ochre-ink);align-self:center;grid-row:1/3;grid-column:2}
.area-list span.d{color:var(--muted);font-size:.97rem}
.area-list a:hover strong{text-decoration:underline;text-decoration-color:var(--ochre);text-decoration-thickness:2px;text-underline-offset:.2em}
@media (max-width:760px){.area-list{grid-template-columns:1fr}}
.dark .area-list{border-color:var(--on-dark)}
.dark .area-list li{border-color:var(--line-dark)}
.dark .area-list .pc{color:var(--ochre)}
.dark .area-list span.d{color:var(--on-dark-muted)}

/* Contact strip */
.contact-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--paper);margin-top:2.5rem}
.contact-strip>div{padding:1.25rem 1.4rem;border-left:1px solid var(--line)}
.contact-strip>div:first-child{border-left:0}
.contact-strip dt{font-size:.88rem;color:var(--muted);margin-bottom:.3rem}
.contact-strip dd{margin:0;font-weight:600}
.contact-strip a{text-decoration:none}
.contact-strip a:hover{text-decoration:underline;text-decoration-color:var(--ochre)}
@media (max-width:900px){.contact-strip{grid-template-columns:1fr 1fr}.contact-strip>div:nth-child(3){border-left:0}.contact-strip>div:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:520px){.contact-strip{grid-template-columns:1fr}.contact-strip>div{border-left:0!important;border-top:1px solid var(--line)}.contact-strip>div:first-child{border-top:0}}

/* CTA band */
.cta-band{background:var(--slate);color:var(--on-dark);position:relative;overflow:hidden;isolation:isolate}
.cta-band .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:2rem;align-items:center;padding-top:clamp(3rem,6vw,4.5rem);padding-bottom:clamp(3rem,6vw,4.5rem)}
.cta-band h2{margin:0 0 .5rem;font-size:var(--s3)}
.cta-band p{margin:0;color:var(--on-dark-muted);max-width:52ch;font-size:var(--s1);line-height:1.45}
.cta-band .btn-row{margin:0;justify-content:flex-end}
.cta-band .btn-line{color:var(--on-dark)}
@media (max-width:820px){.cta-band .wrap{grid-template-columns:1fr}.cta-band .btn-row{justify-content:flex-start}}

/* Two column content */
.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.ticks{list-style:none;display:grid;gap:.15rem}
.ticks li{position:relative;padding:.7rem 0 .7rem 2rem;border-bottom:1px solid var(--line)}
.ticks li::before{content:"";position:absolute;left:.15rem;top:1.05rem;width:.85rem;height:.45rem;border-left:2.5px solid var(--ochre);border-bottom:2.5px solid var(--ochre);transform:rotate(-45deg)}
.dark .ticks li{border-color:var(--line-dark)}
.ticks.cols{grid-template-columns:1fr 1fr;column-gap:2.5rem}
@media (max-width:640px){.ticks.cols{grid-template-columns:1fr}}
.panel{background:var(--paper);padding:clamp(1.5rem,3vw,2.25rem);border-top:4px solid var(--ochre)}
.panel h2,.panel h3{font-size:var(--s2)}
.dark .panel{background:var(--slate-2);color:var(--on-dark)}

/* Prose */
.prose{max-width:68ch}
.prose h2{font-size:var(--s2);margin:2.2em 0 .6em}
.prose h2:first-child{margin-top:0}
.prose p{font-size:1.1rem;line-height:1.7}
.post-fig{margin:0 0 2.5rem;background:var(--paper);border:1px solid var(--line)}
.post-fig svg{display:block;width:100%;height:auto}
.post-fig figcaption{padding:.8rem 1.1rem;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}

/* Blog cards */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,3vw,2rem)}
.post-card{display:flex;flex-direction:column;background:var(--paper);text-decoration:none;color:var(--ink)}
.post-card .thumb{border-bottom:1px solid var(--line);background:var(--paper)}
.post-card .thumb svg{display:block;width:100%;height:auto}
.post-card .body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.post-card h3{margin:0}
.post-card p{margin:0;color:var(--muted);font-size:.97rem}
.post-card .meta{margin-top:auto;padding-top:.6rem;display:flex;justify-content:space-between;font-size:.9rem;color:var(--muted)}
.post-card:hover h3{text-decoration:underline;text-decoration-color:var(--ochre);text-decoration-thickness:2px;text-underline-offset:.2em}
@media (max-width:960px){.post-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.post-grid{grid-template-columns:1fr}}

/* Project detail */
.spec{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid rgba(255,255,255,.28);margin-top:2rem;max-width:860px}
.spec div{padding:.85rem 1.1rem;border-left:1px solid rgba(255,255,255,.28)}
.spec div:first-child{border-left:0}
.spec dt{font-size:.82rem;color:var(--on-dark-muted)}
.spec dd{margin:.15rem 0 0;font-weight:600;font-stretch:var(--narrow);font-size:1.2rem}
@media (max-width:760px){.spec{grid-template-columns:1fr 1fr}.spec div:nth-child(3){border-left:0}.spec div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.28)}}
.gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}
.gallery button{all:unset;cursor:zoom-in;display:block;overflow:hidden;background:var(--slate-3);aspect-ratio:4/3;grid-column:span var(--span,2);position:relative}
.gallery button:first-child{aspect-ratio:16/9}
.gallery button:focus-visible{outline:3px solid var(--ochre);outline-offset:2px}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery button:hover img{transform:scale(1.03)}
@media (max-width:640px){.gallery button{grid-column:span 3}.gallery button:first-child{grid-column:span 6}}
.cs-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem)}
@media (max-width:760px){.cs-grid{grid-template-columns:1fr}}
.cs-grid h3{display:flex;align-items:center;gap:.6rem}
.cs-grid h3 i{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--muted)}
.cs-grid .sol h3 i{background:var(--ochre)}
.results{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));padding:1px 0 0 1px}
.results li{background:var(--slate);padding:1.2rem 1.25rem;color:#E1E7EC;border:1px solid var(--line-dark);margin:-1px 0 0 -1px}
.results li strong{display:block;color:var(--ochre);font-stretch:var(--wide);font-size:1.6rem;line-height:1.1;margin-bottom:.25rem}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem}
.pager a{display:block;padding:1.25rem 1.4rem;background:var(--paper);text-decoration:none;border-top:3px solid var(--slate)}
.pager a:hover{border-color:var(--ochre)}
.pager small{display:block;color:var(--muted);margin-bottom:.25rem}
.pager .next{text-align:right}

/* Lightbox */
.lightbox{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100vw;height:100vh;margin:0}
.lightbox::backdrop{background:rgba(28,21,13,.94)}
.lightbox[open]{display:grid;place-items:center}
.lightbox img{max-width:min(92vw,1600px);max-height:84vh;object-fit:contain;background:var(--slate-3)}
.lb-bar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem;color:#fff}
.lb-bar button,.lb-close{font:inherit;font-weight:600;min-width:48px;min-height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:rgba(28,43,57,.8);color:#fff;cursor:pointer;display:grid;place-items:center}
.lb-close{position:fixed;top:1rem;right:1rem}
.lb-count{font-stretch:var(--narrow);min-width:5ch;text-align:center}

/* FAQ */
.faq{border-top:2px solid var(--slate);max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.3rem 3rem 1.3rem 0;position:relative;font-weight:600;font-stretch:100%;font-size:var(--s1);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.5rem;top:50%;width:14px;height:14px;border-right:2.5px solid var(--slate);border-bottom:2.5px solid var(--slate);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg);border-color:var(--ochre)}
.faq details>div{padding:0 0 1.5rem;color:var(--muted);max-width:68ch;font-size:1.06rem}

/* Forms */
.form{display:grid;gap:1.1rem}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media (max-width:600px){.form .row{grid-template-columns:1fr}}
.field{display:grid;gap:.4rem}
.field label,.field legend{font-weight:600;font-size:.97rem}
.field .hint{font-size:.88rem;color:var(--muted);font-weight:400}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;width:100%;min-height:50px;padding:.75rem .9rem;border:1.5px solid #9AA6AE;border-radius:var(--r);background:var(--paper);color:var(--ink)}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--slate);box-shadow:0 0 0 3px rgba(201,150,46,.45)}
fieldset{border:0;padding:0;margin:0;min-width:0}
.choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}
.choices label{position:relative;font-weight:600;font-size:.97rem}
.choices input{position:absolute;opacity:0;pointer-events:none}
.choices span{display:inline-flex;align-items:center;min-height:46px;padding:.55rem 1rem;border:1.5px solid #9AA6AE;border-radius:var(--r);background:var(--paper);cursor:pointer}
.choices input:checked+span{background:var(--slate);border-color:var(--slate);color:#fff}
.choices input:focus-visible+span{outline:3px solid var(--ochre);outline-offset:2px}
.hp{position:absolute;left:-5000px}
.form-status{padding:1rem 1.2rem;border-left:4px solid var(--ochre);background:var(--paper);font-weight:600}
.form-status[data-state="error"]{border-color:#B3261E}
.form-status:empty{display:none}
.form-note{font-size:.88rem;color:var(--muted);margin:0}
.steps-nav{display:flex;gap:.4rem;list-style:none;margin-bottom:1.5rem}
.steps-nav li{flex:1;height:4px;background:var(--line);border-radius:2px}
.steps-nav li.on{background:var(--ochre)}
.calendly-wrap{background:var(--paper);min-height:720px}
.calendly-wrap iframe{width:100%;height:720px;border:0;display:block}
.map{aspect-ratio:16/10;background:var(--slate-3);margin-top:1.5rem}
.map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.6) contrast(1.05)}

/* Budgets from projects */
.budget-ref{list-style:none;display:grid;gap:.9rem}
.budget-ref li{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem}
.budget-ref .bl{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem}
.budget-ref .bl a{font-weight:600;text-decoration:none}
.budget-ref .bl a:hover{text-decoration:underline}
.budget-ref .bl span{font-stretch:var(--narrow);font-weight:600;white-space:nowrap}
.budget-ref .bar{position:relative;height:10px;background:var(--concrete);border-radius:5px}
.budget-ref .bar i{position:absolute;top:0;bottom:0;background:var(--slate);border-radius:5px}
.budget-ref .scale{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);font-stretch:var(--narrow)}

/* Footer */
.site-foot{background:#1D2B1E;color:var(--on-dark-muted);padding:clamp(3rem,6vw,4.5rem) 0 2rem;font-size:.97rem}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,minmax(0,1fr));gap:2rem}
.site-foot h2{font-size:1rem;font-stretch:100%;color:var(--on-dark);margin:0 0 1rem;letter-spacing:0}
.site-foot ul{list-style:none;display:grid;gap:.5rem}
.site-foot a{text-decoration:none}
.site-foot a:hover{color:var(--on-dark);text-decoration:underline;text-decoration-color:var(--ochre)}
.site-foot .brand svg{height:56px}
.foot-tag{margin:1rem 0 1.25rem;color:var(--on-dark)}
.foot-contact{display:grid;gap:.35rem}
.foot-base{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line-dark);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.88rem}
@media (max-width:980px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}}

/* Mobile action bar */
.mbar{display:none}
@media (max-width:760px){
  .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--slate);border-top:1px solid var(--line-dark);padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));gap:.6rem}
  .mbar a{display:flex;justify-content:center;align-items:center;min-height:48px;border-radius:var(--r);font-weight:600;text-decoration:none}
  .mbar .call{border:2px solid rgba(255,255,255,.4);color:#fff}
  .mbar .quote{background:var(--ochre);color:var(--slate)}
  body{padding-bottom:76px}
}

/* 404 */
.nf{min-height:60vh;display:grid;place-items:center;text-align:left}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
/* ---------- Before & after sliders ---------- */
.ba-fig{margin:0}
.ba{position:relative;overflow:hidden;border-radius:var(--r-lg);aspect-ratio:4/3;background:var(--slate-2);box-shadow:0 18px 44px rgba(22,34,23,.16);user-select:none;-webkit-user-select:none}
.ba.portrait{aspect-ratio:3/4;max-width:520px}
.ba>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-before{clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
.ba-line{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:3px;margin-left:-1.5px;background:var(--paper);pointer-events:none;box-shadow:0 0 0 1px rgba(40,28,14,.18)}
.ba-knob{position:absolute;top:50%;left:var(--pos,50%);width:46px;height:46px;border-radius:50%;background:var(--paper);transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 8px 22px rgba(22,34,23,.4);display:flex;align-items:center;justify-content:center;color:var(--slate)}
.ba-knob svg{width:22px;height:22px}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y;-webkit-appearance:none;appearance:none;background:none}
.ba:has(.ba-range:focus-visible){outline:3px solid var(--ochre);outline-offset:3px}
.ba-tag{position:absolute;bottom:.85rem;font-size:.76rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;background:rgba(22,33,23,.68);color:var(--on-dark);padding:.4em .85em;border-radius:999px;pointer-events:none}
.ba-tag-b{left:.85rem}
.ba-tag-a{right:.85rem}
.ba-fig figcaption{margin-top:.8rem;color:var(--muted);font-size:.95rem}
.dark .ba-fig figcaption{color:var(--on-dark-muted)}
.ba-grid{display:grid;gap:2.25rem 2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));margin-top:2rem}
.ba-grid .portrait{margin-inline:auto}
.ba-hint{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem;margin-top:.6rem}

/* ---------- Floating WhatsApp ---------- */
.wa-float{position:fixed;right:max(1.1rem,env(safe-area-inset-right));bottom:max(1.1rem,env(safe-area-inset-bottom));z-index:45;width:56px;height:56px;border-radius:50%;background:#1FA855;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(26,66,38,.42);transition:transform .15s,box-shadow .15s}
.wa-float:hover{transform:scale(1.07);box-shadow:0 14px 32px rgba(26,66,38,.5)}
.wa-float svg{width:30px;height:30px}
@media (max-width:960px){.wa-float{bottom:calc(72px + env(safe-area-inset-bottom))}}

/* ---------- Featured case study card ---------- */
.feature-cs{display:grid;gap:0;background:var(--slate);color:var(--on-dark);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 22px 54px rgba(22,34,23,.22)}
@media (min-width:860px){.feature-cs{grid-template-columns:1.25fr 1fr;align-items:center}}
.feature-cs .ba{border-radius:0;box-shadow:none;height:100%}
.feature-cs-body{padding:clamp(1.5rem,4vw,3rem)}
.feature-cs-body h2,.feature-cs-body h3{color:var(--on-dark)}
.feature-cs-body p{color:var(--on-dark-muted)}

@media print{.site-head,.mbar,.site-foot,.cta-band,.wa-float{display:none}body{background:#fff}}


form[data-steps]:not(.js-steps) [data-next],form[data-steps]:not(.js-steps) [data-prev],form[data-steps]:not(.js-steps) .steps-nav{display:none}
.fstep{display:grid;gap:1.1rem}
.fstep h2{margin:0}
.post-layout{display:grid;grid-template-columns:minmax(0,68ch) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.post-aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.post-aside .btn{width:100%;justify-content:center;margin-top:.6rem}
@media (max-width:980px){.post-layout{grid-template-columns:1fr}.post-aside{position:static}}

.hero-ba{min-height:0;margin-top:0;align-self:center}
.hero-ba .ba{box-shadow:0 24px 60px rgba(0,0,0,.35)}
.hero-ba figcaption{color:var(--on-dark-muted)}
.hero-ba figcaption .textlink{color:var(--on-dark)}
@media (max-width:860px){.hero-ba{margin:.5rem 0 1.5rem}}

/* ===== GLB brand pass: their green roofline, photography first ===== */
:root{
  --forest:#2F472F; --pine:#1D2B1E; --moss:#5A8353; --sage:#8DB47F;
  --slate:#2F472F; --slate-2:#3A553A; --slate-3:#4A644A;
  --concrete:#F3F3F0; --paper:#FFFFFF; --line:#D9DBD3; --line-dark:rgba(236,243,232,.16);
  --ochre:#8DB47F; --ochre-ink:#3D6638; --survey:#8DB47F;
  --ink:#1C261D; --muted:#566156; --on-dark:#F5F7F2; --on-dark-muted:#C2CEBF;
}
.hero::before,.page-head::before{content:none}
h1,h2{font-weight:400;font-variation-settings:"SOFT" 0,"WONK" 0,"opsz" 144;letter-spacing:-.018em}
h3{letter-spacing:-.005em}
.btn{background:var(--forest);border-color:var(--forest);color:#fff}
.btn:hover{background:var(--pine);border-color:var(--pine)}
.btn-line,.btn-line:hover{background:transparent;color:inherit;border-color:currentColor}
.hero .btn:not(.btn-line),.page-head .btn:not(.btn-line),.section.dark .btn:not(.btn-line),.cta-band .btn:not(.btn-line),.qe-intro .btn:not(.btn-line){background:var(--on-dark);border-color:var(--on-dark);color:var(--forest)}
.mbar .quote{background:var(--on-dark);color:var(--forest)}
.tag{color:var(--ochre-ink)}
.page-head .tag,.hero .tag,.section.dark .tag{color:var(--sage)}
.tag+.tag{margin-left:.4rem}
.ba-tag{text-transform:none;letter-spacing:0;font-size:.85rem;font-weight:600;background:rgba(22,33,23,.7)}
.ba-knob{color:var(--forest)}
.brand img{height:30px;width:auto}
.site-foot .brand img{height:36px;width:auto}
.brand-name{font-weight:600;font-stretch:100%}

/* Home: full-bleed moving photography under a quiet header */
body.home .site-head{position:fixed;left:0;right:0;background:transparent;border-bottom-color:transparent;transition:background-color .35s ease,border-color .35s ease}
body.home .site-head.scrolled,body.home.menu-open .site-head{background:var(--forest);border-bottom-color:var(--line-dark)}
.hero-photo{min-height:max(600px,min(100svh,960px));display:flex;align-items:flex-end;background:var(--pine)}
.hero-photo .hs-wrap{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hs{position:absolute;inset:0;margin:0;opacity:0;animation:hsfade 28s linear infinite;visibility:hidden}
.hs img{width:100%;height:100%;object-fit:cover;animation:hszoom 28s linear infinite;animation-delay:inherit;transform-origin:60% 50%}
.hs:nth-child(1){animation-delay:-1s}.hs:nth-child(2){animation-delay:6s}.hs:nth-child(3){animation-delay:13s}.hs:nth-child(4){animation-delay:20s}
@keyframes hsfade{0%{opacity:0;visibility:visible}4%{opacity:1}25%{opacity:1}29%{opacity:0;visibility:hidden}100%{opacity:0;visibility:hidden}}
@keyframes hszoom{0%{transform:scale(1.02)}29%{transform:scale(1.11)}100%{transform:scale(1.11)}}
.hero-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,27,19,.55) 0%,rgba(18,27,19,0) 22%),linear-gradient(0deg,rgba(18,27,19,.86) 0%,rgba(18,27,19,.42) 42%,rgba(18,27,19,.08) 70%)}
.hero-photo .hero-in{width:100%;padding-top:calc(var(--header-h) + 3rem);padding-bottom:clamp(2.5rem,6vw,4.5rem);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:end}
.hero-photo h1{margin:0;font-size:clamp(3rem,8.4vw,7rem);line-height:.95;letter-spacing:-.03em;font-weight:340;max-width:11ch}
.hero-photo .h1-sub{display:block;font-family:var(--font);font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:500;letter-spacing:0;line-height:1.4;margin-top:1.4rem;max-width:34ch;color:var(--on-dark)}
.hero-photo .btn-row{margin-top:2rem}
.hs-cap{position:absolute;right:var(--gut);bottom:clamp(2.5rem,6vw,4.5rem);z-index:2;font-size:.92rem;color:var(--on-dark-muted);text-align:right}
.hs-cap a{color:var(--on-dark);font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:.25em}
.hs-cap a:hover{text-decoration-color:var(--sage)}
@media (max-width:860px){
  .hero-photo{min-height:max(560px,92svh)}
  .hero-photo .hero-in{grid-template-columns:1fr}
  .hs-cap{position:static;text-align:left;margin-top:1.5rem}
}
@media (prefers-reduced-motion:reduce){
  .hs,.hs img{animation:none} .hs:first-child{opacity:1;visibility:visible}
}
.proof{background:var(--paper);border-bottom:1px solid var(--line)}
.proof .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;padding-top:1.6rem;padding-bottom:1.6rem}
.proof p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.35}
.proof b{display:block;font-family:"Fraunces",Georgia,serif;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 0;font-size:2rem;color:var(--forest);line-height:1.1}
@media (max-width:700px){.proof .wrap{grid-template-columns:1fr 1fr}}

/* Enquiry block at the end of every page */
.qe{background:var(--forest);color:var(--on-dark)}
.qe .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,4.5rem);padding-top:clamp(3.5rem,7vw,5.5rem);padding-bottom:clamp(3.5rem,7vw,5.5rem);align-items:start}
.qe-intro h2{font-size:var(--s4);margin:0 0 1rem}
.qe-intro p{color:var(--on-dark-muted);font-size:var(--s1);line-height:1.5;max-width:40ch;margin:0 0 1.5rem}
.qe-alt{list-style:none;padding:0;margin:0;display:grid;gap:.75rem;font-size:1rem}
.qe-alt a{color:var(--on-dark);font-weight:600}
.qe-alt span{color:var(--on-dark-muted)}
.qe-form{background:var(--paper);color:var(--ink);border-radius:var(--r-lg);padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:1.1rem}
.wac fieldset{border:0;padding:0;margin:0}
.wac legend,.wac label{font-weight:600;font-size:.95rem;margin-bottom:.45rem;display:block}
.qe-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.qe-chips input{position:absolute;opacity:0;width:1px;height:1px}
.qe-chips label{margin:0;font-weight:500;font-size:.95rem;padding:.55em 1em;border:1.5px solid var(--line);border-radius:999px;cursor:pointer;line-height:1.2;background:var(--paper)}
.qe-chips input:checked+label{background:var(--forest);border-color:var(--forest);color:#fff}
.qe-chips input:focus-visible+label{outline:3px solid var(--moss);outline-offset:2px}
.qe-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.wac input[type=text],.wac input[type=tel],.wac input[type=email],.wac textarea{width:100%;box-sizing:border-box;font:inherit;font-size:1rem;color:var(--ink);background:#FAFAF8;border:1.5px solid var(--line);border-radius:var(--r);padding:.75rem .85rem;min-height:48px}
.wac textarea{min-height:110px;resize:vertical;line-height:1.5}
.wac input:focus,.wac textarea:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px rgba(90,131,83,.22)}
.wac [aria-invalid=true]{border-color:#B3261E}
.wac .opt{font-weight:400;color:var(--muted)}
.qe-send{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.qe-send .btn svg{width:20px;height:20px}
.qe-send .btn-line{color:var(--forest)}
.qe-status{margin:0;min-height:1.4em;font-size:.95rem;color:var(--forest);font-weight:500}
.qe-status.bad{color:#B3261E}
.qe-fine{margin:0;font-size:.85rem;color:var(--muted)}
.qe-fine a{color:inherit}
@media (max-width:860px){.qe .wrap{grid-template-columns:1fr} .qe-row{grid-template-columns:1fr}}

/* Contact button + panel */
.wa-float{background:var(--forest);width:auto;height:auto;min-height:54px;padding:0 1.25rem 0 1rem;border-radius:999px;gap:.55rem;font-weight:600;color:#fff;text-decoration:none;box-shadow:0 14px 34px rgba(18,30,19,.35);border:1.5px solid rgba(255,255,255,.18)}
.wa-float:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(18,30,19,.42)}
.wa-float svg{width:26px;height:26px}
.cpanel-open .wa-float{background:var(--pine)}
.cpanel{position:fixed;right:max(1.1rem,env(safe-area-inset-right));bottom:calc(max(1.1rem,env(safe-area-inset-bottom)) + 66px);z-index:46;width:min(340px,calc(100vw - 2.2rem));background:var(--paper);color:var(--ink);border-radius:var(--r-lg);box-shadow:0 24px 60px rgba(18,30,19,.3);padding:.6rem;border:1px solid var(--line)}
.cpanel[hidden]{display:none}
.cp-h{margin:.4rem .6rem .5rem;font-weight:600;font-size:.95rem}
.cp-i{display:flex;gap:.85rem;align-items:center;padding:.7rem .6rem;border-radius:var(--r);text-decoration:none;color:var(--ink)}
.cp-i:hover,.cp-i:focus-visible{background:var(--concrete)}
.cp-i svg{width:24px;height:24px;flex:none;color:var(--forest)}
.cp-wa svg{color:#1FA855}
.cp-i span{font-weight:600;line-height:1.25}
.cp-i small{display:block;font-weight:400;color:var(--muted);font-size:.86rem}
@media (max-width:860px){
  .wa-float{padding:0;width:56px;min-height:56px;justify-content:center}
  .cfab-l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .cpanel{bottom:calc(72px + 66px + env(safe-area-inset-bottom))}
}
.nudge{position:fixed;left:max(1.1rem,env(safe-area-inset-left));bottom:max(1.1rem,env(safe-area-inset-bottom));z-index:44;width:min(360px,calc(100vw - 2.2rem));box-sizing:border-box;background:var(--paper);color:var(--ink);border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:0 24px 60px rgba(18,30,19,.28);padding:1.2rem 1.2rem 1.25rem;transform:translateY(16px);opacity:0;transition:opacity .3s ease,transform .3s ease}
.nudge.show{transform:none;opacity:1}
.nudge-h{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 72,"SOFT" 0;font-size:1.35rem;margin:0 2rem .35rem 0;line-height:1.15}
.nudge-p{margin:0 0 1rem;color:var(--muted);font-size:.97rem;line-height:1.45}
.nudge .btn{width:100%;justify-content:center}
.nudge .btn svg{width:20px;height:20px}
.nudge-x{all:unset;position:absolute;top:.6rem;right:.6rem;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;cursor:pointer;color:var(--muted)}
.nudge-x:hover,.nudge-x:focus-visible{background:var(--concrete);color:var(--ink)}
@media (max-width:860px){.nudge{bottom:calc(72px + 76px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,16px)} .nudge.show{transform:translate(-50%,0)}}
@media (prefers-reduced-motion:reduce){.nudge{transition:none}}
@media print{.qe,.cpanel,.nudge{display:none}}

.site-head .btn:not(.btn-line){background:var(--on-dark);border-color:var(--on-dark);color:var(--forest)}
.hero-photo .hero-in{grid-template-columns:1fr}
.hs-caps{position:relative;height:1.6em;margin-top:1.75rem}
.hs-caps .hs-cap{position:absolute;inset:auto;left:0;top:0;right:auto;bottom:auto;white-space:nowrap;text-align:left;margin:0;background:none}
.wa-float{border-color:rgba(255,255,255,.5)}
@media (max-width:520px){.brand-name small{display:none}.brand img{height:22px}.brand{gap:.55rem}.brand-name{font-size:1.05rem}}
.head-cta a.btn:not(.btn-line){background:var(--on-dark);border-color:var(--on-dark);color:var(--forest)}
.head-cta a.btn:not(.btn-line):hover{background:#fff;border-color:#fff}
.head-cta a.btn-line:hover{background:rgba(255,255,255,.08);border-color:var(--on-dark)}

/* ===== Type system: Fraunces for headlines, Archivo for everything else ===== */
h1,h2,.proj-body h2,.svc-row h2,.panel h2{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:400;font-optical-sizing:auto;font-variation-settings:"SOFT" 0,"WONK" 0;letter-spacing:-.02em;line-height:1.06}
h1{font-size:clamp(2.5rem,5.4vw,4.4rem)}
h2{font-size:clamp(2rem,3.4vw,2.9rem)}
.proj-body h2{font-size:1.55rem;line-height:1.14;letter-spacing:-.012em}
.proj.wide .proj-body h2{font-size:2rem}
.panel h2,.qe-intro h2{font-size:clamp(1.75rem,2.6vw,2.4rem)}
.svc-row h2{font-size:1.75rem}
h3,.proj-body h3,.panel h3{font-family:var(--font);font-size:1.12rem;font-weight:600;line-height:1.3;letter-spacing:-.005em}
h4{font-weight:600}
.site-foot h2{font-family:var(--font);font-size:.95rem;font-weight:600;letter-spacing:0;line-height:1.3;font-variation-settings:normal}
.hero-photo h1{font-weight:340;letter-spacing:-.032em;line-height:.95}
.btn{font-weight:600;letter-spacing:0}
.tag{font-weight:500;font-size:.84rem}
.page-head .lead{color:var(--on-dark-muted)}
.steps li::before{font-family:"Fraunces",Georgia,serif;font-weight:400;font-variation-settings:"SOFT" 0;border-width:1px;font-size:1.15rem}
/* quieter structure */
.svc svg,.svc-row svg{display:none}
.svc-row a{grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto}
.svc-grid,.svc-rows{border-top:1px solid var(--ink)}
.section-head p{font-size:1.1rem}
@media (max-width:760px){.svc-row a{grid-template-columns:1fr}.svc-row p,.svc-row .go{grid-column:auto}}

/* ===== Message composer (Arditi-style live WhatsApp preview) ===== */
.qe-chips input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px}
.wac-preview{display:grid;gap:.55rem}
.wac-label{margin:0;font-weight:600;font-size:.95rem;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.wac-label small{font-weight:400;color:var(--muted);font-size:.85rem}
.wac-chat{background:#EEF0EA;border-radius:var(--r);padding:1rem;display:flex;flex-direction:column;align-items:flex-end;min-height:5rem}
.wac-bubble{position:relative;background:#D9FDD3;color:#111B21;border-radius:12px 0 12px 12px;padding:.7rem .85rem 1.35rem;max-width:min(100%,30rem);font-size:.95rem;line-height:1.45;white-space:pre-line;box-shadow:0 1px .5px rgba(11,20,26,.13);overflow-wrap:anywhere}
.wac-bubble::before{content:"";position:absolute;top:0;right:-8px;border-width:0 0 10px 8px;border-style:solid;border-color:transparent transparent transparent #D9FDD3}
.wac-bubble::after{content:"Ready to send";position:absolute;right:.7rem;bottom:.35rem;font-size:.72rem;color:#667781}
.wac-who{display:flex;align-items:center;gap:.6rem;align-self:stretch;margin:-.15rem 0 .4rem;font-size:.85rem;color:var(--muted)}
.wac-who img{width:30px;height:30px;border-radius:50%;background:var(--forest);padding:7px 5px;box-sizing:border-box;object-fit:contain}
.wac-who b{color:var(--ink);font-weight:600}

/* ===== Booking page ===== */
.book-tabs{display:inline-flex;gap:.3rem;padding:.3rem;border-radius:999px;background:var(--concrete);border:1px solid var(--line);margin-bottom:2rem;max-width:100%;flex-wrap:wrap}
.book-tabs button{all:unset;cursor:pointer;padding:.7rem 1.25rem;border-radius:999px;font-weight:600;font-size:.98rem;color:var(--muted);display:inline-flex;gap:.5rem;align-items:center}
.book-tabs button svg{width:18px;height:18px}
.book-tabs button[aria-selected=true]{background:var(--forest);color:#fff}
.book-tabs button:focus-visible{outline:3px solid var(--moss);outline-offset:2px}
.book-panel[hidden]{display:none}
.book-cal{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--paper)}
.book-cal iframe{display:block;width:100%;height:760px;border:0}
.book-empty{padding:clamp(2rem,5vw,3.5rem);display:grid;gap:1rem;justify-items:start;max-width:46rem}
.book-empty h2{margin:0}
.book-empty p{margin:0;color:var(--muted);font-size:1.05rem}
.book-done{padding:1rem 1.25rem;border-radius:var(--r);background:#E5F0E1;color:var(--forest);font-weight:600;margin:0 0 1rem}
.book-form{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.book-fields{display:grid;gap:1.25rem}
.book-side{position:sticky;top:calc(var(--header-h) + 1.25rem);display:grid;gap:1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.1rem,2.4vw,1.6rem)}
.book-side .qe-send .btn{flex:1 1 auto;justify-content:center}
.book-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;list-style:none;padding:0;margin:0;counter-reset:bs}
.book-steps li{counter-increment:bs;border-top:1px solid var(--ink);padding-top:1.1rem}
.book-steps li::before{content:counter(bs);display:block;font-family:"Fraunces",Georgia,serif;font-variation-settings:"SOFT" 0;font-size:2.2rem;line-height:1;color:var(--forest);margin-bottom:.8rem}
.book-steps p{margin:0;color:var(--muted)}
.book-contact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.5rem;border-top:1px solid var(--line)}
.book-contact dt{color:var(--muted);font-size:.9rem;margin-bottom:.25rem}
.book-contact dd{margin:0;font-weight:600}
.book-contact a{color:inherit}
@media (max-width:900px){.book-form{grid-template-columns:1fr}.book-side{position:static}.book-steps,.book-contact{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.book-steps,.book-contact{grid-template-columns:1fr}.book-cal iframe{height:1060px}.book-tabs{display:flex}.book-tabs button{flex:1 1 auto;justify-content:center;padding:.7rem .8rem}}

.qe-intro{position:sticky;top:calc(var(--header-h) + 2rem)}
.wac legend{padding:0}
.book-fields .qe-chips label{background:var(--paper)}
@media (max-width:860px){.qe-intro{position:static}}
.proj-body h3{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:400;font-optical-sizing:auto;font-variation-settings:"SOFT" 0,"WONK" 0;font-size:1.55rem;line-height:1.14;letter-spacing:-.012em}
.proj.wide .proj-body h3{font-size:2rem}
.titleblock dd{font-family:"Fraunces",Georgia,serif;font-weight:400;font-variation-settings:"SOFT" 0;letter-spacing:-.01em}
.book-cal .calendly-inline-widget iframe{height:100%}
.book-alt{margin:.9rem 0 0;font-size:.95rem;color:var(--muted)}
.book-alt a,.book-alt button{all:unset;cursor:pointer;color:var(--forest);font-weight:600;text-decoration:underline;text-underline-offset:.2em}
.book-alt button:focus-visible,.book-alt a:focus-visible{outline:3px solid var(--moss);outline-offset:2px}
.site-foot{padding-bottom:5.5rem}

.fmb-logo{display:block;flex:none;height:auto;max-width:none}
.fmb-band{background:var(--paper);border-bottom:1px solid var(--line)}
.fmb-band .wrap{display:flex;justify-content:center;padding-top:1.25rem;padding-bottom:1.25rem}
.fmb-badge{display:flex;align-items:center;gap:1.1rem;color:var(--ink);max-width:46rem}
.fmb-badge .fmb-logo{height:64px;width:auto}
.fmb-badge .fmb-ico{flex:none;color:var(--forest)}
.fmb-badge b{display:block;font-weight:600;line-height:1.25}
.fmb-badge span{display:block;color:var(--muted);font-size:.95rem;line-height:1.4}
.fmb-badge .fmb-links{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:.3rem}
.fmb-badge .fmb-links a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:.2em}
.foot-fmb{display:flex;align-items:center;gap:.85rem;margin-top:1.25rem;color:var(--on-dark);text-decoration:none;font-size:.95rem;line-height:1.3}
.foot-fmb .fmb-logo{height:64px;width:auto}
.foot-fmb small{display:block;color:var(--on-dark-muted);font-size:.85rem;margin-top:.2rem}
.foot-fmb:hover span{text-decoration:underline}
.foot-fmb .fmb-ico{flex:none;color:var(--survey)}
.qe-intro p.qe-fmb{display:flex;align-items:center;gap:.8rem;margin:1.5rem 0 0;padding-top:1.25rem;border-top:1px solid var(--line-dark);font-size:1rem;line-height:1.45;color:var(--on-dark-muted);max-width:none}
.qe-fmb .fmb-logo{height:48px;width:auto}
.qe-fmb .fmb-ico{flex:none;color:var(--survey)}
.qe-fmb a{color:var(--on-dark);font-weight:600}
.fmb-points{list-style:none;padding:0;margin:.75rem 0 0;display:grid;gap:.85rem;max-width:62ch}
.fmb-points li{position:relative;padding-left:1.9rem;line-height:1.5}
.fmb-points li::before{content:"";position:absolute;left:0;top:.2em;width:1.15rem;height:1.15rem;border-radius:50%;background:var(--forest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8.3 2.5 2.5L12 5.3' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat}
.fmb-panel-head{display:flex;align-items:center;gap:1.1rem;margin-bottom:1rem}
.fmb-panel-head h2{margin:0}
.fmb-panel-head .fmb-logo{height:96px;width:auto}
.fmb-facts{margin:0;display:grid;gap:0}
.fmb-facts div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid var(--line)}
.fmb-facts dt{color:var(--muted)}
.fmb-facts dd{margin:0;font-weight:600;text-align:right}
@media (max-width:600px){.fmb-badge{align-items:flex-start}.fmb-badge .fmb-logo{height:56px}}

.ck{position:fixed;left:max(1rem,env(safe-area-inset-left));right:max(5.5rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:60;max-width:560px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:var(--r,12px);box-shadow:0 18px 40px rgba(28,38,29,.22);padding:1rem 1.1rem;display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center}
.ck[hidden]{display:none}
.ck p{margin:0;flex:1 1 260px;font-size:.95rem;line-height:1.45}
.ck a{color:inherit}
.ck-btns{display:flex;gap:.5rem}
.ck .btn{padding:.6rem 1.1rem;font-size:.95rem}
@media (max-width:640px){.ck{right:max(1rem,env(safe-area-inset-right));bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 4.2rem)}}

.cost-table{width:100%;border-collapse:collapse;margin:1.5rem 0 2rem;font-size:1rem}
.cost-table th,.cost-table td{text-align:left;vertical-align:top;padding:.75rem .8rem;border-bottom:1px solid var(--line)}
.cost-table thead th{font-size:.9rem;color:var(--muted);font-weight:600;border-bottom:2px solid var(--slate)}
.cost-table td:last-child,.cost-table th:last-child{white-space:nowrap}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.post-layout>*{min-width:0}
@media (max-width:700px){.cost-table{min-width:620px}}
.post-card .thumb img{display:block;width:100%;aspect-ratio:800/420;object-fit:cover;height:auto}
