@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600&family=Inter+Tight:ital,wght@0,300;0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* ─── Tokens ─────────────────────────────────────────────── */
:root {
  --primary:      #14b287;
  --accent:       #14b287;
  --canvas:       #0C0C0F;
  --surface:      #1A1814;
  --ink:          #F4F1EA;
  --muted:        #8E8A82;
  --border:       rgba(244,241,234,0.09);
  --border-brand: rgba(20,178,135,0.30);
  --radius:       4px;
  --header-height:72px;
  --container:    1200px;
  --wide:         1400px;
  --ease:         250ms ease-out;
}
@media (max-width:900px){ :root{ --header-height:60px; } }

/* ─── Reset ──────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 16px); }
body{
  background:var(--canvas); color:var(--ink);
  font-family:'Inter Tight',sans-serif; font-size:16px;
  line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}

/* ─── Universal image cap ────────────────────────────────── */
img{ max-width:100%; height:auto; display:block; }

section img:not(.hero-bg):not([class*="full-bleed"]):not([class*="fullbleed"]){
  max-height:640px; object-fit:cover;
}

.nav img,header img,.header img,.nav-logo img,.logo img{
  max-height:64px !important; max-width:220px !important; width:auto !important;
  align-self:flex-start !important; object-fit:contain !important; flex:0 0 auto !important;
}
.footer img,footer img{
  max-height:48px !important; max-width:200px !important; width:auto !important;
  align-self:flex-start !important; object-fit:contain !important; flex:0 0 auto !important;
}

.hero{ position:relative; overflow:hidden; }
.hero-bg,.hero > img:first-of-type{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 42%; z-index:0; max-height:none !important;
}
.hero-inner,.hero > :not(img):not(.hero-bg):not(.hero-overlay):not(.hero-ribbon){
  position:relative; z-index:2;
}
.hero-overlay{ position:absolute; inset:0; z-index:1; pointer-events:none; }

.page-header,[class*="page-header"],.about-feature,.about-hero{
  position:relative; overflow:hidden; max-height:64vh;
}
.page-header > img,[class*="page-header"] > img,.page-header-bg,
.about-feature > img:first-of-type,.about-hero-bg,.page-header img:first-of-type{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 42%; z-index:0;
}

section > img:first-child:not([class*="logo"]):not(.nav-logo){ max-height:64vh; object-fit:cover; }
section img:not(.hero-bg):not(.page-header-bg):not([class*="full-bleed"]):not([class*="logo"]){ max-height:720px; }

[class*="gallery-grid"] > [class*="gallery-tile"],
[class*="gallery-grid"] > a,[class*="gallery-grid"] > figure{
  grid-column:auto; width:auto; max-width:100%; height:auto; min-height:0;
}
[class*="gallery-tile"]{ aspect-ratio:4/3; overflow:hidden; }
[class*="gallery-tile"] > img{ width:100%; height:100%; object-fit:cover; }

/* ─── Heading anchor reset ───────────────────────────────── */
h1 a,h2 a,h3 a,.hero-title a,.hero-eyebrow a,.hero-sub a{
  color:inherit; text-decoration:none; border-bottom:0;
}

/* ─── Base typography ────────────────────────────────────── */
h1,h2,h3,h4{
  font-family:'Cormorant Garamond',serif;
  font-weight:600; line-height:0.95; letter-spacing:-0.02em; color:var(--ink);
}
p{ line-height:1.65; }
a{ color:var(--ink); text-decoration:none; transition:color 150ms; }
a:hover{ color:var(--primary); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
ul{ list-style:none; padding:0; }
button{ cursor:pointer; font-family:inherit; }

/* ─── Display-inline unique move ─────────────────────────── */
.display-inline{
  font-family:'Cormorant Garamond',serif;
  font-style:italic; font-size:1.25em; font-weight:600;
  color:var(--primary); line-height:inherit;
}

/* ─── Mono label base ────────────────────────────────────── */
.section-eyebrow,.page-header-eyebrow,.page-eyebrow,
.cta-banner-eyebrow,.cta-banner-label,.founder-story-eyebrow,
.service-eyebrow,.service-number,.service-card-num,.service-photo-index,
.contact-form-label,.contact-info-label,.footer-col-heading,
.footer-col-title,.footer-col-label,.info-card-heading,
.timeline-date,.crew-role,.founder-portrait-caption,
.story-stat-label,.gallery-badge,.gallery-num,.gallery-count,
.rating-label,.crew-note,.trust-chip,.section-lead{
  font-family:'IBM Plex Mono',monospace;
}
.section-eyebrow,.page-header-eyebrow,.page-eyebrow,
.cta-banner-eyebrow,.cta-banner-label,.founder-story-eyebrow,
.service-eyebrow,.service-number,.service-card-num,.service-photo-index,
.contact-form-label,.contact-info-label,.footer-col-heading,
.footer-col-title,.footer-col-label,.info-card-heading,
.timeline-date,.crew-role,.founder-portrait-caption,
.story-stat-label,.gallery-badge,.gallery-num,.gallery-count,
.rating-label{
  font-size:11px; font-weight:500; text-transform:uppercase;
  letter-spacing:0.14em; color:var(--muted);
}
.section-lead{ font-family:'Inter Tight',sans-serif; }

/* ─── Scroll progress ────────────────────────────────────── */
.scroll-progress,#scroll-progress,#scrollProgress{
  position:fixed; top:0; left:0; height:2px; width:0%;
  background:var(--primary); z-index:9999; transition:width 80ms linear;
}

/* ─── Containers ─────────────────────────────────────────── */
.container     { max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px); }
.wide-container{ max-width:var(--wide);      margin:0 auto; padding:0 clamp(20px,4vw,48px); }

/* ─── Hairlines ──────────────────────────────────────────── */
.hairline,.about-hairline,.story-hairline{
  height:1px; background:var(--primary); opacity:0.45;
  margin:clamp(24px,4vh,44px) 0;
}
.section-header .hairline{ width:56px; margin-top:0; margin-bottom:16px; opacity:1; }

/* ─── Animation utilities ────────────────────────────────── */
.fade-up,.fade-left,.fade-right,.scale-in{
  opacity:0; transition:opacity 620ms ease-out,transform 620ms ease-out;
}
.fade-up  { transform:translateY(30px); }
.fade-left{ transform:translateX(-30px); }
.fade-right{ transform:translateX(30px); }
.scale-in { transform:scale(0.93); }
.fade-up.visible,.fade-left.visible,.fade-right.visible,.scale-in.visible{
  opacity:1; transform:none;
}
.stagger > *{
  opacity:0; transform:translateY(24px);
  transition:opacity 520ms ease-out,transform 520ms ease-out;
}
.stagger > *.visible{ opacity:1; transform:none; }
.stagger > *:nth-child(1){ transition-delay:0ms; }
.stagger > *:nth-child(2){ transition-delay:80ms; }
.stagger > *:nth-child(3){ transition-delay:160ms; }
.stagger > *:nth-child(4){ transition-delay:240ms; }
.stagger > *:nth-child(5){ transition-delay:320ms; }
.stagger > *:nth-child(6){ transition-delay:400ms; }
.stagger > *:nth-child(7){ transition-delay:480ms; }
.stagger > *:nth-child(8){ transition-delay:560ms; }

/* ─── Buttons ────────────────────────────────────────────── */
.btn-primary,.btn-primary-cta{
  display:inline-flex; align-items:center; gap:9px;
  padding:18px 32px; border-radius:var(--radius);
  background:var(--primary); color:#0a0a0c; border:none;
  font-family:'Inter Tight',sans-serif; font-size:15px; font-weight:600;
  text-decoration:none; white-space:nowrap; line-height:1;
  transition:filter var(--ease),transform var(--ease);
}
.btn-primary:hover,.btn-primary-cta:hover{
  filter:brightness(1.12); color:#0a0a0c;
  text-decoration:none; transform:translateY(-1px);
}
.btn-ghost,.btn-ghost-cta,.btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:17px 31px; border-radius:var(--radius);
  background:transparent; color:var(--ink);
  border:1px solid rgba(244,241,234,0.28);
  font-family:'Inter Tight',sans-serif; font-size:15px; font-weight:500;
  text-decoration:none; white-space:nowrap; line-height:1;
  transition:border-color var(--ease),color var(--ease),transform var(--ease);
}
.btn-ghost:hover,.btn-ghost-cta:hover,.btn:hover{
  border-color:var(--primary); color:var(--primary);
  text-decoration:none; transform:translateY(-1px);
}
.btn-submit,.form-submit{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:16px 32px; border-radius:var(--radius);
  background:var(--primary); color:#0a0a0c; border:none;
  font-family:'Inter Tight',sans-serif; font-size:15px; font-weight:600;
  transition:filter var(--ease);
}
.btn-submit:hover,.form-submit:hover{ filter:brightness(1.12); }
.btn-submit svg,.form-submit svg{ width:18px; height:18px; flex-shrink:0; max-height:none; }

/* ─── SVG caps ───────────────────────────────────────────── */
svg{ max-width:100%; overflow:visible; }
.faq-chevron          { width:20px; height:20px; flex-shrink:0; display:none; }
.value-card-icon svg  { width:28px; height:28px; color:var(--primary); }
.gallery-card-loc svg { width:14px; height:14px; color:var(--muted); flex-shrink:0; }
.footer-contact-item svg,.footer-contact-line svg{ width:16px; height:16px; color:var(--primary); flex-shrink:0; }
.footer-social-link svg{ width:18px; height:18px; }
.rating-stars svg     { width:16px; height:16px; color:var(--primary); }
.info-card-link svg   { width:22px; height:22px; flex-shrink:0; }
.timeline-dot-inner   { width:8px; height:8px; background:var(--primary); border-radius:50%; }

/* ─── Site header ────────────────────────────────────────── */
.site-header{
  position:sticky; top:0; z-index:900;
  background:var(--canvas);
  border-bottom:1px solid rgba(244,241,234,0.07);
}
.top-nav{
  height:var(--header-height);
  max-width:1320px; margin:0 auto; padding:0 28px;
  display:flex; align-items:center; gap:32px; position:relative;
}
.nav-logo{ flex:0 0 auto; }
.nav-logo img{ max-height:44px; max-width:200px; object-fit:contain; }
.nav-pages{
  flex:1; display:flex; justify-content:center;
  list-style:none; padding:0; margin:0; gap:28px; align-items:center;
}
.nav-pages li{ list-style:none; }
.nav-pages a{
  display:inline-block; padding:6px 0;
  font-family:'Inter Tight',sans-serif; font-size:15px; font-weight:500;
  color:var(--ink); text-decoration:none;
  border-bottom:2px solid transparent;
  transition:color 150ms,border-color 150ms;
}
.nav-pages a:hover{ color:var(--primary); text-decoration:none; }
.nav-pages a[aria-current="page"]{ color:var(--primary); border-bottom-color:var(--primary); }
.nav-cta{
  flex:0 0 auto; padding:10px 20px; border-radius:var(--radius);
  background:var(--primary); color:#0a0a0c;
  font-family:'Inter Tight',sans-serif; font-size:14px; font-weight:600;
  text-decoration:none; white-space:nowrap; transition:filter var(--ease);
}
.nav-cta:hover{ filter:brightness(0.92); color:#0a0a0c; text-decoration:none; }
.nav-toggle{
  display:none; background:transparent; border:none;
  color:var(--ink); font-size:24px; line-height:1;
  width:44px; height:44px; align-items:center; justify-content:center;
}

/* ─── Hero ───────────────────────────────────────────────── */
#hero.hero{ min-height:100svh; min-height:100vh; }
.hero > img:first-of-type{
  position:absolute; inset:0; width:100%; height:100%; max-height:none !important;
  object-fit:cover; object-position:center 40%; z-index:0;
  filter:grayscale(18%) brightness(0.72);
}
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(ellipse at 0% 100%, rgba(20,178,135,0.26) 0%, transparent 52%),
    linear-gradient(180deg, rgba(12,12,15,0.22) 0%, rgba(12,12,15,0.54) 45%, rgba(12,12,15,0.88) 100%);
}
.hero-ribbon{
  position:absolute; top:0; left:0; right:0;
  height:2px; background:var(--primary); opacity:0.9; z-index:3;
}
.hero-inner{
  position:relative; z-index:2;
  display:flex; flex-direction:column; justify-content:flex-end;
  min-height:100svh; min-height:100vh;
  padding:clamp(48px,8vh,96px) clamp(24px,5vw,96px);
  padding-bottom:clamp(72px,11vh,128px); max-width:960px;
}
.hero-eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.14em;
  color:var(--primary); margin-bottom:20px; display:block;
}
.hero-title{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(72px,9vw,144px);
  font-weight:600; font-style:italic;
  line-height:0.95; letter-spacing:-0.02em;
  color:var(--ink); max-width:14ch; margin-bottom:22px;
}
.hero-accent{ color:var(--primary); font-style:italic; }
.hero-sub{
  font-size:clamp(16px,1.5vw,19px); color:rgba(244,241,234,0.70);
  max-width:52ch; margin-bottom:36px; font-weight:400; line-height:1.6;
}
.hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-bottom:32px; }
.hero-trust-chips{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0; }
.trust-chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 14px; border-radius:999px;
  border:1px solid rgba(244,241,234,0.18);
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.11em;
  color:rgba(244,241,234,0.65);
}

/* ─── Trust strip ────────────────────────────────────────── */
.trust-strip{
  background:var(--surface);
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.trust-strip-inner{
  max-width:var(--container); margin:0 auto;
  padding:26px clamp(20px,4vw,48px);
  display:flex; flex-wrap:wrap; gap:18px 36px; align-items:center;
}
.trust-item{
  display:flex; align-items:center; gap:8px; position:relative; padding-right:36px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.10em; color:var(--muted);
}
.trust-item:not(:last-child)::after{
  content:'\00B7'; color:var(--primary);
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  font-size:20px; line-height:1;
}
.trust-stars{ color:var(--primary); font-size:13px; letter-spacing:1px; }

/* ─── Marquee ────────────────────────────────────────────── */
.marquee-strip{
  overflow:hidden; padding:14px 0; max-height:64px;
  border-top:1px solid var(--border-brand); border-bottom:1px solid var(--border-brand);
  position:relative; z-index:1; background:var(--canvas);
}
.marquee-track{
  display:flex; gap:48px; white-space:nowrap;
  animation:marquee 35s linear infinite;
}
.marquee-strip:hover .marquee-track{ animation-play-state:paused; }
.marquee-item{
  font-family:'IBM Plex Mono',monospace; font-weight:500;
  letter-spacing:0.08em; text-transform:uppercase;
  font-size:clamp(11px,1.2vw,14px); line-height:1.2; color:var(--muted);
  display:inline-flex; align-items:center; gap:20px;
}
.marquee-dot{
  display:inline-block; width:5px; height:5px;
  background:var(--primary); border-radius:50%; flex-shrink:0;
}
@keyframes marquee{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}

/* ─── Section shared ─────────────────────────────────────── */
.section-header{ margin-bottom:clamp(40px,6vh,72px); }
.section-eyebrow{ display:block; margin-bottom:14px; }
.section-headline,.section-title{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(36px,5vw,72px); font-weight:600; font-style:italic;
  line-height:0.95; letter-spacing:-0.02em; color:var(--ink);
}
.section-headline em,.section-title em{ color:var(--primary); font-style:italic; }
.section-lead{
  margin-top:16px; font-size:clamp(15px,1.4vw,18px);
  color:var(--muted); line-height:1.65; max-width:60ch;
}
.section-heading-block{ margin-bottom:clamp(48px,7vh,88px); }
.section-heading-block p{ color:var(--primary); }
.section-heading-block h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(36px,5vw,72px); font-weight:600;
  font-style:italic; line-height:0.95; color:var(--ink);
}

/* ─── Services bento (index) ─────────────────────────────── */
#services.services{ padding:clamp(80px,10vh,140px) 0; background:var(--canvas); }
.services-inner{ max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px); }

.services-bento{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }

.service-card{
  position:relative; overflow:hidden; display:block; text-decoration:none;
  background:var(--surface); min-height:280px;
  transition:transform var(--ease),box-shadow var(--ease);
}
.service-card:hover{ transform:translateY(-3px); box-shadow:0 18px 40px -16px rgba(0,0,0,0.55); text-decoration:none; }
.service-card > img{
  position:absolute; inset:0; width:100%; height:100%; max-height:none !important;
  object-fit:cover; z-index:0; filter:grayscale(28%);
  transition:transform 650ms ease,filter 400ms ease;
}
.service-card:hover > img{ transform:scale(1.05); filter:grayscale(8%); }
.service-card-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top,rgba(12,12,15,0.90) 0%,rgba(12,12,15,0.35) 55%,transparent 100%);
}
.service-card:hover .service-card-overlay{
  background:linear-gradient(to top,rgba(12,12,15,0.94) 0%,rgba(12,12,15,0.55) 65%,rgba(12,12,15,0.12) 100%);
}
.service-card-body{
  position:absolute; bottom:0; left:0; right:0; z-index:2;
  padding:28px; display:flex; flex-direction:column; gap:6px;
}
.service-card-num{
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.13em; color:var(--primary);
}
.service-card h3,.service-card-name{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(22px,2.4vw,30px); font-weight:600; font-style:italic;
  line-height:1.0; color:var(--ink);
}
.service-card-desc{ font-size:14px; color:rgba(244,241,234,0.62); line-height:1.55; }
.service-card-link{
  display:inline-flex; align-items:center; gap:5px; margin-top:4px;
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.12em; color:var(--primary);
}
.service-card-featured{
  grid-column:span 2; grid-row:span 2; min-height:560px;
}
.service-card-featured .service-card-body{ padding:40px; }
.service-card-featured h3{ font-size:clamp(28px,3.5vw,48px); }
.service-card-featured .service-card-desc{ font-size:15px; max-width:46ch; }
.services-footer{
  margin-top:40px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:12px;
}
.services-footer-note{ font-size:14px; color:var(--muted); }

/* ─── Gallery preview (index) ────────────────────────────── */
#gallery.gallery{ padding:clamp(80px,10vh,140px) 0; background:var(--canvas); }
.gallery-inner{ max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px); }
.gallery-preview-wrap{
  position:relative; overflow:hidden; border-radius:var(--radius);
  aspect-ratio:16/7; display:block; margin-top:40px; text-decoration:none;
}
.gallery-preview-wrap > img{
  position:absolute; inset:0; width:100%; height:100%; max-height:none !important;
  object-fit:cover; filter:grayscale(22%); transition:transform 650ms ease;
}
.gallery-preview-wrap:hover > img{ transform:scale(1.03); filter:grayscale(0%); }
.gallery-preview-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top,rgba(12,12,15,0.70) 0%,rgba(12,12,15,0.12) 55%,transparent 100%);
  display:flex; align-items:flex-end; justify-content:center; padding-bottom:44px;
}
.gallery-cta-pill{
  display:inline-flex; align-items:center; gap:8px; padding:12px 28px; border-radius:999px;
  background:rgba(244,241,234,0.10); border:1px solid rgba(244,241,234,0.22);
  backdrop-filter:blur(8px); font-family:'IBM Plex Mono',monospace;
  font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:0.12em;
  color:var(--ink); transition:all var(--ease);
}
.gallery-preview-wrap:hover .gallery-cta-pill{
  background:var(--primary); color:#0a0a0c; border-color:var(--primary); text-decoration:none;
}

/* ─── Gallery full page ──────────────────────────────────── */
.gallery-section{
  padding:clamp(56px,8vh,100px) clamp(20px,4vw,48px);
  max-width:var(--wide); margin:0 auto;
}
.gallery-section-header{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:28px; flex-wrap:wrap; gap:16px;
}
.gallery-section-header h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(28px,4vw,52px); font-weight:600; font-style:italic; color:var(--ink);
}
.gallery-section-header h2 em{ color:var(--primary); }
.gallery-section-header p{ font-size:14px; color:var(--muted); }
.gallery-count{
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.12em; color:var(--muted);
}
.filter-strip{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.filter-pill{
  padding:7px 18px; border-radius:999px; border:1px solid var(--border);
  background:transparent; color:var(--muted); font-family:'IBM Plex Mono',monospace;
  font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:0.10em;
  cursor:pointer; transition:all var(--ease);
}
.filter-pill:hover,.filter-pill.active{
  background:var(--primary); color:#0a0a0c; border-color:var(--primary);
}
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.gallery-card{
  position:relative; overflow:hidden; border-radius:var(--radius);
  background:var(--surface); cursor:pointer;
  transition:transform var(--ease);
}
.gallery-card:hover{ transform:translateY(-4px); }
.gallery-card-img-wrap{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.gallery-card-img-wrap > img{
  width:100%; height:100%; max-height:none !important;
  object-fit:cover; filter:grayscale(20%); transition:transform 650ms ease,filter 400ms ease;
}
.gallery-card:hover .gallery-card-img-wrap > img{ transform:scale(1.06); filter:grayscale(0%); }
.gallery-card-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top,rgba(12,12,15,0.84) 0%,rgba(12,12,15,0.18) 55%,transparent 100%);
}
.gallery-card-top{
  position:absolute; top:12px; left:12px; right:12px;
  display:flex; justify-content:space-between; align-items:flex-start; z-index:2;
}
.gallery-badge{
  padding:4px 10px; border-radius:999px;
  background:rgba(20,178,135,0.18); border:1px solid rgba(20,178,135,0.38);
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.10em; color:var(--primary);
}
.gallery-num{
  font-family:'IBM Plex Mono',monospace; font-size:10px; color:rgba(244,241,234,0.45);
}
.gallery-card-meta{
  position:absolute; bottom:16px; left:16px; right:16px; z-index:2;
}
.gallery-card-meta h3{
  font-family:'Cormorant Garamond',serif; font-size:20px;
  font-weight:600; font-style:italic; color:var(--ink);
  margin-bottom:6px; line-height:1.1;
}
.gallery-card-loc{
  display:flex; align-items:center; gap:4px;
  font-size:12px; color:var(--muted); margin-bottom:6px;
}
.gallery-card-desc{ font-size:13px; color:rgba(244,241,234,0.60); margin-bottom:8px; }
.gallery-card-stats{ display:flex; gap:12px; flex-wrap:wrap; }
.gallery-stat{
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.08em; color:var(--muted);
}
.gallery-stat-dot{ color:var(--primary); margin:0 3px; }

/* ─── FAQ ────────────────────────────────────────────────── */
#faq.faq{ padding:clamp(80px,10vh,140px) 0; background:var(--canvas); }
.faq-inner{
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
  display:grid; grid-template-columns:1fr 1.6fr; gap:80px; align-items:start;
}
.faq-aside{ position:sticky; top:calc(var(--header-height) + 32px); }
.faq-aside h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(36px,5vw,64px); font-weight:600; font-style:italic;
  line-height:0.95; color:var(--ink);
}
.faq-aside .hairline{ width:40px; margin-top:24px; opacity:1; }
.faq-aside-note{ margin-top:20px; font-size:15px; color:var(--muted); line-height:1.6; }
.faq-aside-note a{ color:var(--primary); }
.faq-list{ display:flex; flex-direction:column; }
details.faq{ border-bottom:1px solid var(--border); padding:18px 0; }
details.faq > summary{
  cursor:pointer; font-family:'Inter Tight',sans-serif;
  font-size:17px; font-weight:600; list-style:none;
  display:flex; justify-content:space-between; align-items:center;
  gap:16px; color:var(--ink);
}
details.faq > summary::-webkit-details-marker{ display:none; }
details.faq > summary::after{
  content:"+"; font-weight:300; font-size:22px;
  transition:transform 200ms,color 200ms;
  color:var(--muted); flex-shrink:0;
}
details.faq[open] > summary::after{ transform:rotate(45deg); color:var(--primary); }
.faq-answer{
  margin-top:12px; line-height:1.65;
  font-size:15px; color:var(--muted); padding-right:36px;
}
.faq-answer a{ color:var(--primary); }
.faq-chevron{ display:none; }

/* ─── Contact (index) ────────────────────────────────────── */
#contact.contact{ padding:clamp(80px,10vh,140px) 0; background:var(--canvas); }
.contact-inner{
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
  display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:start;
}
.contact-form{
  display:flex; flex-direction:column; gap:20px;
}
.contact-form label{
  display:block; font-family:'IBM Plex Mono',monospace;
  font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:0.10em;
  color:var(--muted); margin-bottom:6px;
}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); color:var(--ink);
  font-family:'Inter Tight',sans-serif; font-size:15px; padding:14px 16px;
  transition:border-color var(--ease); outline:none; -webkit-appearance:none;
}
.contact-form input:focus,.contact-form textarea:focus{ border-color:var(--primary); }
.contact-form textarea{ min-height:120px; resize:vertical; }
.contact-info{ display:flex; flex-direction:column; }
.contact-info-block{ padding:20px 0; border-bottom:1px solid var(--border); }
.contact-info-block:last-child{ border-bottom:none; }
.contact-info-label{ display:block; margin-bottom:6px; }
.contact-info-value{ font-size:15px; color:var(--ink); }
.contact-info-value a{ color:var(--primary); }
.contact-phone-display{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(28px,3.5vw,44px); font-style:italic; font-weight:600;
  color:var(--primary); display:block; text-decoration:none; line-height:1.1;
}
.contact-phone-display:hover{ text-decoration:none; filter:brightness(1.15); }

/* ─── Contact page ───────────────────────────────────────── */
.contact-section{ padding:clamp(80px,10vh,140px) 0; background:var(--canvas); }
.contact-section .contact-inner{
  display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:start;
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
}
.contact-form-wrap{ display:flex; flex-direction:column; gap:0; }
.contact-form-label{ display:block; margin-bottom:8px; }
.contact-form-heading{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(28px,4vw,48px); font-style:italic; font-weight:600;
  color:var(--ink); margin-bottom:28px; line-height:1.0;
}
.contact-form-heading em{ color:var(--primary); }
.contact-form-heading br{ display:block; content:""; margin:0.1em 0; }
.contact-info-card{
  background:var(--surface); border:1px solid var(--border);
  border-top:2px solid var(--primary); border-radius:var(--radius); padding:36px;
}
.info-card-section{ padding:20px 0; }
.info-card-section:first-child{ padding-top:0; }
.info-card-section:last-child{ padding-bottom:0; }
.info-card-heading{ display:block; margin-bottom:10px; }
.info-card-link{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(22px,2.5vw,32px); font-style:italic; font-weight:600;
  color:var(--primary); display:flex; align-items:center; gap:10px;
  text-decoration:none; line-height:1.1;
}
.info-card-link:hover{ text-decoration:none; filter:brightness(1.1); }
.info-card-text{ font-size:15px; color:var(--muted); line-height:1.6; }
.info-divider{ height:1px; background:var(--border); margin:0; }
.service-area-pills{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.area-pill{
  padding:4px 12px; border-radius:999px; border:1px solid var(--border);
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.08em; color:var(--muted);
}
.rating-line{ display:flex; align-items:center; gap:10px; margin-top:6px; }
.rating-stars{ display:flex; gap:2px; }
.rating-label{ font-size:14px; color:var(--muted); }
.rating-count{ color:var(--ink); font-weight:600; }

/* ─── Forms shared ───────────────────────────────────────── */
.form-field{ position:relative; display:flex; flex-direction:column; gap:6px; }
.form-label,label.form-label{
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.10em; color:var(--muted); display:block;
}
.form-input,input.form-input,.form-textarea,textarea.form-textarea,select{
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); color:var(--ink);
  font-family:'Inter Tight',sans-serif; font-size:15px; padding:14px 16px;
  width:100%; transition:border-color var(--ease); outline:none; -webkit-appearance:none;
}
.form-input:focus,.form-textarea:focus,input:focus,textarea:focus,select:focus{
  border-color:var(--primary);
}
.form-textarea,textarea.form-textarea{ min-height:100px; resize:vertical; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
select option{ background:var(--surface); color:var(--ink); }

/* ─── CTA banner ─────────────────────────────────────────── */
.cta-banner{
  position:relative; overflow:hidden;
  padding:clamp(80px,10vh,120px) 0;
  background:var(--surface);
}
.cta-banner > img:first-of-type,.cta-banner-bg{
  position:absolute; inset:0; width:100%; height:100%; max-height:none !important;
  object-fit:cover; z-index:0; filter:grayscale(40%) brightness(0.38);
}
.cta-banner-overlay{
  position:absolute; inset:0; z-index:1; background:rgba(12,12,15,0.70);
}
.cta-banner-inner{
  position:relative; z-index:2;
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;
}
.cta-banner-left{ display:flex; flex-direction:column; gap:16px; }
.cta-banner-eyebrow,.cta-banner-label{ display:block; margin-bottom:4px; }
.cta-banner-headline,.cta-banner-title{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(40px,5vw,72px); font-weight:600; font-style:italic;
  line-height:0.95; color:var(--ink);
}
.cta-banner-headline em,.cta-banner-title em{ color:var(--primary); }
.cta-banner-sub{ font-size:16px; color:var(--muted); line-height:1.6; }
.cta-banner-note{ font-size:14px; color:var(--muted); }
.cta-banner-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:8px; }
.cta-form{ display:flex; flex-direction:column; gap:14px; }
.cta-form .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cta-form .form-field input,.cta-form .form-field textarea{
  background:rgba(244,241,234,0.06); border:1px solid rgba(244,241,234,0.15);
  border-radius:var(--radius); color:var(--ink);
  font-family:'Inter Tight',sans-serif; font-size:15px; padding:14px 16px;
  width:100%; outline:none; transition:border-color var(--ease); -webkit-appearance:none;
}
.cta-form .form-field input:focus,.cta-form .form-field textarea:focus{
  border-color:var(--primary);
}
.cta-form .form-label{ color:rgba(244,241,234,0.55); }
.cta-banner-right{ /* form side */ }

/* ─── Page header (sub-pages) ────────────────────────────── */
.page-header{
  min-height:clamp(280px,42vh,560px);
  display:flex; align-items:flex-end; padding:0;
}
.page-header-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(12,12,15,0.38) 0%,rgba(12,12,15,0.80) 100%);
}
.page-header-inner{
  position:relative; z-index:2;
  padding:clamp(40px,6vh,80px) clamp(24px,5vw,80px); max-width:900px;
}
.page-header-eyebrow,.page-eyebrow{ display:block; margin-bottom:16px; }
.page-header-title{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(48px,7vw,96px); font-weight:600; font-style:italic;
  line-height:0.95; letter-spacing:-0.02em; color:var(--ink); max-width:16ch;
}
.page-header-title em{ color:var(--primary); }
.page-header-sub{
  margin-top:16px; font-size:clamp(15px,1.5vw,18px);
  color:rgba(244,241,234,0.70); max-width:52ch;
}

/* ─── Services page ──────────────────────────────────────── */
.services-page{ padding:clamp(80px,10vh,140px) 0; background:var(--canvas); }
.services-page-inner{
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
}
.service-block{
  display:grid; grid-template-columns:1fr 1fr; gap:80px;
  align-items:center; margin-bottom:clamp(80px,10vh,140px);
}
.service-block.reverse .service-photo-wrap{ order:2; }
.service-block.reverse .service-body{ order:1; }
.service-photo-wrap{
  position:relative; overflow:hidden; border-radius:var(--radius); aspect-ratio:4/3;
}
.service-photo-wrap > img{
  width:100%; height:100%; object-fit:cover; max-height:none !important;
  filter:grayscale(20%); transition:filter 400ms;
}
.service-block:hover .service-photo-wrap > img{ filter:grayscale(0%); }
.service-photo-index{
  position:absolute; top:16px; left:16px; z-index:2;
  background:rgba(12,12,15,0.80); padding:4px 10px; border-radius:var(--radius);
}
.service-body{ display:flex; flex-direction:column; gap:16px; }
.service-number{ display:block; }
.service-eyebrow{ display:block; }
.service-body h2,.service-name{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(32px,4vw,56px); font-weight:600; font-style:italic;
  line-height:0.95; color:var(--ink);
}
.service-desc{ font-size:15px; color:var(--muted); line-height:1.65; }
.service-body .service-desc + .service-desc{ margin-top:-8px; }
.service-bullets{ list-style:none; padding:0; display:flex; flex-direction:column; gap:8px; }
.service-bullets li{
  padding-left:20px; position:relative;
  font-size:15px; color:var(--muted); line-height:1.5;
}
.service-bullets li::before{
  content:''; position:absolute; left:0; top:9px;
  width:6px; height:6px; border-radius:50%; background:var(--primary);
}
.service-body .btn-primary{ align-self:flex-start; margin-top:8px; }

/* ─── About page: founder story ──────────────────────────── */
.founder-story{
  padding:clamp(80px,10vh,140px) clamp(20px,4vw,48px);
  display:grid; grid-template-columns:1fr 1.4fr; gap:80px;
  max-width:var(--container); margin:0 auto;
}
.founder-portrait-col{ display:flex; flex-direction:column; gap:16px; }
.founder-portrait-wrap{
  position:relative; overflow:hidden; border-radius:var(--radius); aspect-ratio:3/4;
}
.founder-portrait-wrap > img{
  width:100%; height:100%; object-fit:cover; max-height:none !important; filter:grayscale(15%);
}
.founder-portrait-caption{ display:block; }
.founder-story-col{ display:flex; flex-direction:column; gap:20px; justify-content:center; }
.founder-story-eyebrow{ display:block; }
.founder-story-headline{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(36px,5vw,64px); font-weight:600; font-style:italic;
  line-height:0.95; color:var(--ink);
}
.founder-story-headline em{ color:var(--primary); }
.story-body{ display:flex; flex-direction:column; gap:16px; }
.story-body p{ font-size:16px; color:rgba(244,241,234,0.80); line-height:1.72; }
.story-body strong{ color:var(--primary); font-weight:600; }
.story-stat-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:8px;
}
.story-stat{ display:flex; flex-direction:column; gap:4px; }
.story-stat-num{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(36px,5vw,56px); font-weight:600;
  color:var(--primary); line-height:1; display:block;
}
.story-stat-label{ display:block; }

/* ─── Values ─────────────────────────────────────────────── */
.values-section{ padding:clamp(80px,10vh,140px) 0; background:var(--surface); }
.values-inner{
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
}
.values-inner .section-headline{ margin-bottom:48px; }
.values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.value-card{
  background:var(--canvas); border:1px solid var(--border);
  border-top:2px solid var(--primary); border-radius:var(--radius);
  padding:32px 28px;
  transition:transform var(--ease),box-shadow var(--ease);
}
.value-card:hover{ transform:translateY(-3px); box-shadow:0 18px 40px -16px rgba(0,0,0,0.35); }
.value-card-icon{ margin-bottom:16px; }
.value-card h3,.value-card-title{
  font-family:'Cormorant Garamond',serif;
  font-size:24px; font-weight:600; font-style:italic;
  color:var(--ink); margin-bottom:10px;
}
.value-card-body{ font-size:14px; color:var(--muted); line-height:1.65; }

/* ─── Timeline ───────────────────────────────────────────── */
.timeline-section{
  padding:clamp(80px,10vh,140px) clamp(20px,4vw,48px);
  max-width:var(--container); margin:0 auto;
}
.timeline-section .section-headline{ margin-bottom:64px; }
.timeline-section .section-eyebrow{ display:block; margin-bottom:14px; }
.timeline-track{
  position:relative; display:flex; flex-direction:column;
}
.timeline-track::before{
  content:''; position:absolute; left:11px; top:0; bottom:0;
  width:1px; background:var(--border-brand); z-index:0;
}
.timeline-step{
  display:grid; grid-template-columns:24px 1fr;
  gap:24px; position:relative; padding-bottom:48px;
}
.timeline-step:last-child{ padding-bottom:0; }
.timeline-dot{
  width:24px; height:24px; border-radius:50%;
  background:var(--surface); border:2px solid var(--primary);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; position:relative; z-index:1; margin-top:2px;
}
.timeline-content{ display:flex; flex-direction:column; gap:6px; }
.timeline-date{ display:block; }
.timeline-title,.timeline-content h3{
  font-family:'Cormorant Garamond',serif;
  font-size:24px; font-weight:600; font-style:italic; color:var(--ink);
}
.timeline-body{ font-size:15px; color:var(--muted); line-height:1.6; }

/* ─── Crew ───────────────────────────────────────────────── */
.crew-section{ padding:clamp(80px,10vh,140px) 0; background:var(--surface); }
.crew-inner{
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
}
.crew-inner .section-headline{ margin-bottom:48px; }
.crew-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.crew-card{
  position:relative; overflow:hidden; border-radius:var(--radius);
  aspect-ratio:3/4;
}
.crew-card > img{
  width:100%; height:100%; object-fit:cover; max-height:none !important;
  filter:grayscale(25%); transition:transform 650ms ease,filter 400ms ease;
}
.crew-card:hover > img{ transform:scale(1.04); filter:grayscale(0%); }
.crew-card-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top,rgba(12,12,15,0.85) 0%,transparent 55%);
}
.crew-card-label{
  position:absolute; bottom:24px; left:24px; right:24px; z-index:2;
}
.crew-name{
  font-family:'Cormorant Garamond',serif;
  font-size:22px; font-weight:600; font-style:italic; color:var(--ink); margin-bottom:4px;
}
.crew-role{ display:block; }
.crew-note{ margin-top:32px; font-size:15px; color:var(--muted); text-align:center; }

/* ─── About section ──────────────────────────────────────── */
#about.about-section{
  padding:clamp(80px,10vh,140px) clamp(20px,4vw,48px);
  max-width:calc(70ch + 96px); margin:0 auto;
}
.about-section .section-headline{ margin-bottom:32px; }
.about-body{ display:flex; flex-direction:column; gap:16px; }
.about-body p{ font-size:16px; color:rgba(244,241,234,0.80); line-height:1.75; }
.about-body strong{ color:var(--primary); font-weight:600; }

/* ─── Footer ─────────────────────────────────────────────── */
.site-footer{
  background:var(--surface); border-top:1px solid var(--border);
  padding:clamp(60px,8vh,100px) 0 0;
}
.footer-inner{
  max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,48px);
}
.footer-grid{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:48px; padding-bottom:48px; border-bottom:1px solid var(--border);
}
.footer-brand,.footer-brand-col{ display:flex; flex-direction:column; gap:16px; }
.footer-brand-name{
  font-family:'Cormorant Garamond',serif;
  font-size:22px; font-weight:600; font-style:italic; color:var(--ink);
}
.footer-tagline{ font-size:14px; color:var(--muted); line-height:1.6; max-width:28ch; }
.footer-tagline em{ color:var(--primary); font-style:italic; }
.footer-col{ display:flex; flex-direction:column; gap:16px; }
.footer-col-heading,.footer-col-title,.footer-col-label{
  font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.14em; color:var(--muted);
}
.footer-col-list,.footer-links{
  list-style:none; padding:0; display:flex; flex-direction:column; gap:10px;
}
.footer-col-list a,.footer-links a{
  font-size:14px; color:rgba(244,241,234,0.62); text-decoration:none; transition:color 150ms;
}
.footer-col-list a:hover,.footer-links a:hover{ color:var(--primary); text-decoration:none; }
.footer-contact-item{
  display:flex; align-items:center; gap:10px;
  font-size:14px; color:rgba(244,241,234,0.62);
}
.footer-contact-item a{ color:rgba(244,241,234,0.62); }
.footer-contact-item a:hover{ color:var(--primary); text-decoration:none; }
.footer-contact-text{ font-size:14px; }
.footer-contact-line{
  display:flex; align-items:center; gap:8px;
  font-size:14px; color:rgba(244,241,234,0.62);
}
.footer-contact-line a{ color:rgba(244,241,234,0.62); }
.footer-contact-line a:hover{ color:var(--primary); text-decoration:none; }
.footer-social{ display:flex; gap:10px; margin-top:4px; }
.footer-social-link{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  border:1px solid var(--border); color:var(--muted);
  transition:all var(--ease);
}
.footer-social-link:hover{ border-color:var(--primary); color:var(--primary); text-decoration:none; }
.footer-address{ font-size:14px; color:rgba(244,241,234,0.62); line-height:1.7; }
.footer-address a{ color:rgba(244,241,234,0.62); }
.footer-address a:hover{ color:var(--primary); }
.footer-phone,.footer-phone-link,.footer-email{
  color:rgba(244,241,234,0.62); font-size:14px;
}
.footer-phone-link:hover,.footer-email:hover{ color:var(--primary); text-decoration:none; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 0; gap:16px; flex-wrap:wrap;
}
.footer-copy,.footer-copyright,.footer-legal{
  font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted);
}
.footer-legal a{ color:var(--muted); }
.footer-legal a:hover{ color:var(--primary); }

/* ─── Mobile call pill ───────────────────────────────────── */
.mobile-call-pill,.mobile-cta-pill,.mobile-call-btn{
  position:fixed; bottom:18px; right:18px; z-index:999;
  display:none; align-items:center; gap:10px;
  padding:14px 22px; border-radius:999px;
  background:var(--primary); color:#0a0a0c;
  font-family:'Inter Tight',sans-serif; font-size:14px; font-weight:600;
  text-decoration:none;
  box-shadow:0 18px 40px -10px rgba(0,0,0,0.45);
  transition:filter var(--ease),transform var(--ease);
}
.mobile-call-pill svg,.mobile-cta-pill svg,.mobile-call-btn svg{
  width:20px; height:20px; flex-shrink:0; max-height:none;
}
.mobile-call-pill:hover,.mobile-cta-pill:hover,.mobile-call-btn:hover{
  filter:brightness(1.1); color:#0a0a0c; text-decoration:none;
}

/* ─── Misc state classes ─────────────────────────────────── */
.reverse{ /* layout swap handled per-section */ }
.active{  /* context-dependent JS state     */ }
.visible{ /* animation trigger state         */ }
.page-eyebrow{ display:block; }

/* ─── Stats (shared) ─────────────────────────────────────── */
.stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:32px; padding:80px 0; text-align:center;
}
.stat-num{
  font-size:clamp(48px,8vw,96px); font-weight:900; line-height:1; color:var(--primary);
}
.stat-label{
  font-size:11px; text-transform:uppercase; letter-spacing:0.16em;
  color:var(--muted); margin-top:8px;
  font-family:'IBM Plex Mono',monospace; font-weight:500;
}

/* ─── Process strip ──────────────────────────────────────── */
.process{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:32px; }
.process-step{ padding:24px; border:1px solid var(--border); border-radius:8px; }
.step-num{
  font-size:14px; font-weight:700; color:var(--primary); margin-bottom:12px; letter-spacing:0.12em;
}

/* ─── Review card ────────────────────────────────────────── */
.review-card{ padding:28px; border-radius:12px; background:var(--surface); }
.review-stars svg{ color:var(--primary); width:18px; height:18px; }
.review-quote{ font-size:17px; line-height:1.55; margin:14px 0; }
.review-attribution{ font-size:13px; color:var(--muted); opacity:0.75; }

/* ─── Service card hover ─────────────────────────────────── */
.service-card{ transition:transform 250ms ease-out,box-shadow 250ms ease-out; }
.service-card:hover{ transform:translateY(-3px); box-shadow:0 18px 40px -16px rgba(0,0,0,0.18); }

/* ─── RESPONSIVE ─────────────────────────────────────────── */

/* 1200px */
@media(max-width:1200px){
  .values-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr 1fr; }
  .footer-grid > div:first-child{ grid-column:1 / -1; }
  .footer-brand{ grid-column:1 / -1; }
  .footer-brand-col{ grid-column:1 / -1; }
}

/* 900px */
@media(max-width:900px){
  .nav-toggle{ display:flex; }
  .nav-pages{
    display:none; flex-direction:column; justify-content:flex-start;
    position:absolute; top:var(--header-height); left:0; right:0;
    background:var(--canvas); padding:24px; gap:8px;
    border-bottom:1px solid var(--border); z-index:800;
  }
  .nav-pages.open{ display:flex; }
  .mobile-call-pill,.mobile-cta-pill,.mobile-call-btn{ display:flex; }

  .hero-inner{ max-width:100%; }
  .hero-title{ font-size:clamp(56px,12vw,96px); }

  .faq-inner{ grid-template-columns:1fr; gap:48px; }
  .faq-aside{ position:static; }

  .contact-inner,
  .contact-section .contact-inner{ grid-template-columns:1fr; gap:48px; }

  .services-bento{ grid-template-columns:1fr 1fr; }
  .service-card-featured{ grid-column:span 2; grid-row:span 1; min-height:380px; }

  .cta-banner-inner{ grid-template-columns:1fr; gap:48px; }

  .service-block{ grid-template-columns:1fr; gap:40px; }
  .service-block.reverse .service-photo-wrap{ order:0; }
  .service-block.reverse .service-body{ order:0; }

  .founder-story{ grid-template-columns:1fr; gap:48px; padding:clamp(64px,8vh,100px) clamp(20px,4vw,48px); }
  .founder-portrait-wrap{ aspect-ratio:4/3; }

  .values-grid{ grid-template-columns:1fr 1fr; }

  .crew-grid{ grid-template-columns:1fr 1fr; }
  .crew-grid .crew-card:nth-child(3){ grid-column:span 2; aspect-ratio:16/7; }

  .footer-grid{ grid-template-columns:1fr 1fr; }
  .footer-grid > div:first-child{ grid-column:1 / -1; }

  .timeline-track::before{ left:11px; }
}

/* 640px */
@media(max-width:640px){
  .services-bento{ grid-template-columns:1fr; }
  .service-card-featured{ grid-column:span 1; min-height:300px; }
  .service-card{ min-height:240px; }

  .gallery-grid{ grid-template-columns:1fr 1fr; }

  .values-grid{ grid-template-columns:1fr; }

  .crew-grid{ grid-template-columns:1fr; }
  .crew-grid .crew-card:nth-child(3){ grid-column:span 1; aspect-ratio:3/4; }

  .footer-grid{ grid-template-columns:1fr; }

  .form-row{ grid-template-columns:1fr; }
  .cta-form .form-row{ grid-template-columns:1fr; }

  .hero-ctas{ flex-direction:column; align-items:flex-start; }
  .hero-ctas .btn,.hero-ctas .btn-ghost,
  .hero-ctas .btn-primary,.hero-ctas a[class^="btn"]{ width:100%; justify-content:center; }

  .trust-strip-inner{ gap:12px 20px; }
  .story-stat-row{ gap:16px; }
  .cta-banner-inner{ grid-template-columns:1fr; }
}


/* === Validator patches (auto-applied) === */
/* validator patch: grid children without placement → span full row */
.footer-col { grid-column: 1 / -1; }
.form-field { grid-column: 1 / -1; }
.story-stat { grid-column: 1 / -1; }
.timeline-dot { grid-column: 1 / -1; }
.timeline-content { grid-column: 1 / -1; }
.cta-banner-eyebrow { grid-column: 1 / -1; }
.cta-banner-headline { grid-column: 1 / -1; }
.cta-banner-sub { grid-column: 1 / -1; }
.cta-banner-actions { grid-column: 1 / -1; }
/* validator patch: hero must never crop its headline */
#hero, .hero { overflow: visible !important; }
:where(#hero, .hero) { padding-top: max(var(--header-height, 72px), 72px); }
/* validator patch: keep the hero photo visible, no smothering dark band */
.hero-overlay { background: linear-gradient(to top, rgba(0,0,0,0.66), rgba(0,0,0,0.34) 38%, rgba(0,0,0,0.12) 68%, rgba(0,0,0,0) 100%), linear-gradient(to right, rgba(0,0,0,0.30), rgba(0,0,0,0) 58%) !important; }
