/* ============================================================
   GRAPHISION — SITE STYLES
   Shared across every page. Page-specific styles stay inline.
   ============================================================ */

/* --- reset + base --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--surface-page);color:var(--text-primary);
     -webkit-font-smoothing:antialiased;line-height:var(--leading-normal);font-size:var(--text-body);
     overflow-x:hidden}
::selection{background:var(--color-brand);color:#fff}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:var(--weight-bold);
     letter-spacing:var(--tracking-tight);line-height:var(--leading-snug);color:var(--text-primary)}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea,select{font:inherit}

.container{max-width:var(--container-max);margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.container--wide{max-width:var(--container-wide)}

/* ============================================================
   NAV
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;
     transition:background var(--duration-base) var(--ease-out),
                border-color var(--duration-base) var(--ease-out),
                backdrop-filter var(--duration-base) var(--ease-out)}
.nav__inner{display:flex;align-items:center;gap:var(--space-6);
     padding:18px clamp(20px,4vw,40px);max-width:var(--container-wide);margin:0 auto}
.nav__brand{display:flex;align-items:center;gap:11px;color:#fff;
     transition:color var(--duration-base) var(--ease-out)}
.nav__brand svg{width:36px;height:36px;flex:none}
.nav__brand b{font-family:var(--font-display);font-weight:700;font-size:1.1rem;letter-spacing:.04em}
.nav__links{display:flex;gap:var(--space-6);margin-left:var(--space-6);align-items:center}
.nav__link{font-size:var(--text-body-s);font-weight:500;color:rgba(255,255,255,.78);
     position:relative;padding:6px 2px;transition:color var(--duration-fast) var(--ease-out)}
.nav__link:hover,.nav__link.is-active{color:#fff}
.nav__link.is-active::before{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;
     background:var(--color-red-500)}
.nav__link.has-menu::after{content:"";display:inline-block;width:6px;height:6px;
     border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
     transform:translateY(-2px) rotate(45deg);margin-left:6px;opacity:.6}
.nav__cta{margin-left:auto;display:flex;gap:10px;align-items:center}

/* nav scrolled state (light) — and on pages that always need a light nav */
.nav.scrolled,.nav--light{background:rgba(255,255,255,.92);
     backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);
     border-bottom:1px solid var(--border-subtle)}
.nav.scrolled .nav__brand,.nav--light .nav__brand{color:var(--color-red-500)}
.nav.scrolled .nav__link,.nav--light .nav__link{color:var(--text-secondary)}
.nav.scrolled .nav__link:hover,.nav--light .nav__link:hover,
.nav.scrolled .nav__link.is-active,.nav--light .nav__link.is-active{color:var(--text-primary)}
.nav.scrolled .btn--ondark,.nav--light .btn--ondark{border-color:var(--border-subtle);color:var(--text-primary)}

/* dropdown */
.nav__group{position:relative}
.nav__menu{position:absolute;top:calc(100% + 12px);left:-16px;
     background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
     box-shadow:var(--shadow-lg);padding:8px;min-width:280px;
     opacity:0;visibility:hidden;transform:translateY(-6px);
     transition:all var(--duration-base) var(--ease-out)}
.nav__group:hover .nav__menu,
.nav__group:focus-within .nav__menu{opacity:1;visibility:visible;transform:none}
.nav__menu a{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:var(--radius-sm);
     color:var(--text-primary);transition:background var(--duration-fast) var(--ease-out)}
.nav__menu a:hover{background:var(--surface-sunken)}
.nav__menu a b{font-family:var(--font-display);font-size:var(--text-body-s);font-weight:600}
.nav__menu a span{font-size:var(--text-caption);color:var(--text-secondary)}

/* parent-of-menu trigger — a <button>, styled identically to an anchor nav__link */
button.nav__link{background:transparent;border:0;padding:6px 2px;cursor:pointer;font:inherit;
     font-size:var(--text-body-s);font-weight:500;letter-spacing:inherit}
button.nav__link:hover,button.nav__link:focus-visible{outline:none}

/* nav__link.has-menu — keep the existing chevron rule applying to buttons too */
button.nav__link.has-menu{padding-right:0}

/* mobile burger */
.nav__burger{display:none;width:36px;height:36px;align-items:center;justify-content:center;color:#fff;
     border-radius:var(--radius-sm)}
.nav.scrolled .nav__burger,.nav--light .nav__burger{color:var(--text-primary)}

/* mobile drawer */
.nav__drawer{position:fixed;top:0;right:0;bottom:0;width:min(380px,92vw);
     background:var(--color-ink-900);color:#fff;z-index:60;padding:var(--space-7) var(--space-6);
     transform:translateX(100%);transition:transform var(--duration-slow) var(--ease-out);
     display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}
.nav__drawer.open{transform:translateX(0)}
.nav__drawer a{font-family:var(--font-display);font-size:1.5rem;font-weight:600;
     color:rgba(255,255,255,.78);padding:10px 0;border-bottom:1px solid var(--color-ink-700);
     transition:color var(--duration-fast) var(--ease-out)}
.nav__drawer a:hover{color:#fff}
.nav__drawer-group{display:flex;flex-direction:column;gap:0;
     border-bottom:1px solid var(--color-ink-700);padding:8px 0 6px}
.nav__drawer-label{font-family:var(--font-display);font-size:1.05rem;font-weight:700;
     color:#fff;letter-spacing:.04em;text-transform:uppercase;padding:6px 0 8px;opacity:.65}
.nav__drawer a.nav__drawer-sub{font-size:1.1rem;font-weight:500;padding:6px 0;border:0;
     color:rgba(255,255,255,.7);font-family:var(--font-display)}
.nav__drawer a.nav__drawer-sub:hover{color:var(--color-red-300)}
.nav__drawer-close{position:absolute;top:18px;right:20px;width:36px;height:36px;color:#fff;
     border-radius:50%;border:1px solid var(--color-ink-700);display:flex;align-items:center;justify-content:center}
.nav__scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:59;
     opacity:0;visibility:hidden;transition:opacity var(--duration-base) var(--ease-out),visibility var(--duration-base)}
.nav__scrim.open{opacity:1;visibility:visible}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{display:inline-flex;align-items:center;gap:10px;
     font-family:var(--font-body);font-weight:700;font-size:var(--text-button);
     letter-spacing:.01em;padding:13px 22px;border-radius:var(--radius-md);
     border:1.5px solid transparent;cursor:pointer;white-space:nowrap;
     transition:transform var(--duration-fast) var(--ease-out),
                background var(--duration-fast) var(--ease-out),
                box-shadow var(--duration-fast) var(--ease-out),
                border-color var(--duration-fast) var(--ease-out)}
.btn--primary{background:var(--color-brand);color:#fff}
.btn--primary:hover{background:var(--color-brand-hover);transform:translateY(-1px)}
.btn--primary-glow{background:var(--color-brand);color:#fff;box-shadow:var(--glow-red)}
.btn--primary-glow:hover{background:var(--color-brand-hover);transform:translateY(-1px)}
.btn--secondary{background:#fff;border-color:var(--border-subtle);color:var(--text-primary)}
.btn--secondary:hover{border-color:var(--text-muted)}
.btn--ondark{background:transparent;border-color:rgba(255,255,255,.22);color:#fff}
.btn--ondark:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn--ghost{background:transparent;color:var(--color-brand);padding-left:6px;padding-right:6px}
.btn--ghost:hover .btn__arrow{transform:translateX(4px)}
.btn--sm{padding:9px 16px;font-size:var(--text-caption)}
.btn--lg{padding:16px 28px;font-size:var(--text-body)}
.btn__arrow{display:inline-block;transition:transform var(--duration-base) var(--ease-out)}

/* ============================================================
   SECTION SCAFFOLDING
   ============================================================ */
.sec{padding:var(--section-y) 0;position:relative}
.sec--dark{background:var(--color-ink-900);color:#fff;overflow:hidden}
.sec--dark h1,.sec--dark h2,.sec--dark h3,.sec--dark h4,.sec--dark h5{color:#fff}
.sec--ink-deep{background:var(--color-ink-950)}
.sec--sunken{background:var(--color-neutral-100);
     border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.sec-head{max-width:var(--measure);margin-bottom:var(--space-7)}
.sec-head--wide{max-width:880px}
.sec-head--center{margin-left:auto;margin-right:auto;text-align:center}
.eyebrow{display:inline-block;font-size:var(--text-overline);font-weight:700;
     letter-spacing:var(--tracking-wide);text-transform:uppercase;
     color:var(--color-brand);margin-bottom:var(--space-3)}
.sec--dark .eyebrow{color:var(--color-red-500)}
.sec-title{font-size:var(--text-h1);line-height:1.08;margin-bottom:var(--space-4)}
.sec-title em{font-style:normal;color:var(--color-brand)}
.sec--dark .sec-title em{color:var(--color-red-500)}
.sec-intro{font-size:var(--text-body-l);color:var(--text-secondary);line-height:var(--leading-normal)}
.sec--dark .sec-intro{color:var(--color-neutral-400)}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--color-ink-900);color:var(--color-neutral-400);padding:var(--space-8) 0 var(--space-5)}
.footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--space-6);margin-bottom:var(--space-7)}
.footer__brand{display:flex;align-items:center;gap:11px;color:#fff;margin-bottom:var(--space-4)}
.footer__brand svg{width:38px;height:38px;flex:none}
.footer__brand b{font-family:var(--font-display);font-weight:700;font-size:1.15rem;letter-spacing:.04em}
.footer__about{font-size:var(--text-body-s);max-width:34ch;line-height:1.6;margin-bottom:var(--space-5)}
.footer__contact{display:flex;flex-direction:column;gap:6px;font-size:var(--text-body-s)}
.footer__contact a{color:#fff;font-weight:500}
.footer__contact a:hover{color:var(--color-red-300)}
.footer__col h5{color:#fff;font-family:var(--font-display);font-weight:600;font-size:var(--text-body-s);
     letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-4)}
.footer__col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer__col a{font-size:var(--text-body-s);color:var(--color-neutral-400);
     transition:color var(--duration-fast) var(--ease-out)}
.footer__col a:hover{color:#fff}
.footer__bottom{display:flex;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;
     padding-top:var(--space-5);border-top:1px solid var(--color-ink-800);
     font-size:var(--text-caption);color:var(--color-ink-600)}
.footer__bottom a:hover{color:#fff}
.footer__legal{display:flex;gap:var(--space-5);flex-wrap:wrap}

/* ============================================================
   COMMON COMPONENTS
   ============================================================ */
/* page header (non-home, no full hero) */
.page-hero{position:relative;background:var(--color-ink-950);color:#fff;
     padding:calc(var(--space-9) + 80px) 0 var(--space-9);overflow:hidden}
.page-hero__glow{position:absolute;width:900px;height:900px;border-radius:50%;
     background:var(--glow-ember);right:-300px;top:-300px;pointer-events:none}
.page-hero__glow.b{left:-300px;right:auto;top:auto;bottom:-360px;width:680px;height:680px;opacity:.6}
.page-hero__grid{position:absolute;inset:0;pointer-events:none;opacity:.3;
     background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
                      linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
     background-size:64px 64px;
     mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 35%,transparent 75%);
     -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 35%,transparent 75%)}
.page-hero__inner{position:relative;z-index:2}
.page-hero__crumb{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);
     font-size:var(--text-caption);color:var(--color-neutral-400);
     letter-spacing:.06em;margin-bottom:var(--space-5)}
.page-hero__crumb a{color:var(--color-neutral-400);transition:color var(--duration-fast) var(--ease-out)}
.page-hero__crumb a:hover{color:#fff}
.page-hero__crumb span{color:var(--color-ink-600)}
.page-hero h1{font-size:var(--text-display-l);line-height:var(--leading-tight);
     letter-spacing:var(--tracking-display);color:#fff;
     max-width:22ch;margin-bottom:var(--space-5)}
.page-hero h1 em{font-style:normal;
     background-image:linear-gradient(180deg,var(--color-red-500),var(--color-red-300));
     -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.page-hero__lead{font-size:var(--text-lead);color:var(--color-neutral-400);
     max-width:62ch;line-height:var(--leading-normal);margin-bottom:var(--space-6)}
.page-hero__cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* shared CTA band — used on most pages */
.cta-band{position:relative;background:var(--color-ink-950);color:#fff;
     padding:var(--section-y) 0;overflow:hidden}
.cta-band__glow{position:absolute;width:900px;height:900px;border-radius:50%;
     background:var(--glow-ember);left:50%;top:50%;transform:translate(-50%,-40%);
     pointer-events:none}
.cta-band__inner{position:relative;z-index:2;text-align:center;max-width:780px;margin:0 auto;padding:0 20px}
.cta-band__inner h2{font-family:var(--font-display);font-weight:700;
     font-size:var(--text-display-l);line-height:1.1;letter-spacing:var(--tracking-tight);
     color:#fff;margin-bottom:var(--space-5)}
.cta-band__inner h2 em{font-style:normal;color:var(--color-red-500)}
.cta-band__inner p{color:var(--color-neutral-400);font-size:var(--text-body-l);
     max-width:54ch;margin:0 auto var(--space-6)}
.cta-band__cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.cta-band__chips{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
     margin-top:var(--space-6);padding-top:var(--space-5);
     border-top:1px solid var(--color-ink-700)}
.cta-band__chip{font-size:var(--text-caption);color:var(--color-neutral-400);
     padding:6px 14px;border-radius:var(--radius-pill);border:1px solid var(--color-ink-700)}

/* generic card */
.card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
     padding:var(--space-6);transition:transform var(--duration-base) var(--ease-out),
     box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--color-red-300)}

/* feature list w/ dot bullets */
.bul-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.bul-list li{font-size:var(--text-body);color:var(--text-secondary);
     padding-left:18px;position:relative;line-height:1.5}
.bul-list li::before{content:"";position:absolute;left:0;top:.55em;
     width:6px;height:6px;background:var(--color-brand);border-radius:1px}
.sec--dark .bul-list li{color:var(--color-neutral-400)}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes emberBreathe{0%,100%{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1.06)}}
.reveal{opacity:0;transform:translateY(22px);
     transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
.reveal-stagger > *{opacity:0;transform:translateY(18px);
     transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.reveal-stagger.in > *{opacity:1;transform:none}
.reveal-stagger.in > *:nth-child(1){transition-delay:0ms}
.reveal-stagger.in > *:nth-child(2){transition-delay:80ms}
.reveal-stagger.in > *:nth-child(3){transition-delay:160ms}
.reveal-stagger.in > *:nth-child(4){transition-delay:240ms}
.reveal-stagger.in > *:nth-child(5){transition-delay:320ms}
.reveal-stagger.in > *:nth-child(6){transition-delay:400ms}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .nav__links{display:none}
  .nav__burger{display:flex}
  .footer__top{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .footer__top{grid-template-columns:1fr}
  .page-hero h1{font-size:clamp(2rem,8vw,2.8rem)}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;
       transition-duration:0.001ms !important}
  html{scroll-behavior:auto}
  .reveal,.reveal-stagger > *{opacity:1;transform:none}
}

/* ============================================================
   INDUSTRY PAGE COMPONENTS
   Shared by all four industry pages.
   ============================================================ */

/* Page hero with photo overlay */
.ind-hero{position:relative;background:var(--color-ink-950);color:#fff;
     padding:calc(var(--space-9) + 80px) 0 var(--space-9);overflow:hidden;min-height:78vh;
     display:flex;flex-direction:column;justify-content:flex-end}
.ind-hero__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
     filter:contrast(1.1) brightness(.55) saturate(.9)}
.ind-hero::after{content:"";position:absolute;inset:0;
     background:linear-gradient(180deg,rgba(9,9,12,.5) 0%,rgba(9,9,12,.92) 95%),
                radial-gradient(circle at 78% 22%,rgba(203,33,41,.45),transparent 55%);
     pointer-events:none}
.ind-hero__inner{position:relative;z-index:2}
.ind-hero__crumb{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);
     font-size:var(--text-caption);color:var(--color-neutral-400);
     letter-spacing:.06em;margin-bottom:var(--space-5);flex-wrap:wrap}
.ind-hero__crumb a{color:var(--color-neutral-400)}
.ind-hero__crumb a:hover{color:#fff}
.ind-hero__crumb span{color:var(--color-ink-600)}
.ind-hero__tag{display:flex;align-items:center;gap:10px;font-size:var(--text-overline);
     font-weight:700;letter-spacing:var(--tracking-wide);text-transform:uppercase;
     color:var(--color-red-300);margin-bottom:var(--space-4);width:fit-content}
.ind-hero__tag::before{content:"";width:28px;height:1.5px;background:var(--color-red-500)}
.ind-hero h1{font-size:var(--text-display-l);line-height:var(--leading-tight);
     letter-spacing:var(--tracking-display);color:#fff;
     max-width:22ch;margin-bottom:var(--space-5)}
.ind-hero h1 em{font-style:normal;background-image:linear-gradient(180deg,var(--color-red-500),var(--color-red-300));
     -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ind-hero__lead{font-size:var(--text-lead);color:rgba(255,255,255,.85);
     max-width:62ch;line-height:var(--leading-normal);margin-bottom:var(--space-6);
     text-shadow:0 1px 16px rgba(0,0,0,.4)}
.ind-hero__cta{display:flex;gap:14px;flex-wrap:wrap}

/* highlight strip — 4 quick value props under the hero */
.ind-highlights{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
     background:var(--color-ink-900);color:#fff;border-top:1px solid var(--color-ink-700)}
.ind-highlight{padding:var(--space-6) var(--space-5);border-right:1px solid var(--color-ink-700);
     position:relative}
.ind-highlight:last-child{border-right:none}
.ind-highlight b{display:block;font-family:var(--font-display);font-weight:700;
     font-size:1.4rem;line-height:1.15;color:#fff;letter-spacing:-.01em;margin-bottom:8px;
     padding-bottom:var(--space-2)}
.ind-highlight b::before{content:"";display:inline-block;width:8px;height:8px;background:var(--color-red-500);
     border-radius:50%;vertical-align:1px;margin-right:10px;box-shadow:0 0 8px var(--color-red-500)}
.ind-highlight span{font-size:var(--text-body-s);color:var(--color-neutral-400);line-height:1.5}

/* solution cards (3 across) */
.ind-solutions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.ind-solution{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
     padding:var(--space-6);position:relative;overflow:hidden;
     transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),
     border-color var(--duration-base) var(--ease-out)}
.ind-solution:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--color-red-300)}
.ind-solution__num{font-family:var(--font-mono);font-size:var(--text-caption);
     color:var(--color-brand);letter-spacing:.08em;margin-bottom:var(--space-3)}
.ind-solution h3{font-size:var(--text-h4);margin-bottom:var(--space-3);line-height:1.18}
.ind-solution ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:var(--space-3);
     padding-top:var(--space-3);border-top:1px solid var(--surface-sunken)}
.ind-solution ul li{font-size:var(--text-body-s);color:var(--text-secondary);
     padding-left:16px;position:relative;line-height:1.5}
.ind-solution ul li::before{content:"";position:absolute;left:0;top:.55em;
     width:6px;height:6px;background:var(--color-brand);border-radius:1px}

/* impact stats — 4 across, brand-toned */
.ind-impact{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}
.ind-impact-item{padding:var(--space-5);background:var(--color-ink-900);color:#fff;
     border:1px solid var(--color-ink-700);border-radius:var(--radius-lg);position:relative;overflow:hidden}
.ind-impact-item::before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;
     background:var(--glow-ember);right:-80px;top:-80px;opacity:.7;pointer-events:none}
.ind-impact-item b{display:block;font-family:var(--font-display);font-weight:700;
     font-size:clamp(2.2rem,1.5rem+2vw,3rem);letter-spacing:var(--tracking-display);
     color:#fff;line-height:1;margin-bottom:8px;position:relative}
.ind-impact-item b em{font-style:normal;color:var(--color-red-500)}
.ind-impact-item span{font-size:var(--text-body-s);color:var(--color-neutral-400);line-height:1.5;
     position:relative;display:block}

@media(max-width:1024px){
  .ind-highlights{grid-template-columns:repeat(2,1fr)}
  .ind-highlight:nth-child(2n){border-right:none}
  .ind-highlight:nth-child(-n+2){border-bottom:1px solid var(--color-ink-700)}
  .ind-solutions{grid-template-columns:1fr}
  .ind-impact{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .ind-highlights{grid-template-columns:1fr}
  .ind-highlight{border-right:none;border-bottom:1px solid var(--color-ink-700)}
  .ind-highlight:last-child{border-bottom:none}
  .ind-impact{grid-template-columns:1fr}
}
/* ============================================================
   SERVICE DEEP-DIVE PAGE COMPONENTS
   Shared by all four /services pages.
   ============================================================ */
.what-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.what{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
     padding:var(--space-6);transition:transform var(--duration-base) var(--ease-out),
     box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}
.what:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--color-red-300)}
.what__icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-red-50);
     color:var(--color-brand);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4)}
.what__icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.6;fill:none;
     stroke-linecap:round;stroke-linejoin:round}
.what h3{font-family:var(--font-display);font-size:var(--text-h4);margin-bottom:var(--space-3);line-height:1.2}
.what p{font-size:var(--text-body-s);color:var(--text-secondary);line-height:1.55}

.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}
.stack{padding:var(--space-5);background:var(--color-ink-900);color:#fff;
     border:1px solid var(--color-ink-700);border-radius:var(--radius-md);
     transition:transform var(--duration-base) var(--ease-out),background var(--duration-base) var(--ease-out)}
.stack:hover{background:var(--color-ink-800);transform:translateY(-2px)}
.stack b{display:block;font-family:var(--font-mono);font-size:var(--text-caption);
     color:var(--color-red-300);letter-spacing:.08em;margin-bottom:8px}
.stack span{font-family:var(--font-display);font-size:var(--text-body);font-weight:600;color:#fff}

.method{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--space-8);align-items:center}
.method__photo{position:relative;border-radius:var(--radius-xl);overflow:hidden;aspect-ratio:5/4;background:#000}
.method__photo img{width:100%;height:100%;object-fit:cover;filter:contrast(1.05) brightness(.7) saturate(.9)}
.method__photo::after{content:"";position:absolute;inset:0;
     background:linear-gradient(180deg,rgba(0,0,0,.0) 50%,rgba(9,9,12,.7) 100%),
                radial-gradient(circle at 80% 20%,rgba(203,33,41,.5),transparent 65%);pointer-events:none}
.method-list{display:flex;flex-direction:column;gap:var(--space-5);list-style:none}
.method-list-item{display:flex;gap:var(--space-4);align-items:flex-start}
.method-list-num{flex:none;width:42px;height:42px;border-radius:50%;background:var(--color-red-50);
     color:var(--color-brand);font-family:var(--font-mono);font-weight:700;font-size:1rem;
     display:flex;align-items:center;justify-content:center}
.method-list h4{font-family:var(--font-display);font-size:var(--text-h4);margin-bottom:6px}
.method-list p{font-size:var(--text-body);color:var(--text-secondary);line-height:1.55}

.casestudy{position:relative;background:var(--color-ink-950);color:#fff;border-radius:var(--radius-xl);
     overflow:hidden;padding:var(--space-9) var(--space-7);min-height:420px;
     display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center}
.casestudy__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
     opacity:.4;filter:contrast(1.05) brightness(.65)}
.casestudy::after{content:"";position:absolute;inset:0;
     background:linear-gradient(90deg,rgba(9,9,12,.92) 0%,rgba(9,9,12,.55) 60%,rgba(9,9,12,.3) 100%),
                radial-gradient(circle at 90% 30%,rgba(203,33,41,.6),transparent 55%);pointer-events:none}
.casestudy > *{position:relative;z-index:2}
.casestudy__copy .eyebrow{color:var(--color-red-500);margin-bottom:var(--space-3)}
.casestudy__copy h3{font-family:var(--font-display);font-size:var(--text-h2);color:#fff;
     margin-bottom:var(--space-4);line-height:1.15}
.casestudy__copy p{font-size:var(--text-body-l);color:var(--color-neutral-400);
     line-height:var(--leading-normal);margin-bottom:var(--space-5)}
.casestudy__metrics{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.casestudy__metric{padding-top:var(--space-3);border-top:2px solid var(--color-red-500)}
.casestudy__metric b{display:block;font-family:var(--font-display);font-weight:700;
     font-size:2.6rem;line-height:1;color:#fff;margin-bottom:8px;letter-spacing:-.02em}
.casestudy__metric span{font-size:var(--text-body-s);color:var(--color-neutral-400)}

/* FAQ — used on multiple pages */
.faq{max-width:780px;margin:0 auto}
.faq__item{border-bottom:1px solid var(--border-subtle)}
.faq__q{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;
     gap:var(--space-4);padding:var(--space-5) 0;font-family:var(--font-display);font-weight:600;
     font-size:var(--text-h4);color:var(--text-primary);cursor:pointer;list-style:none}
.faq__q::-webkit-details-marker{display:none}
.faq__q:hover{color:var(--color-brand)}
.faq__pm{flex:none;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--border-subtle);
     display:flex;align-items:center;justify-content:center;color:var(--color-brand);
     transition:transform var(--duration-base) var(--ease-out),background var(--duration-fast)}
.faq__item[open] .faq__pm{transform:rotate(45deg);background:var(--color-red-50)}
.faq__a{padding:0 var(--space-7) var(--space-6) 0;font-size:var(--text-body);
     color:var(--text-secondary);line-height:var(--leading-normal);max-width:62ch}

/* related-card grid (used on industry + service detail pages) */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.related-card{padding:var(--space-5);background:#fff;border:1px solid var(--border-subtle);
     border-radius:var(--radius-lg);transition:all var(--duration-base) var(--ease-out)}
.related-card:hover{transform:translateY(-3px);border-color:var(--color-red-300);box-shadow:var(--shadow-sm)}
.related-card__label{font-family:var(--font-mono);font-size:var(--text-caption);
     color:var(--color-brand);letter-spacing:.08em;margin-bottom:var(--space-3)}
.related-card h4{font-family:var(--font-display);font-size:1.15rem;margin-bottom:8px}
.related-card p{font-size:var(--text-body-s);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-3)}
.related-card a{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-caption);
     font-weight:600;color:var(--color-brand);letter-spacing:.04em;text-transform:uppercase}

/* prose blocks for SEO content */
.prose{max-width:760px;margin:0 auto}
.prose p{font-size:var(--text-body-l);color:var(--text-secondary);line-height:var(--leading-normal);
     margin-bottom:var(--space-5)}
.prose h3{font-size:var(--text-h3);margin:var(--space-7) 0 var(--space-4);line-height:1.2}
.prose h3:first-child{margin-top:0}
.prose strong{color:var(--text-primary);font-weight:600}
.prose ul{margin:0 0 var(--space-5) 0;padding-left:var(--space-5)}
.prose ul li{font-size:var(--text-body-l);color:var(--text-secondary);line-height:1.6;margin-bottom:6px}

@media(max-width:1024px){
  .what-grid{grid-template-columns:1fr 1fr}
  .stack-grid{grid-template-columns:repeat(2,1fr)}
  .method{grid-template-columns:1fr}
  .casestudy{grid-template-columns:1fr}
  .related{grid-template-columns:1fr}
}
@media(max-width:640px){
  .what-grid{grid-template-columns:1fr}
  .stack-grid{grid-template-columns:1fr}
  .casestudy__metrics{grid-template-columns:1fr}
}
