/* ==========================================================================
   OverDrive Group - styles.css  (v2, unified with live brand + pitch deck)
   Type: Switzer (the live overdrivegroup.ai typeface).
   Color: OverDrive Navy #1F3A4B, Burgundy #840707, Red #D62426.
   Gradient: navy (upper-left) to red (lower-right). Shifts on scroll.
   en dashes only, never em dashes.
   ========================================================================== */

:root {
  --navy: #1F3A4B;
  --navy-deep: #142A37;
  --steel: #2B4C5F;
  --burgundy: #840707;
  --red: #D62426;
  --red-soft: #ff5c5c;

  --ink: #11202a;
  --gray-950: #0c1820;
  --gray-900: #15252f;
  --gray-700: #3f5360;
  --gray-600: #5a6e7a;
  --gray-500: #74858f;
  --gray-300: #cdd6db;
  --gray-200: #e5eaed;
  --gray-100: #eef2f4;
  --gray-50: #f6f9fa;
  --white: #ffffff;

  --font-sans: 'Switzer', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-display: 'Switzer', system-ui, sans-serif;

  --maxw: 1200px;
  --radius: 1.1rem;
  --radius-lg: 1.75rem;
  --shadow-sm: 0 1px 2px rgba(13,18,23,.06), 0 6px 20px rgba(13,18,23,.05);
  --shadow-md: 0 14px 44px rgba(13,18,23,.13);
  --grad: linear-gradient(135deg, #1F3A4B 0%, #1F3A4B 24%, #840707 56%, #D62426 86%);
  --grad-soft: linear-gradient(125deg, #1F3A4B 0%, #1F3A4B 48%, #840707 92%, #D62426 116%);
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-sans);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
ul{list-style:none;padding:0}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:4px}

/* helpers */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:1.5rem}
.section{padding-block:clamp(3.25rem,7vw,6rem)}
.center{text-align:center}.measure{max-width:46rem}.measure-wide{max-width:58rem}
.mx-auto{margin-inline:auto}.hidden{display:none!important}

/* type */
.display{font-family:var(--font-display);font-weight:800;line-height:1.08;letter-spacing:-0.025em}
h1.display{font-size:clamp(2.5rem,6.4vw,4.7rem)}
h2.display{font-size:clamp(1.95rem,4.4vw,3.2rem)}
h3.display{font-size:clamp(1.3rem,2.6vw,1.8rem);font-weight:700}
.display--xl{font-size:clamp(2.8rem,7.5vw,5.4rem)}
.eyebrow{font-family:var(--font-sans);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gray-500)}
.eyebrow--light{color:rgba(255,255,255,.72)}
.eyebrow--red{color:var(--red)}
.lede{font-size:clamp(1.08rem,1.6vw,1.3rem);color:var(--gray-700);line-height:1.55}
.lede--light{color:rgba(255,255,255,.85)}
.muted{color:var(--gray-600)}.muted--light{color:rgba(255,255,255,.72)}
strong{font-weight:700;color:var(--ink)}
.text-red{color:var(--red)}
.grad-red{background:linear-gradient(120deg,#ff6a6a,#ff3b3b);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-soft{background:linear-gradient(120deg,#ffffff,#ffd9d9);-webkit-background-clip:text;background-clip:text;color:transparent}
.prose p{margin-bottom:1.1rem;color:var(--gray-700);font-size:1.05rem}
.prose h2{margin:2rem 0 .8rem}
.prose h3{margin:1.5rem 0 .5rem;font-weight:700;font-size:1.2rem}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.85rem 1.5rem;border-radius:999px;font-size:.93rem;font-weight:600;border:1px solid transparent;transition:transform .18s,background .18s,box-shadow .18s,color .18s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--red);color:#fff}
.btn--primary:hover{background:var(--burgundy)}
.btn--navy{background:var(--navy);color:#fff}
.btn--navy:hover{background:var(--burgundy)}
.btn--white{background:#fff;color:var(--navy)}
.btn--white:hover{background:var(--gray-100)}
.btn--ghost{background:transparent;color:var(--navy);border-color:var(--gray-300)}
.btn--ghost:hover{border-color:var(--navy);background:var(--gray-50)}
.btn--ghost-light{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.3);backdrop-filter:blur(6px)}
.btn--ghost-light:hover{background:rgba(255,255,255,.2)}
.btn .arr{width:1rem;height:1rem}

/* ---------- header (transparent over hero; gradient slides in on scroll) ---------- */
.site-header{position:sticky;top:0;z-index:60;background:transparent;transition:background .35s ease,box-shadow .35s ease,backdrop-filter .35s ease}
.site-header.scrolled{
  background:linear-gradient(110deg,#1F3A4B 0%,#6d1212 62%,#D62426 110%);
  background-size:220% 100%;
  background-position:var(--hdr-pos,0%) 0;
  box-shadow:0 10px 30px rgba(10,16,22,.28);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:4.6rem;gap:1rem}
.logo{display:inline-flex;align-items:center;flex-shrink:0}
.logo-img{height:2.15rem;width:auto}
.nav-links{display:none;align-items:center;gap:1.2rem}
.nav-link{font-size:.92rem;font-weight:500;color:rgba(255,255,255,.82);position:relative;transition:color .15s}
.nav-link:hover{color:#fff}
.nav-link[aria-current="page"]{color:#fff;font-weight:600}
.nav-link[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--red);border-radius:2px}
.nav-cta{display:none}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;border:none}
.nav-toggle svg{width:1.25rem;height:1.25rem}
.drawer{display:none;background:var(--navy-deep)}
.drawer.open{display:block}
.drawer nav{display:flex;flex-direction:column;padding:.75rem 1.5rem 1.25rem;gap:.15rem}
.drawer a{padding:.7rem .75rem;border-radius:.6rem;font-weight:500;color:rgba(255,255,255,.85)}
.drawer a:hover{background:rgba(255,255,255,.08)}
.drawer a.drawer-cta{background:var(--red);color:#fff;margin-top:.5rem;text-align:center}
@media (min-width:940px){.nav-links{display:flex}.nav-cta{display:inline-flex}.nav-toggle{display:none}}

/* ---------- hero ---------- */
.hero-wrap{background:var(--grad);background-size:170% 170%;background-position:calc(var(--scroll,0)*100%) calc(var(--scroll,0)*40%);position:relative;overflow:hidden;margin-top:-4.6rem;padding-top:4.6rem}
.hero-inner{position:relative;z-index:2;padding-block:clamp(3.5rem,7vw,6.5rem) clamp(4rem,8vw,7rem);max-width:var(--maxw);margin-inline:auto}
.hero h1{color:#fff;max-width:24ch}
.hero h1.hero-headline{display:flex;flex-direction:column;gap:.22em;max-width:28ch}
.hero-headline .hl-line{display:block;line-height:1.12;padding-bottom:.04em}
@media (min-width:1100px){.hero h1.hero-headline{gap:.15em}}
.hero .lede{margin-top:1.6rem;max-width:42rem}
.hero-cta{margin-top:2.1rem;display:flex;flex-wrap:wrap;gap:.8rem}
.dot-texture::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:20px 20px}

/* interior page hero (navy-dominant gradient, red hint lower-right) */
.pagehero{background:var(--grad-soft);background-size:150% 150%;background-position:calc(var(--scroll,0)*100%) 50%;color:#fff;margin-top:-4.6rem;padding-top:4.6rem;position:relative;overflow:hidden}
.pagehero .container{padding-block:clamp(3rem,6vw,5rem) clamp(2.5rem,5vw,4rem)}
.pagehero h1{color:#fff}
.breadcrumb{font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:1.1rem}
.breadcrumb a:hover{color:#fff}.breadcrumb span{color:rgba(255,255,255,.35);margin-inline:.4rem}

/* marquee */
.marquee{border-block:1px solid var(--gray-200);background:var(--gray-50);padding-block:clamp(3.25rem,5vw,4.75rem);overflow:hidden}
.marquee-track{display:flex;width:max-content;gap:1.6rem;align-items:center;animation:scroll-left 58s linear infinite;mask-image:linear-gradient(90deg,transparent,#000 110px,#000 calc(100% - 110px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 110px,#000 calc(100% - 110px),transparent)}
.marquee-logo{height:150px;width:auto;object-fit:contain;border-radius:12px;border:1px solid var(--gray-200);background:#fff;flex-shrink:0;box-shadow:0 1px 3px rgba(13,18,23,.05)}
.marquee-logo:hover{opacity:1}
.marquee-chip{display:flex;align-items:center;justify-content:center;height:54px;padding:0 1.4rem;border:1px solid var(--gray-200);border-radius:.7rem;background:#fff;font-weight:700;color:var(--navy);font-size:1rem;white-space:nowrap;flex-shrink:0}
.marquee-chip small{font-weight:600;color:var(--gray-500);font-size:.7rem;margin-left:.4rem;text-transform:uppercase;letter-spacing:.06em}
.marquee-track--markets{animation-duration:34s;gap:0;margin-top:1.5rem}
.marquee-rev{animation-direction:reverse}
.mq-market{display:inline-flex;align-items:center;font-family:var(--font-sans);font-weight:800;font-size:clamp(.95rem,1.2vw,1.15rem);color:var(--navy);white-space:nowrap;flex-shrink:0;letter-spacing:.01em}
.mq-market::after{content:"•";margin:0 1.15rem;color:var(--red);font-size:.85em;opacity:.85}
@keyframes scroll-left{to{transform:translateX(-50%)}}

/* grids */
.grid{display:grid;gap:1.4rem}
.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr}.grid-4{grid-template-columns:1fr}
.split{display:grid;gap:2.5rem;grid-template-columns:1fr;align-items:start}
@media (min-width:700px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:940px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.split{grid-template-columns:1fr 1.55fr;gap:3.5rem}.split--even{grid-template-columns:1fr 1fr}}
.section-head{max-width:50rem;margin-bottom:clamp(2.25rem,4.5vw,3.5rem)}
.section-head .eyebrow{margin-bottom:.9rem}

/* cards */
.card{background:var(--gray-100);border-radius:var(--radius);padding:1.6rem;transition:background .2s,transform .2s,box-shadow .2s}
.card:hover{background:var(--gray-50);box-shadow:var(--shadow-sm)}
.card h3{font-family:var(--font-display);font-weight:700;font-size:1.25rem;line-height:1.15;margin-bottom:.55rem;letter-spacing:-.01em}
.card p{color:var(--gray-700);font-size:.97rem}
.card .ico{width:2.9rem;height:2.9rem;border-radius:.8rem;margin-bottom:1.1rem;background:rgba(214,36,38,.1);color:var(--red);display:flex;align-items:center;justify-content:center}
.card .ico svg{width:1.45rem;height:1.45rem}
.card .num{font-family:var(--font-display);font-weight:800;font-size:2.6rem;color:var(--red);line-height:1;margin-bottom:.6rem}
.section--dark{background:var(--gray-950);color:#fff}
.section--navy{background:var(--navy-deep);color:#fff}
.card--dark{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden}
.card--dark:hover{background:rgba(255,255,255,.08)}
.card--dark h3{color:#fff}.card--dark p{color:rgba(255,255,255,.72)}
.card--dark .ico{background:rgba(214,36,38,.2)}

.feature-list{display:grid;gap:.85rem}
.feature-list li{display:flex;gap:.65rem;align-items:flex-start;color:var(--gray-700);font-size:.97rem}
.feature-list .tick{color:var(--red);flex-shrink:0;margin-top:.1rem;font-weight:700}

/* segments */
.segment{display:block;background:var(--gray-100);border-radius:var(--radius);padding:1.6rem;transition:transform .2s,box-shadow .2s,background .2s;border:1px solid transparent}
.segment:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);background:#fff;border-color:var(--gray-200)}
.segment .ico{width:2.9rem;height:2.9rem;border-radius:.8rem;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.segment .ico svg{width:1.45rem;height:1.45rem}
.segment h3{font-family:var(--font-display);font-weight:700;font-size:1.35rem;margin-bottom:.45rem}
.segment p{color:var(--gray-700);font-size:.95rem;margin-bottom:.9rem}
.segment .more{font-size:.85rem;font-weight:600;color:var(--red);display:inline-flex;gap:.55rem;align-items:center}

/* stat band */
.statband{background:var(--gray-950);border-radius:var(--radius-lg);padding:clamp(2.25rem,5vw,4rem) clamp(1.5rem,4vw,3.5rem);color:#fff;position:relative;overflow:hidden}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 1rem;margin-top:2.5rem}
@media (min-width:820px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{text-align:center}
.stat .n{font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1;color:#fff}
.stat .n.red{color:transparent;background:linear-gradient(120deg,#ff6a6a,#ff3b3b);-webkit-background-clip:text;background-clip:text}
.stat .l{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:.55rem}

/* funnel (reverse pyramid) */
.funnel{max-width:46rem;margin-inline:auto;display:grid;gap:.6rem}
.funnel-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-inline:auto;border-radius:.7rem;padding:1rem 1.5rem;color:#fff;background:var(--navy)}
.funnel-row .fn{font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1}
.funnel-row .fl{font-size:.9rem;color:rgba(255,255,255,.8);text-align:right}
.funnel-row:nth-child(1){width:100%;background:var(--navy)}
.funnel-row:nth-child(2){width:84%;background:#43303a}
.funnel-row:nth-child(3){width:68%;background:var(--burgundy)}
.funnel-row:nth-child(4){width:52%;background:var(--red)}
.funnel-note{text-align:center;margin-top:1.25rem;color:var(--gray-600);font-size:.9rem}

/* process */
.process-card{background:var(--gray-100);border-radius:var(--radius);padding:1.75rem}
.process-card .num{font-family:var(--font-display);font-weight:800;font-size:3rem;color:rgba(214,36,38,.22);line-height:.9;margin-bottom:.8rem}
.process-card.is-final{background:var(--grad);color:#fff}
.process-card.is-final .num{color:rgba(255,255,255,.3)}
.process-card.is-final p,.process-card.is-final .eyebrow{color:rgba(255,255,255,.88)}
.process-card h3{font-family:var(--font-display);font-weight:700;font-size:1.3rem;margin:.3rem 0 .5rem}
.process-card .eyebrow{margin-bottom:.35rem}

/* tiers */
.tier{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:1.75rem;position:relative}
.tier.is-popular{background:var(--gray-950);color:#fff;border-color:var(--gray-900)}
.tier.is-popular p,.tier.is-popular .feature-list li{color:rgba(255,255,255,.8)}
.tier .badge{position:absolute;top:-.7rem;right:1.4rem;background:var(--red);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;border-radius:999px}
.tier h3{font-family:var(--font-display);font-weight:800;font-size:1.7rem;margin-bottom:.15rem}
.tier .cadence{font-family:var(--font-display);font-weight:700;font-size:1.45rem;line-height:1.1;margin:.9rem 0 .15rem}
.tier .cadence small{font-family:var(--font-sans);font-size:.88rem;color:var(--gray-500);font-weight:500;display:block}
.tier.is-popular .cadence small{color:rgba(255,255,255,.6)}
.tier .sub{font-size:.88rem;color:var(--gray-500);margin-bottom:1.2rem}
.tier.is-popular .sub{color:rgba(255,255,255,.6)}
.tier .feature-list{margin-top:1.1rem;font-size:.9rem}
.tier .feature-list li{font-size:.9rem}

/* case studies */
.case{border-radius:var(--radius);padding:1.85rem;color:#fff}
.case--navy{background:linear-gradient(150deg,var(--gray-900),var(--navy));border:1px solid rgba(255,255,255,.08)}
.case--red{background:linear-gradient(150deg,var(--burgundy),var(--red))}
.case--light{background:var(--gray-100);color:var(--ink)}
.case h3{font-family:var(--font-display);font-weight:700;font-size:1.5rem;line-height:1.08;margin-bottom:.3rem}
.case .meta{font-size:.85rem;opacity:.72;margin-bottom:1.4rem}
.case--light .meta{color:var(--gray-600);opacity:1}
.case dl{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.case dt{font-size:.78rem;opacity:.62}
.case--light dt{color:var(--gray-500);opacity:1}
.case dd{font-family:var(--font-display);font-weight:800;font-size:1.45rem}
.case .note{margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.14);font-size:.86rem;opacity:.82;line-height:1.5}
.case--light .note{border-color:var(--gray-200);color:var(--gray-700);opacity:1}

/* faq */
.faq{max-width:52rem;margin-inline:auto}
.faq details{border-bottom:1px solid var(--gray-200);padding:.3rem 0}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem .25rem;font-weight:600;font-size:1.05rem;list-style:none;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex-shrink:0;width:1.35rem;height:1.35rem;transition:transform .2s;color:var(--red)}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .ans{padding:0 .25rem 1.3rem;color:var(--gray-700);font-size:1rem;line-height:1.6}
.faq .ans p{margin-bottom:.8rem}

/* callout */
.callout-gradient{background:var(--grad);border-radius:var(--radius-lg);color:#fff;padding:clamp(2.25rem,5vw,4rem) clamp(1.5rem,4vw,3.5rem);position:relative;overflow:hidden}
.field{width:100%;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);padding:.8rem 1.2rem;color:#fff;font-size:.95rem}
.field::placeholder{color:rgba(255,255,255,.5)}.field:focus{outline:none;border-color:rgba(255,255,255,.6)}
.form-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(8px);border-radius:var(--radius);padding:1.85rem}
.checkbox-row{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:rgba(255,255,255,.75);margin-top:.9rem}
.contact-row{display:flex;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--gray-200)}
.contact-row .ico{width:2.5rem;height:2.5rem;border-radius:.7rem;background:var(--gray-100);color:var(--navy);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-row a:hover{color:var(--red)}

/* footer */
.site-footer{background:var(--gray-950);color:rgba(255,255,255,.7);padding-block:clamp(3rem,5vw,4rem) 2rem}
.footer-grid{display:grid;gap:2.25rem;grid-template-columns:1fr}
@media (min-width:760px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.footer-col h4{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:1rem}
.footer-col a{display:block;padding:.32rem 0;color:rgba(255,255,255,.72);font-size:.92rem}
.footer-col a:hover{color:#fff}
.footer-logo{height:2rem;width:auto;margin-bottom:1rem}
.footer-tag{max-width:32ch;font-size:.92rem;color:rgba(255,255,255,.6)}
.footer-bottom{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;font-size:.82rem;color:rgba(255,255,255,.5)}
.social{display:inline-flex;gap:1rem}.social a{color:rgba(255,255,255,.6)}.social a:hover{color:#fff}

/* reveal */
.reveal{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
.js-reveal .reveal{opacity:0;transform:translateY(20px)}
.js-reveal .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{transition:none}.hero-wrap,.pagehero{background-position:0 50%!important}}

/* misc */
.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .85rem;border-radius:999px;background:rgba(214,36,38,.1);color:var(--red);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pill--light{background:rgba(255,255,255,.14);color:#fff}
.rule-block{border-left:3px solid var(--red);padding-left:1.25rem}
.kpi-inline{display:flex;flex-wrap:wrap;gap:2.5rem;margin-top:2rem}
.kpi-inline .n{font-family:var(--font-display);font-weight:800;font-size:2.6rem;line-height:1}
.kpi-inline .l{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-500);margin-top:.4rem}
.note-flag{font-size:.8rem;color:var(--gray-500);font-style:italic}

/* headshots */
.team-photo{aspect-ratio:1;width:100%;object-fit:cover;object-position:center 18%;border-radius:.7rem;margin-bottom:1.1rem;display:block;background:var(--gray-100)}
.founder-photo{width:100%;aspect-ratio:1;object-fit:cover;object-position:center 15%;border-radius:var(--radius);display:block;box-shadow:var(--shadow-md)}

/* photography */
.hero-wrap::after{content:"";position:absolute;inset:0;background:url("img/hero-bg.jpg") center/cover no-repeat;opacity:.30;z-index:0;pointer-events:none}
.seg-img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:.7rem;margin-bottom:1.1rem}
.segment:has(.seg-img) .ico{display:none}

/* section photo background (woven action imagery) */
.section--photobg{position:relative;overflow:hidden}
.section--photobg>.container{position:relative;z-index:1}
.section--photobg::after{content:"";position:absolute;inset:0;background:var(--photobg,none) center/cover no-repeat;opacity:.16;z-index:0;pointer-events:none;mix-blend-mode:screen}

/* ===== Round 1 revisions ===== */
@media (max-width:600px){.container{padding-inline:1.6rem}}
.signature{font-family:'Mr Dafoe','Segoe Script',cursive;font-size:clamp(2.2rem,4.5vw,3rem);line-height:1;font-weight:400;display:inline-block}
.signature--light{color:#fff}
.signature--navy{color:var(--navy)}
.sig-name{display:block;font-size:.85rem;font-weight:600;letter-spacing:.04em;margin-top:.35rem}
.report-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:1.5rem 1.6rem;box-shadow:var(--shadow-sm)}
.report-card .eyebrow{margin-bottom:1rem}
.report-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.62rem 0;border-bottom:1px solid var(--gray-100)}
.report-row:last-child{border-bottom:none}
.report-row .rk{font-weight:600;color:var(--ink);font-size:.98rem}
.report-row .rv{font-size:.82rem;color:var(--gray-500);text-align:right}
.case .case-ico{width:2.6rem;height:2.6rem;border-radius:.7rem;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem}
.case--light .case-ico{background:rgba(20,42,55,.08);color:var(--navy)}
.case .case-ico svg{width:1.4rem;height:1.4rem}

/* problem card images + real signature */
.card-img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:.7rem;margin-bottom:1.1rem;background:#fff}
.sig-img{display:block;width:auto;height:3.4rem;margin-bottom:.5rem}

/* what-we-do flow timeline */
.flow{margin-top:2.25rem;display:grid;grid-template-columns:1fr;gap:1.6rem}
.flow-head{position:relative;border-radius:.9rem;overflow:hidden;margin-bottom:.9rem}
.flow-photo{width:100%;height:7.5rem;object-fit:cover;display:block;filter:saturate(.92) brightness(.82)}
.flow-head::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,42,55,.12),rgba(20,42,55,.78))}
.flow-phase{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red-soft);margin:0}
.flow-head .flow-phase{position:absolute;left:.95rem;bottom:.6rem;z-index:2;color:#fff}
.flow-steps{display:grid;grid-template-columns:1fr;gap:.8rem}
.flow-step{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:.9rem;padding:1.15rem;height:100%;position:relative;z-index:1}
.flow-ico{width:2.4rem;height:2.4rem;border-radius:.65rem;background:rgba(214,36,38,.16);color:var(--red-soft);display:flex;align-items:center;justify-content:center;margin-bottom:.8rem}
.flow-ico svg{width:1.35rem;height:1.35rem}
.flow-step h3{color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.05rem;line-height:1.16;margin-bottom:.3rem}
.flow-step p{color:rgba(255,255,255,.68);font-size:.86rem;line-height:1.42}
.flow-step.is-convert{background:rgba(214,36,38,.1);border-color:rgba(214,36,38,.42)}
.flow-step.is-convert .flow-ico{background:rgba(214,36,38,.28);color:#fff}
@media(min-width:1000px){
  .flow{grid-template-columns:1fr 4fr 2fr;gap:1.1rem;position:relative;align-items:start}
  .flow-group{position:relative;z-index:1}
  .flow-steps--4{grid-template-columns:repeat(4,1fr)}
  .flow-steps--2{grid-template-columns:repeat(2,1fr)}
  .flow-steps{gap:.7rem}
  .flow::before{content:"";position:absolute;left:7%;right:7%;top:calc(7.5rem + .9rem + 2.35rem);height:2px;background:linear-gradient(90deg,rgba(255,92,92,0),rgba(255,92,92,.5) 8%,rgba(255,92,92,.5) 92%,rgba(255,92,92,0));z-index:0}
}

/* =================== ROUND 3 REVISIONS =================== */
/* #1-3 mobile logo scroll: faster, no blank dropout, swipeable */
.marquee-viewport{overflow:hidden}
@media(max-width:700px){
  .marquee{overflow:visible}
  .marquee-viewport{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .marquee-viewport::-webkit-scrollbar{display:none}
  .marquee-track{animation:none;mask-image:none;-webkit-mask-image:none;width:max-content}
  .marquee-logo{height:104px}
}
/* #4-6 flow boxes: uniform height, larger, clean wraps */
.flow-step h3{text-wrap:balance;overflow-wrap:normal;word-break:keep-all;hyphens:none}
.flow-step p{text-wrap:pretty}
@media(min-width:1000px){
  .flow-step{min-height:15.5rem}
  .flow-step h3{font-size:1.13rem}
  .flow-step p{font-size:.9rem}
}
/* #11-12 / #15 segment labels single line + uniform arrows */
.segment h3{white-space:nowrap}
.segment .more{white-space:nowrap}
.segment .more .arr{width:1rem;height:1rem;flex-shrink:0}
/* #13 founder signature 2x as a real element */
.sig-img{height:7.5rem;margin-bottom:.7rem}
/* #7-9 compact case tiles */
.case-tile{display:block;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius);overflow:hidden;transition:transform .2s,box-shadow .2s;color:inherit}
.case-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);background:#fff}
.case-tile img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.case-tile .ct-body{padding:1.1rem 1.15rem 1.25rem}
.case-tile .ct-tag{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:.35rem;display:block}
.case-tile h3{font-family:var(--font-display);font-weight:700;font-size:1.04rem;line-height:1.15;margin-bottom:.4rem;color:var(--ink)}
.case-tile p{font-size:.85rem;color:var(--gray-700);line-height:1.45;margin-bottom:.65rem}
.case-tile .more{font-size:.8rem;font-weight:600;color:var(--red);display:inline-flex;gap:.4rem;align-items:center;white-space:nowrap}
.case-tile .more .arr{width:.9rem;height:.9rem;flex-shrink:0}
/* site-wide image-placeholder mocks (#27) */
figure.img-mock{margin:0}
.img-mock img{display:block;width:100%;border-radius:var(--radius)}
.img-mock figcaption{font-size:.74rem;color:var(--gray-500);margin-top:.55rem;font-style:italic;line-height:1.4}
.section--navy .img-mock figcaption,.callout-gradient .img-mock figcaption{color:rgba(255,255,255,.6)}
/* #16-18 How It Works step images + weekly loop note */
.step-img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:.6rem;margin-bottom:1rem}
.loop-note{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-top:2rem;color:var(--gray-600);font-weight:600;font-size:.98rem;text-align:center}
.loop-note svg{width:1.5rem;height:1.5rem;color:var(--red);flex-shrink:0}
/* #19-20 tachometer ramp */
.ramp{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media(min-width:820px){.ramp{grid-template-columns:repeat(3,1fr)}}
.ramp-card{background:var(--gray-100);border-radius:var(--radius);padding:1.6rem 1.4rem 1.7rem;text-align:center}
.ramp-card.is-final{background:var(--grad);color:#fff}
.ramp-card.is-final .muted{color:rgba(255,255,255,.9)}
.tach{width:100%;max-width:210px;height:auto;margin:0 auto .7rem;display:block}
.ramp-week{font-family:var(--font-display);font-weight:800;font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;color:var(--red);margin-bottom:.15rem}
.ramp-card.is-final .ramp-week{color:#fff}
.ramp-card h3{font-family:var(--font-display);font-weight:700;font-size:1.5rem;margin-bottom:.55rem}
/* #25-26 About roster band + anonymized reps */
.roster-band{background:var(--grad);color:#fff;border-radius:var(--radius-lg);padding:clamp(1.7rem,3.4vw,2.6rem);text-align:center;margin-bottom:2.2rem}
.roster-band .rb-big{font-family:var(--font-display);font-weight:800;font-size:clamp(1.9rem,4.6vw,2.9rem);line-height:1.05;margin-bottom:.5rem}
.roster-band .rb-sub{color:rgba(255,255,255,.85);font-size:clamp(1rem,1.5vw,1.18rem);max-width:46rem;margin:0 auto}
.anon-roster{margin-top:1.6rem}
.anon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:.55rem;max-width:560px;margin:0 auto}
.anon-av{aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7)}
.anon-av svg{width:54%;height:54%}
.anon-cap{margin-top:.9rem;font-size:.85rem;color:rgba(255,255,255,.8)}

/* About: leadership placeholder + team photo parity */
.team-ph{aspect-ratio:1;width:100%;border-radius:.7rem;margin-bottom:1.1rem;background:var(--gray-100);display:flex;align-items:center;justify-content:center;color:var(--gray-300)}
.team-ph svg{width:40%;height:40%}

/* Who We Serve: five-up partnership grid + hub grid */
.grid-5{display:grid;gap:1.4rem;grid-template-columns:1fr}
@media(min-width:700px){.grid-5{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.grid-5{grid-template-columns:repeat(5,1fr)}}
.grid-serve{display:grid;gap:1.4rem;grid-template-columns:1fr}
@media(min-width:640px){.grid-serve{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grid-serve{grid-template-columns:repeat(3,1fr)}}

/* Homepage "Drive" — accelerating Identify -> Engage -> Convert line */
.drive{position:relative;margin-top:2.4rem;display:grid;grid-template-columns:1fr;gap:2rem}
.drive-photo{display:block;width:100%;height:13rem;object-fit:cover;border-radius:1rem;border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 44px rgba(0,0,0,.4)}
.drive-badge{display:inline-flex;align-items:center;gap:.55rem;margin:1.1rem 0 .8rem;font-family:var(--font-display);font-weight:800;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;padding:.5rem 1rem;border-radius:999px;background:rgba(20,42,55,.9);border:1px solid rgba(255,255,255,.2);position:relative;z-index:2}
.drive-badge .dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--red)}
.drive-phase--identify .drive-badge .dot{background:#5b9bd5}
.drive-phase--engage .drive-badge .dot{background:#c0556b}
.drive-phase--convert .drive-badge .dot{background:var(--red)}
.drive-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.drive-steps li{display:flex;align-items:center;gap:.55rem;color:rgba(255,255,255,.82);font-size:.96rem}
.drive-steps li::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--red-soft);flex-shrink:0}
.drive-rail{display:none}
@media(min-width:920px){
  .drive{grid-template-columns:repeat(3,1fr);gap:1.8rem}
  .drive-phase{position:relative;z-index:1}
  .drive-rail{display:block;position:absolute;left:6%;right:4%;top:calc(13rem + 1.6rem);height:1.15rem;z-index:0;background:linear-gradient(90deg,#1F3A4B,#840707 58%,#D62426);clip-path:polygon(0 42%,100% 0,100% 100%,0 58%);box-shadow:0 0 26px rgba(214,36,38,.45)}
  .drive-rail::after{content:"";position:absolute;inset:0;clip-path:polygon(0 42%,100% 0,100% 100%,0 58%);background:repeating-linear-gradient(90deg,rgba(255,255,255,.5) 0 9px,transparent 9px 24px);animation:drive-move 1s linear infinite}
  @keyframes drive-move{to{background-position:24px 0}}
}

/* Homepage continuous motion band (Identify -> Engage -> Convert) */
.band{margin-top:2.4rem}
.band-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border-radius:1rem;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.band-cell{position:relative;margin:0;min-height:15rem;overflow:hidden}
.band-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.band-cell:hover img{transform:scale(1.04)}
.band-cell figcaption{position:absolute;inset:0;display:flex;align-items:flex-end;padding:1.1rem 1.2rem;background:linear-gradient(180deg,rgba(11,22,30,0) 45%,rgba(11,22,30,.82))}
.band-tag{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:800;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.band-tag .dot{width:.62rem;height:.62rem;border-radius:50%}
.band-cell--identify .band-tag .dot{background:#5b9bd5}
.band-cell--engage .band-tag .dot{background:#c0556b}
.band-cell--convert .band-tag .dot{background:var(--red)}
.band-line{position:relative;height:4px;margin:1.15rem .2rem 1.5rem;border-radius:999px;background:linear-gradient(90deg,#1F3A4B,#840707 62%,#D62426)}
.band-comet{position:absolute;top:50%;left:0;width:15px;height:15px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 10%,rgba(255,120,120,.95) 38%,rgba(214,36,38,0) 72%);box-shadow:0 0 16px 5px rgba(214,36,38,.5);animation:band-run 3.8s cubic-bezier(.4,0,.85,.35) infinite}
@keyframes band-run{0%{left:0;opacity:0}8%{opacity:1}88%{opacity:1}100%{left:100%;opacity:0}}
@media(prefers-reduced-motion:reduce){.band-comet{animation:none;left:100%}}
.band-phases{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.band-col{padding:0 1.2rem}
.band-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.band-col li{display:flex;align-items:center;gap:.6rem;color:rgba(255,255,255,.84);font-size:.97rem}
.band-col li::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--red-soft);flex-shrink:0}
@media(max-width:760px){
  .band-strip{grid-template-columns:1fr;gap:0;border-radius:1rem}
  .band-cell{min-height:12.5rem}
  .band-phases{grid-template-columns:1fr;gap:1.3rem;margin-top:1rem}
  .band-col{padding:0}
}