/* =========================================================
   Della Group — design system
   Mobile-first. Neutral group identity; business colours are
   applied only through the --brand custom property.
   ========================================================= */

/* Playfair Display (headings) and Figtree (body): self-hosted, latin + latin-ext (₹) */
@font-face{font-family:"Playfair Display";src:url(../fonts/playfair-display.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair Display";src:url(../fonts/playfair-display-ext.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Playfair Display";src:url(../fonts/playfair-display-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair Display";src:url(../fonts/playfair-display-italic-ext.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Figtree";src:url(../fonts/figtree.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Figtree";src:url(../fonts/figtree-ext.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Metric-matched fallbacks keep layout stable while the web fonts load */
@font-face{font-family:"Playfair Fallback";src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif");size-adjust:119.23%;ascent-override:90.75%;descent-override:21.05%;line-gap-override:0%}
@font-face{font-family:"Figtree Fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans");size-adjust:99.79%;ascent-override:95.2%;descent-override:25.05%;line-gap-override:0%}

:root{
  --ink:#111110;
  --charcoal:#1e1d1b;
  --graphite:#2b2a27;
  --stone:#6b665e;
  --stone-light:#9a948a;
  --warm-white:#f3efe8;
  --off-white:#faf8f4;
  --white:#ffffff;
  --line:rgba(17,17,16,.12);
  --line-strong:rgba(17,17,16,.24);
  --line-dark:rgba(250,248,244,.14);
  --brand:#111110;

  --serif:"Playfair Display","Playfair Fallback",Georgia,"Times New Roman",serif;
  --sans:"Figtree","Figtree Fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  --fs-display:clamp(2.25rem,1.5rem + 3.4vw,4.75rem);
  --fs-h1:clamp(2rem,1.45rem + 2.4vw,3.75rem);
  --fs-h2:clamp(1.7rem,1.3rem + 1.7vw,2.9rem);
  --fs-h3:clamp(1.3rem,1.15rem + .7vw,1.75rem);
  --fs-h4:clamp(1.05rem,1rem + .3vw,1.25rem);
  --fs-lead:clamp(1.05rem,1rem + .3vw,1.2rem);
  --fs-body:clamp(1rem,.97rem + .15vw,1.0625rem);
  --fs-small:.875rem;
  --fs-eyebrow:.75rem;

  --gutter:clamp(1.25rem,.8rem + 2.4vw,4rem);
  --section:clamp(3rem,2.2rem + 3.6vw,6rem);
  --radius:4px;
  --header-h:64px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:1024px){:root{--header-h:76px}}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--off-white);color:var(--ink);font-family:var(--sans);font-size:var(--fs-body);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,picture,svg,video{display:block;max-width:100%}
img{height:auto}
picture{display:contents}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
button{font:inherit;color:inherit}
h1,h2,h3,h4,h5,h6{margin:0;font-weight:400}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
address{font-style:normal}
main{display:block;outline:none}
::selection{background:var(--ink);color:var(--off-white)}

:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px}
.skip-link{position:fixed;top:12px;left:12px;z-index:200;padding:.75rem 1rem;background:var(--ink);color:var(--off-white);text-decoration:none;transform:translateY(-200%);transition:transform .2s}
.skip-link:focus{transform:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Layout ---------- */
.container{width:100%;max-width:1520px;margin-inline:auto;padding-inline:var(--gutter)}
.container-narrow{max-width:960px}
.section{padding-block:var(--section)}
.section-tight{padding-block:calc(var(--section) * .55)}
.section-dark{background:var(--ink);color:var(--off-white)}
.section-warm{background:var(--warm-white)}
.section-dark .muted,.section-dark .lead{color:rgba(250,248,244,.72)}
.muted{color:var(--stone)}
.rule{border:0;border-top:1px solid var(--line);margin:0}
.section-dark .rule{border-color:var(--line-dark)}

.grid{display:grid;gap:var(--gutter)}
@media (min-width:768px){
  .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
  .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gutter);align-items:start}
  .split-even{grid-template-columns:1fr 1fr}
  .split-rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}

/* ---------- Type ---------- */
.eyebrow{display:flex;align-items:center;gap:.75rem;margin:0 0 .85rem;font-family:var(--sans);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--stone)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.eyebrow-plain::before{display:none}
.section-dark .eyebrow{color:rgba(250,248,244,.62)}
.display{font-family:var(--serif);font-size:var(--fs-display);line-height:.95;letter-spacing:-.02em}
.h1{font-family:var(--serif);font-size:var(--fs-h1);line-height:1;letter-spacing:-.015em}
.h2{font-family:var(--serif);font-size:var(--fs-h2);line-height:1.02;letter-spacing:-.01em}
.h3{font-family:var(--serif);font-size:var(--fs-h3);line-height:1.1}
.h4{font-family:var(--sans);font-size:var(--fs-h4);line-height:1.3;font-weight:600;letter-spacing:-.01em}
.italic,em.accent{font-style:italic}
.lead{font-size:var(--fs-lead);line-height:1.5;color:var(--graphite);max-width:40ch}
.prose{max-width:68ch}
.prose p{margin-bottom:1.1em}
.prose h2{font-family:var(--serif);font-size:var(--fs-h3);line-height:1.15;margin:2.2em 0 .6em}
.prose h3{font-family:var(--sans);font-size:var(--fs-h4);font-weight:600;margin:1.8em 0 .5em}
.prose ul{padding-left:1.1em;margin:0 0 1.2em}
.prose li{margin-bottom:.4em}
.small{font-size:var(--fs-small)}
.caps{text-transform:uppercase;letter-spacing:.14em;font-size:var(--fs-eyebrow);font-weight:600}
.balance{text-wrap:balance}

.section-head{display:grid;gap:1rem;margin-bottom:clamp(1.5rem,1.2rem + 1.4vw,2.75rem)}
@media (min-width:1024px){.section-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}.section-head .lead{justify-self:end}}

/* ---------- Buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.85rem 1.5rem;border:1px solid transparent;border-radius:999px;font-family:var(--sans);font-size:.9375rem;font-weight:500;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}
.btn .i{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover .i-arrow{transform:translateX(3px)}
.btn:hover .i-external{transform:translate(2px,-2px)}
.btn-primary{background:var(--ink);color:var(--off-white)}
.btn-primary:hover{background:var(--graphite)}
.btn-secondary{border-color:var(--line-strong);color:var(--ink);background:transparent}
.btn-secondary:hover{border-color:var(--ink)}
.section-dark .btn-primary,.on-dark .btn-primary{background:var(--off-white);color:var(--ink)}
.section-dark .btn-primary:hover,.on-dark .btn-primary:hover{background:var(--white)}
.section-dark .btn-secondary,.on-dark .btn-secondary{border-color:rgba(250,248,244,.35);color:var(--off-white)}
.section-dark .btn-secondary:hover,.on-dark .btn-secondary:hover{border-color:var(--off-white)}
.btn-sm{min-height:44px;padding:.6rem 1.15rem;font-size:.875rem}
.btn-block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}

.link-arrow{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-weight:500;text-decoration:none;border-bottom:1px solid transparent}
.link-arrow .i{width:18px;height:18px;transition:transform .3s var(--ease)}
.link-arrow:hover .i-arrow{transform:translateX(4px)}
.link-arrow:hover .i-external{transform:translate(2px,-2px)}
.link-arrow:hover{border-bottom-color:currentColor}
.linklike{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}
.i{width:20px;height:20px;flex:none}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(250,248,244,.94);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px);transition:background-color .35s,border-color .35s,color .35s}
/* The frosted blur lives on ::before, never on the header itself: backdrop-filter on the header would make it
   the containing block for the fixed mobile menu and squash the menu to the header's height. */
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header{background:rgba(250,248,244,.82)}}
.has-dark-hero .site-header{position:fixed;inset-inline:0;background:transparent;border-color:transparent;color:var(--off-white)}
.has-dark-hero .site-header.is-solid,.has-dark-hero .site-header.is-open{background:rgba(250,248,244,.96);color:var(--ink);border-color:var(--line)}
.has-dark-hero .site-header::before{display:none}
.has-dark-hero .site-header.is-solid::before{display:block}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.has-dark-hero .site-header.is-solid{background:rgba(250,248,244,.82)}}
.site-header.is-open,.has-dark-hero .site-header.is-solid.is-open{background:var(--off-white)}
.site-header.is-open::before{display:none}
.has-dark-hero .site-header .header-cta{background:var(--off-white);color:var(--ink)}
.has-dark-hero .site-header.is-solid .header-cta{background:var(--ink);color:var(--off-white)}
.header-bar{display:flex;align-items:center;gap:1.5rem;height:var(--header-h)}

.wordmark{display:inline-flex;align-items:baseline;gap:.45rem;text-decoration:none;line-height:1;white-space:nowrap}
.wordmark-della{font-family:var(--serif);font-size:1.75rem;letter-spacing:-.01em}
.wordmark-group{font-family:var(--sans);font-size:.66rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;transform:translateY(-.2em)}
.wordmark-lg .wordmark-della{font-size:2.6rem}
.wordmark-lg .wordmark-group{font-size:.75rem}

.primary-nav{display:none;margin-left:auto}
.primary-nav ul{display:flex;align-items:center;gap:clamp(.9rem,.2rem + 1.1vw,1.9rem);list-style:none}
.nav-link{display:inline-flex;align-items:center;gap:.3rem;min-height:44px;font-size:.9rem;font-weight:500;text-decoration:none;position:relative;white-space:nowrap}
.nav-link .i{width:14px;height:14px;transition:transform .25s}
.nav-link[aria-expanded="true"] .i{transform:rotate(180deg)}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-link:hover::after,.nav-link.is-active::after{transform:scaleX(1)}
.header-cta{display:none}
.menu-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:.5rem;min-height:44px;min-width:44px;padding:0 .25rem;background:none;border:0;cursor:pointer;font-size:.875rem;font-weight:500}
.menu-toggle .i{width:24px;height:24px}
@media (min-width:1240px){
  .primary-nav{display:block}
  .header-cta{display:inline-flex}
  .menu-toggle{display:none}
}

/* Mega menu */
.mega{position:absolute;inset-inline:0;top:100%;background:var(--off-white);color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(17,17,16,.25)}
.mega-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:1.5rem;padding-block:1.75rem 2rem}
.mega-lead{font-family:var(--serif);font-size:1.45rem;line-height:1.15;margin:0 0 1rem}
.mega-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);list-style:none}
.mega-item{background:var(--off-white);display:flex;flex-direction:column;position:relative}
.mega-item::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--brand);transition:width .4s var(--ease)}
.mega-item:hover::before,.mega-item:focus-within::before{width:100%}
.mega-card{display:grid;grid-template-columns:64px 1fr;gap:.8rem;align-items:center;padding:.95rem .95rem .4rem;text-decoration:none}
.mega-thumb{display:block;width:64px;aspect-ratio:4/3;overflow:hidden;background:var(--warm-white)}
.mega-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.mega-card:hover .mega-thumb img{transform:scale(1.06)}
.mega-name{display:block;font-weight:600;font-size:1rem}
.mega-desc{display:block;font-size:.84rem;color:var(--stone);line-height:1.4;margin-top:.2rem}
.mega-ext{display:inline-flex;align-items:center;gap:.35rem;align-self:flex-start;margin:0 .95rem .8rem calc(64px + 1.75rem);min-height:32px;font-size:.78rem;color:var(--stone);text-decoration:none}
.mega-ext:hover{color:var(--ink);text-decoration:underline}
.mega-ext .i{width:13px;height:13px}

/* Mobile menu */
.mobile-menu{position:fixed;inset:calc(var(--header-h) + env(safe-area-inset-top,0px)) 0 0 0;background:var(--off-white);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;padding-block:1rem calc(2rem + env(safe-area-inset-bottom,0px))}
.mobile-list{list-style:none;margin-bottom:2rem}
.mobile-list > li{border-bottom:1px solid var(--line)}
.mobile-list > li > a,.mobile-acc{display:flex;width:100%;align-items:center;justify-content:space-between;min-height:54px;font-family:var(--serif);font-size:1.45rem;line-height:1.1;text-decoration:none;background:none;border:0;padding:0;cursor:pointer;text-align:left}
.mobile-acc .i{width:22px;height:22px;transition:transform .3s}
.mobile-acc[aria-expanded="true"] .i{transform:rotate(45deg)}
.mobile-sub{list-style:none;padding:0 0 1rem}
.mobile-sub a{display:block;padding:.7rem 0;min-height:44px;text-decoration:none;font-weight:500}
.mobile-sub small{display:block;font-weight:400;color:var(--stone);font-size:.84rem}
body.menu-open{overflow:hidden}

/* Breadcrumbs */
.breadcrumbs{padding-top:1.25rem;font-size:.8125rem;color:var(--stone)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.4rem;opacity:.5}
.breadcrumbs a{text-decoration:none}
.breadcrumbs a:hover{text-decoration:underline}
.has-dark-hero .breadcrumbs{position:absolute;z-index:3;top:calc(var(--header-h) + env(safe-area-inset-top,0px));inset-inline:0;color:rgba(250,248,244,.75)}

/* ---------- Hero (home) ---------- */
.hero{position:relative;min-height:clamp(520px,86svh,860px);display:flex;flex-direction:column;justify-content:flex-end;background:var(--ink);color:var(--off-white);overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.hero-slide.is-active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:no-preference){
  .hero-slide.is-active img{animation:kenburns 9s ease-out forwards}
}
@keyframes kenburns{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(17,17,16,.55) 0%,rgba(17,17,16,.15) 30%,rgba(17,17,16,.35) 60%,rgba(17,17,16,.88) 100%)}
.hero-content{padding-top:calc(var(--header-h) + 2rem);padding-bottom:clamp(1rem,.75rem + 1vw,2rem)}
.hero-kicker{display:block;margin-bottom:1rem!important;font-family:var(--sans);line-height:1.4;font-size:var(--fs-eyebrow);letter-spacing:.24em;text-transform:uppercase;font-weight:600;margin:0 0 1.5rem;color:rgba(250,248,244,.8)}
.hero-title{font-family:var(--serif);font-size:var(--fs-display);line-height:.94;letter-spacing:-.02em;max-width:15ch;margin:0 0 1.1rem}
.hero-title span{display:block}
.hero-title em{font-style:italic;color:rgba(250,248,244,.78)}
.hero-sub{max-width:56ch;font-size:var(--fs-lead);line-height:1.5;color:rgba(250,248,244,.86);margin:0 0 1.5rem}
.hero-foot{display:flex;flex-direction:column;gap:1.25rem;border-top:1px solid var(--line-dark);padding-block:1.25rem calc(1.25rem + env(safe-area-inset-bottom,0px))}
.hero-chapters{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem 1rem;list-style:none;font-size:.78rem;color:rgba(250,248,244,.6)}
.hero-chapters li{position:relative;padding-top:.8rem}
.hero-chapters li::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(250,248,244,.25)}
.hero-chapters li::after{content:"";position:absolute;left:0;top:0;height:1px;width:0;background:var(--off-white)}
.hero-chapters li.is-active{color:var(--off-white)}
.hero-chapters li.is-active::after{animation:chapter var(--slide-ms,6000ms) linear forwards}
.hero-chapters li.is-done::after{width:100%}
@keyframes chapter{to{width:100%}}
@media (prefers-reduced-motion:reduce){.hero-chapters li.is-active::after{animation:none;width:100%}}
.hero-chapters b{display:block;font-weight:600;color:inherit}
@media (min-width:768px){.hero-chapters{grid-template-columns:repeat(7,1fr)}}
@media (min-width:1024px){.hero-foot{flex-direction:row;align-items:flex-end;justify-content:space-between}.hero-chapters{flex:1;max-width:1000px}}
.scroll-cue{display:none;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(250,248,244,.7);text-decoration:none}
@media (min-width:1024px){.scroll-cue{display:inline-flex;align-items:center;gap:.6rem}}

/* ---------- Answer block (What is Della) ---------- */
.answer{display:grid;gap:2rem}
.answer-def{font-family:var(--serif);font-size:clamp(1.35rem,1.1rem + 1.1vw,2.1rem);line-height:1.15;letter-spacing:-.01em;margin:0;max-width:30ch}
.answer-def strong{font-weight:400;font-style:italic}
.answer-list{list-style:none;display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
.answer-list li{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--line)}
.answer-list a{display:flex;flex-direction:column;justify-content:center;width:100%;min-height:60px;padding:.6rem 0;text-decoration:none;font-weight:500;line-height:1.35}
.answer-list a small{color:var(--stone);font-weight:400;font-size:.84rem}
@media (min-width:600px){.answer-list a{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}.answer-list a small{text-align:right;flex:none}}
.answer-list a:hover{color:var(--stone)}
.facts-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:.5rem}
.facts-row dt{font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--stone);font-weight:600;margin-bottom:.3rem}
.facts-row dd{margin:0;font-weight:500}
@media (min-width:1024px){.answer{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gutter);align-items:start}.facts-row{grid-template-columns:repeat(4,auto);justify-content:start;gap:3rem}}

/* ---------- Ecosystem ---------- */
.eco{display:grid;gap:clamp(.75rem,.5rem + 1vw,1.25rem)}
.eco-card{--brand:var(--ink);position:relative;display:grid;background:var(--charcoal);color:var(--off-white);overflow:hidden;isolation:isolate;min-height:clamp(360px,54vh,540px)}
.eco-media{position:absolute;inset:0;z-index:-2}
.eco-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.eco-card:hover .eco-media img{transform:scale(1.035)}
.eco-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(17,17,16,.28) 0%,rgba(17,17,16,.3) 30%,rgba(17,17,16,.82) 62%,rgba(17,17,16,.94) 100%)}
@media (min-width:1024px){.eco-card::before{background:linear-gradient(180deg,rgba(17,17,16,.12) 0%,rgba(17,17,16,.25) 35%,rgba(17,17,16,.8) 72%,rgba(17,17,16,.92) 100%),linear-gradient(90deg,rgba(17,17,16,.45) 0%,rgba(17,17,16,0) 65%)}}
.eco-card .btn-primary{background:var(--off-white);color:var(--ink)}
.eco-card .btn-primary:hover{background:var(--white)}
.eco-body{align-self:end;padding:clamp(1.25rem,1rem + 1.6vw,2.5rem);display:grid;gap:.7rem;max-width:720px}
.brand-tile{display:grid;place-items:center;width:64px;aspect-ratio:1;padding:10px;background:#0d0d0c;border:1px solid rgba(214,178,106,.45);box-shadow:0 10px 24px -12px rgba(0,0,0,.6);overflow:hidden}
.brand-tile.is-full{padding:0;border-color:rgba(250,248,244,.18)}
.brand-tile img{width:100%;height:100%;object-fit:contain}
.eco-logo{margin-bottom:.35rem}
@media (min-width:768px){.brand-tile{width:76px;padding:11px}.eco-card.is-lead .brand-tile{width:92px;padding:13px}.brand-tile.is-full,.eco-card.is-lead .brand-tile.is-full{padding:0}}
.eco-index{display:flex;align-items:center;gap:.75rem;font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:rgba(250,248,244,.8)}
.eco-index::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px rgba(250,248,244,.18)}
.eco-name{font-family:var(--serif);font-size:clamp(1.85rem,1.4rem + 1.8vw,3.1rem);line-height:.98;letter-spacing:-.01em}
.eco-line{font-size:var(--fs-lead);line-height:1.45;color:rgba(250,248,244,.88);max-width:44ch;margin:0}
.eco-mark{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:.25rem 0 .5rem;font-size:.9rem;color:rgba(250,248,244,.78)}
.eco-mark b{color:var(--off-white);font-weight:600}
.eco-actions{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center}
.eco-actions .link-arrow{color:rgba(250,248,244,.85)}
@media (min-width:1024px){
  .eco{grid-template-columns:repeat(12,minmax(0,1fr))}
  .eco-card{grid-column:span 6}
  .eco-card.is-lead{grid-column:span 12;min-height:clamp(440px,68vh,660px)}
  .eco-card.is-half{grid-column:span 6}
  .eco-card.is-wide{grid-column:span 7}
  .eco-card.is-narrow{grid-column:span 5}
}

/* ---------- Evolution (horizontal track, no scroll-jacking) ---------- */
.evo-controls{display:none;gap:.5rem}
.evo-controls button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-dark);background:transparent;color:var(--off-white);cursor:pointer;display:grid;place-items:center}
.evo-controls button:hover{border-color:var(--off-white)}
.evo-controls .i{width:20px;height:20px}
.evo-controls [data-dir="-1"] .i{transform:rotate(180deg)}
.evo{list-style:none;display:grid;gap:0;border-top:1px solid var(--line-dark);counter-reset:evo}
.evo-step{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1.25rem;padding:1.5rem 0;border-bottom:1px solid var(--line-dark)}
.evo-year{font-family:var(--serif);font-size:2.25rem;line-height:1;grid-row:span 3;min-width:4.2ch;color:rgba(250,248,244,.9)}
.evo-discipline{font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:rgba(250,248,244,.55)}
.evo-title{font-family:var(--sans);font-size:1.15rem;font-weight:600;line-height:1.3}
.evo-text{margin:0;color:rgba(250,248,244,.7);font-size:.95rem}
.evo-img{display:none}
.evo-step.is-future .evo-year{font-style:italic}
@media (min-width:1024px){
  .evo-controls{display:flex}
  .evo{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;border-top:0;padding-bottom:1.5rem;scrollbar-width:thin;scrollbar-color:rgba(250,248,244,.35) transparent;cursor:grab}
  .evo.is-dragging{cursor:grabbing;scroll-snap-type:none}
  .evo::-webkit-scrollbar{height:4px}.evo::-webkit-scrollbar-thumb{background:rgba(250,248,244,.35)}
  .evo-step{flex:0 0 clamp(300px,24vw,380px);scroll-snap-align:start;display:flex;flex-direction:column;gap:.6rem;padding:0 2rem 0 0;border:0;position:relative}
  .evo-step::before{content:"";display:block;height:1px;background:var(--line-dark);margin:0 -2rem 1.5rem 0}
  .evo-step::after{content:"";position:absolute;top:-4px;left:0;width:9px;height:9px;border-radius:50%;background:var(--off-white)}
  .evo-year{font-size:2.6rem}
  .evo-img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--graphite);margin-top:.75rem;filter:grayscale(.35)}
  .evo-img img{width:100%;height:100%;object-fit:cover;pointer-events:none}
  .evo-step.is-future::after{background:transparent;border:1px solid var(--off-white)}
}

/* ---------- Founder ---------- */
.founder{display:grid;gap:clamp(1.75rem,1.25rem + 2.4vw,4rem)}
.founder-portrait{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--warm-white)}
.founder-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.founder-caption{margin-top:.75rem;font-size:.8125rem;color:var(--stone)}
.founder-name{font-family:var(--serif);font-size:var(--fs-h1);line-height:.95;letter-spacing:-.02em;margin:0 0 .75rem}
.founder-title{font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--stone);margin-bottom:1.25rem}
.path{display:flex;flex-wrap:wrap;gap:.4rem .5rem;list-style:none;margin:1.25rem 0 1.5rem;font-size:.84rem}
.path li{display:inline-flex;align-items:center;gap:.5rem}
.path li:not(:last-child)::after{content:"\2192";color:var(--stone-light)}
.path li span{padding:.35rem .7rem;border:1px solid var(--line-strong);border-radius:999px}
.path li:last-child span{background:var(--ink);color:var(--off-white);border-color:var(--ink)}
.pull{font-family:var(--serif);font-size:clamp(1.6rem,1.2rem + 1.8vw,2.8rem);line-height:1.15;letter-spacing:-.01em;margin:2rem 0;padding-left:1.25rem;border-left:1px solid var(--ink)}
.pull cite{display:block;margin-top:1rem;font-family:var(--sans);font-size:var(--fs-small);font-style:normal;color:var(--stone);letter-spacing:.04em}
.achievements{list-style:none;border-top:1px solid var(--line);margin:1.5rem 0 2rem}
.achievements li{display:grid;grid-template-columns:4.5rem 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.achievements time{font-weight:600;color:var(--stone)}
@media (min-width:1024px){.founder{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.founder-portrait{position:sticky;top:calc(var(--header-h) + 2rem)}}

/* ---------- Design thread ---------- */
.thread{position:relative}
.thread-list{list-style:none}
.thread-step{display:grid;gap:.85rem;padding-block:1.75rem;border-top:1px solid var(--line-dark)}
.thread-word{font-family:var(--serif);font-size:clamp(2.2rem,1.6rem + 2.8vw,4.25rem);line-height:.95;letter-spacing:-.02em;display:flex;align-items:baseline;gap:.35em;flex-wrap:wrap}
.thread-word small{font-family:var(--sans);font-size:var(--fs-eyebrow);letter-spacing:.2em;text-transform:uppercase;color:rgba(250,248,244,.5);font-weight:600}
.thread-copy{max-width:46ch;color:rgba(250,248,244,.72);margin:0}
.thread-img{aspect-ratio:16/9;overflow:hidden;background:var(--graphite)}
.thread-img img{width:100%;height:100%;object-fit:cover}
.thread-finale{padding-top:clamp(2rem,1.5rem + 2.4vw,4rem);border-top:1px solid var(--line-dark)}
.thread-finale p{font-family:var(--serif);font-size:clamp(1.65rem,1.2rem + 2vw,3.25rem);line-height:1.02;letter-spacing:-.015em;margin:0}
.thread-finale p span{display:block;color:rgba(250,248,244,.45)}
.thread-finale p span:last-child{color:var(--off-white)}
@media (min-width:1024px){
  .thread-step{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;column-gap:var(--gutter);row-gap:.9rem;padding-block:2.25rem}
  .thread-step .thread-img{grid-column:2;grid-row:1}
  .thread-word{transition:color .5s}
  .js .thread-step:not(.is-active) .thread-word{color:rgba(250,248,244,.28)}
  .js .thread-step .thread-img{opacity:.35;transition:opacity .6s}
  .js .thread-step.is-active .thread-img{opacity:1}
}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.stat{padding:1.25rem 1rem 1.25rem 0;border-bottom:1px solid var(--line)}
.stat:nth-child(odd){padding-right:1.25rem}
.stat:nth-child(even){padding-left:1.25rem;border-left:1px solid var(--line)}
.stat-value{display:block;font-family:var(--serif);font-size:clamp(1.9rem,1.5rem + 1.7vw,3.1rem);line-height:1;letter-spacing:-.02em;margin-bottom:.55rem;font-variant-numeric:tabular-nums}
.stat-label{display:block;font-weight:600;font-size:.95rem;line-height:1.35}
.stat-context{display:block;color:var(--stone);font-size:.84rem;margin-top:.3rem;line-height:1.45}
.stat-source{display:inline-block;margin-top:.5rem;font-size:.75rem;color:var(--stone-light);text-decoration:none}
.stat-source:hover{text-decoration:underline;color:var(--stone)}
.section-dark .stats,.section-dark .stat{border-color:var(--line-dark)}
.section-dark .stat-context,.section-dark .stat-source{color:rgba(250,248,244,.55)}
@media (min-width:1024px){
  .stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .stat,.stat:nth-child(odd),.stat:nth-child(even){padding:1.6rem 1.5rem;border-left:1px solid var(--line)}
  .stat:nth-child(4n+1){border-left:0;padding-left:0}
  .section-dark .stat{border-left-color:var(--line-dark)}
}

/* ---------- Stories ---------- */
.stories{display:grid;gap:clamp(2rem,1.5rem + 2vw,3rem)}
.story-card{display:grid;gap:1rem;text-decoration:none;align-content:start}
.story-media{aspect-ratio:3/2;overflow:hidden;background:var(--warm-white)}
.story-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.story-card:hover .story-media img{transform:scale(1.04)}
.story-meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--stone)}
.story-title{font-family:var(--serif);font-size:clamp(1.5rem,1.25rem + 1vw,2.1rem);line-height:1.12}
.story-card:hover .story-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.story-excerpt{color:var(--stone);margin:0;font-size:.95rem}
@media (min-width:768px){.stories{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.stories{grid-template-columns:repeat(3,minmax(0,1fr))}.stories .story-card.is-feature{grid-column:span 2}.stories .is-feature .story-media{aspect-ratio:16/9}}

/* ---------- Footprint ---------- */
.footprint{display:grid;gap:var(--gutter)}
.fp-map{position:relative;aspect-ratio:653/698;background:var(--charcoal);border:1px solid var(--line-dark)}
.fp-map svg{display:block;width:100%;height:100%;overflow:visible}
.fp-pin{cursor:pointer;outline:none}
.fp-hit{fill:transparent}
.fp-dot{fill:var(--off-white);stroke:var(--charcoal);stroke-width:1.5;transition:r .2s,fill .2s}
.is-operational .fp-dot{fill:#e9c46a}
.is-office .fp-dot{fill:var(--charcoal);stroke:#e9c46a;stroke-width:2.5}
.is-upcoming .fp-dot{fill:var(--charcoal);stroke:rgba(250,248,244,.55);stroke-width:1.5}
.fp-pulse{fill:none;stroke:#e9c46a;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:fp-pulse 2.6s ease-out infinite}
@keyframes fp-pulse{from{transform:scale(1);opacity:.9}to{transform:scale(3.2);opacity:0}}
.fp-pin:hover .fp-dot,.fp-pin:focus-visible .fp-dot,.fp-pin.is-active .fp-dot{fill:#fff;stroke:#e9c46a;stroke-width:3}
.fp-pin:focus-visible .fp-hit{stroke:#e9c46a;stroke-width:1.5}
.fp-label{font-family:var(--sans);font-size:15px;fill:rgba(250,248,244,.85);font-weight:500;paint-order:stroke;stroke:var(--charcoal);stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.fp-tip{position:absolute;z-index:2;max-width:16rem;padding:.7rem .85rem;background:var(--off-white);color:var(--charcoal);font-size:.8125rem;line-height:1.4;box-shadow:0 8px 24px rgba(0,0,0,.35);pointer-events:none;transform:translate(-50%,calc(-100% - 14px))}
.fp-tip.below{transform:translate(-50%,14px)}
.fp-tip b{display:block;font-size:.9375rem}
.fp-tip small{display:block;color:rgba(23,22,19,.6);margin-bottom:.35rem}
.fp-tip ul{list-style:none;margin:0;padding:0}
.fp-tip li+li{margin-top:.15rem}
.fp-list li:target,.fp-list li.is-active{background:rgba(233,196,106,.08);box-shadow:inset 2px 0 0 #e9c46a;padding-left:.75rem}
.fp-list li{transition:background .3s,padding .3s}
@media (max-width:599px){.fp-label{font-size:21px;stroke-width:5px}}
@media (prefers-reduced-motion:reduce){.fp-pulse{animation:none;opacity:0}}
.fp-legend{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;font-size:.8125rem;color:rgba(250,248,244,.7);margin-top:1rem}
.fp-legend span{display:inline-flex;align-items:center;gap:.5rem}
.fp-legend i{width:9px;height:9px;border-radius:50%;background:var(--off-white);display:inline-block}
.fp-legend i.op{background:#e9c46a}
.fp-legend i.office{background:transparent;border:2px solid #e9c46a}
.fp-legend i.up{background:transparent;border:1px solid rgba(250,248,244,.55)}
.fp-list{list-style:none;border-top:1px solid var(--line-dark)}
.fp-list li{display:grid;gap:.6rem;padding:1rem 0;border-bottom:1px solid var(--line-dark)}
.fp-place{font-weight:600}
.fp-place small{display:block;font-weight:400;color:rgba(250,248,244,.55);font-size:.84rem}
.fp-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.fp-tag{font-size:.72rem;letter-spacing:.06em;padding:.25rem .55rem;border:1px solid var(--line-dark);border-radius:999px;color:rgba(250,248,244,.8);text-decoration:none;white-space:nowrap}
a.fp-tag:hover{border-color:var(--off-white)}
@media (min-width:1024px){.footprint{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.fp-aside{position:sticky;top:calc(var(--header-h) + 2rem)}.fp-list{columns:2;column-gap:var(--gutter)}.fp-list li{break-inside:avoid}}

/* ---------- Purpose ---------- */
.purpose-quote{font-family:var(--serif);font-size:clamp(1.45rem,1.15rem + 1.3vw,2.4rem);line-height:1.15;letter-spacing:-.01em;max-width:30ch;margin:0 0 1.75rem}
.pillars{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.pillar{padding:1.75rem 0;border-bottom:1px solid var(--line);display:grid;gap:.6rem}
.pillar h3{font-family:var(--sans);font-size:1.1rem;font-weight:600}
.pillar p{margin:0;color:var(--stone)}
.pillar a{font-size:.9rem}
@media (min-width:1024px){.pillars{grid-template-columns:repeat(3,1fr);border-top:0}.pillar{padding:2rem 2rem 0 0;border-bottom:0;border-top:1px solid var(--ink)}}

/* ---------- Careers band ---------- */
.careers-band{position:relative;overflow:hidden;isolation:isolate}
.roles{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:2rem 0 2.5rem}
.roles li{padding:.5rem .95rem;border:1px solid var(--line-dark);border-radius:999px;font-size:.9rem;color:rgba(250,248,244,.85)}
.section-warm .roles li,.section .roles.on-light li{border-color:var(--line-strong);color:var(--graphite)}

/* ---------- Final CTA ---------- */
.finale{text-align:left}
.finale-title{font-family:var(--serif);font-size:clamp(2rem,1.4rem + 2.8vw,4.25rem);line-height:1;letter-spacing:-.02em;margin:0 0 2rem}
.finale-title span{display:block}
.finale-title .dim{color:rgba(250,248,244,.4)}
.eco-links{list-style:none;display:grid;grid-template-columns:1fr;border-top:1px solid var(--line-dark)}
.eco-links a{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:64px;padding:.75rem 0;border-bottom:1px solid var(--line-dark);text-decoration:none;font-size:1.05rem;font-weight:500;position:relative}
.eco-links a small{font-weight:400;color:rgba(250,248,244,.55);font-size:.84rem}
.eco-links a::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--brand,var(--off-white));transition:width .5s var(--ease)}
.eco-links a:hover::before{width:100%}
@media (min-width:768px){.eco-links{grid-template-columns:repeat(2,1fr);column-gap:var(--gutter)}}
@media (min-width:1024px){.eco-links{grid-template-columns:repeat(3,1fr)}}

/* ---------- Page hero (internal) ---------- */
.page-hero{padding-block:clamp(2rem,1.5rem + 2.4vw,4rem) clamp(1.5rem,1.2rem + 1.6vw,3rem)}
.page-hero .h1{max-width:20ch;margin-bottom:1rem}
.page-hero .lead{max-width:52ch}
.media-hero{position:relative;min-height:clamp(440px,68svh,720px);display:flex;align-items:flex-end;background:var(--ink);color:var(--off-white);overflow:hidden;isolation:isolate}
.media-hero .hero-bg{position:absolute;inset:0;z-index:-2}
.media-hero .hero-bg img{width:100%;height:100%;object-fit:cover}
.media-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(17,17,16,.5) 0%,rgba(17,17,16,.1) 35%,rgba(17,17,16,.85) 100%)}
.media-hero .container{padding-block:calc(var(--header-h) + 3rem) clamp(1.75rem,1.5rem + 1.6vw,3rem)}
.media-hero .h1{max-width:18ch;margin-bottom:.9rem}
.media-hero .lead{color:rgba(250,248,244,.86);max-width:50ch}
.brand-chip{display:inline-flex;align-items:center;gap:.6rem;font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;margin-bottom:1.25rem}
.brand-chip::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--brand)}

/* Entity definition box (GEO) */
.entity{border-top:1px solid var(--ink);padding-top:1.5rem;display:grid;gap:1.5rem}
.entity p:not(.eyebrow){font-size:var(--fs-lead);line-height:1.5;margin:0;max-width:60ch}
.kv{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.kv div{display:grid;grid-template-columns:minmax(8rem,34%) 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.kv dt{color:var(--stone)}
.kv dd{margin:0;font-weight:500}
@media (min-width:1024px){.entity{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gutter)}}

.gallery{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}
.gallery figure{margin:0;overflow:hidden;background:var(--warm-white);aspect-ratio:4/3}
.gallery figure:first-child{grid-column:span 2;aspect-ratio:16/9}
.gallery img{width:100%;height:100%;object-fit:cover}
@media (min-width:1024px){.gallery{grid-template-columns:repeat(4,1fr)}.gallery figure:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}

.list-lines{list-style:none;border-top:1px solid var(--line)}
.list-lines li{padding:1rem 0;border-bottom:1px solid var(--line);display:grid;gap:.25rem}
.list-lines b{font-weight:600}
.list-lines span{color:var(--stone);font-size:.92rem}
.section-dark .list-lines,.section-dark .list-lines li{border-color:var(--line-dark)}
.section-dark .list-lines span{color:rgba(250,248,244,.6)}

.related{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.related a{display:grid;gap:.4rem;padding:1.5rem;background:var(--off-white);text-decoration:none;position:relative}
.related a::before{content:"";position:absolute;left:0;top:0;width:0;height:2px;background:var(--brand);transition:width .4s var(--ease)}
.related a:hover::before{width:100%}
.related b{font-family:var(--serif);font-size:1.6rem;font-weight:400;line-height:1.1}
.related span{font-size:.9rem;color:var(--stone)}
@media (min-width:768px){.related{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.related{grid-template-columns:repeat(3,1fr)}}

.qa{border-top:1px solid var(--line)}
.qa > div{padding:1.5rem 0;border-bottom:1px solid var(--line);display:grid;gap:.5rem}
.qa h3{font-family:var(--sans);font-size:1.05rem;font-weight:600}
.qa p{margin:0;color:var(--graphite);max-width:70ch}
@media (min-width:1024px){.qa > div{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--gutter)}}

.article-head{max-width:900px}
.article-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.875rem;color:var(--stone);margin-top:1.5rem}
.article-figure{margin:0 0 3rem}
.article-figure img{width:100%;aspect-ratio:16/9;object-fit:cover}
.article-figure figcaption{font-size:.8125rem;color:var(--stone);margin-top:.6rem}
.source-note{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--line);font-size:.875rem;color:var(--stone)}

.contact-cards{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.contact-cards > div{background:var(--off-white);padding:1.75rem;display:grid;gap:.5rem;align-content:start}
.contact-cards h3{font-family:var(--serif);font-size:1.6rem;line-height:1.1}
.contact-cards a{word-break:break-word}
@media (min-width:768px){.contact-cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.contact-cards{grid-template-columns:repeat(3,1fr)}}

.notice{padding:1rem 1.25rem;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.9rem;color:var(--graphite);background:var(--warm-white)}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:rgba(250,248,244,.72);padding-block:clamp(4rem,3rem + 4vw,7rem) calc(2rem + env(safe-area-inset-bottom,0px));font-size:.9375rem}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--off-white);text-decoration:underline}
.footer-top{display:grid;gap:2.5rem}
.footer-brand .wordmark{color:var(--off-white);margin-bottom:1.25rem}
.footer-brand p{max-width:36ch}
.footer-col h2{font-family:var(--sans);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:rgba(250,248,244,.5);margin-bottom:1rem}
.footer-col ul,.footer-social{list-style:none}
.footer-col li{margin-bottom:.15rem}
.footer-col li a{display:inline-flex;align-items:center;min-height:36px;color:rgba(250,248,244,.88)}
.footer-col address{margin-bottom:1rem;line-height:1.7}
.footer-col address strong{color:var(--off-white);font-weight:600}
.footer-contact a{color:rgba(250,248,244,.88);display:inline-block;padding:.2rem 0}
.footer-social{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.5rem}
.footer-social a{display:inline-flex;min-height:44px;align-items:center;color:rgba(250,248,244,.88)}
.footer-bottom{display:flex;flex-direction:column;gap:1rem;border-top:1px solid var(--line-dark);margin-top:3.5rem;padding-top:1.5rem;font-size:.8125rem}
.footer-bottom p{margin:0}
.footer-bottom ul{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;list-style:none}
.footer-bottom a,.footer-bottom .linklike{display:inline-flex;min-height:44px;align-items:center;color:rgba(250,248,244,.72);text-decoration:none}
.footer-bottom .linklike:hover{color:var(--off-white);text-decoration:underline}
@media (max-width:767px){
  .site-footer{padding-block:2.75rem calc(1.25rem + env(safe-area-inset-bottom,0px));font-size:.875rem}
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.25rem}
  .footer-brand,.footer-top>.footer-col:last-child{grid-column:1/-1}
  .footer-brand{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;align-items:center}
  .footer-brand .brand{margin-bottom:0}
  .footer-brand .brand-footer .brand-logo{width:64px;height:64px}
  .footer-brand p{font-size:.8125rem;line-height:1.55;margin:0}
  .footer-social{grid-column:1/-1;margin-top:.5rem;gap:0 1.25rem}
  .footer-social a{min-height:40px}
  .footer-col h2{margin-bottom:.5rem}
  .footer-col li{margin-bottom:0}
  .footer-col li a{min-height:34px;font-size:.84rem}
  .footer-col address{line-height:1.6;margin-bottom:.5rem}
  .footer-bottom{margin-top:2rem;padding-top:1rem;gap:.25rem;font-size:.75rem}
  .footer-bottom ul{gap:0 1.1rem}
  .footer-bottom a,.footer-bottom .linklike{min-height:36px}
}
@media (min-width:768px){.footer-top{grid-template-columns:repeat(2,1fr)}.footer-bottom{flex-direction:row;justify-content:space-between;align-items:center}}
@media (min-width:1024px){.footer-top{grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2.5fr))}}

/* Cookie dialog */
.cookie-dialog{max-width:min(520px,calc(100vw - 2rem));border:1px solid var(--line-strong);border-radius:var(--radius);padding:1.75rem;background:var(--off-white);color:var(--ink)}
.cookie-dialog::backdrop{background:rgba(17,17,16,.5)}
.cookie-dialog h2{font-family:var(--serif);font-size:1.8rem;margin-bottom:.75rem}

/* ---------- Reveal (progressive; content visible without JS) ---------- */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
  .js [data-reveal].is-in{opacity:1;transform:none}
}

/* ---------- Print ---------- */
@media print{.site-header,.site-footer,.hero-media,.skip-link{display:none!important}body{background:#fff}}

/* ---------- Tables ---------- */
.biz-table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:640px}
.biz-table th,.biz-table td{text-align:left;padding:1rem 1rem 1rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.biz-table thead th{font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--stone);padding-block:.9rem}
.biz-table tbody th{font-weight:600;position:relative;padding-left:1.1rem}
.biz-table tbody th::before{content:"";position:absolute;left:0;top:1.45rem;width:7px;height:7px;border-radius:50%;background:var(--brand,var(--ink))}
.biz-table a{text-decoration:none}
.biz-table a:hover{text-decoration:underline}
.biz-table .i{width:14px;height:14px;display:inline-block;vertical-align:-2px}

/* Our story rows */
.story-row-img img{width:100%;aspect-ratio:16/9;object-fit:cover;filter:grayscale(.25)}
@media (min-width:1024px){.story-row{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}.story-row-img{justify-self:end;width:100%}}
.menu-toggle .i-close{display:none}
.menu-toggle[aria-expanded="true"] .i-menu{display:none}
.menu-toggle[aria-expanded="true"] .i-close{display:block}

/* =========================================================
   Round 2: official logo, editorial quotes, hover, motion
   ========================================================= */

/* Official Della Group logo (square mark, never distorted) */
.brand{display:inline-flex;align-items:center;flex:none;line-height:0;border-radius:3px;transition:opacity .3s}
.brand:hover{opacity:.88}
.brand-logo{width:44px;height:44px;object-fit:contain;display:block;box-shadow:0 0 0 1px rgba(17,17,16,.08)}
@media (min-width:1024px){.brand-logo{width:56px;height:56px}}
.brand-footer .brand-logo{width:96px;height:96px;box-shadow:0 0 0 1px rgba(250,248,244,.12)}
@media (min-width:1024px){.brand-footer .brand-logo{width:112px;height:112px}}
.footer-brand .brand{margin-bottom:1.25rem}

/* Editorial founder quote */
.quote{position:relative;margin:1.75rem 0;padding:1.5rem 0 0 0;border-top:1px solid var(--line-strong);max-width:46rem}
.quote-mark{position:absolute;top:-.12em;left:-.04em;font-family:var(--serif);font-size:clamp(4.5rem,3.5rem + 4vw,7rem);line-height:1;color:var(--stone-light);opacity:.55;pointer-events:none;user-select:none}
.quote blockquote{margin:0;padding:clamp(1.9rem,1.5rem + 1.6vw,2.8rem) 0 0 clamp(.25rem,.1rem + .6vw,1rem)}
.quote blockquote p{margin:0;font-family:var(--serif);font-size:clamp(1.3rem,1.1rem + .95vw,1.95rem);line-height:1.25;letter-spacing:-.005em;color:var(--ink);text-wrap:pretty}
.quote-lg blockquote p{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.5rem);line-height:1.18}
.quote figcaption{display:grid;gap:.1rem;margin-top:1.1rem;padding-left:clamp(.25rem,.1rem + .6vw,1rem)}
.quote-name{font-weight:600;font-size:.95rem;letter-spacing:.01em}
.quote-role{font-size:.8125rem;color:var(--stone);letter-spacing:.04em}
.quote-source{font-size:.75rem;color:var(--stone-light);margin-top:.35rem}
.quote-source a{color:inherit}
.section-dark .quote{border-top-color:var(--line-dark)}
.section-dark .quote blockquote p{color:var(--off-white)}
.section-dark .quote-role,.section-dark .quote-source{color:rgba(250,248,244,.6)}

/* Mega-menu entrance */
@media (prefers-reduced-motion:no-preference){
  .mega:not([hidden]){animation:megaIn .38s var(--ease) both}
  .mega:not([hidden]) .mega-item{animation:megaItem .5s var(--ease) both}
  .mega:not([hidden]) .mega-item:nth-child(2){animation-delay:.03s}
  .mega:not([hidden]) .mega-item:nth-child(3){animation-delay:.06s}
  .mega:not([hidden]) .mega-item:nth-child(4){animation-delay:.09s}
  .mega:not([hidden]) .mega-item:nth-child(5){animation-delay:.12s}
  .mega:not([hidden]) .mega-item:nth-child(6){animation-delay:.15s}
  .mega:not([hidden]) .mega-item:nth-child(7){animation-delay:.18s}
  .mobile-menu:not([hidden]){animation:megaIn .3s var(--ease) both}
}
@keyframes megaIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes megaItem{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.mega-item{transition:background-color .3s}
.mega-item:hover{background:var(--white)}
.mega-name{transition:transform .35s var(--ease)}
.mega-card:hover .mega-name{transform:translateX(3px)}

/* Navigation underline: grows from the left, retracts to the right */
.nav-link::after{transform-origin:right;transition:transform .45s var(--ease)}
.nav-link:hover::after,.nav-link.is-active::after,.nav-link[aria-expanded="true"]::after{transform:scaleX(1);transform-origin:left}

/* Buttons: smooth fill, arrow travel, press feedback */
.btn{position:relative;overflow:hidden;isolation:isolate;transition:background-color .35s,color .35s,border-color .35s,transform .2s}
.btn:active{transform:scale(.98)}
.btn-secondary::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(101%);transition:transform .45s var(--ease)}
.btn-secondary:hover{color:var(--off-white);border-color:var(--ink)}
.btn-secondary:hover::before{transform:none}
.section-dark .btn-secondary::before,.on-dark .btn-secondary::before{background:var(--off-white)}
.section-dark .btn-secondary:hover,.on-dark .btn-secondary:hover{color:var(--ink)}
.link-arrow{background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;border-bottom:0;transition:background-size .45s var(--ease)}
.link-arrow:hover{background-size:100% 1px;border-bottom:0}

/* Business cards: zoom, overlay, content lift, CTA travel, elevation */
.eco-card{transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.eco-card::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(17,17,16,.18);opacity:0;transition:opacity .6s var(--ease);pointer-events:none}
.eco-media img{transition:transform 1.4s var(--ease)}
.eco-mark,.eco-actions{transition:opacity .5s var(--ease),transform .5s var(--ease)}
@media (hover:hover) and (min-width:1024px){
  .eco-card:hover{transform:translateY(-4px);box-shadow:0 30px 60px -32px rgba(17,17,16,.55)}
  .eco-card:hover::after{opacity:1}
  .eco-card:hover .eco-media img{transform:scale(1.06)}
  .eco-mark{opacity:.72}
  .eco-card:hover .eco-mark,.eco-card:focus-within .eco-mark{opacity:1}
  .eco-actions{transform:translateY(4px)}
  .eco-card:hover .eco-actions,.eco-card:focus-within .eco-actions{transform:none}
}

/* Images: gentle depth on hover */
.gallery figure,.thread-img,.founder-portrait,.story-row-img{overflow:hidden}
.gallery img,.thread-img img,.founder-portrait img,.story-row-img img,.evo-img img{transition:transform 1.1s var(--ease),filter .6s}
@media (hover:hover){
  .gallery figure:hover img,.thread-img:hover img,.story-row-img:hover img{transform:scale(1.04)}
  .founder-portrait:hover img{transform:scale(1.02)}
  .evo-step:hover .evo-img img{transform:scale(1.05);filter:grayscale(0)}
}
.related a{transition:background-color .35s,transform .35s var(--ease)}
.related a:hover{background:var(--white)}
.related a b{transition:transform .35s var(--ease)}
.related a:hover b{transform:translateX(4px)}
.fp-tag{transition:border-color .3s,background-color .3s}
a.fp-tag:hover{background:rgba(250,248,244,.08)}

/* GSAP helpers: line masks for text reveals (only when motion is allowed) */
.line-mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.line-mask > span{display:block;will-change:transform}

/* Evolution: pinned horizontal story on desktop (GSAP adds .is-pinned) */
.evo-progress{display:none}
@media (min-width:1024px){
  #evolution.is-pinned{overflow:hidden}
  #evolution.is-pinned .evo{overflow:visible;scroll-snap-type:none;cursor:default;padding-bottom:0;will-change:transform}
  #evolution.is-pinned .evo-controls{display:none}
  #evolution.is-pinned .evo-progress{display:block;height:1px;background:var(--line-dark);margin-top:2rem;position:relative}
  #evolution.is-pinned .evo-progress span{position:absolute;inset:0;background:var(--off-white);transform-origin:left;transform:scaleX(0)}
}
.gsap-on [data-reveal]{transition:none}
.thread-text{display:grid;gap:.85rem;align-content:start}
.thread-word{margin:0}
/* Keep absolutely-positioned helper text inside scrolling table wrappers */
.table-wrap,[style*="overflow-x:auto"]{position:relative}
/* Long emails, domains and URLs wrap instead of widening the page */
.kv dd,.source-note,.contact-cards,.quote-source,.footer-contact{overflow-wrap:anywhere}
.entity > *,.split > *,.kv div > *{min-width:0}
.btn{max-width:100%;white-space:normal;text-align:center}

/* =========================================================
   Careers: listing, job page, application form
   ========================================================= */
.careers-kpis{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;margin:1.5rem 0 1.75rem;padding:1rem 0;border-block:1px solid var(--line-dark)}
.careers-kpis dt{font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:rgba(250,248,244,.6);font-weight:600}
.careers-kpis dd{margin:.2rem 0 0;font-family:var(--serif);font-size:clamp(1.3rem,1.1rem + .8vw,1.8rem);color:var(--off-white)}

.job-filters{display:none;gap:.85rem;margin-bottom:.75rem;position:sticky;top:calc(var(--header-h) + env(safe-area-inset-top,0px));z-index:20;background:var(--off-white);padding:.85rem 0;border-bottom:1px solid var(--line)}
.job-filters.is-ready{display:grid}
.jf-search{position:relative;display:flex;align-items:center}
.jf-search .i{position:absolute;left:1rem;width:18px;height:18px;color:var(--stone)}
.job-filters input[type=search],.job-filters select{width:100%;min-height:48px;padding:.7rem 1rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--white);font:inherit;font-size:.95rem;color:var(--ink);transition:border-color .25s,box-shadow .25s}
.job-filters input[type=search]{padding-left:2.75rem}
.job-filters select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b665e' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;cursor:pointer}
.job-filters input:focus,.job-filters select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(17,17,16,.08)}
.jf-selects{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.jf-chips{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.jf-chips::-webkit-scrollbar{display:none}
.jf-chip{flex:none;display:inline-flex;align-items:center;gap:.5rem;min-height:40px;padding:.45rem .95rem;border:1px solid var(--line-strong);border-radius:999px;background:transparent;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}
.jf-chip span{font-size:.75rem;color:var(--stone);font-variant-numeric:tabular-nums}
.jf-chip:hover{border-color:var(--ink)}
.jf-chip.is-active{background:var(--ink);color:var(--off-white);border-color:var(--ink)}
.jf-chip.is-active span{color:rgba(250,248,244,.7)}
.jf-chip[data-jf-biz]:not([data-jf-biz=""])::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand)}
@media (min-width:1024px){.job-filters.is-ready{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center}.jf-chips{grid-column:1 / -1}}
.jf-count{font-size:.875rem;color:var(--stone);margin:.25rem 0 1.25rem}

.job-grid{list-style:none;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media (min-width:700px){.job-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.job-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.job-card{background:var(--off-white);position:relative}
.job-card[hidden]{display:none!important}
.job-card::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--brand);transition:width .45s var(--ease)}
.job-card a{display:grid;gap:.55rem;align-content:start;height:100%;padding:1.35rem 1.35rem 1.25rem;text-decoration:none;transition:background-color .3s}
.job-card:hover::before,.job-card:focus-within::before{width:100%}
.job-card a:hover{background:var(--white)}
.job-top{display:flex;justify-content:space-between;gap:1rem;font-size:.75rem;letter-spacing:.06em}
.job-biz{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em}
.job-biz::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand)}
.job-posted{color:var(--stone);white-space:nowrap}
.job-title{font-family:var(--serif);font-size:clamp(1.2rem,1.1rem + .4vw,1.45rem);line-height:1.2;margin-top:.25rem}
.job-sub{font-size:.875rem;color:var(--stone)}
.job-meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.875rem;color:var(--graphite)}
.job-meta span{display:inline-flex;align-items:center;gap:.35rem}
.job-meta .i{width:15px;height:15px;color:var(--stone)}
.job-cta{display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.875rem;font-weight:600}
.job-cta .i{width:16px;height:16px;transition:transform .3s var(--ease)}
.job-card a:hover .job-cta .i{transform:translateX(4px)}
.job-empty{padding:2.5rem 0;display:grid;gap:.75rem;justify-items:start;max-width:52ch}

.hire-steps{list-style:none;display:grid;gap:0;border-top:1px solid var(--ink)}
.hire-steps li{display:grid;gap:.35rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.hire-n{font-family:var(--serif);font-size:1.6rem;color:var(--stone-light);line-height:1}
.hire-steps h3{font-family:var(--sans);font-size:1.05rem;font-weight:600}
.hire-steps p{margin:0;color:var(--stone);font-size:.95rem}
@media (min-width:1024px){.hire-steps{grid-template-columns:repeat(4,1fr);border-bottom:0}.hire-steps li{padding:1.75rem 1.75rem 0 0;border-bottom:0}}

/* Job page */
.job-hero{padding-block:clamp(1.5rem,1.2rem + 1.5vw,3rem) clamp(1.25rem,1rem + 1vw,2rem);border-bottom:1px solid var(--line)}
.job-hero .h1{max-width:24ch;font-size:clamp(1.9rem,1.4rem + 2vw,3.25rem);margin-bottom:.9rem}
.job-hero-meta{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem .6rem;margin:0 0 1.5rem}
.job-hero-meta li{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .8rem;border:1px solid var(--line-strong);border-radius:999px;font-size:.84rem}
.job-hero-meta .i{width:14px;height:14px}
.job-layout{display:grid;gap:2rem;padding-block:clamp(2rem,1.5rem + 2vw,3.5rem)}
.job-body h2{margin:0 0 .75rem}
.job-body h2:not(:first-child){margin-top:2.25rem}
.job-body h3{font-family:var(--sans);font-size:1rem;font-weight:600;margin:1.6em 0 .5em;letter-spacing:.01em}
.job-body ul{padding-left:1.1em}
.job-body li::marker{color:var(--stone-light)}
.job-facts{border:1px solid var(--line);background:var(--white);padding:1.25rem 1.25rem 1.5rem}
.job-facts h2{font-size:var(--fs-eyebrow);margin-bottom:.5rem}
.job-facts .kv{margin-bottom:1.25rem}
.job-facts .kv div{grid-template-columns:minmax(6.5rem,38%) 1fr;font-size:.9rem;padding:.65rem 0}
@media (min-width:1024px){.job-layout{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(2rem,1.5rem + 3vw,5rem);align-items:start}.job-aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}}

/* Application form */
.apply-wrap{display:grid;gap:2rem}
@media (min-width:1024px){.apply-wrap{grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:clamp(2rem,1.5rem + 3vw,5rem);align-items:start}.apply-intro{position:sticky;top:calc(var(--header-h) + 1.5rem)}}
.apply-steps{margin:1.5rem 0 0;padding-left:1.2em;color:var(--graphite);display:grid;gap:.4rem;font-size:.95rem}
.apply-form,.apply-done{background:var(--white);border:1px solid var(--line);padding:clamp(1.25rem,1rem + 1.5vw,2.25rem);display:grid;gap:1.1rem}
.apply-done{outline:none}
.field{display:grid;gap:.4rem;min-width:0;align-content:start}
.field-row{display:grid;gap:1.1rem}
@media (min-width:640px){.field-row{grid-template-columns:1fr 1fr}}
.field label,.field-label{font-size:.875rem;font-weight:600}
.field label > span[aria-hidden="true"],.field-label > span[aria-hidden="true"]{color:#a4352a}
.field input[type=text],.field input[type=email],.field input[type=tel],.field select{width:100%;min-height:48px;padding:.7rem .9rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--off-white);font:inherit;color:var(--ink);transition:border-color .25s,box-shadow .25s,background-color .25s}
.field input:focus,.field select:focus{outline:none;border-color:var(--ink);background:var(--white);box-shadow:0 0 0 3px rgba(17,17,16,.08)}
.field [aria-invalid=true]{border-color:#a4352a;background:#fdf6f5}
.field-hint{margin:0;font-size:.78rem;color:var(--stone)}
.field-err{margin:0;font-size:.8125rem;color:#a4352a;font-weight:500}
.file-drop{position:relative;display:grid;gap:.25rem;justify-items:center;text-align:center;padding:1.25rem;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--off-white);cursor:pointer;transition:border-color .25s,background-color .25s}
.file-drop:hover,.file-drop.is-drag{border-color:var(--ink);background:var(--white)}
.file-drop.has-file{border-style:solid;border-color:var(--ink)}
.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.file-drop:focus-within{outline:2px solid var(--ink);outline-offset:2px}
.file-drop-text{font-size:.9rem;overflow-wrap:anywhere}
.check{display:inline-flex;align-items:center;gap:.55rem;font-size:.9rem;font-weight:400!important;min-height:44px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--ink)}
.captcha-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.captcha-row img{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);max-width:215px;height:auto}
.captcha-field input{max-width:220px;letter-spacing:.2em}
.apply-status{padding:.85rem 1rem;border-left:3px solid #a4352a;background:#fdf6f5;font-size:.9rem;color:#6f2019}
.apply-form .btn-primary{justify-self:start}

/* Consent banner (only rendered when a Meta Pixel ID is configured) */
.consent-banner{position:fixed;z-index:150;left:max(1rem,env(safe-area-inset-left));right:max(1rem,env(safe-area-inset-right));bottom:calc(1rem + env(safe-area-inset-bottom,0px));max-width:560px;margin-inline:auto;background:var(--ink);color:var(--off-white);padding:1.1rem 1.25rem;border-radius:var(--radius);box-shadow:0 20px 50px -20px rgba(0,0,0,.5);display:grid;gap:.85rem;font-size:.9rem}
.consent-banner p{margin:0;color:rgba(250,248,244,.85)}
.consent-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}
.consent-banner .btn-primary{background:var(--off-white);color:var(--ink)}
.consent-banner .btn-secondary{border-color:rgba(250,248,244,.35);color:var(--off-white)}
/* reCAPTCHA + honeypot */
.recaptcha-box{min-height:78px;display:flex;align-items:center}
.recaptcha-box iframe{max-width:100%}
@media (max-width:360px){.recaptcha-box > div{transform:scale(.9);transform-origin:left center}}
.hp-field{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

/* =========================================================
   Townships (live from the Della Townships CMS)
   ========================================================= */
.tw-grid{list-style:none;display:grid;gap:clamp(.75rem,.5rem + 1vw,1.25rem)}
@media (min-width:640px){.tw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.tw-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tw-card{background:var(--white);border:1px solid var(--line);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.tw-card a{display:grid;height:100%;text-decoration:none;color:inherit}
.tw-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--warm-white)}
.tw-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.tw-acres{position:absolute;left:.75rem;top:.75rem;padding:.3rem .65rem;border-radius:999px;background:rgba(17,17,16,.72);color:var(--off-white);font-size:.75rem;font-weight:600;letter-spacing:.04em;backdrop-filter:blur(4px)}
.tw-body{display:grid;gap:.4rem;align-content:start;padding:1.1rem 1.15rem 1.25rem}
.tw-city{font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--stone)}
.tw-name{font-family:var(--serif);font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.15}
.tw-tagline{font-size:.9rem;color:var(--graphite)}
.tw-themes{font-size:.8rem;color:var(--stone)}
.tw-facts{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-top:.35rem;font-size:.84rem}
.tw-facts b{font-weight:600;color:var(--stone);margin-right:.2rem}
.tw-collab{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--line);font-size:.75rem;color:var(--stone)}
.tw-collab img{height:32px;width:auto;max-width:170px;object-fit:contain}
.tw-cta{display:inline-flex;align-items:center;gap:.35rem;margin-top:.5rem;font-size:.84rem;font-weight:600}
.tw-cta .i{width:14px;height:14px;transition:transform .3s var(--ease)}
@media (hover:hover){.tw-card:hover{transform:translateY(-3px);box-shadow:0 24px 50px -30px rgba(17,17,16,.35)}.tw-card:hover .tw-media img{transform:scale(1.05)}.tw-card:hover .tw-cta .i{transform:translate(2px,-2px)}}

/* =========================================================
   Awards (live from the awards master)
   ========================================================= */
.aw-filters{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;padding:.25rem 0 .5rem;position:sticky;top:calc(var(--header-h) + env(safe-area-inset-top,0px));z-index:20;background:var(--off-white)}
.aw-filters::-webkit-scrollbar{display:none}
.aw-filters .jf-chip[data-aw-filter^="biz:"]::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand)}
.aw-grid{list-style:none;display:grid;gap:clamp(.75rem,.5rem + 1vw,1.25rem);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:768px){.aw-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.aw-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.aw-card[hidden]{display:none!important}
.aw-card figure{margin:0;display:grid;gap:.75rem;height:100%;align-content:start}
.aw-media{display:block;width:100%;padding:0;border:1px solid var(--line);background:var(--white);cursor:zoom-in;aspect-ratio:300/380;overflow:hidden}
.aw-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
@media (hover:hover){.aw-media:hover img{transform:scale(1.04)}}
.aw-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--stone)}
.aw-meta span{display:inline-flex;align-items:center;gap:.35rem}
.aw-meta span::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--brand,var(--stone))}
.aw-meta .is-founder{--brand:#b8923f}
.aw-card figcaption{display:grid;gap:.35rem;align-content:start}
@media (max-width:599px){
  .aw-grid{gap:1.5rem .75rem}
  .aw-card figure{gap:.6rem}
  .aw-meta{flex-direction:column;align-items:flex-start;gap:.2rem;font-size:.625rem;letter-spacing:.08em;line-height:1.5;min-height:calc(3em + .2rem)}
  .aw-meta span{max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;position:relative;padding-left:12px}
  .aw-meta span::before{position:absolute;left:0;top:50%;margin-top:-3.5px}
  .aw-title{font-size:.875rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .aw-sub{font-size:.75rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
}
.aw-title{font-family:var(--sans);font-size:.95rem;font-weight:600;line-height:1.35}
.aw-sub{margin:0;font-size:.84rem;color:var(--stone);line-height:1.45}
.aw-dialog{max-width:min(720px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);padding:1rem;border:0;border-radius:var(--radius);background:var(--off-white)}
.aw-dialog::backdrop{background:rgba(17,17,16,.8)}
.aw-dialog img{max-height:calc(100vh - 9rem);width:auto;margin:0 auto}
.aw-dialog p{margin:.75rem 0 0;font-size:.9rem;text-align:center}
.aw-close{position:absolute;right:.5rem;top:.25rem;width:44px;height:44px;border:0;background:transparent;font-size:1.8rem;cursor:pointer}
/* Collaborator logos from the CMS are white (made for dark backgrounds): show them on a dark band */
.tw-collab{background:var(--ink);color:rgba(250,248,244,.7);border-top:0;margin:.6rem -1.15rem 0;padding:.7rem 1.15rem;min-height:52px}
.tw-collab b{color:var(--off-white);font-weight:600;letter-spacing:.04em}
/* reCAPTCHA v3: hide the floating badge (Google permits this when the notice text is shown in the form) */
.grecaptcha-badge{visibility:hidden}
.recaptcha-note{margin:0;font-size:.75rem;color:var(--stone-light)}
.recaptcha-note a{color:inherit}

/* =========================================================
   Press & media (live from the Della Townships CMS)
   ========================================================= */
.pr-grid{list-style:none;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media (min-width:640px){.pr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.pr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pr-card{background:var(--off-white);position:relative}
.pr-inner{display:grid;grid-template-rows:auto 1fr;width:100%;height:100%;padding:0;border:0;background:none;text-align:left;font:inherit;color:inherit;text-decoration:none;cursor:pointer;transition:background-color .3s}
div.pr-inner{cursor:default}
.pr-inner:hover{background:var(--white)}
.pr-media{display:block;aspect-ratio:584/400;overflow:hidden;background:var(--warm-white)}
.pr-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.pr-inner:hover .pr-media img{transform:scale(1.04)}
.pr-outlet-mark{display:grid;place-items:center;height:100%;padding:1rem;font-family:var(--serif);font-size:clamp(1.2rem,1rem + .8vw,1.6rem);text-align:center;color:var(--stone);background:linear-gradient(135deg,var(--warm-white),var(--off-white))}
.pr-body{display:grid;gap:.45rem;align-content:start;padding:1rem 1.1rem 1.2rem}
.pr-meta{display:flex;justify-content:space-between;gap:.75rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--stone)}
.pr-outlet{color:var(--ink)}
.pr-meta time{white-space:nowrap;font-weight:500}
.pr-headline{font-family:var(--serif);font-size:1.08rem;line-height:1.3;font-weight:400}
.pr-biz{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--stone)}
.pr-biz::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand)}
.pr-cta{display:inline-flex;align-items:center;gap:.35rem;margin-top:.25rem;font-size:.8125rem;font-weight:600}
.pr-cta .i{width:14px;height:14px;transition:transform .3s var(--ease)}
.pr-inner:hover .pr-cta .i-external{transform:translate(2px,-2px)}
.pr-filters{position:static}
.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;margin-top:2rem}
.pager ol{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none}
.pager li a,.pager li span{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 .5rem;border:1px solid var(--line-strong);border-radius:999px;text-decoration:none;font-size:.9rem}
.pager li a:hover{border-color:var(--ink)}
.pager li span[aria-current]{background:var(--ink);color:var(--off-white);border-color:var(--ink)}
.pager li[aria-hidden]{display:inline-grid;place-items:center;min-width:24px;color:var(--stone)}
/* Founder portraits in inner pages */
.portrait-figure{margin:1.75rem 0 0}
.portrait-figure .founder-portrait{position:relative;top:auto;max-width:460px}
.philosophy{display:grid;gap:clamp(1.75rem,1.25rem + 2.4vw,4rem)}
@media (min-width:1024px){.philosophy{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}.philosophy .portrait-figure{margin:0;position:sticky;top:calc(var(--header-h) + 2rem)}.philosophy .founder-portrait{max-width:none}}
.file-drop.is-invalid{border-color:#a4352a;background:#fdf6f5}
/* Upcoming townships (CMS) */
.tw-up{list-style:none;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media (min-width:640px){.tw-up{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.tw-up{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tw-up a{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;padding:.8rem 1rem;background:var(--off-white);text-decoration:none;transition:background-color .3s}
.tw-up a:hover{background:var(--white)}
.tw-up img{width:72px;height:58px;object-fit:cover}
.tw-up b{display:block;font-family:var(--serif);font-weight:400;font-size:1.05rem;line-height:1.2}
.tw-up small{display:block;font-size:.8rem;color:var(--stone);margin-top:.15rem}
.tw-up .i{width:14px;height:14px;color:var(--stone)}
.fp-dot.is-office{fill:transparent;stroke:var(--off-white);stroke-width:1.5}
.tw-up{gap:0;background:none;border:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.tw-up li{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
/* Township cards: brand wording blocks */
.tw-themes{letter-spacing:.06em;font-size:.72rem;font-weight:600;color:var(--stone)}
.tw-locality{display:inline-flex;align-items:center;gap:.3rem;font-size:.84rem;color:var(--stone)}
.tw-locality .i{width:13px;height:13px}
.tw-facts b{color:var(--ink);font-weight:600;margin:0 .15rem 0 0}
.tw-launch{display:grid;gap:.1rem;margin-top:.45rem;padding-top:.6rem;border-top:1px solid var(--line);font-size:.8rem;color:var(--stone)}
.tw-launch b{font-weight:600;color:var(--ink);font-size:.86rem}

/* =========================================================
   Projects portfolio
   ========================================================= */
.proj-kpis{display:flex;flex-wrap:wrap;gap:1rem 2.75rem;margin:1.75rem 0 0;padding-top:1.25rem;border-top:1px solid var(--line)}
.proj-kpis dt{font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--stone);font-weight:600}
.proj-kpis dd{margin:.25rem 0 0;font-family:var(--serif);font-size:clamp(1.6rem,1.3rem + 1.2vw,2.4rem);line-height:1}
.proj-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;position:sticky;top:calc(var(--header-h) + env(safe-area-inset-top,0px));z-index:20;background:var(--off-white);padding-block:.75rem;border-bottom:1px solid var(--line)}
.proj-tabs > a{display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:.45rem 1rem;border:1px solid var(--line-strong);border-radius:999px;text-decoration:none;font-size:.9rem;font-weight:500;transition:background-color .25s,color .25s,border-color .25s}
.proj-tabs > a span{font-size:.75rem;color:var(--stone)}
.proj-tabs > a:hover{border-color:var(--ink)}
.proj-tabs > a[aria-current]{background:var(--ink);color:var(--off-white);border-color:var(--ink)}
.proj-tabs > a[aria-current] span{color:rgba(250,248,244,.7)}
.proj-search{position:relative;display:flex;align-items:center;margin-left:auto;flex:1 1 240px;max-width:340px}
.proj-search .i{position:absolute;left:.9rem;width:17px;height:17px;color:var(--stone)}
.proj-search input{width:100%;min-height:42px;padding:.55rem 1rem .55rem 2.5rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--white);font:inherit;font-size:.9rem}
.proj-search input:focus{outline:none;border-color:var(--ink)}
@media (max-width:640px){.proj-search{margin-left:0;max-width:none;flex-basis:100%}}
.proj-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(.75rem,.5rem + .8vw,1.25rem);grid-auto-flow:dense}
.proj-card[hidden]{display:none!important}
.proj-card a{display:grid;height:100%;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--line);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.proj-media{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:var(--warm-white)}
.proj-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s;filter:saturate(.92)}
.proj-count{position:absolute;right:.6rem;bottom:.6rem;padding:.25rem .6rem;border-radius:999px;background:rgba(17,17,16,.72);color:var(--off-white);font-size:.72rem;font-weight:600}
.proj-body{display:grid;gap:.3rem;align-content:start;padding:.9rem 1rem 1.1rem}
.proj-cat{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--stone)}
.proj-title{font-family:var(--serif);font-size:1.18rem;line-height:1.2;font-weight:400}
.proj-client,.proj-area{font-size:.84rem;color:var(--stone);line-height:1.4}
@media (min-width:900px){.proj-card.is-wide{grid-column:span 2}.proj-card.is-wide .proj-media{aspect-ratio:2/1}}
@media (hover:hover){.proj-card a:hover{transform:translateY(-3px);box-shadow:0 22px 44px -28px rgba(17,17,16,.4)}.proj-card a:hover .proj-media img{transform:scale(1.05);filter:saturate(1)}}

.proj-head{padding-block:clamp(1.5rem,1.2rem + 1.5vw,3rem) clamp(1rem,.8rem + 1vw,1.75rem)}
.proj-head .h1{max-width:22ch;margin-bottom:.6rem}
.proj-layout{display:grid;gap:2rem;padding-bottom:clamp(2rem,1.5rem + 2vw,3.5rem)}
@media (min-width:1024px){.proj-layout{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(2rem,1.5rem + 2.5vw,4rem);align-items:start}.proj-facts{position:sticky;top:calc(var(--header-h) + 1.5rem)}}
.proj-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}
.proj-gallery.is-single{grid-template-columns:minmax(0,420px)}
.proj-shot{display:block;padding:0;border:1px solid var(--line);background:var(--white);cursor:zoom-in;aspect-ratio:1/1;overflow:hidden}
.proj-shot img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
@media (hover:hover){.proj-shot:hover img{transform:scale(1.04)}}
.proj-facts{border:1px solid var(--line);background:var(--white);padding:1.25rem 1.25rem 1.5rem}
.proj-pn{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;padding-block:1.5rem 3rem;border-top:1px solid var(--line)}
.proj-pn a{display:grid;gap:.15rem;text-decoration:none}
.proj-pn b{font-family:var(--serif);font-weight:400;font-size:1.15rem}
.proj-pn a:hover b{text-decoration:underline;text-underline-offset:.15em}
.proj-pn-all{font-size:.875rem;font-weight:600;text-align:center}
@media (max-width:640px){.proj-pn{grid-template-columns:1fr 1fr}.proj-pn-all{grid-column:1 / -1;order:3}}

/* =========================================================
   Clients
   ========================================================= */
.client-strip{display:grid;gap:.9rem;padding-block:clamp(1.5rem,1rem + 2vw,2.75rem);border-block:1px solid var(--line);overflow:hidden;background:var(--white)}
.client-track{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.client-track ul{display:flex;gap:clamp(1.5rem,1rem + 2vw,3rem);width:max-content;list-style:none;align-items:center;animation:marquee 60s linear infinite}
.client-track.is-reverse ul{animation-direction:reverse;animation-duration:70s}
.client-strip:hover .client-track ul{animation-play-state:paused}
.client-track li{flex:none;display:grid;place-items:center;height:56px}
.client-track img{max-height:44px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .35s,opacity .35s}
.client-track li:hover img{filter:none;opacity:1}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.client-track ul{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.client-track li[aria-hidden]{display:none}}
.client-wall{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.client-wall li{display:grid;place-items:center;aspect-ratio:3/2;padding:.8rem;background:var(--white);content-visibility:auto;contain-intrinsic-size:110px 74px}
.client-wall img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.8;transition:filter .3s,opacity .3s}
.client-wall li:hover img{filter:none;opacity:1}
.client-names{font-size:.9rem;line-height:1.9;color:var(--stone);max-width:none}
/* Full company timeline */
.yr-list{list-style:none;border-top:1px solid var(--ink)}
.yr-row{display:grid;grid-template-columns:4.5rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
@media (min-width:768px){.yr-row{grid-template-columns:8rem 1fr;gap:2rem}}
.yr-year{font-family:var(--serif);font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem);line-height:1;color:var(--stone)}
.yr-row ul{list-style:none;display:grid;gap:.7rem}
.yr-row li{display:grid;gap:.15rem}
.yr-row b{font-weight:600;font-size:.98rem}
.yr-row li span{color:var(--graphite);font-size:.93rem;max-width:72ch}
/* Team */
.team-feature{display:grid;gap:clamp(1.75rem,1.25rem + 2vw,3.5rem);margin-top:clamp(2rem,1.5rem + 2vw,3.5rem)}
@media (min-width:1024px){.team-feature{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}
.team-photo{margin:0}
.team-photo img{width:100%;height:auto}
.team-stories{border-top:1px solid var(--line)}
.team-story{border-bottom:1px solid var(--line)}
.team-story summary{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem 0;cursor:pointer;list-style:none;min-height:64px}
.team-story summary::-webkit-details-marker{display:none}
.team-story summary b{display:block;font-weight:600}
.team-story summary small{display:block;color:var(--stone);font-size:.84rem}
.team-story summary .i{width:20px;height:20px;transition:transform .3s}
.team-story[open] summary .i{transform:rotate(45deg)}
.team-initials{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ink);color:var(--off-white);font-family:var(--serif);font-size:1.1rem}
.team-story p{margin:0 0 1rem;padding-left:4rem;color:var(--graphite);font-size:.95rem;max-width:70ch}
.team-quote{font-family:var(--serif);font-size:1.2rem!important;line-height:1.35;color:var(--ink)!important}
@media (max-width:520px){.team-story p{padding-left:0}}
/* People philosophy / life / videos */
.pp-list{display:grid;gap:clamp(2rem,1.5rem + 2vw,3.5rem)}
.pp-item{display:grid;gap:1.25rem;align-items:center}
.pp-img{overflow:hidden;background:var(--warm-white);aspect-ratio:17/15}
.pp-img img{width:100%;height:100%;object-fit:cover}
.pp-item .h3{margin-bottom:.75rem}
@media (min-width:900px){.pp-item{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,1.5rem + 2vw,3.5rem)}.pp-item.is-flip{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}.pp-item.is-flip .pp-img{order:2}}
.life-gallery{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-top:2.5rem}
@media (min-width:768px){.life-gallery{grid-template-columns:repeat(5,1fr)}}
.life-gallery figure{margin:0;position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--graphite)}
.life-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.life-gallery figcaption{position:absolute;inset:auto 0 0 0;padding:1.5rem .6rem .5rem;background:linear-gradient(transparent,rgba(17,17,16,.85));color:var(--off-white);font-size:.75rem;font-weight:600}
@media (hover:hover){.life-gallery figure:hover img{transform:scale(1.06)}}
.video-grid{list-style:none;display:grid;gap:clamp(1rem,.75rem + 1vw,1.75rem)}
@media (min-width:768px){.video-grid{grid-template-columns:repeat(3,1fr)}}
.yt,.yt-frame{display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;background:#000;position:relative;overflow:hidden;cursor:pointer}
.yt img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .3s,transform .6s var(--ease)}
.yt:hover img{opacity:1;transform:scale(1.03)}
.yt-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(17,17,16,.72);border:1px solid rgba(250,248,244,.6)}
.yt-play::after{content:"";position:absolute;left:26px;top:20px;border-style:solid;border-width:12px 0 12px 19px;border-color:transparent transparent transparent #fff}
.iw-letter p{color:rgba(250,248,244,.78)}
.iw-sign{font-weight:600;color:var(--off-white)!important;margin-top:1.5rem}
.iw-sign span{font-weight:400;font-size:.85rem;color:rgba(250,248,244,.6)}
/* 404 */
.nf{position:relative;min-height:clamp(480px,78svh,780px);display:flex;align-items:center;background:var(--ink);color:var(--off-white);overflow:hidden;isolation:isolate}
.nf-bg{position:absolute;inset:0;z-index:-2}
.nf-bg img{width:100%;height:100%;object-fit:cover;opacity:.45;filter:grayscale(.3)}
.nf::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(17,17,16,.92) 0%,rgba(17,17,16,.6) 55%,rgba(17,17,16,.3) 100%)}
.nf-inner{padding-block:calc(var(--header-h) + 3rem) 3rem}
.nf-inner .eyebrow{color:rgba(250,248,244,.65)}
.nf-title{font-family:var(--serif);font-size:clamp(2.4rem,1.6rem + 3.6vw,5rem);line-height:1;letter-spacing:-.02em;max-width:14ch;margin:0 0 1.1rem}
.nf-title em{color:rgba(250,248,244,.7)}
.nf .lead{color:rgba(250,248,244,.82);max-width:52ch}
.nf-suggest{margin-top:1.75rem;padding:1.1rem 1.25rem;border:1px solid var(--line-dark);background:rgba(17,17,16,.45);max-width:560px;backdrop-filter:blur(4px)}
.nf-suggest .caps{color:rgba(250,248,244,.6);margin:0 0 .5rem}
.nf-suggest ul{list-style:none;display:grid;gap:.25rem}
.nf-suggest a{display:inline-flex;align-items:center;gap:.5rem;min-height:40px;color:var(--off-white);font-weight:600;text-decoration:none}
.nf-suggest a .i{width:16px;height:16px;transition:transform .3s var(--ease)}
.nf-suggest a:hover .i{transform:translateX(4px)}
.proj-facts .roles li,.roles.on-light li{border-color:var(--line-strong);color:var(--graphite)}
.proj-gallery.is-single{grid-template-columns:minmax(0,1fr)}
.proj-gallery.is-single .proj-shot{max-width:560px}
.field textarea{width:100%;min-height:120px;padding:.7rem .9rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--off-white);font:inherit;color:var(--ink);resize:vertical;transition:border-color .25s,box-shadow .25s,background-color .25s}
.field textarea:focus{outline:none;border-color:var(--ink);background:var(--white);box-shadow:0 0 0 3px rgba(17,17,16,.08)}
/* Legal pages */
.legal{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.legal{grid-template-columns:220px minmax(0,1fr);max-width:1180px}.legal-toc{position:sticky;top:calc(var(--header-h) + 1.5rem);align-self:start}}
.legal-toc ol{list-style:none;display:grid;gap:.1rem;font-size:.875rem;counter-reset:toc}
.legal-toc a{display:block;padding:.3rem 0;color:var(--stone);text-decoration:none}
.legal-toc a:hover{color:var(--ink);text-decoration:underline}
.legal .prose h2{font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem);margin:2em 0 .6em;scroll-margin-top:calc(var(--header-h) + 1rem)}
.legal .prose h2:first-child{margin-top:0}
.legal-table{overflow-x:auto;margin:0 0 1.2em;border-top:1px solid var(--ink)}
.legal-table table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}
.legal-table th,.legal-table td{text-align:left;padding:.75rem .75rem .75rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.legal-table th{font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}
.legal-contact{padding:1rem 1.25rem;border:1px solid var(--line);background:var(--white);line-height:1.8;font-size:.95rem}
