/*
 * Aureole Intelligence — component patterns.
 * Extracted from landing-pages-claude-2026-05-09/seo.html and legal-services.html
 * (the approved HTML reference set).
 *
 * Loaded after style.css so design tokens (var(--navy), var(--serif), etc.) resolve.
 *
 * Subagents building landing pages: each ====== section below is one composable
 * pattern — read the usage comment, then apply the class via GB block
 * `globalClasses` or `className`. Never redeclare the CSS inline.
 */

/* ============================================================
   FULL-WIDTH PAGE LAYOUT — !important guards
   GP main.min.css and GP customizer inline each set padding/max-width on
   the page wrappers (`.site-content { padding: 40px }`, `.site.grid-container
   { max-width: 1200px }`), and our own `.container` rule from style.css
   adds `max-width: 1240px` and side-padding to anything with `.container`
   class — including the page wrapper `<div class="site grid-container container">`.
   All these pillarbox our sections. !important is needed to definitively
   neutralise the cascade so sections run flush to the viewport.

   Inner section content is still constrained by the inner `<div class="container">`
   that each section provides — that keeps the 1240px reading width.
   ============================================================ */
html, body { margin: 0 !important; padding: 0 !important; }
body .site,
body .site.grid-container,
body .site.grid-container.container,
#page,
#page.grid-container,
#page.container { max-width: 100% !important; padding: 0 !important; margin: 0 !important; width: 100% !important; }
/* Zero-out only the GP wrappers (page-level <article>, content area, entry-
   content). DO NOT match every <article> — our cards (.engagement-card,
   .approach-card, .pattern-card, .value-card, .why-card) are <article>
   elements too, and a broad `body article` selector here was zeroing
   out their padding sitewide. */
body .site-content,
body .site-main,
body .site-content > .content-area,
body .content-area,
body article.page,
body article.post,
body article.page > .entry-content,
body article.post > .entry-content,
body .entry-content,
body div.inside-article,
body .inside-article { margin: 0 !important; padding: 0 !important; max-width: none !important; }
body article.page > .entry-content > section,
body article.page > .entry-content > .alignfull,
body article.page > .entry-content > div,
body article.post > .entry-content > section,
body article.post > .entry-content > .alignfull,
body article.post > .entry-content > div { max-width: 100% !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }

/* GP renders an empty `<div class="site-footer">` wrapper before our chrome
   `<footer class="site-footer">` (parent theme footer.php still emits the
   wrapper even with `generate_construct_footer*` actions removed). Hide the
   empty div via element-type selector — our chrome is a `<footer>` element
   so it stays untouched. */
body > div.site-footer,
.site > div.site-footer,
div.site-footer:not(footer) { display: none !important; }

/* ============================================================
   BUTTONS — Design System §6.9
   Usage:
   - .btn .btn-navy   → primary CTA on light surfaces
   - .btn .btn-gold   → primary CTA on dark surfaces (gold fill, navy text)
   - .btn .btn-ghost-dark  → secondary CTA on light surfaces (border only)
   - .btn .btn-ghost-light → secondary CTA on dark surfaces (white border)
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1rem 1.6rem;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 0.86rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
  white-space: nowrap;
  text-decoration: none;
}
.btn .arr { display: inline-block; transition: transform .25s ease; }
.btn:hover .arr { transform: translateX(4px); }
.btn-gold        { background: var(--gold); color: var(--navy-darker); border-color: var(--gold); }
.btn-gold:hover  { background: var(--gold-deep); border-color: var(--gold-deep); box-shadow: 0 14px 30px -12px rgba(168,134,46,.5); }
.btn-ghost-light       { color: var(--white); border-color: rgba(255,255,255,.35); background: transparent; }
.btn-ghost-light:hover { border-color: var(--gold); color: var(--gold); }
.btn-ghost-dark        { color: var(--navy); border-color: rgba(26,35,50,.25); background: transparent; }
.btn-ghost-dark:hover  { border-color: var(--navy); background: var(--navy); color: var(--white); }
.btn-navy        { background: var(--navy); color: var(--white); border-color: var(--navy); }
.btn-navy:hover  { background: var(--navy-darker); border-color: var(--navy-darker); box-shadow: 0 14px 30px -12px rgba(15,24,34,.55); }

/* ============================================================
   SECTION SCAFFOLD
   Usage: <section class="section [is-bone|is-bone-soft|is-paper|is-navy]">
            <div class="container">
              <div class="section-head"><div class="left">...eyebrow + h2...</div><div class="right">...lede paragraphs...</div></div>
              ...content...
            </div>
          </section>
   ============================================================ */
.section-head {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 4rem;
  margin-bottom: 5rem;
  align-items: end;
}
.section-head h2 .ital, .section-head h2 em { color: var(--navy-soft); }
.section-head .right { color: var(--gray-700); font-size: 1.05rem; line-height: 1.7; max-width: 52ch; }
.section-head .right p + p { margin-top: 1rem; }

.rule-gold { display: block; width: 48px; height: 1px; background: var(--gold); margin: 1.5rem 0; }

.section.is-bone        { background: var(--bone) !important; }
.section.is-bone-soft   { background: var(--bone-soft) !important; }
.section.is-paper       { background: var(--paper) !important; }
.section.is-navy {
  background: var(--navy-darker) !important;
  color: var(--white);
  position: relative;
  overflow: hidden;
}
.section.is-navy::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(60% 80% at 80% 0%, rgba(201,168,76,.10) 0%, transparent 70%),
    radial-gradient(50% 60% at 0% 100%, rgba(201,168,76,.06) 0%, transparent 70%);
  pointer-events: none;
}
.section.is-navy .container { position: relative; }
.section.is-navy h1, .section.is-navy h2, .section.is-navy h3 { color: var(--white); }
.section.is-navy h2 em, .section.is-navy h3 em { color: var(--gold); }
.section.is-navy .eyebrow { color: var(--gold); }
.section.is-navy .eyebrow::before { background: var(--gold); }
.section.is-navy .section-head .right { color: rgba(255,255,255,.78); }
.section.is-navy p { color: rgba(255,255,255,.78); }

/* ============================================================
   SITE HEADER + NAV (wired in the Site Header GP Element)
   Usage in the GP Element markup:
     <header class="site-header"><div class="header-inner">
       <a class="brand-link"><img class="brand-logo">…</a>
       <nav class="nav-primary">…6 items including .has-mega for Services/Industries/Technology…</nav>
       <div class="header-actions"><a class="header-cta">CTA</a><button class="mobile-menu-toggle">…</button></div>
     </div></header>
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(250,250,247,.85);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--line-soft);
  height: var(--header-h);
}
.header-inner {
  max-width: 1320px;
  margin: 0 auto;
  height: 100%;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
}
.brand-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  height: 100%;
  gap: 0.9rem;
}
.brand-logo {
  display: block;
  height: var(--header-logo-h);
  width: auto;
  max-width: none;
  margin-left: -10px;
  transition: opacity 0.2s ease;
}
.brand-link:hover .brand-logo { opacity: 0.78; }

.nav-primary {
  display: flex;
  gap: 0.4rem;
  justify-self: center;
  align-items: center;
}
.nav-primary > a, .nav-primary > .has-mega > a {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--navy);
  padding: 0.6rem 1.05rem;
  border-radius: 999px;
  transition: background .2s ease, color .2s ease;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.nav-primary > a:hover, .nav-primary > .has-mega:hover > a { background: var(--bone); color: var(--navy-darker); }
.nav-primary > a.current,
.nav-primary > .has-mega.current > a { color: var(--gold-deep); }
.nav-primary > .has-mega > a::after {
  content: '';
  display: inline-block;
  margin-left: 0.45rem;
  width: 0; height: 0;
  border-left: 3px solid transparent;
  border-right: 3px solid transparent;
  border-top: 4px solid var(--gray-500);
  transition: transform .2s ease;
}
.nav-primary > .has-mega:hover > a::after { transform: rotate(180deg); border-top-color: var(--gold-deep); }

.header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; }
.header-cta {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--navy);
  padding: 0.7rem 1.3rem;
  border: 1px solid var(--navy);
  border-radius: 999px;
  transition: all .25s ease;
  text-decoration: none;
  white-space: nowrap;
}
.header-cta:hover { background: var(--navy); color: var(--white); }

/* ============================================================
   MEGA-MENU (3 panels: Services 7-col / Industries grid / Technology pills)
   Usage: <li class="has-mega"><a class="dd">Services</a>
            <div class="mega-panel services">…panel content…</div>
          </li>
   Hover or focus-within opens; .is-open class can be toggled by JS for click-trigger.
   ============================================================ */
.has-mega { position: relative; }
/* Hover bridge: invisible pseudo-element fills the gap between the link and the
   fixed-positioned mega-panel. Becomes pointer-active only on hover so it doesn't
   block other UI by default, but keeps :hover alive while the cursor crosses
   the gap from the trigger to the panel. */
.has-mega::after {
  content: '';
  position: absolute;
  top: 100%;
  left: -1rem;
  right: -1rem;
  height: 4rem;
  pointer-events: none;
}
.has-mega:hover::after,
.has-mega:focus-within::after,
.has-mega.is-open::after { pointer-events: auto; }

.mega-panel {
  position: fixed;
  top: var(--header-h);
  left: 0; right: 0;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 30px 60px -30px rgba(15,24,34,.18);
  padding: clamp(2.5rem, 4vw, 4rem) 0 clamp(2rem, 3vw, 3rem);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity .25s ease, transform .25s ease;
  z-index: 99;
}
.has-mega:hover .mega-panel,
.has-mega:focus-within .mega-panel,
.has-mega.is-open .mega-panel,
.mega-panel:hover {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.mega-panel::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
}
.mega-panel .container { display: grid; gap: 3rem; max-width: 1320px; }
.mega-panel.services .container { display: block; gap: 0; }
.mega-panel.industries .container { grid-template-columns: 1fr 2.4fr; }
.mega-panel.technology .container { grid-template-columns: 1fr 2.4fr; }

/* Services 7-col layout */
.mega-services-top {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: flex-end; gap: 0.4rem 2.4rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--line);
  margin-bottom: 2rem;
}
.mega-services-top a {
  font-family: var(--mono); font-size: 0.7rem;
  text-transform: uppercase; letter-spacing: 0.22em;
  color: var(--gray-700); transition: color .2s ease;
  display: inline-flex; align-items: center; gap: 0.5rem;
  text-decoration: none;
}
.mega-services-top a:hover { color: var(--gold-deep); }
.mega-services-top a:first-child { margin-right: auto; color: var(--navy); }
.mega-services-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; }
.mega-services-col {
  padding: 0 1.2rem;
  border-right: 1px solid var(--line);
  min-width: 0;
}
.mega-services-col:first-child { padding-left: 0; }
.mega-services-col:last-child { border-right: 0; padding-right: 0; }
.mega-services-col .head {
  display: block;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.mega-services-col .head .name {
  font-family: var(--serif);
  font-size: 1.15rem;
  color: var(--navy);
  display: block;
  margin-bottom: 0.3rem;
}
.mega-services-col .head .sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: 0.8rem;
  color: var(--gold-deep);
  display: block;
}
.mega-services-col ul { list-style: none; padding: 0; margin: 0; }
.mega-services-col ul li { margin-bottom: 0.5rem; }
.mega-services-col ul li a {
  font-family: var(--sans);
  font-size: 0.82rem;
  color: var(--gray-700);
  text-decoration: none;
  transition: color .2s ease;
  display: inline-block;
}
.mega-services-col ul li a:hover { color: var(--gold-deep); }

/* Industries 5x3 grid layout (within mega-panel.industries .grid) */
.mega-grid-pills {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.6rem;
}
.mega-grid-pills a {
  display: block;
  padding: 0.7rem 1rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-family: var(--serif);
  font-size: 0.92rem;
  color: var(--navy);
  background: var(--white);
  transition: all .2s ease;
  text-decoration: none;
}
.mega-grid-pills a:hover {
  border-color: var(--gold-deep);
  color: var(--gold-deep);
  transform: translateX(2px);
}

/* Technology mega-menu — 4-column card grid (4 + 2 + 1 spanning, balanced).
   Each card: name + tagline + arrow. The 7th card (Custom / Static) spans
   2 columns so the 2nd row reads 4 + 2 + (wide) instead of leaving a blank cell. */
.mega-tech-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.6rem;
}
.mega-tech-grid a.mega-tech-card {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 0.6rem;
  row-gap: 0.2rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.mega-tech-grid a.mega-tech-card:last-child { grid-column: span 2; }
.mega-tech-grid .mega-tech-card .name {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--navy);
  grid-column: 1;
  grid-row: 1;
  line-height: 1.1;
}
.mega-tech-grid .mega-tech-card .sub {
  font-family: var(--sans);
  font-size: 0.78rem;
  color: var(--gray-600);
  grid-column: 1;
  grid-row: 2;
  line-height: 1.35;
}
.mega-tech-grid .mega-tech-card .arr {
  font-family: var(--mono);
  font-size: 0.95rem;
  color: var(--gold-deep);
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .2s ease, transform .2s ease;
}
.mega-tech-grid a.mega-tech-card:hover {
  border-color: var(--gold-deep);
  background: var(--bone-soft);
  transform: translateY(-1px);
}
.mega-tech-grid a.mega-tech-card:hover .arr { opacity: 1; transform: translateX(0); }

/* Mega-panel preamble (left column for industries/technology panels) */
.mega-preamble { color: var(--gray-700); }
.mega-preamble .eyebrow { margin-bottom: 1rem; display: inline-flex; }
.mega-preamble h3 {
  font-family: var(--serif);
  font-size: 1.6rem;
  color: var(--navy);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 0.8rem;
}
.mega-preamble p { font-size: 0.92rem; line-height: 1.6; max-width: 36ch; }

/* ============================================================
   MOBILE NAV DRAWER — slide-out from right
   Usage: <button class="mobile-menu-toggle" aria-controls="mobile-drawer" aria-expanded="false">…hamburger…</button>
          <div class="mobile-drawer" id="mobile-drawer" aria-hidden="true">…nav copy…</div>
   JS toggles aria-expanded + .is-open class.
   ============================================================ */
.mobile-menu-toggle {
  display: none;
  width: 40px; height: 40px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  align-items: center; justify-content: center;
  position: relative;
}
.mobile-menu-toggle::before,
.mobile-menu-toggle::after,
.mobile-menu-toggle .bar {
  content: '';
  display: block;
  width: 18px;
  height: 1.5px;
  background: var(--navy);
  position: absolute;
  left: 50%; transform: translateX(-50%);
  transition: transform .25s ease, opacity .25s ease;
}
.mobile-menu-toggle::before { top: 14px; }
.mobile-menu-toggle .bar { top: 50%; margin-top: -1px; }
.mobile-menu-toggle::after  { bottom: 14px; }
.mobile-menu-toggle[aria-expanded="true"]::before { transform: translateX(-50%) translateY(6px) rotate(45deg); }
.mobile-menu-toggle[aria-expanded="true"]::after  { transform: translateX(-50%) translateY(-6px) rotate(-45deg); }
.mobile-menu-toggle[aria-expanded="true"] .bar    { opacity: 0; }

.mobile-drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(360px, 84vw);
  background: var(--paper);
  border-left: 1px solid var(--line);
  box-shadow: -30px 0 60px -30px rgba(15,24,34,.25);
  padding: calc(var(--header-h) + 1.5rem) 1.8rem 2rem;
  transform: translateX(100%);
  transition: transform .3s ease;
  z-index: 95;
  overflow-y: auto;
}
.mobile-drawer.is-open { transform: translateX(0); }
.mobile-drawer ul { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.mobile-drawer ul > li { border-bottom: 1px solid var(--line-soft); }
.mobile-drawer ul > li > a {
  display: block;
  padding: 1rem 0;
  font-family: var(--serif);
  font-size: 1.4rem;
  color: var(--navy);
  text-decoration: none;
}
.mobile-drawer ul ul { margin: 0 0 0.5rem; padding-left: 0.8rem; }
.mobile-drawer ul ul li { border-bottom: 0; }
.mobile-drawer ul ul li a {
  display: block;
  padding: 0.4rem 0;
  font-family: var(--sans);
  font-size: 0.92rem;
  color: var(--gray-700);
  text-decoration: none;
}
.mobile-drawer ul ul li a:hover { color: var(--gold-deep); }
.mobile-drawer-overlay {
  position: fixed; inset: 0;
  background: rgba(15,24,34,.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
  z-index: 90;
}
.mobile-drawer-overlay.is-open { opacity: 1; pointer-events: auto; }

/* ============================================================
   SUBPAGE HERO (centred — variant 1, default for service / tech / about / overviews)
   Usage: <section class="sub-hero [is-dark]">
            <div class="container">
              <nav class="breadcrumb">…</nav>
              <span class="eyebrow">…</span>
              <h1>… <em class="ital">word</em>.</h1>
              <p class="lead">…</p>
              <div class="hero-actions"><a class="btn btn-navy">…</a></div>
            </div>
          </section>
   ============================================================ */
.sub-hero {
  position: relative;
  background: var(--paper);
  padding: clamp(4rem, 7vw, 6rem) 0 clamp(4rem, 6vw, 5rem);
  overflow: hidden;
  isolation: isolate;
}
.sub-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 60% at 80% 0%, rgba(201,168,76,.10) 0%, transparent 60%),
    radial-gradient(40% 40% at 0% 100%, rgba(201,168,76,.06) 0%, transparent 60%);
  z-index: -1;
}
.sub-hero .container { text-align: center; }
.sub-hero .eyebrow { margin-bottom: 1.8rem; justify-content: center; display: inline-flex; }
.sub-hero h1 {
  font-family: var(--serif);
  font-weight: 400;
  color: var(--navy);
  font-size: clamp(2.8rem, 5.5vw, 4.8rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin-bottom: 1.8rem;
  max-width: 18ch;
  margin-left: auto; margin-right: auto;
}
.sub-hero h1 em { color: var(--gold-deep); font-style: italic; font-weight: 300; }
.sub-hero .lead {
  font-family: var(--serif);
  font-size: clamp(1.1rem, 1.4vw, 1.3rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--gray-700);
  max-width: 60ch;
  margin: 0 auto 2.6rem;
}
.sub-hero .hero-actions {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

/* SUBPAGE HERO (split — variant 2, default for industry pages with meta plinth)
   Usage: <section class="sub-hero">
            <div class="container">
              <nav class="breadcrumb">…</nav>
              <div class="sub-hero-inner">
                <div>…eyebrow + h1 + lead + actions…</div>
                <aside class="hero-meta-card">
                  <span class="label">Sector Snapshot</span>
                  <dl><div class="row"><dt>…</dt><dd>…</dd></div>×4-5</dl>
                </aside>
              </div>
            </div>
          </section>
*/
.sub-hero-inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 5rem;
  align-items: end;
  text-align: left;
}
.sub-hero-inner h1 { max-width: 16ch; margin-left: 0; margin-right: 0; }
.sub-hero-inner .lead { max-width: 50ch; margin: 0 0 2.6rem; }
.sub-hero-inner .hero-actions { justify-content: flex-start; }
.sub-hero:has(.sub-hero-inner) .container { text-align: left; }
.sub-hero:has(.sub-hero-inner) .eyebrow { justify-content: flex-start; }

.hero-meta-card {
  border-top: 1px solid var(--line);
  padding-top: 2rem;
}
.hero-meta-card .label {
  font-family: var(--mono);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--gold-deep);
  margin-bottom: 1.4rem;
  display: block;
}
.hero-meta-card dl { display: grid; grid-template-columns: 1fr; gap: 0; }
.hero-meta-card .row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--line);
  gap: 1rem;
}
.hero-meta-card .row:last-child { border-bottom: 0; }
.hero-meta-card dt { font-family: var(--sans); font-size: 0.86rem; color: var(--gray-700); }
.hero-meta-card dd { font-family: var(--serif); font-size: 1.2rem; color: var(--navy); text-align: right; }
.hero-meta-card dd em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

/* Breadcrumb */
.breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--gray-600);
  margin-bottom: 2.4rem;
}
/* Inside .sub-hero the breadcrumb owns its own line above the eyebrow.
   Variant 1 (centred): centre the breadcrumb. Variant 2 (split, has
   .sub-hero-inner): left-align it. */
.sub-hero .breadcrumb {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 0 1.6rem;
}
.sub-hero:has(.sub-hero-inner) .breadcrumb { justify-content: flex-start; }
.breadcrumb a { color: var(--gray-600); transition: color .2s ease; text-decoration: none; }
.breadcrumb a:hover { color: var(--navy); }
.breadcrumb .sep { color: var(--gold-deep); }
.breadcrumb .current { color: var(--navy); }

/* SUBPAGE HERO — dark modifier */
.sub-hero.is-dark { background: var(--navy-darker); color: var(--white); }
.sub-hero.is-dark::before {
  background:
    radial-gradient(60% 60% at 80% 0%, rgba(201,168,76,.12) 0%, transparent 60%),
    radial-gradient(40% 40% at 0% 100%, rgba(201,168,76,.06) 0%, transparent 60%),
    linear-gradient(180deg, var(--navy-darker) 0%, var(--navy) 60%, var(--navy-soft) 100%);
}
.sub-hero.is-dark::after {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 30%, transparent 80%);
  z-index: -1; opacity: 0.55; pointer-events: none;
}
.sub-hero.is-dark .breadcrumb,
.sub-hero.is-dark .breadcrumb a { color: rgba(255,255,255,.55); }
.sub-hero.is-dark .breadcrumb a:hover { color: var(--white); }
.sub-hero.is-dark .breadcrumb .sep { color: var(--gold); }
.sub-hero.is-dark .breadcrumb .current { color: var(--white); }
.sub-hero.is-dark .eyebrow { color: var(--gold); }
.sub-hero.is-dark .eyebrow::before { background: var(--gold); }
.sub-hero.is-dark h1 { color: var(--white); }
.sub-hero.is-dark h1 em { color: var(--gold); }
.sub-hero.is-dark .lead { color: rgba(255,255,255,.82); }
.sub-hero.is-dark .btn-navy { background: var(--gold); color: var(--navy-darker); border-color: var(--gold); }
.sub-hero.is-dark .btn-navy:hover { background: var(--gold-deep); border-color: var(--gold-deep); color: var(--navy-darker); }
.sub-hero.is-dark .btn-ghost-dark { color: var(--white); border-color: rgba(255,255,255,.35); }
.sub-hero.is-dark .btn-ghost-dark:hover { border-color: var(--gold); background: transparent; color: var(--gold); }
.sub-hero.is-dark .hero-meta-card { border-top-color: rgba(255,255,255,.15); }
.sub-hero.is-dark .hero-meta-card .label { color: var(--gold); }
.sub-hero.is-dark .hero-meta-card .row { border-bottom-color: rgba(255,255,255,.1); }
.sub-hero.is-dark .hero-meta-card dt { color: rgba(255,255,255,.55); }
.sub-hero.is-dark .hero-meta-card dd { color: var(--white); }
.sub-hero.is-dark .hero-meta-card dd em { color: var(--gold); }

/* ============================================================
   STATIC STRIP — variants A/B/C/D per BUILD-KIT §6
   ============================================================ */
/* Variant A: dark-navy keyword strip (default for service + tech pages) */
.static-strip {
  background: var(--navy-darker);
  color: rgba(255,255,255,.7);
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding: 1.6rem 0;
  text-align: center;
  overflow: hidden;
}
.static-strip .strip-track {
  font-family: var(--mono);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.6rem 1.4rem;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 2rem;
}
.static-strip .strip-track .sep,
.static-strip .strip-track .lede {
  color: var(--gold);
  font-family: var(--serif);
  font-style: italic;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1;
}
.static-strip .strip-track .sep { font-size: 1.05rem; }
.static-strip .strip-track .lede { font-size: 1rem; margin-right: 0.4rem; }

/* Variant B: bone snapshot plinth (alternate for non-industry pages without hero meta-card) */
.static-plinth {
  background: var(--bone);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 1.8rem 0;
}
.plinth-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 2rem;
}
.plinth-stat { display: flex; flex-direction: column; gap: 0.3rem; }
.plinth-stat .k {
  font-family: var(--mono);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--gray-600);
}
.plinth-stat .v { font-family: var(--serif); font-size: 1.2rem; color: var(--navy); }
.plinth-stat .v em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

/* Variant C: paper italic-accent strip (for category overviews / about) */
.static-strip.is-paper {
  background: var(--bone-soft);
  color: var(--navy);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.static-strip.is-paper .strip-track {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: 1.15rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--navy);
}
.static-strip.is-paper .strip-track .phrase em { font-style: italic; color: var(--gold-deep); }
.static-strip.is-paper .strip-track .sep { color: var(--gold-deep); font-style: italic; }

/* ============================================================
   DISCIPLINE LIST — full-width editorial rows ("What's included")
   Usage: <div class="discipline-list">
            <div class="discipline-row">
              <span class="num">N°&nbsp;01</span>
              <div class="title-block"><h3>…</h3><span class="tag">…</span></div>
              <p class="desc">…</p>
              <span class="arrow"><svg>→</svg></span>
            </div>
            …
          </div>
   Final row in some pages may be an <a class="discipline-row" href="…"> linking to a sister service.
   ============================================================ */
.discipline-list { border-top: 1px solid var(--line); }
.discipline-row {
  display: grid;
  grid-template-columns: 90px 1.3fr 2fr 60px;
  align-items: start;
  gap: 2.4rem;
  padding: 2.2rem 0;
  border-bottom: 1px solid var(--line);
  position: relative;
  transition: padding .35s ease, background .35s ease;
  text-decoration: none;
  color: inherit;
}
.discipline-row::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 1px;
  background: var(--gold-deep);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s ease;
}
.discipline-row:hover {
  padding-left: 1.4rem;
  background: linear-gradient(90deg, var(--bone-soft) 0%, transparent 70%);
}
.discipline-row:hover::before { transform: scaleX(1); }
.discipline-row .num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.5rem;
  color: var(--gold-deep);
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.discipline-row .title-block h3 {
  font-family: var(--serif);
  font-size: 1.7rem;
  line-height: 1.15;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 0.6rem;
}
.discipline-row .title-block .tag {
  font-family: var(--mono);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--gold-deep);
}
.discipline-row .desc {
  font-size: 0.97rem;
  line-height: 1.7;
  color: var(--gray-700);
  max-width: 56ch;
}
.discipline-row .desc a {
  color: var(--gold-deep);
  border-bottom: 1px solid var(--gold-deep);
  padding-bottom: 1px;
  text-decoration: none;
}
.discipline-row .desc a:hover { color: var(--navy); border-bottom-color: var(--navy); }
.discipline-row .arrow {
  justify-self: end;
  align-self: start;
  margin-top: 0.4rem;
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--navy);
  transition: all .35s ease;
}
.discipline-row:hover .arrow { border-color: var(--gold-deep); color: var(--gold-deep); transform: rotate(-45deg); }
.discipline-row .arrow svg { width: 14px; height: 14px; }

/* ============================================================
   APPROACH — two flavors:
   .approach-grid    → 4-pillar grid on bone (default for service pages)
   .approach-list    → single-column editorial (default for industry pages)
   ============================================================ */
.approach { background: var(--bone); }
.approach-grid {
  display: grid;
  /* Default = 4 columns. Auto-detect 3-card and 2-card variants via :has().
     This avoids the empty-slot squeeze when only 3 cards are emitted (the
     "squeezed-left" bug Arthur flagged). Pages with 5+ cards still wrap
     gracefully into a second row. */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  border-top: 1px solid var(--line);
}
.approach-grid:not(.is-left):has(> .approach-card:nth-child(3):last-child) {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.approach-grid:not(.is-left):has(> .approach-card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
/* Tight, left-anchored variant: three short cards huddled to the left rather
   than spread across the full container. Used on the Contact page's
   "Three small promises" section, where the copy is short and looks better
   read together. The double-class self-reference + :has() match raises
   specificity above the auto-detect 3-card rule above. */
.approach-grid.is-left.is-left,
.approach-grid.is-left:has(> *) {
  grid-template-columns: repeat(3, minmax(0, 280px));
  width: auto;
  justify-content: flex-start;
}
.approach-card {
  padding: 3rem 2rem;
  border-right: 1px solid var(--line);
  position: relative;
}
.approach-card:last-child { border-right: 0; }
.approach-card .n {
  font-family: var(--serif);
  font-size: 3rem;
  line-height: 1;
  color: var(--gold);
  font-style: italic;
  font-weight: 300;
  margin-bottom: 1.4rem;
  display: block;
}
.approach-card h3 { font-size: 1.5rem; margin-bottom: 0.9rem; line-height: 1.2; }
.approach-card p { color: var(--gray-700); font-size: 0.95rem; line-height: 1.7; }

.approach-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--line);
}
.approach-item {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 3rem;
  padding: 3rem 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.approach-item:last-child { border-bottom: 0; }
.approach-item .num {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  font-size: 3.2rem;
  line-height: 1;
  color: var(--gold-deep);
}
.approach-item .num-mono {
  display: block;
  margin-top: 0.6rem;
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gray-600);
}
.approach-item h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.9rem;
  line-height: 1.15;
  color: var(--navy);
  margin-bottom: 1rem;
  max-width: 32ch;
}
.approach-item h3 em { color: var(--gold-deep); font-style: italic; font-weight: 400; }
.approach-item p { color: var(--gray-700); font-size: 1rem; line-height: 1.75; max-width: 70ch; }

/* ============================================================
   WHO IT'S FOR — text + numbered bullet list
   ============================================================ */
.who-body { display: grid; grid-template-columns: 1fr 1.5fr; gap: 5rem; align-items: start; }
.who-body .lede {
  font-family: var(--serif);
  font-size: 1.4rem;
  line-height: 1.45;
  color: var(--navy);
  font-weight: 400;
}
.who-body .lede em { color: var(--gold-deep); font-style: italic; font-weight: 400; }
.who-list { list-style: none; border-top: 1px solid var(--line); padding: 0; margin: 0; }
.who-list li {
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 1.2rem;
  align-items: baseline;
}
.who-list .n {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  color: var(--gold-deep);
  text-transform: uppercase;
}
.who-list .body strong {
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--navy);
  display: block;
  margin-bottom: 0.4rem;
}
.who-list .body span { display: block; color: var(--gray-700); font-size: 0.97rem; line-height: 1.7; }
.who-postscript {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line);
  color: var(--gray-700);
  font-size: 1rem;
  line-height: 1.7;
  max-width: 60ch;
}

/* ============================================================
   CHALLENGE — 2x2 pain card grid (industry pages)
   ============================================================ */
.challenge-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.pain-card {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 3rem 2.4rem;
  position: relative;
  transition: background .25s ease;
}
.pain-card:hover { background: var(--bone-soft); }
.pain-card .roman {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  font-size: 3.2rem;
  line-height: 1;
  color: var(--gold);
  margin-bottom: 1.6rem;
  display: block;
}
.pain-card h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.7rem;
  line-height: 1.2;
  color: var(--navy);
  margin-bottom: 1rem;
  max-width: 22ch;
}
.pain-card p { color: var(--gray-700); font-size: 0.97rem; line-height: 1.7; max-width: 50ch; }

/* ============================================================
   OFFER — split layout (SEO + Performance variants)
   .offer       → bone bg (default — SEO offer)
   .offer.is-bone-soft → softer bone (Performance variant on industries)
   .offer.dark  → navy-darker bg (Performance offer on dark pages)
   ============================================================ */
.offer { background: var(--bone); position: relative; overflow: hidden; }
.offer.is-bone-soft { background: var(--bone-soft); }
.offer-inner {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 5rem;
  align-items: center;
}
.offer-tag {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-deep);
  margin-bottom: 1.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
}
.offer-tag::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.offer h2 { font-size: clamp(2.4rem, 4vw, 3.2rem); margin-bottom: 1.4rem; }
.offer h2 em { color: var(--gold-deep); }
.offer p.lede {
  color: var(--gray-700);
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 1.4rem;
  max-width: 52ch;
}
.offer .signoff {
  font-style: italic;
  color: var(--gold-deep);
  font-family: var(--serif);
  font-size: 1.15rem;
  margin-bottom: 2.2rem;
}
/* WPForms wrapper styling — replace the static .offer-form pattern when injecting via shortcode */
.offer .wpforms-container {
  background: var(--white);
  padding: 2rem;
  border-radius: 4px;
  box-shadow: 0 2px 0 var(--line), 0 30px 60px -30px rgba(15,24,34,.18);
  border-top: 3px solid var(--gold);
}
.offer .wpforms-form .wpforms-field-label {
  font-family: var(--mono);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gray-600);
  font-weight: 500;
}
.offer .wpforms-form input[type="text"],
.offer .wpforms-form input[type="email"],
.offer .wpforms-form input[type="url"],
.offer .wpforms-form textarea {
  width: 100%;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0.6rem 0 !important;
  font-family: var(--serif) !important;
  font-size: 1.3rem !important;
  color: var(--navy) !important;
  transition: border-color .25s ease;
}
.offer .wpforms-form input:focus,
.offer .wpforms-form textarea:focus {
  outline: none !important;
  border-bottom-color: var(--signature) !important;
  box-shadow: 0 1px 0 0 var(--signature) !important;
}
.offer .wpforms-form input::placeholder,
.offer .wpforms-form textarea::placeholder { color: var(--gray-500); font-style: italic; }
.offer .wpforms-form .wpforms-submit {
  background: var(--navy) !important;
  color: var(--white) !important;
  border-color: var(--navy) !important;
  border-radius: 999px !important;
  padding: 1rem 1.6rem !important;
  font-family: var(--sans) !important;
  font-size: 0.86rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  cursor: pointer;
  transition: background .25s ease;
}
.offer .wpforms-form .wpforms-submit:hover { background: var(--navy-darker) !important; border-color: var(--navy-darker) !important; }

/* Static (HTML reference) form, kept for any non-WPForms instances */
.offer-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.6rem;
  background: var(--white);
  padding: 2rem;
  border-radius: 4px;
  box-shadow: 0 2px 0 var(--line), 0 30px 60px -30px rgba(15,24,34,.18);
  border-top: 3px solid var(--gold);
}
.offer-form .field { display: flex; flex-direction: column; gap: 0.4rem; }
.offer-form label {
  font-family: var(--mono);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gray-600);
}
.offer-form input {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  padding: 0.6rem 0;
  font-family: var(--serif);
  font-size: 1.3rem;
  color: var(--navy);
}
.offer-form input::placeholder { color: var(--gray-500); font-style: italic; }
.offer-form .submit-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-top: 0.6rem; padding-top: 1rem;
  border-top: 1px solid var(--line-soft);
}
.offer-form .fineprint { font-size: 0.78rem; color: var(--gray-600); max-width: 22ch; line-height: 1.4; }

.offer-aside { display: flex; flex-direction: column; gap: 0.6rem; }
.offer-aside .delivers { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--line); }
.offer-aside .delivers .row {
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: baseline;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  gap: 1rem;
}
.offer-aside .delivers .row .n {
  font-family: var(--mono);
  color: var(--gold-deep);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
}
.offer-aside .delivers .row .t { font-family: var(--serif); font-size: 1.25rem; color: inherit; }
.offer-aside .delivers .row .t span {
  display: block;
  font-family: var(--sans);
  font-size: 0.85rem;
  color: var(--gray-600);
  margin-top: 0.25rem;
  line-height: 1.5;
}

/* OFFER — dark variant (Performance offer on tech / web-dev / maintenance pages) */
.offer.dark { background: var(--navy-darker); color: var(--white); }
.offer.dark::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(60% 80% at 80% 0%, rgba(201,168,76,.12) 0%, transparent 70%),
    radial-gradient(50% 60% at 0% 100%, rgba(201,168,76,.06) 0%, transparent 70%);
  pointer-events: none;
}
.offer.dark .container { position: relative; }
.offer.dark h2 { color: var(--white); }
.offer.dark h2 em { color: var(--gold); }
.offer.dark p.lede { color: rgba(255,255,255,.78); }
.offer.dark .offer-tag { color: var(--gold); }
.offer.dark .signoff { color: var(--gold); }
.offer.dark .offer-aside .delivers { border-top-color: rgba(255,255,255,.18); }
.offer.dark .offer-aside .delivers .row { border-bottom-color: rgba(255,255,255,.12); }
.offer.dark .offer-aside .delivers .row .n { color: var(--gold); }
.offer.dark .offer-aside .delivers .row .t { color: var(--white); }
.offer.dark .offer-aside .delivers .row .t span { color: rgba(255,255,255,.6); }

/* ============================================================
   WPForms — restyle default output to match the prototype's editorial
   .offer-form aesthetic (transparent inputs, bottom-border only,
   mono caps labels, btn-navy submit). Both light and dark variants.

   For the .offer.dark variant we deliberately render the form-wrap on
   a WHITE card (instead of the prototype's near-transparent dark form)
   so the inputs are unambiguously readable against the navy background.
   ============================================================ */
.offer .form-wrap .wpforms-container { margin: 0; max-width: none; background: transparent; }
.offer .form-wrap .wpforms-form { display: grid; gap: 1rem; }
.offer .form-wrap .wpforms-field { padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.offer .form-wrap .wpforms-field-label {
  font-family: var(--mono);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gray-600);
  font-weight: 500;
  margin: 0;
}
.offer .form-wrap .wpforms-required-label { color: var(--gold-deep); margin-left: 0.4em; }
.offer .form-wrap .wpforms-field input,
.offer .form-wrap .wpforms-field select,
.offer .form-wrap .wpforms-field textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  padding: 0.6rem 0;
  font-family: var(--serif);
  font-size: 1.3rem;
  color: var(--navy);
  border-radius: 0;
  box-shadow: none;
  transition: border-color .25s ease, box-shadow .25s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.offer .form-wrap .wpforms-field input:focus,
.offer .form-wrap .wpforms-field select:focus,
.offer .form-wrap .wpforms-field textarea:focus {
  outline: none;
  border-bottom-color: var(--signature);
  box-shadow: 0 1px 0 0 var(--signature);
}
.offer .form-wrap .wpforms-field input::placeholder,
.offer .form-wrap .wpforms-field textarea::placeholder { color: var(--gray-500); font-style: italic; }
.offer .form-wrap .wpforms-field-select { position: relative; }
.offer .form-wrap .wpforms-field-select::after {
  content: '';
  position: absolute;
  right: 0.4rem;
  top: 2.4rem;
  width: 0; height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid var(--gold-deep);
  pointer-events: none;
}
.offer .form-wrap .wpforms-submit-container {
  display: flex;
  margin: 0.4rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--line-soft);
}
.offer .form-wrap .wpforms-submit {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1rem 1.6rem;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 0.86rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  border: 1px solid var(--navy);
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease;
  background: var(--navy);
  color: var(--white);
  -webkit-appearance: none;
  appearance: none;
}
.offer .form-wrap .wpforms-submit:hover {
  background: var(--navy-darker);
  border-color: var(--navy-darker);
  box-shadow: 0 14px 30px -12px rgba(15,24,34,.55);
}
/* Hide WPForms native error dressing that breaks the editorial look */
.offer .form-wrap .wpforms-error { color: var(--signature); font-family: var(--mono); font-size: 0.7rem; margin-top: 0.4rem; }

/* DARK VARIANT — render the form on a white card for legibility.
   This intentionally departs from the prototype's transparent-form aesthetic
   (which assumes a hand-styled HTML form, not WPForms output). */
.offer.dark .form-wrap {
  background: var(--white);
  border: 0;
  border-top: 3px solid var(--gold);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.6);
  padding: 2rem 2rem 1.6rem;
  border-radius: 4px;
}
.offer.dark .form-wrap .wpforms-container { background: transparent; }
.offer.dark .form-wrap .wpforms-field-label { color: var(--gray-600); }
.offer.dark .form-wrap .wpforms-required-label { color: var(--gold-deep); }
.offer.dark .form-wrap .wpforms-field input,
.offer.dark .form-wrap .wpforms-field select,
.offer.dark .form-wrap .wpforms-field textarea {
  color: var(--navy);
  background: transparent;
  border-bottom-color: var(--line);
}
/* Render <select> with a visible chevron and proper text contrast.
   appearance:none strips the native widget; we draw our own arrow via
   background-image. The dropdown panel that opens after click is browser-
   rendered and can't be styled — but the closed state is now legible. */
.offer.dark .form-wrap .wpforms-field-select select,
.offer .form-wrap .wpforms-field-select select {
  background-image:
    linear-gradient(45deg, transparent 50%, var(--gold-deep) 50%),
    linear-gradient(135deg, var(--gold-deep) 50%, transparent 50%);
  background-position:
    calc(100% - 14px) 1.45rem,
    calc(100% - 8px) 1.45rem;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 2rem;
  cursor: pointer;
}
.offer.dark .form-wrap .wpforms-field-select select option {
  background: var(--white);
  color: var(--navy);
}
/* Hide the legacy CSS-triangle ::after decoration on the dark wrap —
   our background-image chevron replaces it and avoids the duplicate arrow. */
.offer.dark .form-wrap .wpforms-field-select::after { display: none; }
.offer.dark .form-wrap .wpforms-field input::placeholder,
.offer.dark .form-wrap .wpforms-field textarea::placeholder { color: var(--gray-500); }
.offer.dark .form-wrap .wpforms-submit-container { border-top-color: var(--line-soft); }
.offer.dark .form-wrap .wpforms-submit {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
}
.offer.dark .form-wrap .wpforms-submit:hover {
  background: var(--navy-darker);
  border-color: var(--navy-darker);
}

/* ============================================================
   PHILOSOPHY — pull-quote on bone-soft
   Usage: <section class="philosophy"><div class="container">
            <div class="mark">"</div>
            <blockquote>… <em>accent phrase</em>.</blockquote>
            <cite>— The Aureole Practice —</cite>
          </div></section>
   ============================================================ */
.philosophy {
  background: var(--bone-soft);
  color: var(--navy);
  padding: clamp(6rem, 10vw, 9rem) 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.philosophy::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 900px; height: 900px;
  background: radial-gradient(circle, rgba(201,168,76,.10) 0%, transparent 60%);
  pointer-events: none;
}
.philosophy .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.5rem;
  position: relative;
}
.philosophy .mark {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  font-size: 7rem;
  line-height: 0.7;
  color: var(--gold);
  user-select: none;
  margin-bottom: 0.5rem;
}
.philosophy blockquote {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.3;
  color: var(--navy);
  max-width: 32ch;
  margin: 0 auto;
}
.philosophy blockquote em { color: var(--gold-deep); font-style: italic; font-weight: 400; }
.philosophy cite {
  display: block;
  margin-top: 2rem;
  font-family: var(--mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--gray-600);
  font-style: normal;
}

/* ============================================================
   FAQ — native <details> accordion
   Usage: <div class="faq-list">
            <details class="faq-item" open>
              <summary class="faq-q">
                <span class="q-num">i</span>
                <span class="q-text">Question?</span>
                <span class="q-toggle" aria-hidden="true"></span>
              </summary>
              <div class="faq-a">Answer…</div>
            </details>
            …
          </div>
   First item carries `open`. Roman numerals i, ii, iii, iv, v, vi.
   ============================================================ */
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q {
  width: 100%;
  background: none;
  border: none;
  padding: 1.8rem 0;
  text-align: left;
  cursor: pointer;
  display: grid;
  grid-template-columns: 70px 1fr 32px;
  align-items: center;
  gap: 1.6rem;
  transition: padding .3s ease;
  font-family: inherit;
  list-style: none;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q:hover { padding-left: 0.6rem; }
.faq-q .q-num {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  color: var(--gold-deep);
  text-transform: uppercase;
}
.faq-q .q-text {
  font-family: var(--serif);
  font-size: 1.4rem;
  line-height: 1.3;
  color: var(--navy);
  font-weight: 400;
}
.faq-q .q-toggle {
  justify-self: end;
  width: 32px;
  height: 32px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--navy);
  transition: all .3s ease;
  font-family: var(--serif);
  font-size: 1rem;
}
.faq-q .q-toggle::before { content: '+'; }
.faq-item[open] .q-toggle::before { content: '−'; }
.faq-item[open] .q-toggle { background: var(--navy); color: var(--white); border-color: var(--navy); }
.faq-a {
  padding: 0 0 2rem 86px;
  color: var(--gray-700);
  font-size: 1rem;
  line-height: 1.75;
  max-width: 70ch;
}
.faq-a a { color: var(--gold-deep); border-bottom: 1px solid var(--gold-deep); padding-bottom: 1px; text-decoration: none; }
.faq-a a:hover { color: var(--navy); border-bottom-color: var(--navy); }

/* ============================================================
   CROSS-LINKS — pill row + related-row list
   ============================================================ */
.pill-grid { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 2.4rem; }
.pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 1.2rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 0.92rem;
  color: var(--navy);
  background: var(--white);
  transition: all .25s ease;
  text-decoration: none;
}
.pill .arr { color: var(--gold-deep); transition: transform .2s ease; }
.pill:hover { background: var(--navy); color: var(--white); border-color: var(--navy); }
.pill:hover .arr { color: var(--gold); transform: translateX(3px); }
.pill.is-service { border-color: var(--gold-deep); }

.related-list { border-top: 1px solid var(--line); margin-top: 2rem; }
.related-row {
  display: grid;
  grid-template-columns: 220px 1fr 32px;
  gap: 2rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--line);
  align-items: baseline;
  transition: padding .3s ease;
  text-decoration: none;
  color: inherit;
}
.related-row:hover { padding-left: 0.8rem; }
.related-row .name {
  font-family: var(--serif);
  font-size: 1.4rem;
  color: var(--navy);
  font-weight: 400;
}
.related-row .name em { color: var(--gold-deep); font-style: italic; font-weight: 400; font-size: 0.95rem; display: block; margin-top: 0.2rem; }
.related-row .blurb { color: var(--gray-700); font-size: 0.95rem; line-height: 1.65; }
.related-row .arr {
  justify-self: end;
  color: var(--gold-deep);
  font-family: var(--mono);
  font-size: 0.95rem;
  transition: transform .2s ease;
}
.related-row:hover .arr { transform: translateX(4px); color: var(--navy); }

/* ============================================================
   FINAL CTA BAND
   Usage: <section class="final" id="contact"><div class="container">
            <span class="eyebrow">The Invitation</span>
            <h2>… <em class="ital">word</em>.</h2>
            <p>…</p>
            <div class="final-actions"><a class="btn btn-gold">Primary</a><a class="btn btn-ghost-light">Secondary</a></div>
            <div class="final-meta"><span>…</span><span>…</span><span>…</span></div>
          </div></section>
   ============================================================ */
.final {
  background: var(--navy-darker);
  color: var(--white);
  padding: clamp(6rem, 10vw, 9rem) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.final::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 50% 0%, rgba(201,168,76,.12) 0%, transparent 70%),
    radial-gradient(50% 60% at 50% 100%, rgba(201,168,76,.08) 0%, transparent 70%);
  pointer-events: none;
}
.final .eyebrow { color: var(--gold); margin-bottom: 2rem; justify-content: center; display: inline-flex; }
.final .eyebrow::before { background: var(--gold); }
.final h2 {
  color: var(--white);
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: 1;
  font-weight: 400;
  margin-bottom: 1.6rem;
}
.final h2 em { color: var(--gold); font-weight: 300; }
.final p {
  color: rgba(255,255,255,.78);
  font-size: 1.15rem;
  max-width: 52ch;
  margin: 0 auto 3rem;
  font-weight: 300;
}
.final-actions { display: flex; gap: 0.8rem; justify-content: center; flex-wrap: wrap; }
.final-meta {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  font-family: var(--mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,.55);
}

/* ============================================================
   SITE FOOTER (wired in the Site Footer GP Element)
   4-column grid: brand + Practice + Industries + Technology + Get Started
   (collapse to 2-col @ 1100, 1-col @ 640)
   ============================================================ */
.site-footer {
  background: var(--navy-darker);
  color: rgba(255,255,255,.72);
  padding: 5rem 0 2rem;
  border-top: 1px solid rgba(255,255,255,.08);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 4rem;
}
.footer-brand .brand-link { height: auto; margin-bottom: 1.5rem; }
.footer-brand .brand-logo { height: var(--footer-logo-h); margin-left: -14px; }
.footer-brand p {
  font-size: 0.95rem;
  line-height: 1.7;
  color: rgba(255,255,255,.65);
  max-width: 36ch;
  margin-bottom: 1.6rem;
}
.footer-brand .contact { font-family: var(--serif); font-size: 1.4rem; color: var(--gold); text-decoration: none; }
.footer-brand .contact:hover { color: var(--gold-light); }
.footer-address {
  font-style: normal;
  font-family: var(--sans);
  font-size: 0.9rem;
  line-height: 1.7;
  color: rgba(255,255,255,.65);
  margin: 0 0 1.4rem;
  max-width: 24ch;
}
.footer-col h4 {
  font-family: var(--mono);
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,.5);
  margin-bottom: 1.4rem;
}
.footer-col a {
  display: block;
  color: rgba(255,255,255,.78);
  font-size: 0.95rem;
  padding: 0.45rem 0;
  transition: color .2s ease, padding-left .25s ease;
  font-family: var(--serif);
  text-decoration: none;
}
.footer-col a:hover { color: var(--gold); padding-left: 6px; }
.footer-col a.current { color: var(--gold); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 1.8rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 2rem;
  align-items: center;
  color: rgba(255,255,255,.5);
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.footer-bottom .center { text-align: center; }
.footer-bottom a { color: rgba(255,255,255,.5); margin-left: 1.6rem; text-decoration: none; }
.footer-bottom a:hover { color: var(--gold); }

/* ============================================================
   HOMEPAGE-ONLY PATTERNS
   Used only on the Aureole Homepage (one of the 20 review pages).
   Subagent for the homepage will reference these.
   ============================================================ */
/* Hero — full-bleed navy with vignette, grid texture, centered headline + 4-stat strip */
.hero {
  position: relative;
  background: var(--navy-darker);
  color: var(--white);
  overflow: hidden;
  padding: 3.5rem 0 4rem;
  isolation: isolate;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(80% 60% at 80% 0%, rgba(201,168,76,.10) 0%, transparent 60%),
    radial-gradient(60% 50% at 0% 100%, rgba(201,168,76,.05) 0%, transparent 60%),
    linear-gradient(180deg, var(--navy-darker) 0%, var(--navy) 60%, var(--navy-soft) 100%);
  z-index: -2;
}
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 80px 80px;
  -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 30%, transparent 80%);
  mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, black 30%, transparent 80%);
  z-index: -1;
  opacity: 0.7;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4rem;
  align-items: center;
  justify-items: center;
  min-height: 62vh;
  text-align: center;
}
.hero-grid > div:first-child { max-width: 880px; }
.hero-grid h1, .hero-grid .hero-sub, .hero-grid .hero-eyebrow { margin-left: auto; margin-right: auto; }
.hero-grid .hero-actions { justify-content: center; }
.hero-eyebrow {
  color: var(--gold);
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  margin-bottom: 2.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
}
.hero-eyebrow::before {
  content: '';
  width: 36px;
  height: 1px;
  background: var(--gold);
}
.hero h1 {
  font-family: var(--serif);
  color: var(--white);
  font-weight: 400;
  font-size: clamp(3.6rem, 8vw, 7rem);
  line-height: 0.96;
  letter-spacing: -0.025em;
  margin-bottom: 2.4rem;
  max-width: 16ch;
}
.hero h1 .ital {
  font-style: italic;
  font-weight: 300;
  color: var(--gold);
  position: relative;
  display: inline-block;
}
.hero h1 .ital::before {
  content: '';
  position: absolute;
  left: 0.04em;
  right: 0.18em;
  bottom: 0.04em;
  height: 2px;
  background: var(--signature);
}
.hero h1 .ital::after {
  content: '';
  display: inline-block;
  margin-left: 0.06em;
  width: 0.16em;
  height: 0.16em;
  border-radius: 50%;
  background: var(--gold);
  transform: translateY(-0.12em);
}
.hero-sub {
  font-size: 1.15rem;
  line-height: 1.55;
  color: rgba(255,255,255,.78);
  max-width: 46ch;
  margin-bottom: 3rem;
  font-weight: 300;
}
.hero-actions {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
  align-items: center;
}
.hero-bottom {
  margin-top: 5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.1);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
.hero-stat { display: flex; flex-direction: column; gap: 0.4rem; }
.hero-stat .k {
  font-family: var(--mono);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,.5);
}
.hero-stat .v {
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--white);
}
.hero-stat .v em { color: var(--gold); font-weight: 300; }

/* Marquee — disciplines / capability strip */
.marquee {
  background: var(--navy-darker);
  color: rgba(255,255,255,.55);
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding: 1.4rem 0;
  overflow: hidden;
  position: relative;
}
.marquee-track {
  display: flex;
  gap: 3.5rem;
  width: max-content;
  animation: marquee 50s linear infinite;
  font-family: var(--mono);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}
.marquee-track span { display: inline-flex; align-items: center; gap: 3.5rem; }
.marquee-track .sep {
  color: var(--gold);
  font-family: var(--serif);
  font-style: italic;
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Services — 7-row editorial list (mirrors original Aureole Homepage design).
   Markup:
     <section class="section" id="services">
       <div class="container">
         <div class="section-head">…</div>
         <div class="services-list">
           <a class="svc-row" href="/services/SLUG/">
             <span class="num">N° 0X</span>
             <div class="title">Title<em>Sub-slogan.</em></div>
             <div class="desc">…</div>
             <span class="arrow"><svg>→</svg></span>
           </a>
           …7 rows total
         </div>
       </div>
     </section>
*/
.services-list { border-top: 1px solid var(--line); }
.svc-row {
  display: grid;
  grid-template-columns: 80px 1.3fr 1.6fr 110px;
  align-items: center;
  gap: 2.4rem;
  padding: 2rem 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  position: relative;
  transition: padding .35s ease, background .35s ease;
  text-decoration: none;
  color: inherit;
}
.svc-row::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s ease;
}
.svc-row:hover { padding-left: 1.4rem; background: linear-gradient(90deg, var(--bone-soft) 0%, transparent 70%); }
.svc-row:hover::before { transform: scaleX(1); }
.svc-row .num {
  font-family: var(--serif);
  font-size: 1.05rem;
  color: var(--gold-deep);
  font-feature-settings: "tnum";
  letter-spacing: 0.04em;
}
.svc-row .title {
  font-family: var(--serif);
  font-size: 2.2rem;
  line-height: 1.05;
  font-weight: 400;
  color: var(--navy);
}
.svc-row .title em {
  display: block;
  font-size: 1.05rem;
  font-style: italic;
  font-weight: 400;
  color: var(--gold-deep);
  margin-top: 0.45rem;
  letter-spacing: 0;
}
.svc-row .desc {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--gray-700);
  max-width: 46ch;
}
.svc-row .arrow {
  justify-self: end;
  width: 56px;
  height: 56px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--navy);
  transition: all .35s ease;
}
.svc-row:hover .arrow {
  border-color: var(--navy);
  background: var(--navy);
  color: var(--white);
  transform: rotate(-45deg);
}
.svc-row .arrow svg { width: 18px; height: 18px; }

/* Offer — split layout (image-less, type-driven). Two variants: light (.offer) and dark (.offer.dark) */
.offer { background: var(--bone); position: relative; overflow: hidden; }
.offer.dark { background: var(--navy-darker); color: var(--white); }
.offer-inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: 5rem; align-items: center; }
.offer-tag {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-deep);
  margin-bottom: 1.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
}
.offer.dark .offer-tag { color: var(--gold); }
.offer-tag::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.offer h2 {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.005em;
  margin-bottom: 1.4rem;
  color: var(--navy);
}
.offer.dark h2 { color: var(--white); }
.offer h2 em { color: var(--gold-deep); font-style: italic; font-weight: 300; }
.offer.dark h2 em { color: var(--gold); }
.offer p.lede {
  color: var(--gray-700);
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 2.2rem;
  max-width: 52ch;
}
.offer.dark p.lede { color: rgba(255,255,255,.78); }
.offer .form-wrap {
  background: var(--white);
  padding: 2rem;
  border-radius: 4px;
  box-shadow: 0 2px 0 var(--line), 0 30px 60px -30px rgba(15,24,34,.18);
  border-top: 3px solid var(--gold);
}
/* (Old transparent .offer.dark .form-wrap rule removed — superseded by the
   white-card rule earlier in this file. Kept the comment to flag the change.) */
.offer-aside { display: flex; flex-direction: column; gap: 0.6rem; }
.offer-aside .delivers { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--line); }
.offer.dark .offer-aside .delivers { border-top-color: rgba(255,255,255,.1); }
.offer-aside .delivers .row {
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: baseline;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  gap: 1rem;
}
.offer.dark .offer-aside .delivers .row { border-bottom-color: rgba(255,255,255,.1); }
.offer-aside .delivers .row .n {
  font-family: var(--mono);
  color: var(--gold-deep);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
}
.offer.dark .offer-aside .delivers .row .n { color: var(--gold); }
.offer-aside .delivers .row .t {
  font-family: var(--serif);
  font-size: 1.25rem;
  color: inherit;
}
.offer-aside .delivers .row .t span {
  display: block;
  font-family: var(--sans);
  font-size: 0.85rem;
  color: var(--gray-600);
  margin-top: 0.25rem;
  line-height: 1.5;
}
.offer.dark .offer-aside .delivers .row .t span { color: rgba(255,255,255,.6); }

/* Why Aureole — 3 editorial cards on bone */
.why { background: var(--bone); }
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
}
.why-card {
  padding: 3rem 2rem 3rem 0;
  border-right: 1px solid var(--line);
  position: relative;
}
.why-card:last-child { border-right: 0; padding-right: 0; }
.why-card:not(:first-child) { padding-left: 2rem; }
.why-card .n {
  font-family: var(--serif);
  font-size: 3.5rem;
  line-height: 1;
  color: var(--gold);
  font-style: italic;
  font-weight: 300;
  margin-bottom: 1.6rem;
  display: block;
}
.why-card h3 {
  font-family: var(--serif);
  font-size: 1.7rem;
  font-weight: 400;
  margin-bottom: 0.9rem;
  line-height: 1.15;
  max-width: 14ch;
  color: var(--navy);
}
.why-card p {
  color: var(--gray-700);
  font-size: 0.97rem;
  line-height: 1.7;
  max-width: 38ch;
}

/* Process — timeline */
.process { background: var(--paper); }
.process-track {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
  padding-top: 3rem;
}
.process-track::before {
  content: '';
  position: absolute;
  top: 3rem;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--line);
}
.process-track::after {
  content: '';
  position: absolute;
  top: 3rem;
  left: 0;
  width: 18%;
  height: 1px;
  background: var(--gold);
}
.process-step { position: relative; padding: 2.4rem 1.6rem 0 0; }
.process-step::before {
  content: '';
  position: absolute;
  top: -0.45rem;
  left: 0;
  width: 9px;
  height: 9px;
  background: var(--paper);
  border: 1px solid var(--gold-deep);
  border-radius: 50%;
}
.process-step:first-child::before { background: var(--gold); border-color: var(--gold); }
.process-step .lbl {
  font-family: var(--mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--gold-deep);
  margin-bottom: 1rem;
}
.process-step h4 {
  font-family: var(--serif);
  font-size: 1.9rem;
  font-weight: 400;
  margin-bottom: 0.7rem;
  color: var(--navy);
}
.process-step p {
  color: var(--gray-700);
  font-size: 0.95rem;
  line-height: 1.65;
  max-width: 28ch;
}

/* Philosophy pull-quote */
.philosophy {
  background: var(--bone);
  color: var(--navy);
  padding: clamp(6rem, 10vw, 9rem) 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.philosophy::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 900px;
  height: 900px;
  background: radial-gradient(circle, rgba(201,168,76,.10) 0%, transparent 60%);
  pointer-events: none;
}
.philosophy .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.5rem;
  position: relative;
}
.philosophy .mark {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  font-size: 7rem;
  line-height: 0.7;
  color: var(--gold);
  user-select: none;
  margin-bottom: 0.5rem;
}
.philosophy blockquote {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.3;
  color: var(--navy);
  max-width: 28ch;
  margin: 0 auto;
}
.philosophy blockquote em { color: var(--gold-deep); font-style: italic; font-weight: 400; }
.philosophy cite {
  display: block;
  margin-top: 2rem;
  font-family: var(--mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--gray-600);
  font-style: normal;
}

/* About teaser */
.about { background: var(--bone-soft); }
.about-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: start;
  max-width: 940px;
  margin: 0 auto;
  text-align: center;
}
.about-inner .eyebrow { justify-content: center; }
.about-inner .rule-gold { margin-left: auto; margin-right: auto; }
.about-inner p { margin-left: auto; margin-right: auto; }
.about-mark {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.4rem, 4vw, 3.4rem);
  color: var(--gold);
  line-height: 1.1;
  margin: 0 auto;
  letter-spacing: -0.01em;
  position: relative;
  display: inline-block;
  padding-bottom: 0.4rem;
}
.about-mark::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 36px;
  height: 1.5px;
  background: var(--signature);
}
.about h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  line-height: 1.05;
  letter-spacing: -0.005em;
  margin-bottom: 2rem;
  color: var(--navy);
}
.about h2 em { color: var(--navy-soft); font-style: italic; font-weight: 300; }
.about p {
  color: var(--gray-700);
  font-size: 1.08rem;
  line-height: 1.75;
  max-width: 60ch;
  margin-bottom: 1.4rem;
}
.about .pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 3rem;
  padding-top: 2.4rem;
  border-top: 1px solid var(--line);
  text-align: left;
}
.about .pillars .pillar .n {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.6rem;
  color: var(--gold);
  margin-bottom: 0.6rem;
}
.about .pillars .pillar .t {
  font-family: var(--serif);
  font-size: 1.25rem;
  color: var(--navy);
  margin-bottom: 0.4rem;
  line-height: 1.2;
}
.about .pillars .pillar .d {
  font-size: 0.9rem;
  color: var(--gray-700);
  line-height: 1.55;
}

/* Final CTA */
.final {
  background: var(--navy-darker);
  color: var(--white);
  padding: clamp(6rem, 10vw, 9rem) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.final::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 50% 0%, rgba(201,168,76,.12) 0%, transparent 70%),
    radial-gradient(50% 60% at 50% 100%, rgba(201,168,76,.08) 0%, transparent 70%);
  pointer-events: none;
}
.final .eyebrow { color: var(--gold); margin-bottom: 2rem; justify-content: center; display: inline-flex; }
.final .eyebrow::before { background: var(--gold); }
.final h2 {
  font-family: var(--serif);
  color: var(--white);
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: 1;
  font-weight: 400;
  margin-bottom: 1.6rem;
}
.final h2 em { color: var(--gold); font-weight: 300; font-style: italic; }
.final p {
  color: rgba(255,255,255,.78);
  font-size: 1.15rem;
  max-width: 52ch;
  margin: 0 auto 3rem;
  font-weight: 300;
}
.final-actions { display: flex; gap: 0.8rem; justify-content: center; flex-wrap: wrap; }
.final-meta {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  font-family: var(--mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,.55);
}

/* Industry editorial cell — used inside the homepage's #industries .industries-grid (not the sub-page) */
.industry {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 1.6rem 1.6rem;
  color: var(--navy);
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  gap: 0.8rem;
  transition: background .25s ease, color .25s ease;
  cursor: pointer;
  text-decoration: none;
}
.industry:hover { background: var(--navy); color: var(--white); }
.industry .n {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  color: var(--gold-deep);
  transition: color .25s ease;
}
.industry:hover .n { color: var(--gold); }
.industry .t { font-family: var(--serif); font-size: 1.3rem; line-height: 1.1; }
.industry .arr {
  font-family: var(--mono);
  font-size: 0.85rem;
  opacity: 0;
  transform: translateX(-6px);
  transition: all .25s ease;
  color: var(--gold);
}
.industry:hover .arr { opacity: 1; transform: translateX(0); }

/* Industries 5x3 mini-grid */
.industries-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.industries-grid a {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 1.6rem 1.2rem;
  font-family: var(--serif);
  font-size: 1rem;
  color: var(--navy);
  background: var(--white);
  transition: background .25s ease, color .25s ease;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.industries-grid a:hover { background: var(--navy); color: var(--white); }
.industries-grid a .sub { font-family: var(--sans); font-size: 0.78rem; color: var(--gray-700); }
.industries-grid a:hover .sub { color: rgba(255,255,255,.75); }
/* When the grid contains .industry items (homepage usage), switch to 3-col editorial layout */
.industries-grid:has(> .industry) { grid-template-columns: repeat(3, 1fr); }

/* Technology row */
.technology-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.technology-row a {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 1.6rem 1rem;
  text-align: center;
  font-family: var(--serif);
  color: var(--navy);
  background: var(--white);
  transition: background .25s ease, color .25s ease;
  text-decoration: none;
}
.technology-row a:hover { background: var(--gold-deep); color: var(--white); }

/* Why-Aureole pillars (3 columns, oversized italic Roman) */
.why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; }
.why-card {
  border-top: 1px solid var(--gold-deep);
  padding-top: 1.6rem;
}
.why-card .roman {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  font-size: 4rem;
  line-height: 1;
  color: var(--gold-deep);
  margin-bottom: 1.4rem;
  display: block;
}
.why-card h3 {
  font-family: var(--serif);
  font-size: 1.7rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--navy);
  margin-bottom: 0.8rem;
}
.why-card p { color: var(--gray-700); font-size: 1rem; line-height: 1.7; }

/* Process timeline (4-station) */
.process-timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  position: relative;
  padding-top: 1.5rem;
}
.process-timeline::before {
  content: '';
  position: absolute;
  top: 22px; left: 5%; right: 5%;
  height: 1px;
  background: var(--gold-deep);
  z-index: -1;
}
.process-step { display: flex; flex-direction: column; align-items: center; text-align: center; }
.process-step .dot {
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--gold-deep);
  margin-bottom: 0.8rem;
}
.process-step .num {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-deep);
  margin-bottom: 0.5rem;
}
.process-step h4 {
  font-family: var(--serif);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 0.5rem;
}
.process-step p {
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--gray-700);
  max-width: 28ch;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1100px) {
  :root { --header-h: 80px; --header-logo-h: 60px; }
  .header-inner { grid-template-columns: auto 1fr auto; padding: 0 1.25rem; gap: 0.75rem; }
  .brand-logo { margin-left: -6px; }
  .header-cta { display: none; }
  .nav-primary { display: none; }
  .mobile-menu-toggle { display: flex; }
  .section-head { grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 3rem; }
  .sub-hero-inner { grid-template-columns: 1fr; gap: 3rem; }
  .hero-grid { grid-template-columns: 1fr; gap: 2rem; }
  .hero-bottom { grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
  .industries-grid:has(> .industry) { grid-template-columns: repeat(2, 1fr); }
  .why-grid { grid-template-columns: 1fr; }
  .why-card { border-right: 0; border-bottom: 1px solid var(--line); padding: 2rem 0; }
  .why-card:not(:first-child) { padding-left: 0; }
  .process-track { grid-template-columns: 1fr 1fr; gap: 2rem 2rem; }
  .process-track::before, .process-track::after { display: none; }
  .about .pillars { grid-template-columns: 1fr; gap: 1.4rem; }
  .final-meta { flex-direction: column; gap: 0.8rem; text-align: center; }
  .discipline-row { grid-template-columns: 60px 1fr 50px; }
  .discipline-row .desc { display: none; }
  .approach-grid { grid-template-columns: 1fr 1fr; }
  .approach-card { padding: 2.4rem 1.6rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .approach-card:nth-child(2n) { border-right: 0; }
  .approach-card:not(:first-child) { padding-left: 1.6rem; }
  .approach-item { grid-template-columns: 80px 1fr; gap: 2rem; }
  .who-body { grid-template-columns: 1fr; gap: 2.4rem; }
  .challenge-grid { grid-template-columns: 1fr; }
  .related-row { grid-template-columns: 180px 1fr 24px; gap: 1.4rem; }
  .offer-inner { grid-template-columns: 1fr; gap: 3rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .faq-q { grid-template-columns: 50px 1fr 28px; gap: 1rem; }
  .faq-q .q-text { font-size: 1.2rem; }
  .faq-a { padding-left: 62px; }
  .svc-row { grid-template-columns: 50px 1fr 60px; }
  .svc-row .desc { display: none; }
  .industries-grid { grid-template-columns: repeat(3, 1fr); }
  .technology-row { grid-template-columns: repeat(4, 1fr); }
  .why-grid { grid-template-columns: 1fr; gap: 2rem; }
  .process-timeline { grid-template-columns: 1fr 1fr; }
  .process-timeline::before { display: none; }
  .mega-services-grid { display: none; } /* mobile mega-menu uses drawer instead */
}
@media (max-width: 640px) {
  .approach-grid { grid-template-columns: 1fr; }
  .approach-card { border-right: 0; padding: 2rem 0; }
  .approach-card:not(:first-child) { padding-left: 0; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { grid-template-columns: 1fr; text-align: center; gap: 0.8rem; }
  .philosophy .mark { font-size: 5rem; }
  .discipline-row { grid-template-columns: 50px 1fr; gap: 1rem; padding: 1.6rem 0; }
  .discipline-row .arrow { display: none; }
  .discipline-row .title-block h3 { font-size: 1.4rem; }
  .final-meta { flex-direction: column; gap: 0.8rem; text-align: center; }
  .breadcrumb { font-size: 0.62rem; gap: 0.4rem; }
  .svc-row { grid-template-columns: 40px 1fr; gap: 1rem; padding: 1.4rem 0; }
  .svc-row .arrow { display: none; }
  .svc-row .title { font-size: 1.6rem; }
  .industries-grid { grid-template-columns: 1fr 1fr; }
  .technology-row { grid-template-columns: 1fr 1fr; }
  .process-timeline { grid-template-columns: 1fr; }
  .process-track { grid-template-columns: 1fr; gap: 1.6rem; }
}

/* ============================================================
   SUB-PAGE PATTERNS (extracted from landing-pages-claude-2026-05-09/*.html)
   Covers About, Contact, and shared sub-page patterns: editorial body,
   values grid, contact split, engagement cards, scene breaks, etc.
   Generated 2026-05-10 by extract-missing-css.py.
   ============================================================ */
/* Extracted 99 rules covering missing classes from 33 required */
/* Source: landing-pages-claude-2026-05-09/*.html */

.container-editorial { max-width: 720px; margin: 0 auto; padding: 0 2rem; }

.editorial-head {
    text-align: left;
    margin-bottom: 3rem;
  }

.editorial-head .eyebrow { margin-bottom: 1.4rem; }

.editorial-head h2 {
    font-family: var(--serif);
    font-weight: 400;
    color: var(--navy);
    font-size: clamp(2.2rem, 3.6vw, 3.2rem);
    line-height: 1.08;
    letter-spacing: -0.01em;
    max-width: 18ch;
  }

.editorial-head h2 em { color: var(--gold-deep); font-style: italic; font-weight: 300; }

.editorial-body {
    font-family: var(--serif);
    font-size: 1.18rem;
    line-height: 1.65;
    color: var(--gray-700);
  }

.editorial-body p {
    margin-bottom: 1.6rem;
  }

.editorial-body p:last-child { margin-bottom: 0; }

.editorial-body p.lede-p {
    font-size: 1.32rem;
    line-height: 1.55;
    color: var(--navy);
    margin-bottom: 2.2rem;
    font-weight: 400;
  }

.editorial-body em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.editorial-body .drop {
    font-family: var(--serif);
    float: left;
    font-size: 4.6rem;
    line-height: 0.95;
    padding-right: 0.65rem;
    padding-top: 0.45rem;
    color: var(--gold-deep);
    font-weight: 400;
    font-style: italic;
  }

.editorial-body .scene-break {
    display: block;
    width: 36px;
    height: 1px;
    background: var(--gold-deep);
    margin: 2.4rem 0;
  }

.editorial-body strong {
    font-family: var(--sans);
    font-weight: 600;
    color: var(--navy);
    font-size: 0.96rem;
    letter-spacing: 0;
  }

.editorial-body .pull {
    display: block;
    font-style: italic;
    font-size: 1.5rem;
    line-height: 1.4;
    color: var(--navy);
    border-left: 1px solid var(--gold-deep);
    padding: 0.4rem 0 0.4rem 1.4rem;
    margin: 2.4rem 0;
    max-width: 56ch;
  }

.editorial-body .pull em { color: var(--gold-deep); }

.values { background: var(--bone); }

.values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    width: 100%;
    border-top: 1px solid var(--line);
  }

.value-card {
    padding: 3rem 2rem;
    border-right: 1px solid var(--line);
    position: relative;
  }

.value-card:last-child { border-right: 0; }

.value-card .n {
    font-family: var(--serif);
    font-size: 3.5rem;
    line-height: 1;
    color: var(--gold);
    font-style: italic;
    font-weight: 300;
    margin-bottom: 1.6rem;
    display: block;
  }

.value-card h3 {
    font-size: 1.7rem;
    margin-bottom: 0.9rem;
    line-height: 1.15;
    max-width: none;
    font-weight: 400;
  }

.value-card h3 em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.value-card p {
    color: var(--gray-700);
    font-size: 0.97rem;
    line-height: 1.7;
    max-width: none;
  }

@media (max-width: 1100px) {
  .values-grid { grid-template-columns: 1fr; }
  .value-card { border-right: 0; border-bottom: 1px solid var(--line); padding: 2.4rem 0; }
  .value-card:last-child { border-bottom: 0; }
}

#note-on-naming .editorial-body { max-width: 720px; margin-left: auto; margin-right: auto; }

.crosslinks { background: var(--bone); }

.contact-split {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 5rem;
    align-items: start;
  }

.contact-form-wrap {
    background: var(--white);
    padding: 2.6rem;
    border-radius: 4px;
    box-shadow: 0 2px 0 var(--line), 0 30px 60px -30px rgba(15,24,34,.18);
    border-top: 3px solid var(--gold);
  }

.contact-form-wrap .form-eyebrow {
    font-family: var(--mono);
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--gold-deep);
    margin-bottom: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
  }

.contact-form-wrap .form-eyebrow::before {
    content: '';
    width: 28px;
    height: 1px;
    background: currentColor;
  }

.contact-form-wrap h2 {
    font-size: clamp(2rem, 3vw, 2.6rem);
    margin-bottom: 1rem;
    line-height: 1.1;
  }

.contact-form-wrap h2 em { color: var(--gold-deep); }

.contact-form-wrap .form-intro {
    color: var(--gray-700);
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 2rem;
    max-width: 46ch;
  }

.contact-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }

.contact-form .field { display: flex; flex-direction: column; gap: 0.4rem; }

.contact-form label {
    font-family: var(--mono);
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--gray-600);
  }

.contact-form input,
  .contact-form textarea {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: transparent;
    padding: 0.7rem 0;
    font-family: var(--serif);
    font-size: 1.25rem;
    color: var(--navy);
    transition: border-color .25s ease;
    resize: vertical;
  }

.contact-form textarea {
    min-height: 120px;
    line-height: 1.5;
    font-size: 1.1rem;
  }

.contact-form input:focus,
  .contact-form textarea:focus {
    outline: none;
    border-bottom-color: var(--signature);
    box-shadow: 0 1px 0 0 var(--signature);
  }

.contact-form input::placeholder,
  .contact-form textarea::placeholder { color: var(--gray-500); font-style: italic; }

.contact-form .submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.8rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--line-soft);
  }

.contact-form .fineprint {
    font-size: 0.78rem;
    color: var(--gray-600);
    max-width: 28ch;
    line-height: 1.4;
  }

.contact-aside {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: 0.5rem;
  }

.contact-aside .aside-eyebrow {
    font-family: var(--mono);
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--gold-deep);
    margin-bottom: 1.2rem;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
  }

.contact-aside .aside-eyebrow::before {
    content: '';
    width: 28px;
    height: 1px;
    background: currentColor;
  }

.contact-aside h3 {
    font-family: var(--serif);
    font-size: 1.8rem;
    line-height: 1.2;
    color: var(--navy);
    margin-bottom: 1.6rem;
    font-weight: 400;
  }

.contact-aside h3 em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.contact-aside .aside-intro {
    color: var(--gray-700);
    font-size: 0.97rem;
    line-height: 1.7;
    margin-bottom: 1.8rem;
    max-width: 38ch;
  }

.value-strip {
    border-top: 1px solid var(--line);
  }

.value-strip .row {
    display: grid;
    grid-template-columns: 130px 1fr;
    align-items: baseline;
    gap: 1.4rem;
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--line);
  }

.value-strip .row .k {
    font-family: var(--mono);
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--gray-600);
  }

.value-strip .row .v {
    font-family: var(--serif);
    font-size: 1.15rem;
    line-height: 1.45;
    color: var(--navy);
  }

.value-strip .row .v a {
    color: var(--navy);
    border-bottom: 1px solid var(--gold-deep);
    transition: color .2s ease, border-color .2s ease;
  }

.value-strip .row .v a:hover { color: var(--gold-deep); }

.value-strip .row .v small {
    display: block;
    font-family: var(--sans);
    font-size: 0.85rem;
    color: var(--gray-700);
    line-height: 1.6;
    margin-top: 0.3rem;
  }

.value-strip .row .v em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.alt-cta { background: var(--bone); }

.alt-cta .container {
    max-width: 880px;
    text-align: center;
  }

.alt-cta .eyebrow { justify-content: center; display: inline-flex; margin-bottom: 1.6rem; }

.alt-cta h2 {
    font-size: clamp(2rem, 3.4vw, 2.8rem);
    margin-bottom: 1.4rem;
    line-height: 1.1;
  }

.alt-cta h2 em { color: var(--gold-deep); }

.alt-cta p {
    color: var(--gray-700);
    font-size: 1.1rem;
    line-height: 1.7;
    max-width: 56ch;
    margin: 0 auto 2.4rem;
    font-family: var(--serif);
  }

.alt-cta .booking-link {
    font-family: var(--serif);
    font-size: 1.4rem;
    color: var(--navy);
    border-bottom: 1px solid var(--gold-deep);
    padding-bottom: 4px;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    transition: color .25s ease, border-color .25s ease;
  }

.alt-cta .booking-link .arr {
    color: var(--gold-deep);
    transition: transform .25s ease;
  }

.alt-cta .booking-link:hover { color: var(--gold-deep); border-bottom-color: var(--navy); }

.alt-cta .booking-link:hover .arr { transform: translateX(4px); }

.alt-cta .booking-meta {
    display: block;
    margin-top: 1.6rem;
    font-family: var(--mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--gray-600);
  }

.hdr .meta {
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1.4rem 2.4rem;
    font-family: var(--mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--gray-600);
  }

.hdr .meta strong { color: var(--gold-deep); font-weight: 500; }

.pattern-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    width: 100%;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
  }

.pattern-card {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 3.2rem 2.8rem;
    position: relative;
    transition: background .25s ease;
  }

.pattern-card:hover { background: var(--bone-soft); }

.pattern-card .roman {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    font-size: 3rem;
    line-height: 1;
    color: var(--gold);
    margin-bottom: 1.4rem;
    display: block;
  }

.pattern-card h3 {
    font-family: var(--serif);
    font-weight: 400;
    font-size: 1.55rem;
    line-height: 1.2;
    color: var(--navy);
    margin-bottom: 0.9rem;
    max-width: 22ch;
  }

.pattern-card h3 em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.pattern-card .meta {
    font-family: var(--mono);
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--gold-deep);
    display: block;
    margin-bottom: 1rem;
  }

.pattern-card p {
    color: var(--gray-700);
    font-size: 0.97rem;
    line-height: 1.7;
    max-width: 50ch;
  }

.engagement-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    width: 100%;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
  }

.engagement-card {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 3.2rem 2.8rem;
    position: relative;
    transition: background .25s ease;
  }

.engagement-card:hover { background: var(--bone-soft); }

.engagement-card .roman {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    font-size: 3rem;
    line-height: 1;
    color: var(--gold);
    margin-bottom: 1.4rem;
    display: block;
  }

.engagement-card h3 {
    font-family: var(--serif);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.2;
    color: var(--navy);
    margin-bottom: 0.9rem;
    max-width: 22ch;
  }

.engagement-card h3 em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.engagement-card .meta {
    font-family: var(--mono);
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--gold-deep);
    display: block;
    margin-bottom: 1rem;
  }

.engagement-card p {
    color: var(--gray-700);
    font-size: 0.97rem;
    line-height: 1.7;
    max-width: 50ch;
  }

/* Section-lede + section-followup paragraphs sit above/below a card grid
   inside a .section. Used on Technology §3 (Migrations) after the
   redesign. Editorial weight. */
.section-lede {
    font-family: var(--serif);
    font-size: clamp(1.2rem, 1.6vw, 1.5rem);
    line-height: 1.5;
    color: var(--navy);
    font-weight: 400;
    max-width: 70ch;
    margin: 0 0 3rem;
  }
.section-lede em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.mig-followup {
    color: var(--gray-700);
    font-size: 1rem;
    line-height: 1.75;
    max-width: 78ch;
    margin: 3rem 0 0;
  }
.mig-followup strong { color: var(--navy); font-weight: 500; }
.mig-followup a {
    color: var(--gold-deep);
    border-bottom: 1px solid var(--gold-deep);
    padding-bottom: 1px;
  }
.mig-followup a:hover { color: var(--navy); border-bottom-color: var(--navy); }

.mig-body {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 5rem;
    align-items: start;
  }

.mig-body .lede {
    font-family: var(--serif);
    font-size: 1.4rem;
    line-height: 1.45;
    color: var(--navy);
    font-weight: 400;
  }

.mig-body .lede em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.mig-body p {
    color: var(--gray-700);
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 1.2rem;
  }

.mig-body p:last-of-type { margin-bottom: 0; }

.mig-body p a {
    color: var(--gold-deep);
    border-bottom: 1px solid var(--gold-deep);
    padding-bottom: 1px;
  }

.mig-body p a:hover { color: var(--navy); border-bottom-color: var(--navy); }

.mig-list {
    list-style: none;
    border-top: 1px solid var(--line);
    margin-top: 2.5rem;
  }

.mig-list li {
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 1.2rem;
    align-items: baseline;
  }

.mig-list .n {
    font-family: var(--mono);
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    color: var(--gold-deep);
    text-transform: uppercase;
  }

.mig-list .body {
    font-family: var(--serif);
    font-size: 1.2rem;
    color: var(--navy);
    font-weight: 400;
    line-height: 1.4;
  }

.mig-list .body span {
    display: block;
    font-family: var(--sans);
    font-size: 0.9rem;
    color: var(--gray-700);
    margin-top: 0.35rem;
    line-height: 1.6;
  }

.problems { background: var(--bone); }

.problems-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
  }


/* ============================================================
   PHASE-3 SUB-PAGE PATTERNS — extracted 2026-05-10
   Covers ledger, challenge, cn-note, term used by industry +
   sub-discipline pages.
   ============================================================ */
/* Extracted 19 rules covering 8 missing classes */
/* Source: landing-pages-claude-2026-05-09/*.html (47 new pages) */

.challenge { background: var(--paper); }

.cn-note { background: var(--bone-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: clamp(3rem, 5vw, 4rem) 0; }

.cn-note-inner {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 3rem;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 2rem;
    align-items: start;
  }

.cn-note .label {
    font-family: var(--mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--gold-deep);
  }

.cn-note h3 {
    font-family: var(--serif);
    font-size: clamp(1.5rem, 2vw, 1.9rem);
    line-height: 1.25;
    font-weight: 400;
    color: var(--navy);
    margin-bottom: 0.9rem;
  }

.cn-note h3 em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.cn-note p {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--gray-700);
    max-width: 62ch;
  }

.cn-note p + p { margin-top: 0.9rem; }

.ledger { background: var(--bone); }

.ledger-inner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 5rem;
    align-items: start;
  }

.ledger .lede {
    font-family: var(--serif);
    font-size: 1.4rem;
    line-height: 1.45;
    color: var(--navy);
    font-weight: 400;
  }

.ledger .lede em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.ledger-list {
    list-style: none;
    border-top: 1px solid var(--line);
  }

.ledger-list li {
    display: grid;
    grid-template-columns: 1.1fr 1.6fr;
    gap: 2rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--line);
    align-items: baseline;
  }

.ledger-list li .term {
    font-family: var(--serif);
    font-size: 1.3rem;
    color: var(--navy);
    font-weight: 400;
  }

.ledger-list li .term em { color: var(--gold-deep); font-style: italic; font-weight: 400; }

.ledger-list li .term::before {
    content: '×';
    display: inline-block;
    margin-right: 0.7rem;
    color: var(--gold-deep);
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 1;
  }

.ledger-list li .why {
    color: var(--gray-700);
    font-size: 0.97rem;
    line-height: 1.7;
  }

.pill.is-sub { border-color: var(--gold-deep); }

