/* ============================================================
   MENHIR — SECTOR LANDING PAGES
   Self-contained stylesheet: design-system tokens + page styles.
   Composed from the Menhir design system (tokens preserved 1:1
   with styles.css) so these pages match the main site without
   loading it. Pages are fully static — no React, no runtime CSS.
   ============================================================ */

/* ---- Tokens: colors ---- */
:root {
  --c-bg:          #fffbfa;
  --c-bg-warm:     #f2ede3;
  --c-dark:        #1C2B4A;
  --c-dark-mid:    #243047;
  --c-ink:         #1A1928;
  --c-stone:       #8b7355;
  --c-stone-light: #c4a882;
  --c-stone-pale:  #e8dfd0;
  --c-text:        #1e2b3a;
  --c-muted:       #72808c;
  --c-border:      rgba(139, 115, 85, 0.18);
  --c-white:       #ffffff;

  /* ---- Tokens: typography ---- */
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body:    'DM Sans', system-ui, -apple-system, sans-serif;
  --fs-hero:     clamp(2.5rem, 6.5vw, 4.5rem);
  --fs-display:  clamp(1.875rem, 4vw, 2.75rem);
  --fs-lead:  1.125rem;
  --fs-base:  1rem;
  --fs-sm:    0.9375rem;
  --fs-xs:    0.875rem;
  --lh-tight:  1.075;
  --lh-snug:   1.15;
  --lh-body:   1.65;
  --lh-relaxed:1.72;
  --ls-hero:    -0.035em;
  --ls-display: -0.025em;

  /* ---- Tokens: spacing & layout ---- */
  --sp-xs:  0.5rem;
  --sp-sm:  1rem;
  --sp-md:  1.5rem;
  --sp-lg:  2rem;
  --sp-2xl: 2.5rem;
  --sp-xl:  3rem;
  --sp-3xl: 4rem;
  --max-w:  1140px;
  --nav-h:  72px;
  --container-pad: var(--sp-lg);

  /* ---- Tokens: effects ---- */
  --r-sm:  6px;
  --r-lg:  20px;
  --r-pill: 999px;
  --sh-md: 0 4px 24px rgba(24, 34, 52, 0.10);
  --sh-lg: 0 12px 48px rgba(24, 34, 52, 0.14);
  --t-fast: 150ms ease;
  --t-base: 260ms ease;
  --ease-out-expo: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-snap:     cubic-bezier(0.32, 0.72, 0, 1);
}

/* ---- Base ---- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-body);font-weight:400;line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--c-dark);text-decoration:none}
a:hover{color:var(--c-stone)}
img{display:block;max-width:100%}
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding-inline:var(--container-pad)}

/* ---- Eyebrow ---- */
.eyebrow{display:inline-block;font-family:var(--font-body);font-size:0.6875rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--c-stone)}
.eyebrow--light{color:var(--c-stone-light)}

/* ---- Buttons (design-system Button) ---- */
.mhx-btn{--_bg:var(--c-dark);--_fg:var(--c-white);--_bd:var(--c-dark);display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;font-family:var(--font-body);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;border:2px solid var(--_bd);border-radius:var(--r-sm);background:var(--_bg);color:var(--_fg);padding:0.75rem 1.625rem;font-size:0.9375rem;transition:background var(--t-base),color var(--t-base),border-color var(--t-base),transform var(--t-base),box-shadow var(--t-base),opacity var(--t-base)}
.mhx-btn:focus-visible{outline:3px solid var(--c-stone-light);outline-offset:3px}
.mhx-btn--sm{padding:0.5rem 1.25rem;font-size:0.875rem}
.mhx-btn--lg{padding:0.9rem 2rem;font-size:1rem}
.mhx-btn--primary{--_bg:var(--c-dark);--_fg:var(--c-white);--_bd:var(--c-dark)}
.mhx-btn--primary:hover{--_bg:var(--c-dark-mid);--_bd:var(--c-dark-mid);color:var(--c-white);transform:translateY(-2px);box-shadow:var(--sh-md)}
.mhx-btn--primary:active{transform:translateY(0)}
.mhx-btn--outline{--_bg:transparent;--_fg:var(--c-dark);--_bd:var(--c-dark)}
.mhx-btn--outline:hover{--_bg:var(--c-dark);--_fg:var(--c-white);color:var(--c-white)}
.mhx-btn--ghost{--_bg:rgba(255,255,255,0.12);--_fg:var(--c-white);--_bd:rgba(255,255,255,0.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.mhx-btn--ghost:hover{--_bg:rgba(255,255,255,0.22);--_bd:rgba(255,255,255,0.6);color:var(--c-white)}
.mhx-btn svg{width:1.15em;height:1.15em}

/* ---- Cards (design-system Card) ---- */
.mhx-card{position:relative;border-radius:var(--r-lg);font-family:var(--font-body);padding:var(--sp-xl);transition:transform var(--t-base),box-shadow var(--t-base),border-color var(--t-base)}
.mhx-card--plain{background:var(--c-white);border:1px solid var(--c-border)}
.mhx-card--hover:hover{transform:translateY(-5px);box-shadow:var(--sh-lg)}
.mhx-card--plain.mhx-card--hover:hover{border-color:var(--c-stone-light)}
.mhx-card__icon{width:48px;height:48px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-md)}
.mhx-card__icon svg{width:21px;height:21px}
.mhx-card__icon--navy{background:var(--c-dark);color:var(--c-white)}
.mhx-card__icon--stone{background:var(--c-stone-pale);color:var(--c-stone);width:44px;height:44px}
.mhx-card h3{font-family:var(--font-display);font-size:1.1875rem;font-weight:500;line-height:1.3;letter-spacing:-0.015em;color:var(--c-dark);margin:0 0 var(--sp-sm)}
.mhx-card p{font-size:0.9375rem;color:var(--c-muted);line-height:1.72;margin:0}

/* ---- Nav ---- */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,251,250,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--c-border)}
.nav__inner{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-lg)}
.nav__logo{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.3rem;font-weight:500;letter-spacing:-.02em;color:var(--c-dark)}
.nav__logo img{width:30px;height:30px}
.nav__links{display:flex;align-items:center;gap:var(--sp-lg)}
.nav__links a{font-size:var(--fs-sm);font-weight:500;color:var(--c-text);position:relative;padding-block:4px}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--c-stone);transition:width var(--t-base)}
.nav__links a:hover{color:var(--c-dark)}
.nav__links a:hover::after{width:100%}
.nav__actions{display:flex;align-items:center;gap:var(--sp-sm)}
.nav__hamburger{display:none;align-items:center;justify-content:center;padding:var(--sp-xs);color:var(--c-dark);background:none;border:none;cursor:pointer;border-radius:var(--r-sm);transition:color var(--t-fast),background var(--t-fast)}
.nav__hamburger:hover{background:var(--c-stone-pale)}
.nav__hamburger svg{width:22px;height:22px}
.nav__mobile{display:none;flex-direction:column;gap:0;background:rgba(250,249,246,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--c-border)}
.nav__mobile.open{display:flex}
.nav__mobile a{font-size:1rem;font-weight:450;color:var(--c-dark);padding:0.875rem var(--sp-lg);border-bottom:1px solid var(--c-border)}
.nav__mobile a:hover{background:var(--c-stone-pale)}
/* .nav__mobile a wins specificity over .mhx-btn--primary alone, so set light
   text here or the drawer CTA becomes dark-on-dark (invisible). */
.nav__mobile .mhx-btn{margin:var(--sp-md) var(--sp-lg);width:calc(100% - var(--sp-lg) * 2);justify-content:center;border:none;border-bottom:none;color:var(--c-white)}
.nav__mobile a.mhx-btn--primary:hover{background:var(--c-dark-mid);color:var(--c-white)}
@media(max-width:820px){.nav__links{display:none}.nav__hamburger{display:flex}}

/* ---- Hero ---- */
.hero{position:relative;min-height:90vh;display:flex;align-items:flex-end;background:linear-gradient(160deg,#1C2B4A,#1A1928);overflow:hidden}
/* Per-image art direction: --bgp is the desktop position, --bgp-m the mobile
   override (both set inline on each .hero__bg by the page). */
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:var(--bgp,center);z-index:0;opacity:0;transition:opacity 1.2s ease}
.hero__bg.is-active{opacity:1}
@media(max-width:640px){.hero__bg{background-position:var(--bgp-m,var(--bgp,center))}}
.hero__dots{position:absolute;z-index:3;left:50%;bottom:calc(clamp(3.5rem,10vh,7.5rem) - 1.6rem);transform:translateX(-50%);display:flex;gap:10px}
.hero__dot{width:9px;height:9px;padding:0;border:none;border-radius:var(--r-pill);background:rgba(255,255,255,.45);cursor:pointer;transition:width var(--t-base) var(--ease-snap),background var(--t-base)}
.hero__dot:hover{background:rgba(255,255,255,.7)}
.hero__dot.is-active{width:26px;background:#fff}
/* No full-image overlay — the image shows at full clarity. A thin fade at the
   very bottom keeps the white text readable on bright images. */
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(26,25,40,0) 40%,rgba(26,25,40,.38) 72%,rgba(26,25,40,.72) 100%)}
.hero__content{position:relative;z-index:2;padding-block:clamp(3rem,9vh,7rem) clamp(3.5rem,10vh,7.5rem)}
.hero__text{max-width:780px}
.hero__eyebrow{color:var(--c-stone-light)!important;margin-bottom:var(--sp-md);text-shadow:0 1px 3px rgba(26,25,40,.5),0 2px 18px rgba(26,25,40,.45)}
.hero__headline{font-family:var(--font-display);font-weight:400;font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:var(--ls-hero);color:#fff;margin:0 0 var(--sp-md);text-wrap:balance;text-shadow:0 1px 3px rgba(26,25,40,.45),0 2px 24px rgba(26,25,40,.4)}
.hero__sub{font-family:var(--font-body);font-weight:350;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.62;color:rgba(255,255,255,.95);margin:0 0 var(--sp-xl);max-width:640px;text-wrap:pretty;text-shadow:0 1px 3px rgba(26,25,40,.5),0 2px 16px rgba(26,25,40,.45)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:var(--sp-sm)}
/* On phones the two CTAs share one line, split 50/50 */
@media(max-width:640px){.hero__ctas{flex-wrap:nowrap}.hero__ctas .mhx-btn{flex:1 1 0;padding-inline:0.75rem;font-size:0.9375rem;white-space:nowrap}}
.reveal{opacity:0;transform:translateY(24px);animation:reveal .9s var(--ease-out-expo) forwards}
.reveal.d1{animation-delay:.08s}.reveal.d2{animation-delay:.18s}.reveal.d3{animation-delay:.28s}
@keyframes reveal{to{opacity:1;transform:none}}

/* ---- Section scaffolding ---- */
.section{padding-block:var(--sp-3xl)}
.section--alt{background:var(--c-bg-warm)}
.section-header{max-width:720px;margin:0 auto var(--sp-2xl);text-align:center}
.section-header .eb{margin-bottom:var(--sp-sm)}
.section-title{font-family:var(--font-display);font-weight:400;font-size:var(--fs-display);line-height:var(--lh-snug);letter-spacing:var(--ls-display);color:var(--c-dark);margin:0;text-wrap:balance}
.section-intro{font-family:var(--font-body);font-weight:350;font-size:var(--fs-lead);line-height:var(--lh-relaxed);color:var(--c-muted);margin:var(--sp-md) 0 0;text-wrap:pretty}

/* ---- Why grid (3 cards) ---- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-md)}
@media(max-width:860px){.why-grid{grid-template-columns:1fr}}

/* ---- Ops (2-col: intro + card list) ---- */
.ops-layout{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media(max-width:900px){.ops-layout{grid-template-columns:1fr;gap:var(--sp-xl)}}
.ops-intro .eb{margin-bottom:var(--sp-sm)}
.ops-intro .section-title{margin-top:var(--sp-sm)}
.ops-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-md)}
@media(max-width:560px){.ops-list{grid-template-columns:1fr}}
.ops-card{display:block}

/* ---- Differentiator band (navy) ---- */
.diff{position:relative;background:linear-gradient(155deg,#1C2B4A,#1A1928);color:#fff;overflow:hidden}
.diff::before{content:"";position:absolute;right:-8%;top:-40%;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(196,168,130,.22),transparent 70%);pointer-events:none}
.diff__inner{position:relative;z-index:1;max-width:820px;margin:0 auto;text-align:center}
.diff__title{font-family:var(--font-display);font-weight:400;font-size:var(--fs-display);line-height:var(--lh-snug);letter-spacing:var(--ls-display);color:#fff;margin:var(--sp-sm) 0 var(--sp-md);text-wrap:balance}
.diff__body{font-family:var(--font-body);font-weight:350;font-size:var(--fs-lead);line-height:var(--lh-relaxed);color:rgba(255,255,255,.86);margin:0 auto;max-width:660px;text-wrap:pretty}
.diff__tags{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-sm);margin-top:var(--sp-xl)}
.diff__tag{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);font-weight:500;color:#fff;padding:.5rem 1rem;border:1px solid rgba(255,255,255,.22);border-radius:var(--r-pill);background:rgba(255,255,255,.06)}
.diff__tag svg{width:16px;height:16px;color:var(--c-stone-light)}

/* ---- Final CTA ---- */
.cta{text-align:center}
.cta__title{font-family:var(--font-display);font-weight:400;font-size:var(--fs-display);line-height:var(--lh-snug);letter-spacing:var(--ls-display);color:var(--c-dark);margin:0 0 var(--sp-md);text-wrap:balance}
.cta__sub{font-family:var(--font-body);font-weight:350;font-size:var(--fs-lead);color:var(--c-muted);margin:0 auto var(--sp-xl);max-width:560px;text-wrap:pretty}
.cta__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-sm)}

/* ---- Footer ---- */
.footer{background:var(--c-dark);color:rgba(255,255,255,.72);padding-block:var(--sp-3xl) var(--sp-xl)}
.footer__top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-lg);padding-bottom:var(--sp-xl);border-bottom:1px solid rgba(255,255,255,.12);flex-wrap:wrap}
.footer__logo{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:#fff}
.footer__logo img{width:28px;height:28px}
.footer__tagline{margin:.5rem 0 0;font-style:italic;font-family:var(--font-display);color:rgba(255,255,255,.6);font-size:1rem}
.footer__sectors{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-sm) var(--sp-lg);padding-block:var(--sp-lg);border-bottom:1px solid rgba(255,255,255,.12)}
.footer__sectors-label{font-size:0.6875rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--c-stone-light)}
.footer__sectors a{color:rgba(255,255,255,.72);font-size:var(--fs-sm)}
.footer__sectors a:hover{color:#fff}
.footer__sectors a[aria-current="page"]{color:#fff}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);padding-top:var(--sp-lg);flex-wrap:wrap}
.footer__links{display:flex;flex-wrap:wrap;gap:var(--sp-lg)}
.footer__links a{color:rgba(255,255,255,.72);font-size:var(--fs-sm)}
.footer__links a:hover{color:#fff}
.footer__copy{margin:0;font-size:var(--fs-xs);color:rgba(255,255,255,.5)}

/* ---- Footer, phones only: stacked brand + full-width login, link grids ---- */
@media(max-width:640px){
  .footer{padding-block:var(--sp-2xl) var(--sp-lg)}
  .footer__top{flex-direction:column;align-items:stretch;gap:var(--sp-md)}
  .footer__top .mhx-btn{width:100%}
  .footer__sectors{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xs) var(--sp-md);padding-block:var(--sp-md)}
  .footer__sectors-label{grid-column:1/-1;margin-bottom:var(--sp-xs)}
  .footer__sectors a{padding-block:6px}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:var(--sp-md);padding-top:var(--sp-md)}
  .footer__links{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xs) var(--sp-md);width:100%}
  .footer__links a{padding-block:6px}
  .footer__copy{padding-top:var(--sp-xs)}
}

@media(prefers-reduced-motion:reduce){.reveal{animation:none!important;transform:none!important;opacity:1!important}}
