/* ===== TOKENS — Vornix design system ===== */
:root{
  /* Canonical Vornix palette (named swatches) */
  --navy:         #0F1C2E;
  --off-white:    #FAFAFA;
  --brand-blue:   #04347A;
  --sky:          #99B9E9;
  --mid-gray:     #6B7684;
  --royal-blue:   #094DB0; /* gradient anchor only */
  --near-black:   #08081B; /* alt deep dark, wordmark fill */
  --surface-gray: #F5F5F5;

  /* Semantic aliases used across components */
  --bg:           var(--off-white);
  --bg-warm:      var(--surface-gray);
  --bg-dark:      var(--navy);
  --bg-dark-2:    var(--near-black);
  --ink:          var(--navy);
  --ink-2:        #1a2a44;
  --muted:        var(--mid-gray);
  --muted-2:      #8a96a3;
  --line:         rgba(15,28,46,.12);
  --line-strong:  rgba(15,28,46,.22);
  --line-on-dark: rgba(255,255,255,.12);
  --on-dark:      var(--off-white);

  /* Accent (replaces pink/teal/orange) */
  --accent:        var(--brand-blue);
  --accent-strong: var(--royal-blue);
  --accent-soft:   var(--sky);

  /* Signature gradients */
  --grad-vornix:    linear-gradient(270deg, #094DB0 0%, #04347A 50%, #0F1C2E 100%);
  --grad-vornix-2:  linear-gradient(270deg, #04347A -16.24%, #0F1C2E 76.99%);
  --grad-sky-wash:  linear-gradient(90deg, #FAFAFA 0%, #99B9E9 100%);

  --radius-pill:  999px;
  --radius-card:  18px;
  --radius-lg:    28px;
  --container:    1280px;
  --gutter:       clamp(20px, 4vw, 48px);
  --easing:       cubic-bezier(.2,.7,.2,1);

  /* Single typeface — Archivo (light/regular/medium, italics) */
  --sans:  "Archivo", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --serif: var(--sans); /* legacy alias — italic em swaps now use Archivo italic */
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{
  -webkit-text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  font-weight:400;
  line-height:1.5;
  scroll-behavior:auto;
}
body{ overflow-x:clip; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; padding:0; }
::selection{ background:var(--brand-blue); color:var(--off-white); }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ===== TYPE ===== */
.eyebrow{
  display:inline-block;
  font-size:13px;
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
  border:1px solid var(--line);
  padding:7px 14px;
  border-radius:var(--radius-pill);
  background:rgba(255,255,255,.6);
  backdrop-filter:blur(6px);
  color:var(--ink);
}
.display{
  font-family:var(--sans);
  font-weight:500;
  line-height:1.02;
  letter-spacing:-.035em;
  font-size:clamp(48px, 8vw, 112px);
  color:var(--ink);
  margin:0;
  text-wrap:balance;
}
.display em{ font-style:italic; font-weight:300; }
.display--md{
  font-size:clamp(36px, 5vw, 64px);
  line-height:1.05;
  letter-spacing:-.03em;
}
.lead{
  font-size:clamp(18px, 1.5vw, 22px);
  line-height:1.45;
  letter-spacing:-.005em;
  color:var(--ink);
  font-weight:400;
}
p{ margin:0 0 1em; color:var(--ink-2); }
strong{ color:var(--ink); font-weight:600; }

/* ===== BUTTONS / LINKS ===== */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:500;
  font-size:15px;
  line-height:1;
  padding:14px 18px 14px 22px;
  border-radius:var(--radius-pill);
  background:var(--ink);
  color:var(--on-dark);
  min-height:48px;
  transition:transform .25s var(--easing), background .25s var(--easing), box-shadow .25s var(--easing);
  will-change:transform;
}
.btn:hover{ background:var(--brand-blue); transform:translateY(-1px); box-shadow:0 14px 30px -16px rgba(4,52,122,.5); }
.btn--pill{ background:transparent; color:var(--ink); padding:6px 6px 6px 18px; min-height:44px; }
.btn--pill .btn__icon{
  width:32px; height:32px;
  border-radius:var(--radius-pill);
  background:var(--brand-blue);
  color:var(--off-white);
  display:inline-flex; align-items:center; justify-content:center;
  transition:transform .35s var(--easing), background .25s var(--easing);
}
.btn--pill:hover{ background:transparent; transform:translateY(-1px); box-shadow:none; }
.btn--pill:hover .btn__icon{ transform:rotate(45deg); background:var(--royal-blue); }
.btn--lg{ font-size:16px; padding:14px 16px 14px 26px; min-height:52px; }
.btn--lg .btn__icon{ width:38px; height:38px; }
.btn__icon{
  width:30px; height:30px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--brand-blue); color:var(--off-white);
  flex-shrink:0;
  transition:transform .35s var(--easing), background .25s var(--easing);
}
.btn:hover .btn__icon{ transform:rotate(45deg); background:var(--royal-blue); }
.btn__icon svg{ width:14px; height:14px; }

/* Ghost / secondary */
.btn--ghost{
  background:transparent; color:var(--ink);
  border:1px solid var(--line-strong);
}
.btn--ghost:hover{ background:rgba(15,28,46,.04); color:var(--ink); box-shadow:none; }
.btn--ghost .btn__icon{ background:transparent; color:var(--ink); border:1px solid var(--line-strong); }

.cta-final .btn--lg{
  background:var(--off-white); color:var(--navy); border:1px solid rgba(255,255,255,.18);
}
.cta-final .btn--lg:hover{ background:var(--sky); color:var(--navy); }
.cta-final .btn--lg .btn__icon{ background:var(--brand-blue); color:var(--off-white); }

.link-arrow{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:500; font-size:15px;
  position:relative;
}
.link-arrow span:first-child{ position:relative; }
.link-arrow span:first-child::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px;
  height:1px; background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--easing);
}
.link-arrow:hover span:first-child::after{ transform:scaleX(1); transform-origin:left; }
.link-arrow__icon{
  width:26px; height:26px; border-radius:50%;
  background:var(--brand-blue);
  display:inline-flex; align-items:center; justify-content:center; color:var(--off-white);
  transition:transform .35s var(--easing), background .25s var(--easing);
}
.link-arrow:hover .link-arrow__icon{ transform:translate(2px,-2px); background:var(--royal-blue); }
.link-arrow--sm{ font-size:14px; }
.link-arrow--sm .link-arrow__icon{ display:none; }

/* ===== NAV ===== */
.nav{
  position:fixed;
  top:18px; left:50%;
  transform:translateX(-50%);
  z-index:50;
  width:min(720px, calc(100% - 32px));
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  padding:8px 8px 8px 22px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(15,28,46,.08);
  border-radius:var(--radius-pill);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 12px 30px -18px rgba(15,28,46,.18);
  transition:transform .4s var(--easing), opacity .25s var(--easing);
}
.nav.is-hidden{ transform:translate(-50%,-130%); }
.nav__brand{ display:inline-flex; align-items:center; }
.nav__brand-img{ height:22px; width:auto; display:block; }
.nav__links{ display:flex; align-items:center; gap:22px; font-size:14px; font-weight:400; }
.nav__links a{ position:relative; padding:6px 0; letter-spacing:.01em; color:var(--ink-2); }
.nav__links a:hover{ color:var(--ink); }
.nav__links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--easing);
}
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:left; }
.nav__links a.is-active{ color:var(--ink); font-weight:500; }
.nav__links a.is-active::after{ transform:scaleX(1); transform-origin:left; background:var(--brand-blue); height:2px; }

/* Nav dropdown — Services parent reveals 3 subpages on hover */
.nav__item{ position:relative; display:flex; align-items:center; }
.nav__dropdown{
  position:absolute; top:calc(100% + 14px); left:0;
  transform:translateY(-4px);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(15,28,46,.08);
  border-radius:16px;
  padding:8px;
  width:max-content; max-width:calc(100vw - 32px);
  box-shadow:0 18px 40px -16px rgba(15,28,46,.22);
  opacity:0; pointer-events:none; visibility:hidden;
  transition:opacity .22s var(--easing), transform .22s var(--easing), visibility .22s var(--easing);
  display:grid; grid-template-columns:repeat(3, minmax(160px, 1fr)); gap:4px;
  z-index:60;
}
/* Invisible hover bridge spanning the visual gap between the Services
   trigger and the dropdown panel — keeps the dropdown open while the
   cursor crosses the gap into the menu items. */
.nav__dropdown::before{
  content:""; position:absolute;
  left:0; right:0; top:-14px; height:14px;
}
.nav__item:hover .nav__dropdown,
.nav__item:focus-within .nav__dropdown,
.nav__dropdown:hover{
  opacity:1; pointer-events:auto; visibility:visible;
  transform:translateY(0);
}
.nav__dropdown a{
  display:flex; flex-direction:column; gap:2px;
  padding:10px 14px; border-radius:10px;
  font-size:14px; font-weight:500; color:var(--ink);
  letter-spacing:.005em;
  transition:background .25s var(--easing), color .25s var(--easing);
}
.nav__dropdown a::after{ display:none !important; }
.nav__dropdown a:hover{ background:var(--surface-gray); color:var(--brand-blue); }
.nav__dropdown a small{
  font-size:11px; font-weight:400; color:var(--muted);
  letter-spacing:0;
}
@media (max-width:760px){
  .nav__dropdown{ display:none; }
}
.nav__cta{ display:flex; }
.nav__menu{ display:none; width:42px; height:42px; border-radius:50%; background:var(--surface-gray); position:relative; }
.nav__menu span{ position:absolute; left:11px; right:11px; height:1.5px; background:var(--ink); transition:transform .3s var(--easing), top .3s var(--easing); }
.nav__menu span:nth-child(1){ top:16px; }
.nav__menu span:nth-child(2){ top:24px; }
.nav__menu[aria-expanded="true"] span:nth-child(1){ top:20px; transform:rotate(45deg); }
.nav__menu[aria-expanded="true"] span:nth-child(2){ top:20px; transform:rotate(-45deg); }

@media (max-width: 760px){
  .nav{ padding:8px 8px 8px 18px; }
  .nav__links{ display:none; }
  .nav__menu{ display:block; }
  .nav__brand-img{ height:20px; }
}

/* ===== HERO ===== */
.hero{
  position:relative;
  min-height:auto;
  padding:120px 0 72px;
  overflow:hidden;
}
@media (min-width: 900px){
  .hero{ min-height:auto; padding:140px 0 80px; }
}
.hero__inner{
  display:grid;
  grid-template-columns: 1fr;
  gap:48px;
  position:relative; z-index:2;
}
.hero__copy{ max-width:920px; }
.hero__copy .eyebrow{ margin-bottom:24px; }
.hero__copy .display span{ display:block; }
.hero__copy .display{
  font-family:var(--sans);
  font-weight:500;
  letter-spacing:-.04em;
  line-height:1.02;
  font-size:clamp(40px, 6vw, 84px);
}
.hero__copy .display em{
  font-style:italic;
  font-weight:300;
}
.hero__sub{
  margin-top:22px;
  max-width:560px;
  font-size:16px; line-height:1.55;
  color:var(--ink-2);
  font-weight:400;
}
.hero__actions{
  display:flex; gap:12px; align-items:center; flex-wrap:wrap;
  margin-top:24px;
}
.hero__microcopy{
  margin-top:14px;
  font-size:14px; opacity:.7; color:var(--ink-2);
  max-width:560px;
}
.hero__points{
  list-style:none; margin:24px 0 0; padding:0;
  display:flex; gap:14px 24px; flex-wrap:wrap;
  border-top:1px solid var(--line);
  padding-top:16px;
  max-width:680px;
}
.hero__points li{
  display:flex; align-items:center; gap:10px;
  font-size:14px; color:var(--ink-2);
}
.hero__points li::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:var(--brand-blue);
}

.hero__right{
  position:relative;
  margin-top:28px;
  max-width:380px;
  justify-self:end;
}
.hero__photo-card{
  margin:0;
  width:100%;
  aspect-ratio: 1 / 1;
  border-radius:var(--radius-card);
  overflow:hidden;
  position:relative;
  z-index:1;
  box-shadow:0 22px 50px -22px rgba(15,28,46,.42);
  border:1px solid rgba(15,28,46,.06);
}
.hero__photo-card img{
  width:100%; height:100%;
  object-fit:cover; display:block;
  transform:scale(1.02);
}
.hero__card{
  position:relative;
  z-index:2;
  width:100%;
  margin-top:-88px;
  background:var(--grad-vornix);
  color:var(--on-dark);
  border-radius:var(--radius-lg);
  padding:22px 26px 22px;
  display:flex; flex-direction:column; gap:12px;
  box-shadow:0 30px 60px -28px rgba(15,28,46,.55);
  border:1px solid rgba(255,255,255,.08);
}
.hero__card-mark{
  width:42px; height:42px; border-radius:50%;
  background:rgba(250,250,250,.1);
  border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center;
}
.hero__card-mark svg{ width:24px; height:24px; }
.hero__card-eyebrow{
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  color:rgba(250,250,250,.7);
  margin:0;
}
.hero__card h3{
  font-family:var(--sans); font-weight:500; font-size:20px; letter-spacing:-.01em;
  margin:0; color:var(--on-dark);
}
.hero__card p{ color:rgba(250,250,250,.82); font-size:14px; line-height:1.55; margin:0; }

/* hero gradient orb — Vornix sky/blue radial spotlight */
.hero__gradient{
  position:absolute; inset:-10% -10% -20% -10%;
  background:
    radial-gradient(circle at 70% 30%, rgba(153,185,233,.55) 0%, transparent 42%),
    radial-gradient(circle at 90% 75%, rgba(9,77,176,.18) 0%, transparent 35%),
    radial-gradient(circle at 25% 75%, rgba(4,52,122,.14) 0%, transparent 38%),
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.6) 0%, transparent 50%);
  filter:blur(40px);
  z-index:0;
  animation:gradMove 18s ease-in-out infinite alternate;
}
@keyframes gradMove{
  0%{ transform:translate3d(0,0,0) scale(1); }
  100%{ transform:translate3d(-3%, 2%, 0) scale(1.06); }
}
.hero__noise{
  position:absolute; inset:0; pointer-events:none; z-index:1;
  background-image:radial-gradient(rgba(15,28,46,.025) 1px, transparent 1px);
  background-size:3px 3px;
  opacity:.5;
  mix-blend-mode:multiply;
}

/* Sky-wash divider strip — signature Vornix brand element */
.sheen{
  height:1px; border:0; margin:0;
  background:linear-gradient(90deg, rgba(255,255,255,.2) 0%, rgba(15,28,46,.25) 50%, rgba(255,255,255,.2) 100%);
}

@media (min-width: 900px){
  .hero{ padding:180px 0 120px; }
  .hero__inner{ grid-template-columns: minmax(0,1fr) 380px; align-items:end; }
  .hero__right{ margin-top:0; }
}

/* ===== MISSION / SERVICES (replaces "mission") ===== */
.mission{ padding:120px 0 0; }
.mission__inner{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  padding-bottom:48px;
}
.mission__copy{ max-width:560px; }
.mission__copy .lead{ margin-bottom:18px; }
.mission__pricing{
  margin-top:18px;
  font-size:14px; color:var(--muted);
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 14px; border-radius:var(--radius-pill);
  background:var(--surface-gray);
}
.mission__pricing strong{ color:var(--ink); font-weight:500; }
@media (min-width: 900px){
  .mission__inner{ grid-template-columns: 1.4fr 1fr; gap:80px; }
  .mission__copy{ padding-top:18px; }
}

.pillars{ }
.pillars__tablist{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border-top:1px solid var(--line);
}
@media (min-width: 760px){ .pillars__tablist{ grid-template-columns:repeat(3, 1fr); } }
.pillar-tab{
  position:relative;
  text-align:left;
  padding:22px 16px 22px 0;
  display:flex; gap:14px; align-items:baseline;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  transition:color .3s var(--easing);
  font-weight:400;
  font-size:15px;
}
.pillar-tab__num{ font-size:13px; font-feature-settings:"tnum"; color:var(--muted-2); }
.pillar-tab__label{ font-size:16px; font-weight:500; }
.pillar-tab.is-active{ color:var(--ink); }
.pillar-tab::before{
  content:""; position:absolute; left:0; right:0; top:-1px; height:2px;
  background:var(--brand-blue); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--easing);
}
.pillar-tab.is-active::before{ transform:scaleX(1); }
.pillar-tab:hover{ color:var(--ink); }

.pillars__panels{ position:relative; padding:48px 0 80px; }
.pillar-panel{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  align-items:start;
  opacity:0; transform:translateY(8px);
  transition:opacity .5s var(--easing), transform .5s var(--easing);
}
.pillar-panel[hidden]{ display:none; }
.pillar-panel.is-active{ opacity:1; transform:none; }
.pillar-panel__visual{
  display:flex; align-items:center; justify-content:center;
  height:240px;
  background:var(--surface-gray);
  border-radius:var(--radius-card);
  position:relative; overflow:hidden;
}
.pillar-panel__visual::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 60% at 30% 50%, rgba(153,185,233,.3) 0%, transparent 60%);
}
.pillar-panel__visual svg{ width:60%; height:auto; position:relative; z-index:1; }
.pillar-panel__body h3{
  font-family:var(--sans);
  font-size:24px; font-weight:500; letter-spacing:-.02em; margin:0 0 14px;
  line-height:1.15;
}
.pillar-panel__body p{ color:var(--ink-2); margin-bottom:18px; max-width:46ch; }
.pillar-panel__body .pillar-detail{
  font-size:13px; letter-spacing:.04em;
  color:var(--brand-blue); font-weight:500;
  margin:0 0 22px;
}
.pillar-panel__list-label{
  display:block; font-size:11px; letter-spacing:.18em; color:var(--muted-2); font-weight:500;
  text-transform:uppercase;
  margin-bottom:14px;
}
.pillar-panel__list ul{ list-style:none; margin:0; padding:0; }
.pillar-panel__list li{
  border-bottom:1px solid var(--line);
  padding:14px 0;
  font-size:15px; color:var(--ink-2);
  transition:padding .3s var(--easing), color .3s var(--easing);
}
.pillar-panel__list li:hover{ padding-left:6px; color:var(--ink); }

.pillar-orbit{ animation:spin 30s linear infinite; }
.pillar-mesh{ animation:mesh 6s ease-in-out infinite alternate; transform-origin:center; }
.pillar-rays{ animation:spin 18s linear infinite reverse; }
@keyframes spin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
@keyframes mesh{ 0%{ transform:scale(.96); } 100%{ transform:scale(1.04); } }

@media (min-width:900px){
  .pillar-panel{ grid-template-columns: 1.1fr 1.4fr 1fr; gap:48px; }
  .pillar-panel__visual{ height:380px; }
}

/* ===== SHIFT (was: cases dark) ===== */
.shift{
  position:relative;
  padding:140px 0 160px;
  background:var(--bg-dark);
  color:var(--on-dark);
  overflow:hidden;
}
.shift__bg{
  position:absolute; inset:0;
  background:
    radial-gradient(60% 60% at 12% 92%, rgba(9,77,176,.5) 0%, transparent 60%),
    radial-gradient(50% 50% at 92% 10%, rgba(153,185,233,.18) 0%, transparent 60%),
    radial-gradient(60% 60% at 70% 100%, rgba(4,52,122,.35) 0%, transparent 60%);
  filter:blur(20px);
  opacity:.95;
}
.shift__inner{ position:relative; z-index:1; }
.shift__head{ text-align:left; margin-bottom:60px; max-width:48ch; }
.shift__head .eyebrow{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.18);
  color:rgba(250,250,250,.78);
  margin-bottom:24px;
}
.shift__head h2{ color:var(--on-dark); margin:0; }
.shift__head h2 em{ font-weight:300; }
.shift__head p{ color:rgba(250,250,250,.7); margin:18px 0 0; max-width:60ch; font-size:16px; }

.shift__grid{
  display:grid; gap:1px;
  grid-template-columns:1fr;
  background:rgba(255,255,255,.08);
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
@media (min-width:760px){ .shift__grid{ grid-template-columns:repeat(2, 1fr); } }
@media (min-width:1100px){ .shift__grid{ grid-template-columns:repeat(5, 1fr); } }

.shift-card{
  background:var(--bg-dark);
  padding:32px 28px 32px;
  display:flex; flex-direction:column; gap:14px;
  transition:background .35s var(--easing);
}
.shift-card:hover{ background:rgba(9,77,176,.18); }
.shift-card__letter{
  font-size:48px; font-weight:300; letter-spacing:-.02em; line-height:1;
  color:var(--sky);
}
.shift-card h3{
  font-family:var(--sans); font-weight:500; font-size:18px; letter-spacing:-.005em;
  margin:0; color:var(--on-dark);
}
.shift-card p{ color:rgba(250,250,250,.72); font-size:14px; line-height:1.55; margin:0; }

/* ===== CAPABILITIES — workflow examples ===== */
.capabilities{ padding:120px 0; }
.capabilities__head{ text-align:left; margin-bottom:48px; max-width:48ch; }
.capabilities__head .lead{ margin-top:18px; color:var(--muted); }
.cap-list{ list-style:none; margin:0; padding:0; max-width:920px; margin-inline:auto; border-top:1px solid var(--line); }
.cap{ border-bottom:1px solid var(--line); }
.cap__row{
  display:flex; width:100%; align-items:center; justify-content:space-between;
  padding:24px 4px;
  text-align:left;
  font-size:clamp(18px, 2vw, 24px);
  font-weight:500;
  letter-spacing:-.01em;
  color:var(--ink);
  transition:padding .35s var(--easing), color .25s var(--easing);
}
.cap__row:hover{ padding-left:14px; color:var(--brand-blue); }
.cap__icon{
  width:38px; height:38px; border-radius:50%;
  background:var(--ink); color:var(--off-white);
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
  transition:transform .35s var(--easing), background .25s var(--easing);
}
.cap__row:hover .cap__icon{ background:var(--brand-blue); transform:rotate(45deg); }
.cap.is-open .cap__icon{ transform:rotate(180deg); background:var(--brand-blue); }
.cap__body{
  max-height:0; overflow:hidden;
  transition:max-height .5s var(--easing);
  color:var(--muted); font-size:15px;
  padding:0 60px 0 4px;
}
.cap.is-open .cap__body{ max-height:240px; padding-bottom:18px; }

/* ===== INSIGHTS teaser (home) ===== */
.insights{ padding-block:120px; background:var(--surface-gray); }
.insights__title{ text-align:left; margin-bottom:24px; max-width:48ch; }
.insights__sub{ text-align:left; max-width:50ch; margin:0 0 56px; color:var(--muted); }
.insights__grid{
  display:grid; gap:32px;
  grid-template-columns:1fr;
}
@media (min-width:760px){ .insights__grid{ grid-template-columns:repeat(3, 1fr); } }

.insight{ display:flex; flex-direction:column; gap:18px; }
.insight__media{
  display:block; aspect-ratio:16/10; border-radius:var(--radius-card);
  position:relative; overflow:hidden;
  transition:transform .5s var(--easing);
}
.insight:hover .insight__media{ transform:translateY(-4px); }
.insight__media-num{
  position:absolute; left:14px; top:14px;
  font-size:11px; letter-spacing:.18em; font-weight:500; text-transform:uppercase;
  color:rgba(255,255,255,.92);
  background:rgba(15,28,46,.5);
  padding:5px 10px; border-radius:6px;
  backdrop-filter:blur(4px);
}
.insight__media--1{ background:linear-gradient(135deg,#94B5E6 0%,#04347A 60%,#0F1C2E 100%); }
.insight__media--1::after{
  content:""; position:absolute; left:50%; top:30%; transform:translateX(-50%);
  width:160px; height:60px; border-radius:50%;
  background:radial-gradient(circle, #fff 0%, rgba(255,255,255,.4) 50%, transparent 75%);
  filter:blur(6px);
}
.insight__media--2{ background:linear-gradient(135deg,#04347A 0%,#094DB0 60%,#99B9E9 110%); }
.insight__media--2::after{
  content:"";position:absolute; inset:60% 0 0 0;
  background:linear-gradient(0deg, rgba(15,28,46,.55), transparent 80%);
}
.insight__media--3{ background:linear-gradient(160deg,#0F1C2E 0%,#08081B 100%); }
.insight__media--3::after{
  content:""; position:absolute; left:35%; right:0; top:0; bottom:0;
  background:repeating-linear-gradient(90deg, #04347A 0 12%, #0F1C2E 12% 18%);
  opacity:.85;
}
.insight__body h3{
  font-family:var(--sans); font-size:18px; font-weight:500; letter-spacing:-.005em;
  margin:0 0 8px; line-height:1.3;
}
.insight__body p{ font-size:14px; color:var(--muted); margin:0; line-height:1.55; }

/* ===== CTA + FOOTER ===== */
.cta-final{
  position:relative;
  background:var(--bg-dark);
  color:var(--on-dark);
  padding:140px 0 36px;
  overflow:hidden;
}
.cta-final__bg{
  position:absolute; inset:0;
  background:
    radial-gradient(80% 70% at 92% 100%, rgba(9,77,176,.55) 0%, transparent 60%),
    radial-gradient(70% 70% at 5% 100%, rgba(153,185,233,.25) 0%, transparent 55%);
  filter:blur(20px);
  opacity:.95;
}
.cta-final__inner{ position:relative; z-index:1; text-align:center; }
.cta-final__title{
  color:var(--on-dark);
  font-size:clamp(48px, 8vw, 110px);
  margin-bottom:18px;
  max-width:18ch; margin-inline:auto;
  font-weight:500;
}
.cta-final__title em{ font-style:italic; font-weight:300; }
.cta-final__sub{ max-width:48ch; margin:0 auto 36px; color:rgba(250,250,250,.78); font-size:17px; }
.cta-final__microcopy{ margin-top:16px; font-size:13px; color:rgba(250,250,250,.7); }

.footer{
  margin-top:96px;
  background:var(--off-white);
  color:var(--ink);
  border-radius:var(--radius-lg);
  padding:48px;
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  text-align:left;
}
.footer__col--brand{ display:flex; flex-direction:column; gap:18px; }
.footer__mark{ width:auto; height:36px; }
.footer__mark img{ height:100%; width:auto; display:block; }
.footer__col--brand p{ font-size:15px; max-width:30ch; color:var(--ink-2); margin:0; }
.footer__col--brand .link-arrow{ font-size:14px; }
.footer__contact{
  font-size:14px; color:var(--muted); margin:0;
}
.footer__contact a{ color:var(--ink-2); text-decoration:underline; text-underline-offset:3px; }
.footer__socials{ display:flex; gap:8px; margin-top:8px; }
.footer__social{
  width:32px; height:32px; border-radius:50%; border:1px solid var(--line);
  display:inline-flex; align-items:center; justify-content:center; color:var(--ink);
  transition:background .25s var(--easing), color .25s var(--easing);
}
.footer__social:hover{ background:var(--brand-blue); color:var(--off-white); border-color:var(--brand-blue); }
.footer__copy{ font-size:13px; color:var(--muted); margin-top:auto; }
.footer__copy a{ color:var(--muted); text-decoration:underline; text-underline-offset:3px; }
.footer__nav{ display:flex; flex-direction:column; gap:0; }
.footer__link{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 0;
  border-bottom:1px solid var(--line);
  font-size:clamp(24px, 3.5vw, 44px);
  font-weight:500;
  letter-spacing:-.02em;
  transition:color .25s var(--easing);
}
.footer__link:first-child{ border-top:1px solid var(--line); }
.footer__link:hover{ color:var(--brand-blue); }
.footer__link-icon{
  width:36px; height:36px; border-radius:50%; background:var(--ink); color:var(--off-white);
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:transform .35s var(--easing), background .25s var(--easing);
}
.footer__link:hover .footer__link-icon{ transform:rotate(45deg); background:var(--brand-blue); }

@media (min-width:900px){
  .footer{ grid-template-columns: 1fr 1.4fr; gap:60px; }
}

/* ===== STICKY CTA — "Book a fit call" ===== */
.sticky-cta{
  position:fixed; z-index:45;
  right:24px; bottom:24px;
  display:none;
  background:var(--brand-blue);
  color:var(--off-white);
  padding:14px 14px 14px 22px;
  border-radius:var(--radius-pill);
  font-weight:500; font-size:15px;
  align-items:center; gap:10px;
  box-shadow:0 18px 40px -16px rgba(4,52,122,.55);
  transform:translateY(120%);
  transition:transform .45s var(--easing), background .25s var(--easing);
}
.sticky-cta.is-visible{ display:inline-flex; transform:translateY(0); }
.sticky-cta:hover{ background:var(--royal-blue); }
.sticky-cta__icon{
  width:30px; height:30px; border-radius:50%;
  background:rgba(255,255,255,.18); color:var(--off-white);
  display:inline-flex; align-items:center; justify-content:center;
  transition:transform .35s var(--easing);
}
.sticky-cta:hover .sticky-cta__icon{ transform:rotate(45deg); }
@media (max-width:600px){
  .sticky-cta{
    left:auto;
    right:16px;
    bottom:16px;
    border-radius:var(--radius-pill);
    padding:12px 18px;
    font-size:14px;
    box-shadow:0 12px 32px -10px rgba(15,28,46,.35);
  }
}

/* ===== MOBILE DRAWER ===== */
.mdrawer{
  position:fixed; inset:0; z-index:40;
  background:var(--off-white);
  display:flex; flex-direction:column; gap:18px;
  padding:120px 32px 40px;
  transform:translateY(-100%);
  transition:transform .45s var(--easing);
  pointer-events:none;
}
.mdrawer a{ font-size:32px; font-weight:500; letter-spacing:-.02em; color:var(--ink); }
.mdrawer .btn{ align-self:flex-start; margin-top:14px; }
.mdrawer.is-open{ transform:none; pointer-events:auto; }

/* ===== REVEAL ===== */
[data-reveal]{ opacity:0; transform:translate3d(0,18px,0); transition:opacity .8s var(--easing), transform .8s var(--easing); }
[data-reveal].is-in{ opacity:1; transform:none; }
/* Use plain inline (not inline-block) so punctuation after an <em> stays
   attached to the preceding word during line wrapping. With inline-block,
   the comma in "<em>Mustafa Sharifi</em>, Founder…" was getting orphaned
   onto its own line because each .split-word was a separate box. */
[data-split] .split-word{ display:inline; }
[data-split] .split-word > span{ display:inline; }
/* Word-by-word slide animation removed — it caused half-revealed text
   to flash on slow loads. Headlines still fade in via data-reveal opacity. */

/* ===== INLINE EYEBROW (no glass bg) ===== */
.eyebrow--inline{
  background:transparent;
  border:0;
  padding:0;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--brand-blue);
  display:inline-block;
  margin-bottom:18px;
}
.eyebrow--inline-muted{ color:var(--muted-2); }

/* ===== PAGE HERO (used on About / Insights / Contact) ===== */
.page-hero{
  position:relative;
  padding:180px 0 80px;
  overflow:hidden;
}
.page-hero__gradient{
  position:absolute; inset:-10% -10% 0 -10%;
  background:
    radial-gradient(circle at 80% 20%, rgba(153,185,233,.45) 0%, transparent 42%),
    radial-gradient(circle at 15% 60%, rgba(9,77,176,.18) 0%, transparent 38%),
    radial-gradient(circle at 60% 95%, rgba(4,52,122,.18) 0%, transparent 38%);
  filter:blur(40px);
  z-index:0;
  animation:gradMove 22s ease-in-out infinite alternate;
}
.page-hero__inner{ position:relative; z-index:1; max-width:1100px; }
.page-hero__inner .eyebrow{ margin-bottom:28px; }
.page-hero__title{ max-width:18ch; }
.page-hero__title--contact{ max-width:14ch; font-size:clamp(56px, 9vw, 120px); }
.page-hero__sub{
  margin-top:24px; max-width:560px;
  font-size:18px; line-height:1.5; color:var(--ink-2);
}

/* ===== ABOUT — manifesto ===== */
.manifesto{
  padding-block:120px;
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
}
.manifesto__head{ max-width:46ch; }
.manifesto__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}
.principle{
  background:var(--surface-gray);
  border-radius:var(--radius-card);
  padding:32px 28px 28px;
  display:flex; flex-direction:column; gap:14px;
  border:1px solid transparent;
  transition:transform .35s var(--easing), border-color .25s var(--easing), background .35s var(--easing);
}
.principle:hover{ transform:translateY(-4px); border-color:var(--line-strong); background:#fff; }
.principle__num{
  font-size:11px; letter-spacing:.18em; font-weight:500; color:var(--brand-blue); text-transform:uppercase;
}
.principle h3{
  font-family:var(--sans); font-weight:500; font-size:20px; letter-spacing:-.01em;
  margin:0;
}
.principle p{ font-size:15px; color:var(--ink-2); margin:0; line-height:1.55; }
@media (min-width:760px){ .manifesto__grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:900px){
  .manifesto{ grid-template-columns: 1fr 2fr; gap:80px; align-items:start; }
}

/* ===== ABOUT — founder spotlight ===== */
.founder-spotlight{ padding:clamp(72px, 10vw, 140px) 0; }
.founder-spotlight__inner{
  display:grid; grid-template-columns:1fr; gap:clamp(40px, 5vw, 80px);
  align-items:center;
}
@media (min-width:900px){
  .founder-spotlight__inner{ grid-template-columns: minmax(0, 0.9fr) 1fr; gap:clamp(56px, 6vw, 96px); }
}
.founder-spotlight__media{ position:relative; }
.founder-spotlight__frame{
  position:relative;
  aspect-ratio:4/5; width:100%; max-width:520px;
  border-radius:24px; overflow:hidden;
  background:var(--surface-gray);
  box-shadow: 0 30px 80px rgba(15,28,46,.10);
  transition: transform .6s var(--easing);
}
.founder-spotlight__frame svg,
.founder-spotlight__frame img{ width:100%; height:100%; display:block; object-fit:cover; }
.founder-spotlight__media:hover .founder-spotlight__frame{ transform: translateY(-4px); }
.founder-spotlight__caption{
  position:absolute; left:24px; bottom:22px;
  background:rgba(250,250,250,.92); backdrop-filter: blur(6px);
  border-radius:999px; padding:10px 18px;
  font-style:italic; font-weight:300; font-size:18px; color:var(--ink);
  box-shadow: 0 6px 20px rgba(15,28,46,.08);
}
.founder-spotlight__signature{ letter-spacing:.01em; }
.founder-spotlight__body .eyebrow{ margin-bottom:18px; }
.founder-spotlight__body h2{ margin:0 0 24px; }
.founder-spotlight__body .lead{ font-size:clamp(17px, 1.4vw, 19px); color:var(--ink); margin:0 0 18px; }
.founder-spotlight__body p{ color:var(--muted); margin:0 0 16px; line-height:1.65; }
.founder-spotlight__linkedin{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:6px; padding:10px 16px;
  border-radius:var(--radius-pill);
  border:1px solid var(--line-strong);
  font-size:14px; font-weight:500; color:var(--ink);
  transition:background .25s var(--easing), border-color .25s var(--easing);
}
.founder-spotlight__linkedin:hover{ background:var(--brand-blue); color:var(--off-white); border-color:var(--brand-blue); }
.founder-spotlight__facts{
  list-style:none; padding:0; margin:32px 0 0;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
  border-top:1px solid var(--line);
}
@media (max-width:600px){
  .founder-spotlight__facts{ grid-template-columns:1fr; }
}
.founder-spotlight__facts li{
  padding:18px;
  border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:4px;
}
.founder-spotlight__facts li:first-child{ padding-left:0; }
.founder-spotlight__facts li:last-child{ border-right:0; padding-right:0; }
@media (max-width:600px){
  .founder-spotlight__facts li{ border-right:0; border-bottom:1px solid var(--line); padding:14px 0; }
  .founder-spotlight__facts li:last-child{ border-bottom:0; }
}
.founder-spotlight__facts span{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.founder-spotlight__facts strong{
  font-style:italic; font-weight:300; font-size:20px; color:var(--ink);
}

/* ===== ABOUT — approach (dark) ===== */
.approach{
  background:var(--bg-dark); color:var(--on-dark);
  padding:120px 0 130px;
  position:relative; overflow:hidden;
}
.approach::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(60% 50% at 90% 10%, rgba(9,77,176,.45) 0%, transparent 60%),
    radial-gradient(50% 50% at 10% 90%, rgba(153,185,233,.16) 0%, transparent 60%);
  filter:blur(20px); opacity:.95; pointer-events:none;
}
.approach__inner{ position:relative; z-index:1; }
.approach__head{ max-width:36ch; margin-bottom:60px; }
.approach__head h2{ color:var(--on-dark); }
.approach__head h2 em{ font-style:italic; font-weight:300; }
.approach__head .eyebrow{
  border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.05); color:var(--on-dark);
}
.steps{
  list-style:none; margin:0; padding:0;
  display:grid; gap:0;
}
.step{
  display:grid;
  grid-template-columns: 80px 1fr;
  align-items:start;
  gap:24px;
  padding:28px 0;
  border-top:1px solid var(--line-on-dark);
  transition:padding .3s var(--easing);
}
.step:hover{ padding-left:8px; }
.step:last-child{ border-bottom:1px solid var(--line-on-dark); }
.step__num{ font-size:13px; letter-spacing:.18em; font-weight:500; color:var(--sky); padding-top:6px; }
.step h3{ font-family:var(--sans); font-weight:500; font-size:22px; letter-spacing:-.015em; margin:0 0 8px; color:var(--on-dark); }
.step p{ color:rgba(250,250,250,.74); font-size:15px; line-height:1.6; margin:0; max-width:60ch; }

/* ===== ABOUT — selected partners (industries) ===== */
.selected{ padding-block:120px; }
.selected__head{ max-width:36ch; margin-bottom:32px; }
.partners{
  list-style:none; margin:0; padding:0;
  border-top:1px solid var(--line);
}
.partners li{
  border-bottom:1px solid var(--line);
  padding:22px 4px;
  display:flex; justify-content:space-between; align-items:baseline;
  transition:padding .3s var(--easing), color .3s var(--easing);
}
.partners li:hover{ padding-left:14px; color:var(--brand-blue); }
.partners li > span:first-child{ font-size:clamp(18px, 2vw, 26px); font-weight:500; letter-spacing:-.01em; }
.partners__cat{ font-size:12px; letter-spacing:.16em; color:var(--muted-2); text-transform:uppercase; font-weight:500; }

/* ===== INSIGHTS PAGE ===== */
.insights-page{ padding:60px 0 120px; }
.filters{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:48px;
}
.filter{
  font-size:14px; font-weight:500;
  padding:10px 18px;
  border-radius:var(--radius-pill);
  border:1px solid var(--line-strong);
  color:var(--ink-2);
  transition:background .25s var(--easing), color .25s var(--easing), border-color .25s var(--easing);
  min-height:40px;
}
.filter:hover{ border-color:var(--ink); }
.filter.is-active{ background:var(--ink); color:var(--off-white); border-color:var(--ink); }

.featured{
  display:grid; grid-template-columns:1fr; gap:32px;
  margin-bottom:80px;
  padding:32px;
  background:var(--surface-gray);
  border-radius:var(--radius-lg);
}
.featured__media{
  display:block; aspect-ratio:16/10; border-radius:var(--radius-card);
  position:relative; overflow:hidden;
  background:
    radial-gradient(circle at 30% 30%, rgba(153,185,233,.65), transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(9,77,176,.55), transparent 50%),
    radial-gradient(circle at 50% 100%, rgba(4,52,122,.5), transparent 60%),
    var(--grad-vornix);
}
.featured__num{
  position:absolute; left:16px; top:16px;
  font-size:11px; letter-spacing:.18em; font-weight:500; text-transform:uppercase; color:rgba(255,255,255,.92);
  background:rgba(15,28,46,.5); padding:5px 10px; border-radius:6px;
  backdrop-filter:blur(4px);
}
.featured__body h2{ margin:14px 0 16px; }
.featured__body p{ font-size:17px; line-height:1.55; color:var(--ink-2); margin-bottom:22px; max-width:60ch; }
@media (min-width:900px){
  .featured{ grid-template-columns: 1.1fr 1fr; gap:48px; padding:40px; align-items:center; }
}

.article__cat{
  display:inline-block;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  font-weight:500; color:var(--brand-blue);
  margin-bottom:8px;
}

.article-grid{
  list-style:none; margin:0; padding:0;
  display:grid; gap:40px 28px;
  grid-template-columns:1fr;
}
@media (min-width:760px){ .article-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1100px){ .article-grid{ grid-template-columns:repeat(3,1fr); } }
.article{ display:flex; flex-direction:column; gap:14px; transition:transform .5s var(--easing); }
.article:hover{ transform:translateY(-4px); }
.article__media{
  display:block; aspect-ratio:16/10; border-radius:var(--radius-card);
  position:relative; overflow:hidden;
}
.article__num{
  position:absolute; left:14px; top:14px;
  font-size:11px; letter-spacing:.18em; font-weight:500; text-transform:uppercase;
  color:rgba(255,255,255,.92);
  background:rgba(15,28,46,.5); padding:4px 8px; border-radius:6px;
  backdrop-filter:blur(4px);
}
.article__media--1{ background:linear-gradient(135deg, #99B9E9 0%, #04347A 100%); }
.article__media--1::after{ content:""; position:absolute; left:30%; top:35%; width:50%; height:40%; border-radius:50%; background:radial-gradient(circle,#fff,transparent 70%); filter:blur(12px); }
.article__media--2{ background:linear-gradient(135deg, #094DB0 0%, #08081B 100%); }
.article__media--2::after{ content:""; position:absolute; inset:60% 0 0 0; background:linear-gradient(0, rgba(15,28,46,.55), transparent 80%); }
.article__media--3{ background:linear-gradient(160deg, #04347A 0%, #99B9E9 100%); }
.article__media--3::after{ content:""; position:absolute; left:20%; top:30%; width:60%; height:55%; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.4), transparent 70%); filter:blur(8px); }
.article__media--4{ background:linear-gradient(135deg, #99B9E9 0%, #04347A 100%); }
.article__media--4::after{ content:""; position:absolute; left:30%; top:20%; right:10%; bottom:30%; background:repeating-linear-gradient(45deg, rgba(255,255,255,.2) 0 10px, transparent 10px 24px); }
.article__media--5{ background:linear-gradient(160deg, #0F1C2E 0%, #08081B 100%); }
.article__media--5::after{ content:""; position:absolute; left:50%; top:0; right:0; bottom:0; background:repeating-linear-gradient(90deg, #094DB0 0 14px, #0F1C2E 14px 22px); opacity:.85; }
.article__media--6{ background:linear-gradient(135deg, #99B9E9 0%, #094DB0 100%); }
.article__media--6::after{ content:""; position:absolute; left:25%; top:30%; width:50%; height:50%; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.45), transparent 65%); filter:blur(10px); }

.article h3{
  font-family:var(--sans); font-weight:500; font-size:18px; letter-spacing:-.005em;
  margin:0; line-height:1.3;
}
.article p{ font-size:14px; color:var(--muted); line-height:1.55; margin:0; }

/* ===== NEWSLETTER / LEAD MAGNET ===== */
.newsletter{ padding:120px 0; background:var(--surface-gray); }
.newsletter__inner{ display:grid; grid-template-columns:1fr; gap:36px; align-items:center; }
.newsletter__copy h2{ margin:0; }
.newsletter__copy h2 em{ font-style:italic; font-weight:300; }
.newsletter__copy .lead{ margin-top:18px; max-width:46ch; color:var(--ink-2); }
.newsletter__form{
  display:flex; gap:8px; flex-wrap:wrap;
  background:#fff;
  border-radius:var(--radius-pill);
  padding:8px 8px 8px 24px;
  border:1px solid var(--line);
  max-width:540px;
}
.newsletter__form input[type="email"]{
  flex:1 1 200px; min-width:0;
  border:0; background:transparent;
  font:inherit; font-size:15px;
  color:var(--ink); padding:10px 0;
  outline:none;
}
.newsletter__form input::placeholder{ color:var(--muted-2); }
.newsletter__form .btn{ flex-shrink:0; }
.newsletter__privacy{
  font-size:12px; color:var(--muted); margin:14px 0 0; max-width:46ch;
}
@media (min-width:900px){ .newsletter__inner{ grid-template-columns:1fr 1fr; gap:80px; } }

/* ===== CONTACT PAGE ===== */
.contact-page{ padding-block:40px 120px; }
.contact-grid{
  display:grid; grid-template-columns:1fr; gap:48px;
}
@media (min-width:900px){ .contact-grid{ grid-template-columns: 1.4fr 1fr; gap:64px; align-items:start; } }

.calendar-mount{
  background:#fff;
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  padding:24px 24px 16px;
  margin-bottom:32px;
}
.calendar-mount__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:18px; flex-wrap:wrap;
  margin-bottom:14px;
}
.calendar-mount__head h2{
  font-size:20px; font-weight:500; letter-spacing:-.01em; margin:0; color:var(--ink);
}
.calendar-mount__head p{ font-size:13px; color:var(--muted); margin:0; }
.calendar-mount__frame{
  position:relative;
  background:var(--surface-gray);
  border-radius:var(--radius-card);
  overflow:hidden;
  min-height:280px;
}
.calendar-mount__frame .calendly-inline-widget{
  position:relative;
  z-index:1;
  background:transparent;
  width:100%;
  min-width:0 !important;
}
.calendar-mount__frame .calendly-inline-widget iframe{
  width:100% !important;
  display:block;
}
.calendar-mount iframe{
  width:100%; min-height:680px; border:0; display:block; border-radius:var(--radius-card);
}

.contact-form{
  display:flex; flex-direction:column; gap:18px;
  background:#fff;
  padding:32px;
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
}
.contact-form[hidden]{ display:none; }
.contact-form__head h2{
  font-size:18px; font-weight:500; letter-spacing:-.005em; margin:0 0 6px; color:var(--ink);
}
.contact-form__head p{ font-size:13px; color:var(--muted); margin:0 0 6px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{
  font-size:12px; letter-spacing:.14em; font-weight:500; text-transform:uppercase;
  color:var(--muted);
}
.field input, .field select, .field textarea{
  font:inherit; font-size:15px; color:var(--ink);
  background:var(--surface-gray);
  border:1px solid transparent;
  border-radius:12px;
  padding:14px 16px;
  outline:none;
  transition:border-color .2s var(--easing), background .2s var(--easing);
  width:100%; box-sizing:border-box;
}
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--brand-blue); background:#fff;
}
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"]{
  border-color:#c43c4c; background:#fff;
}
.field textarea{ resize:vertical; min-height:120px; }
.field-row{
  display:grid; grid-template-columns:1fr; gap:18px;
}
@media (min-width:600px){ .field-row{ grid-template-columns:1fr 1fr; } }
.field__error{
  font-size:13px; color:#c43c4c; min-height:0;
  margin:0; transition:opacity .2s var(--easing);
}
.field__error:empty{ display:none; }

.form-actions{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:8px; }
.form-privacy{
  font-size:12px; color:var(--muted); margin:6px 0 0; max-width:50ch; line-height:1.5;
}
.form-meta{ font-size:13px; color:var(--muted-2); margin:0; }
.form-success{
  background:var(--surface-gray);
  border:1px solid var(--line);
  color:var(--ink);
  padding:24px 26px; border-radius:var(--radius-card);
  font-size:15px;
}
.form-success h3{ margin:0 0 8px; font-weight:500; font-size:18px; }
.form-success p{ margin:0; color:var(--ink-2); font-size:14px; }
button[disabled]{ opacity:.5; cursor:not-allowed; }
.form-honeypot{ position:absolute; left:-10000px; width:1px; height:1px; opacity:0; }

.studio{ display:flex; flex-direction:column; gap:18px; }
.studio__card{
  background:var(--surface-gray);
  border-radius:var(--radius-card);
  padding:22px 24px;
}
.studio__card h3{ font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-2); font-weight:500; margin:0 0 10px; }
.studio__card p{ font-size:15px; line-height:1.55; color:var(--ink); margin:0; }
.studio__card a{ text-decoration:underline; text-underline-offset:3px; }
.studio__map{
  position:relative;
  aspect-ratio:1.6/1;
  border-radius:var(--radius-card);
  overflow:hidden;
  background:var(--surface-gray);
}
.studio__map > #sd-map{
  position:absolute; inset:0;
  width:100%; height:100%;
}
.studio__map-attrib{
  position:absolute;
  right:8px; bottom:6px;
  margin:0;
  font-size:10px;
  color:rgba(15,28,46,.45);
  background:rgba(255,255,255,.6);
  padding:1px 6px;
  border-radius:4px;
  pointer-events:none;
  letter-spacing:0;
  text-transform:none;
}
/* Hide any stray Leaflet UI we are not using */
.studio__map .leaflet-control-container{ display:none; }
.studio__map .leaflet-pane .leaflet-marker-pane,
.studio__map .leaflet-pane .leaflet-popup-pane{ display:none; }

/* ===== QUIET CTA (used on contact page) ===== */
.cta-final--quiet{ padding:60px 0 36px; }
.cta-final--quiet .cta-final__bg{
  background:
    radial-gradient(60% 50% at 95% 100%, rgba(9,77,176,.4) 0%, transparent 60%),
    radial-gradient(50% 50% at 5% 100%, rgba(153,185,233,.18) 0%, transparent 55%);
}
.cta-final__title--quiet{
  font-size:clamp(36px, 5vw, 64px);
  margin-bottom:60px; max-width:none;
}

/* ===== UTIL ===== */
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ===== About — sample engagements ===== */
.about-work{ padding: clamp(64px, 9vw, 120px) 0; }
.about-work__head{ max-width: 760px; margin: 0 auto clamp(40px, 5vw, 64px); text-align: center; }
.about-work__head .lead{ color: var(--muted); margin-top: 14px; }
.about-work__grid{
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.4vw, 32px);
}
@media (max-width: 900px){ .about-work__grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px){ .about-work__grid{ grid-template-columns: 1fr; } }
.work-card{
  background: var(--surface-gray); border-radius: var(--radius-card);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .5s var(--easing), box-shadow .5s var(--easing);
}
.work-card:hover{ transform: translateY(-4px); box-shadow: 0 24px 60px rgba(15,28,46,.10); }
.work-card__media{
  position: relative; aspect-ratio: 4 / 3;
  display: flex; align-items: flex-end; padding: 22px;
}
.work-card__media--1,
.work-card__media--2,
.work-card__media--3{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.work-card__media--1{
  background-image:
    linear-gradient(135deg, rgba(15,28,46,.55) 0%, rgba(4,52,122,.78) 100%),
    url('./assets/photos/industry-professional.jpg');
}
.work-card__media--2{
  background-image:
    linear-gradient(135deg, rgba(9,77,176,.55) 0%, rgba(15,28,46,.85) 100%),
    url('./assets/photos/industry-healthcare-realestate.jpg');
}
.work-card__media--3{
  background-image:
    linear-gradient(135deg, rgba(4,52,122,.55) 0%, rgba(8,8,27,.85) 100%),
    url('./assets/photos/industry-logistics.jpg');
}
.work-card__num{
  font-style: italic; font-weight:300; font-size: 28px;
  color: rgba(255,255,255,.92); letter-spacing: .02em;
}
.work-card__body{ padding: 22px 24px 28px; }
.work-card__cat{
  display: inline-block; font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--brand-blue); margin-bottom: 10px; font-weight:500;
}
.work-card__body h3{
  font-family: var(--sans); font-weight:500; font-size: clamp(20px, 2vw, 24px);
  margin: 0 0 10px; line-height: 1.2;
}
.work-card__body p{ color: var(--muted); margin: 0; font-size:14px; line-height:1.55; }

/* ===== Stacked intro with 4-card row (used on /how-we-work.html) ===== */
.intro-split{
  padding-block:96px 64px;
  display:flex; flex-direction:column; gap:48px;
}
@media (min-width:900px){
  .intro-split{ padding-block:120px 80px; gap:64px; }
}
.intro-split__copy{ max-width:760px; }
.intro-split__copy h2{ margin:14px 0 18px; max-width:18ch; }
.intro-split__copy .lead{ color:var(--muted); max-width:60ch; margin:0 0 14px; }
.intro-split__copy .intro-split__note{
  font-size:14px; color:var(--muted-2); max-width:60ch; margin:0;
}
.intro-split__phases{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:14px;
}
@media (max-width:760px){ .intro-split__phases{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:480px){ .intro-split__phases{ grid-template-columns:1fr; } }
.intro-split__phases li{
  display:flex; flex-direction:column; gap:6px;
  background:var(--surface-gray);
  border-radius:18px;
  padding:20px 18px 18px;
  border:1px solid transparent;
  transition:transform .35s var(--easing), border-color .25s var(--easing), background .35s var(--easing);
}
.intro-split__phases li:hover{
  transform:translateY(-3px);
  border-color:var(--line-strong);
  background:#fff;
}
.intro-split__num{
  font-size:11px; letter-spacing:.18em; font-weight:500; color:var(--brand-blue); text-transform:uppercase;
}
.intro-split__phases strong{
  font-family:var(--sans); font-weight:500; font-size:20px; letter-spacing:-.01em; color:var(--ink);
  line-height:1.05;
}
.intro-split__phases small{ font-size:12px; color:var(--muted); line-height:1.5; }

/* ===== Service overview cards (services.html) ===== */
.service-cards{
  display:grid; gap:24px;
  grid-template-columns:1fr;
  padding-top:24px; padding-bottom:24px;
}
@media (min-width:760px){ .service-cards{ grid-template-columns:repeat(3,1fr); } }
.service-card{
  display:flex; flex-direction:column; gap:14px;
  background:var(--surface-gray);
  border:1px solid transparent;
  border-radius:var(--radius-lg);
  padding:32px 28px 28px;
  transition:transform .35s var(--easing), border-color .25s var(--easing), background .35s var(--easing), box-shadow .35s var(--easing);
}
.service-card:hover{
  transform:translateY(-6px);
  background:var(--grad-vornix);
  color:var(--off-white);
  border-color:transparent;
  box-shadow:0 30px 60px -30px rgba(4,52,122,.45);
}
.service-card:hover h2{ color:var(--off-white); }
.service-card:hover .service-card__num,
.service-card:hover .service-card__time{ color:var(--sky); }
.service-card:hover .service-card__desc{ color:rgba(250,250,250,.85); }
.service-card:hover .service-card__link{ color:var(--off-white); }
.service-card__num{
  font-size:13px; letter-spacing:.18em; font-weight:500; color:var(--brand-blue); text-transform:uppercase;
}
.service-card h2{
  font-family:var(--sans); font-weight:500; font-size:clamp(28px, 3vw, 36px);
  letter-spacing:-.02em; margin:0; line-height:1.05;
}
.service-card__time{
  font-size:13px; color:var(--muted); margin:0;
}
.service-card__desc{
  font-size:15px; color:var(--ink-2); margin:0; line-height:1.55; flex:1;
}
.service-card__link{
  display:inline-flex; align-items:center; gap:10px;
  font-size:14px; font-weight:500; color:var(--brand-blue);
  margin-top:8px;
}
.service-card__link .link-arrow__icon{ background:var(--brand-blue); color:var(--off-white); }
.service-card:hover .service-card__link .link-arrow__icon{ transform:translate(2px,-2px); background:var(--off-white); color:var(--brand-blue); }

/* Pricing-note card on /services.html */
.service-pricing{ padding-block:48px 96px; }
.service-pricing__card{
  background:var(--surface-gray);
  border-radius:var(--radius-lg);
  padding:clamp(32px, 4vw, 56px);
  max-width:880px;
}
.service-pricing__card .eyebrow--inline{ margin-bottom:14px; }
.service-pricing__card h2{ margin:0 0 18px; max-width:24ch; }
.service-pricing__card p{ font-size:17px; line-height:1.55; color:var(--ink-2); margin:0 0 24px; max-width:60ch; }
.service-pricing__card em{ font-style:italic; font-weight:300; }

/* ===== Service deep-dive subpages ===== */
.tier-detail{ padding-block:48px 96px; }
.tier-detail__grid{
  display:grid; grid-template-columns:1fr; gap:48px;
}
@media (min-width:900px){
  .tier-detail__grid{
    grid-template-columns:1.4fr 1fr;
    grid-template-rows:1fr auto;
    grid-template-areas:
      "body rail"
      "body aside";
    column-gap:80px;
    row-gap:32px;
    align-items:start;
  }
  .tier-detail__body{ grid-area:body; }
  .tier-detail__rail{ grid-area:rail; align-self:stretch; }
  .tier-detail__aside{ grid-area:aside; align-self:start; }
}
.tier-detail__body h2{
  font-family:var(--sans); font-weight:500; font-size:clamp(24px, 2.4vw, 32px);
  letter-spacing:-.015em; margin:36px 0 14px; line-height:1.15;
}
.tier-detail__body h2:first-child{ margin-top:0; }
.tier-detail__body p{ font-size:16px; line-height:1.65; color:var(--ink-2); margin:0 0 18px; max-width:60ch; }
.tier-detail__body ul{ margin:0 0 24px; padding-left:0; list-style:none; }
.tier-detail__body li{
  position:relative; padding-left:22px; margin-bottom:10px;
  color:var(--ink-2); line-height:1.5;
}
.tier-detail__body li::before{
  content:""; position:absolute; left:0; top:11px;
  width:8px; height:1px; background:var(--brand-blue);
}
.tier-detail__visual{
  position:relative;
  aspect-ratio:1.05/1;
  border-radius:var(--radius-lg);
  background:var(--grad-vornix);
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 30px 60px -30px rgba(15,28,46,.35);
}
@media (max-width:899px){
  .tier-detail__rail{ margin-bottom:18px; }
}
@media (min-width:900px){
  /* On desktop the image pins inside .tier-detail__rail. The rail occupies
     row 1 of the right column (1fr) and the at-a-glance card occupies row 2
     (auto), so the sticky image releases exactly when the card scrolls in. */
  .tier-detail__visual{ position:sticky; top:100px; }
}
.tier-detail__visual::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 60% at 30% 30%, rgba(153,185,233,.4) 0%, transparent 60%);
  pointer-events:none;
}
.tier-detail__visual svg{ width:55%; height:auto; position:relative; z-index:1; }
.tier-detail__visual-caption{
  position:absolute; left:24px; bottom:22px; right:24px;
  color:rgba(250,250,250,.85);
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
  display:flex; align-items:center; gap:10px;
  z-index:1;
}
.tier-detail__visual-caption span{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3); font-size:11px;
  letter-spacing:0; color:var(--sky);
}
.tier-detail__aside{
  background:var(--surface-gray);
  border-radius:var(--radius-lg);
  padding:28px 28px 24px;
}
.tier-detail__aside h3{
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  color:var(--muted); margin:0 0 14px;
}
.tier-detail__meta{
  list-style:none; margin:0; padding:0;
  display:grid; gap:14px;
}
.tier-detail__meta li{
  display:flex; flex-direction:column; gap:2px;
  padding-bottom:14px; border-bottom:1px solid var(--line);
}
.tier-detail__meta li:last-child{ border-bottom:0; padding-bottom:0; }
.tier-detail__meta li span{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2);
}
.tier-detail__meta li strong{
  font-weight:500; color:var(--ink); font-size:15px;
}

/* Step list (used on /how-we-work.html and tier subpages) */
.process-steps{
  list-style:none; margin:0; padding:0;
  border-top:1px solid var(--line);
}
.process-steps li{
  display:grid; grid-template-columns:60px 1fr; gap:20px;
  padding:24px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.process-steps li > span{
  font-size:13px; letter-spacing:.18em; font-weight:500; color:var(--brand-blue);
  padding-top:4px;
}
.process-steps li > div h3{
  font-family:var(--sans); font-weight:500; font-size:18px; letter-spacing:-.005em;
  margin:0 0 6px; line-height:1.3;
}
.process-steps li > div p{
  font-size:15px; color:var(--ink-2); margin:0; line-height:1.6;
}

/* FAQ block (used on subpages) */
.faq{ padding:80px 0; background:var(--surface-gray); }
.faq__head{ max-width:36ch; margin-bottom:32px; }
.faq-list{ list-style:none; margin:0; padding:0; max-width:880px; border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item__q{
  display:flex; width:100%; align-items:center; justify-content:space-between;
  padding:22px 4px;
  text-align:left;
  font-size:17px; font-weight:500; color:var(--ink);
  transition:padding .35s var(--easing), color .25s var(--easing);
}
.faq-item__q:hover{ padding-left:8px; color:var(--brand-blue); }
.faq-item__icon{
  width:30px; height:30px; border-radius:50%;
  background:var(--ink); color:var(--off-white);
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:transform .35s var(--easing), background .25s var(--easing);
}
.faq-item__q:hover .faq-item__icon{ background:var(--brand-blue); }
.faq-item.is-open .faq-item__icon{ transform:rotate(180deg); background:var(--brand-blue); }
.faq-item__a{
  max-height:0; overflow:hidden;
  transition:max-height .5s var(--easing);
  color:var(--muted); font-size:15px; line-height:1.6;
  padding:0 60px 0 4px;
}
.faq-item.is-open .faq-item__a{ max-height:300px; padding-bottom:18px; }

/* ===== BLOG POST PAGE (insights-*.html) ===== */
.post-hero{
  position:relative;
  padding:160px 0 64px;
  overflow:hidden;
}
.post-hero__gradient{
  position:absolute; inset:-10% -10% 0 -10%;
  background:
    radial-gradient(circle at 75% 25%, rgba(153,185,233,.45) 0%, transparent 42%),
    radial-gradient(circle at 20% 65%, rgba(9,77,176,.18) 0%, transparent 38%);
  filter:blur(40px); z-index:0;
}
.post-hero__inner{ position:relative; z-index:1; max-width:760px; }
.post-hero__cat{
  display:inline-flex; align-items:center; gap:10px;
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  color:var(--brand-blue); margin-bottom:24px;
}
.post-hero__cat::before{
  content:""; width:24px; height:1px; background:var(--brand-blue);
}
.post-hero__title{
  font-family:var(--sans); font-weight:400;
  font-size:clamp(36px, 5.4vw, 60px);
  letter-spacing:-.025em; line-height:1.05;
  margin:0; color:var(--ink); max-width:24ch;
}
.post-hero__title em{ font-style:italic; font-weight:300; }
.post-hero__meta{
  margin-top:28px; display:flex; flex-wrap:wrap; align-items:center; gap:14px;
  font-size:13px; color:var(--muted); letter-spacing:.02em;
}
.post-hero__meta::before{ display:none; }
.post-hero__meta span,
.post-hero__meta time{ display:inline-flex; align-items:center; gap:8px; }
.post-hero__meta span + span::before,
.post-hero__meta time + span::before,
.post-hero__meta span + time::before{
  content:""; display:inline-block; width:3px; height:3px; border-radius:50%;
  background:var(--mid-gray); margin-right:8px;
}

.post-back{
  padding:36px 0 0;
}
.post-back a{
  display:inline-flex; align-items:center; gap:10px;
  font-size:13px; letter-spacing:.04em; color:var(--muted);
  transition:color .25s var(--easing);
}
.post-back a:hover{ color:var(--brand-blue); }
.post-back svg{ transform:rotate(180deg); }

.post-body{
  padding:48px 0 96px;
}
.post-body__inner{
  max-width:680px;
}
.post-body__inner > * + *{ margin-top:24px; }
.post-body__inner p{
  font-size:18px; line-height:1.65; color:var(--ink-2);
  font-weight:300;
}
.post-body__inner p strong{ color:var(--ink); font-weight:500; }
.post-body__inner h2{
  font-family:var(--sans); font-weight:500;
  font-size:clamp(24px, 2.6vw, 30px);
  letter-spacing:-.015em; line-height:1.2;
  margin:48px 0 0; color:var(--ink);
}
.post-body__inner h3{
  font-family:var(--sans); font-weight:500;
  font-size:20px; letter-spacing:-.01em;
  margin:32px 0 0; color:var(--ink);
}
.post-body__inner ul, .post-body__inner ol{
  list-style:none; margin:0; padding:0;
}
.post-body__inner li{
  position:relative; padding-left:22px; margin-bottom:10px;
  font-size:17px; line-height:1.6; color:var(--ink-2); font-weight:300;
}
.post-body__inner ul li::before{
  content:""; position:absolute; left:0; top:12px;
  width:8px; height:1px; background:var(--brand-blue);
}
.post-body__inner ol{ counter-reset:steps; }
.post-body__inner ol li{ counter-increment:steps; padding-left:32px; }
.post-body__inner ol li::before{
  content:counter(steps, decimal-leading-zero);
  position:absolute; left:0; top:0;
  font-size:12px; font-weight:500; color:var(--brand-blue);
  letter-spacing:.06em;
}
.post-body__inner blockquote{
  margin:36px 0;
  padding:24px 28px; border-left:2px solid var(--brand-blue);
  background:var(--surface-gray);
  border-radius:0 var(--radius-card) var(--radius-card) 0;
  font-size:19px; line-height:1.5; color:var(--ink); font-style:italic;
  font-weight:400;
}
.post-body__inner blockquote p{ font-size:inherit; line-height:inherit; color:inherit; font-weight:inherit; margin:0; }

.post-related{
  border-top:1px solid var(--line);
  padding:72px 0 96px;
}
.post-related__head{
  display:flex; justify-content:space-between; align-items:baseline; gap:24px;
  margin-bottom:36px;
}
.post-related__head h2{
  font-family:var(--sans); font-weight:500;
  font-size:clamp(22px, 2.4vw, 28px); letter-spacing:-.015em;
  margin:0;
}
.post-related__head a{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; color:var(--muted);
  transition:color .25s var(--easing);
}
.post-related__head a:hover{ color:var(--brand-blue); }
.post-related__grid{
  display:grid; grid-template-columns:1fr; gap:24px;
}
@media (min-width:760px){
  .post-related__grid{ grid-template-columns:repeat(3, 1fr); }
}
.post-related__item{
  display:flex; flex-direction:column; gap:10px;
  padding:24px 0 0;
  border-top:1px solid var(--line);
  transition:opacity .25s var(--easing);
}
.post-related__item:hover{ opacity:.7; }
.post-related__item .article__cat{ margin:0 0 4px; }
.post-related__item h3{
  font-family:var(--sans); font-weight:500; font-size:18px;
  letter-spacing:-.005em; line-height:1.3; margin:0; color:var(--ink);
}
.post-related__item p{
  font-size:14px; line-height:1.5; color:var(--muted); margin:0;
}

/* ===== INSIGHTS INDEX — small upgrades ===== */
.article{ cursor:pointer; }
.article > a.article__media{ display:block; }
.article h3{
  transition:color .25s var(--easing);
}
.article:hover h3{ color:var(--brand-blue); }
.article__title-link{
  color:inherit; text-decoration:none;
}
.article__title-link::after{ display:none !important; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important; transition-duration:.01ms !important;
  }
}

/* ===== HOME — Founder-led card (per Figma) ===== */
.founder-led{ padding-block:24px 64px; }
.founder-led__card{
  background:var(--surface-gray);
  border:1px solid rgba(4,52,122,.22);
  border-radius:18px;
  padding:28px 40px 28px 28px;
  display:flex; align-items:center; gap:36px;
}
.founder-led__media{
  flex-shrink:0;
  width:220px; height:220px;
  border:1.25px solid rgba(4,52,122,.85);
  border-radius:14px;
  overflow:hidden;
}
.founder-led__media img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.founder-led__body{ display:flex; flex-direction:column; gap:12px; min-width:0; }
.founder-led__body .eyebrow{ color:var(--brand-blue); margin:0; }
.founder-led__body h2{
  font-weight:300; font-size:clamp(28px, 3vw, 36px);
  line-height:1.2; letter-spacing:-.015em; color:var(--ink); margin:0;
}
.founder-led__body p{
  font-size:16px; line-height:1.5; color:var(--ink); margin:0; max-width:60ch;
}
@media (max-width:760px){
  .founder-led__card{ flex-direction:column; align-items:stretch; padding:20px; gap:20px; }
  .founder-led__media{ width:100%; height:280px; }
}

/* ===== HOW WE WORK — Working sessions callout ===== */
.work-callout-section{ padding-block:0 80px; }
.work-callout{
  display:grid;
  grid-template-columns:minmax(220px, 320px) 1fr;
  gap:32px;
  align-items:center;
  background:var(--surface-gray);
  border:1px solid var(--mid-gray);
  border-radius:var(--radius-card);
  padding:28px;
}
.work-callout__media{
  border-radius:14px;
  overflow:hidden;
  aspect-ratio:4/3;
  background:var(--mid-gray);
}
.work-callout__media img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.work-callout__body .eyebrow{ color:var(--brand-blue); }
.work-callout__body h3{
  font-size:clamp(22px, 2.4vw, 30px);
  font-weight:500; line-height:1.2;
  margin:8px 0 10px;
  color:var(--navy);
}
.work-callout__body p{
  color:var(--mid-gray);
  margin:0;
  max-width:60ch;
}
@media (max-width:760px){
  .work-callout{
    grid-template-columns:1fr;
    gap:0;
    padding:0;
    overflow:hidden;
    align-items:stretch;
  }
  .work-callout__media{
    aspect-ratio:3/2;
    border-radius:0;
  }
  .work-callout__body{
    padding:24px;
  }
}

/* =========================================================
   MOBILE V2 — proportions, hierarchy, horizontal scroll
   Scoped to <=760px unless creating new shared components.
   ========================================================= */

/* --- NAV: tighter mobile bar (logo + hamburger only) --- */
@media (max-width:760px){
  .nav{
    padding:6px 6px 6px 18px;
    width:min(720px, calc(100% - 24px));
  }
  .nav__cta{ display:none; }
  .nav__menu{ width:40px; height:40px; }

  /* Backdrop strip that fills the 18px gap above the floating pill so
     content scrolling beneath isn't visible above the nav. Just 24px
     tall and fades out so it doesn't cover content far below the pill. */
  body::before{
    content:'';
    position:fixed;
    inset:0 0 auto 0;
    height:24px;
    background:linear-gradient(to bottom, var(--off-white) 0%, var(--off-white) 70%, rgba(250,250,250,0) 100%);
    z-index:49;
    pointer-events:none;
  }
}

/* --- DRAWER: CTA pinned to bottom, primary-button feel --- */
@media (max-width:760px){
  .mdrawer{ padding:104px 28px 32px; gap:14px; }
  .mdrawer a{ font-size:30px; }
  .mdrawer .btn{
    margin-top:auto;
    align-self:stretch;
    justify-content:center;
    background:var(--brand-blue);
    color:var(--off-white);
    padding:18px 22px;
    font-size:16px;
    border-radius:var(--radius-pill);
  }
  .mdrawer .btn .btn__icon{
    background:var(--off-white);
    color:var(--brand-blue);
  }
}

/* --- HERO: fill viewport on mobile + decorative photo --- */
.hero__photo{ display:none; }
@media (max-width:760px){
  .hero{
    min-height:100svh;
    padding:88px 0 32px;
    display:flex;
    align-items:flex-start;
  }
  .hero__inner{ width:100%; align-content:start; }
  .hero__copy .eyebrow{ margin-bottom:14px; }
  .hero__copy .display{ font-size:38px; }
  .hero__sub{ margin-top:16px; font-size:15px; }
  .hero__actions{ margin-top:18px; }
  .hero__points{ display:none; }
  .hero__card{ display:none; }
  .hero__microcopy{ display:none; }
  .hero__photo{
    display:block;
    position:absolute;
    bottom:24px;
    right:18px;
    width:152px;
    height:152px;
    object-fit:cover;
    border-radius:22px;
    z-index:1;
    box-shadow:
      0 24px 48px -18px rgba(15,28,46,0.45),
      0 0 0 4px rgba(255,255,255,0.85);
    pointer-events:none;
  }
}

/* --- IMAGE FEATURE — bleed-image with brand-blue overlay + caption --- */
.image-feature-section{ padding-block:clamp(48px, 7vw, 96px); }
.image-feature{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  aspect-ratio:16/9;
  min-height:380px;
  isolation:isolate;
}
.image-feature > img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
.image-feature__overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(15,28,46,0.05) 0%, rgba(15,28,46,0.4) 55%, rgba(8,8,27,0.85) 100%),
    linear-gradient(135deg, rgba(4,52,122,0.4) 0%, rgba(9,77,176,0.18) 50%, rgba(15,28,46,0.45) 100%);
}
.image-feature__caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:clamp(24px, 4vw, 48px);
  color:var(--off-white);
  display:flex; flex-direction:column;
  align-items:flex-start;
  gap:14px;
  max-width:62ch;
}
.image-feature__caption .eyebrow{
  color:var(--sky);
  background:transparent; border:0;
  padding:0;
  font-size:11px; letter-spacing:0.18em;
}
.image-feature__caption h2{
  font-family:var(--sans);
  font-weight:500;
  font-size:clamp(28px, 4vw, 44px);
  line-height:1.08;
  letter-spacing:-.02em;
  margin:0;
  color:var(--off-white);
}
.image-feature__caption p{
  margin:0;
  font-size:16px; line-height:1.55;
  color:rgba(250,250,250,0.85);
  max-width:54ch;
}
.image-feature__caption .btn{
  margin-top:6px;
  background:var(--off-white);
  color:var(--navy);
}
.image-feature__caption .btn:hover{ background:var(--sky); }
.image-feature__caption .btn .btn__icon{
  background:var(--brand-blue); color:var(--off-white);
}
@media (max-width:760px){
  .image-feature{ aspect-ratio:3/4; min-height:auto; }
  .image-feature__caption{ padding:24px; gap:10px; }
  .image-feature__caption p{ font-size:14px; }
  .image-feature__caption .btn{ align-self:stretch; justify-content:center; }
}

/* --- SERVICES — How we partner callout --- */
.partner-callout-section{ padding-block:32px 64px; }
.partner-callout{
  display:grid;
  grid-template-columns:minmax(160px, 220px) 1fr;
  gap:32px;
  align-items:center;
  padding:24px;
  border:1px solid var(--mid-gray);
  border-radius:18px;
  background:#fff;
}
.partner-callout__media{
  aspect-ratio:1/1;
  border-radius:14px;
  overflow:hidden;
  background:var(--surface-gray);
}
.partner-callout__media img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.partner-callout__body h2{
  margin:8px 0 10px;
  font-size:clamp(24px, 2.4vw, 32px);
  line-height:1.25;
  letter-spacing:-.01em;
  font-weight:500;
  color:var(--ink);
}
.partner-callout__body p{ margin:0; }
@media (max-width:760px){
  .partner-callout{
    grid-template-columns:1fr;
    gap:0;
    padding:0;
    overflow:hidden;
  }
  .partner-callout__media{
    aspect-ratio:3/2;
    border-radius:0;
  }
  .partner-callout__body{ padding:24px; }
}

/* --- ABOUT industries list — stack rows on mobile --- */
@media (max-width:760px){
  .selected{ padding-block:64px 80px; }
  .partners li{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    padding:18px 4px;
  }
  .partners li > span:first-child{ font-size:20px; }
  .partners__cat{ font-size:11px; letter-spacing:.14em; }
}

/* --- INSIGHTS — Field notes by author intro --- */
.insights-author-section{ padding-block:32px 8px; }
.insights-author{
  display:flex; align-items:center; gap:24px;
  padding:20px;
  border:1px solid var(--mid-gray);
  border-radius:18px;
  background:var(--off-white);
}
.insights-author__avatar{
  width:96px; height:96px; border-radius:14px;
  object-fit:cover;
  flex-shrink:0;
}
.insights-author__body{ flex:1; min-width:0; }
.insights-author__eyebrow{ display:block; margin-bottom:6px; }
.insights-author__title{
  font-size:1.25rem; font-weight:500;
  margin:0 0 6px;
  color:var(--navy);
}
.insights-author__bio{
  margin:0;
  color:var(--mid-gray);
  font-size:0.95rem;
  line-height:1.5;
}
@media (max-width:760px){
  .insights-author{
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
    padding:20px;
  }
  .insights-author__avatar{ width:88px; height:88px; }
}

/* --- PROCESS STEPS — stack day label on mobile (60px col is too tight) --- */
@media (max-width:760px){
  .process-steps li{
    grid-template-columns:1fr;
    gap:6px;
    padding:20px 0;
  }
  .process-steps li > span{
    padding-top:0;
  }
}

/* --- CONTACT — Local team, national reach (callout) --- */
.contact-callout-section{ padding-block:clamp(40px, 6vw, 72px); }
.contact-callout{
  display:grid;
  grid-template-columns:minmax(160px, 220px) 1fr;
  gap:clamp(20px, 4vw, 48px);
  align-items:center;
  padding:clamp(20px, 3vw, 32px);
  border:1px solid var(--mid-gray);
  border-radius:18px;
  background:#fff;
}
.contact-callout__media{
  aspect-ratio:1/1;
  border-radius:14px;
  overflow:hidden;
  background:#f5f5f5;
}
.contact-callout__media img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.contact-callout__body .eyebrow{
  display:inline-block; margin-bottom:12px;
}
.contact-callout__body h2{ margin:0 0 12px; }
.contact-callout__body p{
  margin:0; color:var(--mid-gray); max-width:60ch;
}
@media (max-width:760px){
  .contact-callout{
    grid-template-columns:1fr;
    gap:0;
    padding:0;
    overflow:hidden;
  }
  .contact-callout__media{
    aspect-ratio:3/2;
    border-radius:0;
  }
  .contact-callout__body{ padding:24px; }
}

/* --- POST AUTHOR (insights post page) --- */
.post-author__card{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:32px;
  align-items:center;
  max-width:720px;
}
.post-author__avatar{
  aspect-ratio:1/1;
  border-radius:12px;
  overflow:hidden;
  background:var(--surface-gray);
}
.post-author__avatar img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.post-author__eyebrow{
  display:block;
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--mid-gray);
  margin-bottom:10px;
}
.post-author__body h3{
  font-size:22px;
  font-weight:500;
  margin:0 0 10px;
  color:var(--navy);
}
.post-author__body p{
  margin:0 0 14px;
  color:var(--mid-gray);
  line-height:1.55;
}
@media (max-width:760px){
  .post-author__card{
    grid-template-columns:1fr;
    gap:18px;
  }
  .post-author__avatar{
    width:128px;
  }
}

/* --- HORIZONTAL SCROLL on mobile --- */
@media (max-width:760px){
  /* Children of .container — bleed scroll surface to viewport edges */
  .about-work__grid,
  .intro-split__phases{
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    overflow-y:visible;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--gutter);
    scrollbar-width:none;
    -ms-overflow-style:none;
    margin-inline:calc(var(--gutter) * -1);
    padding-inline:var(--gutter);
    padding-bottom:8px;
    gap:14px;
    -webkit-overflow-scrolling:touch;
  }
  /* .service-cards is itself a .container — gutter already provided */
  .service-cards{
    display:flex;
    grid-template-columns:none;
    overflow-x:auto;
    overflow-y:visible;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--gutter);
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding-bottom:8px;
    gap:14px;
    -webkit-overflow-scrolling:touch;
  }
  .about-work__grid::-webkit-scrollbar,
  .intro-split__phases::-webkit-scrollbar,
  .service-cards::-webkit-scrollbar{ display:none; }

  .about-work__grid > *,
  .intro-split__phases > *,
  .service-cards > *{
    flex:0 0 82%;
    min-width:0;
    scroll-snap-align:start;
  }
  /* Trailing space so the last card snap-aligns without clipping */
  .about-work__grid > *:last-child,
  .intro-split__phases > *:last-child,
  .service-cards > *:last-child{
    margin-right:var(--gutter);
  }
  /* Hover translate-y on cards looks broken inside a scroll surface — disable */
  .work-card:hover,
  .service-card:hover,
  .intro-split__phases li:hover{
    transform:none;
    box-shadow:none;
  }
}
