/*! NBC v6.385 · authoritative layout foundation, fail-safe reveal and footer alignment contract */

:root{
  --nbc-layout-wide:1440px;
  --nbc-layout-standard:1280px;
  --nbc-layout-editorial:800px;
  --nbc-layout-narrow:640px;
  --nbc-layout-gutter:clamp(20px,5vw,72px);
  --nbc-layout-section:clamp(72px,7vw,112px);
  --nbc-layout-section-compact:clamp(56px,5vw,84px);
  --nbc-layout-heading-gap:clamp(28px,4vw,48px);
  --nbc-layout-grid-gap:clamp(20px,3vw,48px);
  --nbc-reveal-distance:18px;
  --nbc-reveal-duration:420ms;
  --nbc-reveal-stagger:55ms;
  --nbc-reveal-easing:cubic-bezier(.22,1,.36,1);

  /* Compatibility aliases: every legacy consumer resolves to this single source. */
  --content-readable:var(--nbc-layout-editorial);
  --reading:var(--nbc-layout-editorial);
  --layout-readable:var(--nbc-layout-editorial);
  --layout-wide-readable:820px;
  --section-gap:var(--nbc-layout-section);
  --section-space:var(--nbc-layout-section);
  --section-space-tight:var(--nbc-layout-section-compact);
  --space-section:var(--nbc-layout-section);
  --space-section-compact:var(--nbc-layout-section-compact);
  --layout-gutter:var(--nbc-layout-gutter);
  --layout-max:var(--nbc-layout-wide);
  --nbc-page-gutter:var(--nbc-layout-gutter);
  --nbc-gutter:var(--nbc-layout-gutter);
  --nbc-wide:var(--nbc-layout-wide);
  --nbc-standard:var(--nbc-layout-standard);
  --nbc-editorial:var(--nbc-layout-editorial);
  --nbc-editorial-width:var(--nbc-layout-editorial);
  --nbc-narrow:var(--nbc-layout-narrow);
  --nbc-section:var(--nbc-layout-section);
  --nbc-section-laptop:var(--nbc-layout-section);
  --nbc-section-mobile:var(--nbc-layout-section);
  --nbc-section-y:var(--nbc-layout-section);
  --nbc-section-y-compact:var(--nbc-layout-section-compact);
  --nbc-heading-content-gap:var(--nbc-layout-heading-gap);
  --nbc-group-gap:var(--nbc-layout-grid-gap);
  --nbc-card-gap:20px;
  --reveal-distance:var(--nbc-reveal-distance);
  --reveal-duration:var(--nbc-reveal-duration);
  --reveal-stagger:var(--nbc-reveal-stagger);
  --reveal-easing:var(--nbc-reveal-easing);
}

html{
  width:100%;
  max-width:100%;
  overflow-x:visible;
  scroll-padding-top:calc(var(--header-height,80px) + 24px);
}

body.page.design-system-executive{
  width:100%;
  max-width:100%;
  overflow-x:visible;
}

body.page.design-system-executive *,
body.page.design-system-executive *::before,
body.page.design-system-executive *::after{
  box-sizing:border-box;
}

/* One standard container. Wider or narrower measures are always explicit. */
body.page.design-system-executive :where(.wrap,.sw,[data-layout-width="standard"]){
  width:min(calc(100% - (2 * var(--nbc-layout-gutter))),var(--nbc-layout-standard));
  max-width:var(--nbc-layout-standard);
  margin-inline:auto;
  padding-inline:0;
}

body.page.design-system-executive :where(.layout-wide,[data-layout-width="wide"]){
  width:min(calc(100% - (2 * var(--nbc-layout-gutter))),var(--nbc-layout-wide));
  max-width:var(--nbc-layout-wide);
  margin-inline:auto;
}

body.page.design-system-executive :where(.layout-editorial,[data-layout-width="editorial"]){
  width:min(calc(100% - (2 * var(--nbc-layout-gutter))),var(--nbc-layout-editorial));
  max-width:var(--nbc-layout-editorial);
  margin-inline:auto;
}

body.page.design-system-executive :where(.layout-narrow,[data-layout-width="narrow"]){
  width:min(calc(100% - (2 * var(--nbc-layout-gutter))),var(--nbc-layout-narrow));
  max-width:var(--nbc-layout-narrow);
  margin-inline:auto;
}

/* Instrument workspaces use the wider visual measure without redefining .wrap globally. */
body[data-page-family="instrument"].design-system-executive main[data-page-shell] > :where(section,div) > :where(.wrap,.sw){
  width:min(calc(100% - (2 * var(--nbc-layout-gutter))),var(--nbc-layout-wide));
  max-width:var(--nbc-layout-wide);
}

body.page.design-system-executive main,
body.page.design-system-executive .nbc-page-shell{
  width:100%;
  max-width:100%;
}

body.page.design-system-executive main > :where(section,article,div){
  width:100%;
  max-width:100%;
}

/* Sections own rhythm, never clipping. Decorative children may clip inside their own stage. */
body.page.design-system-executive main > section{
  position:relative;
  max-width:100%;
}

body.page.design-system-executive main > section:not(.hero):not(.page-hero):not(.service-hero):not(.nbc-hero-card-v2):not(.nbc-hero-system):not(.intro-scroll):not(.dc25-screen){
  padding-block:var(--nbc-layout-section);
}

body.page.design-system-executive main > section.is-compact,
body.page.design-system-executive section.related{
  padding-block:var(--nbc-layout-section-compact);
}

/* Generic grids have one contract across page families. */
body.page.design-system-executive .two-col{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:var(--nbc-layout-grid-gap);
  align-items:start;
}

body.page.design-system-executive .two-col > *{
  min-width:0;
  max-width:100%;
}

body.page.design-system-executive .tri{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  background:transparent;
  border:0;
}

body.page.design-system-executive .grid-cards,
body.page.design-system-executive .related-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

body.page.design-system-executive .related-grid{
  margin-top:16px;
}

body.page.design-system-executive :where(
  .grid-cards,
  .proof-grid,
  .styleguide-component-grid,
  .contact-process-grid,
  .contact-trust-grid,
  .branch-case-grid,
  .branch-read-grid
){
  gap:20px;
}

/* Grid and flex descendants must shrink instead of being clipped. */
body.page.design-system-executive main :where(
  [class*="grid"],
  [class*="layout"],
  [class*="split"],
  [class*="columns"],
  [class*="row"],
  [class*="rail"],
  [class*="shell"],
  [class*="stage"],
  [class*="flow"]
) > *{
  min-width:0;
  max-width:100%;
}

body.page.design-system-executive :where(img,picture,video,canvas,svg){
  max-width:100%;
}

body.page.design-system-executive :where(h1,h2,h3,h4,p,li,dd,blockquote,figcaption,summary,a,strong,small,span){
  min-width:0;
}

body.page.design-system-executive main :where(h1,h2,h3,h4,.display,.editorial-title,.nbc-section-title){
  max-width:100%;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

body.page.design-system-executive main :where(p,li,dd,blockquote,figcaption,.lede,.nbc-section-intro){
  text-wrap:pretty;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}

body.page.design-system-executive :where(a,button,input,select,textarea,summary){
  max-width:100%;
}

/* Fail-safe reveal: visible by default. JS may hide only explicitly prepared pending nodes. */
body.page.design-system-executive :where([data-premium-reveal],.rv){
  opacity:1;
  visibility:visible;
  transform:none;
  translate:none;
  transition:opacity var(--nbc-reveal-duration) var(--nbc-reveal-easing),
             transform var(--nbc-reveal-duration) var(--nbc-reveal-easing);
}

html.js.reveal-ready body.page.design-system-executive :where([data-premium-reveal],.rv)[data-reveal-state="pending"]{
  opacity:0;
  transform:translateY(var(--nbc-reveal-distance));
}

html.js.reveal-ready body.page.design-system-executive :where([data-premium-reveal],.rv)[data-reveal-state="visible"]{
  opacity:1;
  transform:none;
}

body.page.design-system-executive .reveal-i-1{transition-delay:var(--nbc-reveal-stagger)}
body.page.design-system-executive .reveal-i-2{transition-delay:calc(var(--nbc-reveal-stagger) * 2)}
body.page.design-system-executive .reveal-i-3{transition-delay:calc(var(--nbc-reveal-stagger) * 3)}
body.page.design-system-executive .reveal-i-4{transition-delay:calc(var(--nbc-reveal-stagger) * 4)}
body.page.design-system-executive .reveal-i-5{transition-delay:calc(var(--nbc-reveal-stagger) * 5)}

/* Normal sections may not reserve a viewport merely for reveal or sticky candidacy. */
body.page.design-system-executive main :where(
  .nbc-section,
  .ac-section,
  .service-editorial-section,
  .management-moment,
  .nbc-contact-after
){
  height:auto;
  min-height:0;
}

/* Known cross-family clipping causes returned to normal flow. */
body.page-about main :where(.nbc-about-translation,.nbc-about-value,.nbc-about-background,.nbc-about-final),
body.page-contact main :where(.nbc-contact-after,.ac-section),
body.page-regional-gateway main :where(.local-thesis,.local-situations,.local-outcomes,.local-proof,.local-direct,.local-faq,.local-final){
  max-width:100%;
}

body.page-about :where(.nbc-about-translation-copy,.nbc-about-flow,.nbc-about-collaboration,.nbc-about-proof,.nbc-about-background-intro,.nbc-about-details),
body.page-contact :where(.nbc-contact-after-head,.nbc-contact-after-grid,.nbc-contact-steps,.nbc-contact-fit),
body.page-regional-gateway :where(.local-proof-grid,.local-situations-list,.local-direct-grid,.local-outcomes-grid) > *{
  min-width:0;
  max-width:100%;
}

body.page.design-system-executive main :where(
  .diagnose-process-card,
  .baro-scenario,
  .local-proof-grid > a,
  .home-offer-card,
  .knowledge-article-card,
  .case-index-card,
  .related-card
){
  width:100%;
  max-width:100%;
}

/* Editorial continuations no longer use negative full-bleed margins inside a narrow column. */
body.page-article :where(.article-diagnostic-context,.article-decision-continuation){
  width:100%;
  max-width:100%;
  margin-inline:0;
}

/* Honeypot stays visually hidden without creating a far-off canvas coordinate. */
body.page-contact .lf-hp{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
  left:auto;
  top:auto;
}

@media (max-width:1100px){
  :root{
    --nbc-layout-gutter:clamp(24px,4vw,40px);
    --nbc-layout-section:clamp(68px,8vw,96px);
  }

  body.page.design-system-executive .two-col{
    grid-template-columns:minmax(0,1fr);
  }

  body.page.design-system-executive .tri{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  body.page.design-system-executive .tri > :last-child:nth-child(odd){
    grid-column:1 / -1;
  }

  body.page-about :where(.nbc-about-translation-grid,.nbc-about-translation > .wrap),
  body.page-contact .nbc-contact-after-grid,
  body.page-regional-gateway .local-direct-grid{
    grid-template-columns:minmax(0,1fr);
  }
}

@media (max-width:760px){
  :root{
    --nbc-layout-gutter:20px;
    --nbc-layout-section:64px;
    --nbc-layout-section-compact:52px;
    --nbc-layout-heading-gap:28px;
    --nbc-layout-grid-gap:16px;
  }

  body.page.design-system-executive :where(.wrap,.sw,[data-layout-width]){
    width:calc(100% - (2 * var(--nbc-layout-gutter)));
    max-width:none;
  }

  body[data-page-family="instrument"].design-system-executive main[data-page-shell] > :where(section,div) > :where(.wrap,.sw){
    width:calc(100% - (2 * var(--nbc-layout-gutter)));
    max-width:none;
  }

  body.page.design-system-executive main :where(h1,h2,h3,h4){
    text-wrap:pretty;
  }

  body.page.design-system-executive .tri,
  body.page.design-system-executive .grid-cards,
  body.page.design-system-executive .related-grid{
    grid-template-columns:minmax(0,1fr);
  }

  body.page.design-system-executive .tri > :last-child:nth-child(odd){
    grid-column:auto;
  }

  body.page-barometer .baro-scenarios{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    overflow:visible;
  }

  body.page-barometer .baro-scenario{
    min-width:0;
  }

  body.page-service .service-case-grid,
  body.page-service .service-case-story dl > div{
    grid-template-columns:minmax(0,1fr);
  }

  body.page-service .service-case-story dl > div{
    gap:6px;
  }

  body.page-service .service-case-story dt{
    width:auto;
    max-width:100%;
  }

  body.page-regional-gateway .local-proof-grid > a{
    width:100%;
  }
}

@media (max-width:360px){
  :root{--nbc-layout-gutter:16px}

  body.page-home .home-mini-case-motif{
    left:0;
    right:0;
    width:auto;
    max-width:none;
    transform:none;
  }
}

@media (prefers-reduced-motion:reduce){
  body.page.design-system-executive :where([data-premium-reveal],.rv){
    opacity:1;
    transform:none;
    transition:none;
  }
}

/* Fixed mobile header clearance: the first hero starts below navigation, never beneath it. */
@media (max-width:700px){
  body.page.design-system-executive main > :where(.hero,.page-hero,.service-hero,.nbc-hero-card-v2,.nbc-hero-system){
    padding-top:calc(var(--header-height,72px) + 28px);
  }
}


/* NBC v6.378 · Global family consolidation
   One anchor, shrink and narrow-screen typography contract across all page families. */
html{
  scroll-padding-top:clamp(88px,8vw,108px);
}
body.page.design-system-executive main :where(section[id],article[id],[role="tabpanel"][id],[data-anchor-target][id]){
  scroll-margin-top:clamp(88px,8vw,108px);
}
body.page.design-system-executive :where(.wrap,.sw,[data-layout-width],.nbc-page-shell,.nbc-layout-grid,.nbc-visual-stage) > *{
  min-width:0;
}
body.page.design-system-executive :where(img,svg,canvas,video,iframe){
  max-width:100%;
}
@media (max-width:760px){
  html{scroll-padding-top:84px;}
  body.page.design-system-executive main :where(section[id],article[id],[role="tabpanel"][id],[data-anchor-target][id]){
    scroll-margin-top:84px;
  }
  body.page.design-system-executive main :where(h1,.hero-title,.service-hero h1,.page-hero h1,.editorial-title){
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:normal;
    -webkit-hyphens:auto;
    hyphens:auto;
  }
}


/* Global footer contract: signature and legal line share the exact same left axis. */
body.page.design-system-executive .site-footer > .wrap {
  width:min(calc(100% - (2 * var(--nbc-layout-gutter))),var(--nbc-layout-standard));
  max-width:var(--nbc-layout-standard);
  margin-inline:auto;
  padding-inline:0;
}
body.page.design-system-executive .site-footer .footer-main {
  width:100%;
  display:grid;
  grid-template-columns:minmax(260px,420px) minmax(0,1fr);
  gap:clamp(36px,6vw,88px);
  align-items:start;
  margin:0;
  padding-inline:0;
}
body.page.design-system-executive .site-footer .footer-signature {
  width:100%;
  min-width:0;
  justify-self:start;
  margin:0;
  padding:0;
}
body.page.design-system-executive .site-footer .footer-navigation-row {
  min-width:0;
  justify-self:stretch;
}
body.page.design-system-executive .site-footer .footer-meta {
  width:100%;
  margin-left:0;
  margin-right:0;
  padding-left:0;
  padding-right:0;
}
@media (max-width:760px){
  body.page.design-system-executive .site-footer .footer-main{grid-template-columns:1fr;gap:24px;}
  body.page.design-system-executive .site-footer .footer-signature,
  body.page.design-system-executive .site-footer .footer-meta{width:100%;}
}

/* Dark-canvas link fail-safe: never expose the browser's blue/black default on production pages. */
:where(body.page.design-system-executive main a){color:inherit;}
:where(body.page.design-system-executive main article p a:not([class]),
       body.page.design-system-executive main article li a:not([class])){
  color:#8bcf9a;
  text-decoration-color:rgba(139,207,154,.48);
  text-underline-offset:.16em;
}

/* Shared fail-safe tokens required by compiled profile rules. */
:root{
  --nbc-hero-copy:720px;
  --nbc-hero-max:var(--nbc-layout-wide,1440px);
  --nbc-card-radius:14px;
  --callout-color:rgba(231,185,107,.58);
  --len:100;
}
