/* ============================================================
   My Lifetime Care  -  _design.css v2
   Avada Fusion Builder target - Authored 2026-05-18
   Builds on v1 (2026-05-16). No body.page-* scoping.
   No !important. No #fff/#000 direct values.
   All component classes use .mlc-* prefix.
   Unlayered (no @layer)  -  Avada injects unlayered CSS.
   Target: 1,200-1,700 lines.
   ============================================================ */

/* -- 1. TOKENS ----------------------------------------------- */
:root {
  /* Palette */
  --mlc-maroon:       #700D1F;
  --mlc-maroon-dark:  #5A0A19;
  --mlc-teal:         #488E8E;
  --mlc-teal-dark:    #3A7474;
  --mlc-navy:         #112337;
  --mlc-ivory:        #FAF6F0;
  --mlc-stone:        #F1EBE2;
  --mlc-deep-navy:    #0B192C;
  --mlc-line:         #D9D1C5;
  --mlc-soft-ink:     #4A5363;
  --mlc-brass:        #B8864A;
  --mlc-brass-deep:   #6F5320;
  --mlc-sage:         #2F7A3F;
  --mlc-amber:        #A06A00;
  --mlc-clay:         #9A2A2A;
  --mlc-chip-tint:    #FFF8F4;

  /* Containers */
  --c-narrow:   760px;
  --c-default:  1320px;
  --c-wide:     1480px;

  /* Spacing  -  8pt grid */
  --s-xs:  0.25rem;   /* 4px  */
  --s-sm:  0.5rem;    /* 8px  */
  --s-md:  1rem;      /* 16px */
  --s-lg:  1.5rem;    /* 24px */
  --s-xl:  2.5rem;    /* 40px */
  --s-2xl: 4rem;      /* 64px */
  --s-3xl: 6rem;      /* 96px */
  --s-4xl: 8rem;      /* 128px */

  --section-pad: clamp(3rem, 6vw, 5rem);

  /* Header height token for sticky sub-navs */
  --mlc-header-h: 84px;

  /* z-index tokens */
  --z-header: 50;
  --z-subnav: 40;
  --z-drawer: 60;
  --z-modal:  70;
}

/* -- 2. BASE -------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  font-size: 112.5%;
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  margin: 0;
  font-family: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-weight: 400;
  line-height: 1.65;
  color: var(--mlc-navy);
  background: var(--mlc-ivory);
  overflow-x: clip; /* clip not hidden  -  hidden creates containing block that kills position:sticky on descendants */
}
img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; } /* reset browser default 1em 40px margin on figure */
:where(a, a:link, a:visited) { color: var(--mlc-maroon); } /* :where() zeroes specificity so any class rule beats this */
strong { font-weight: 700; color: var(--mlc-navy); }
ul, ol { margin: 0 0 1rem 1.4rem; }
li { margin-bottom: 0.4rem; }

/* -- 3. TYPOGRAPHY -------------------------------------------- */
h1, h2, h3, h4, h5 {
  font-family: 'Antic Didone', Georgia, 'Times New Roman', serif;
  font-weight: 400;
  line-height: 1.15;
  color: var(--mlc-navy);
  margin: 0;
}
p { margin: 0 0 1rem; max-width: 68ch; }
p.lead { font-size: 1.125rem; line-height: 1.6; max-width: 65ch; color: var(--mlc-soft-ink); }

.t-display { font-family: 'Antic Didone', serif; font-size: clamp(2.5rem, 4vw, 3.5rem); line-height: 1.05; letter-spacing: -0.01em; }
h1, .t-h1   { font-size: 2.75rem;  line-height: 1.15; }
h2, .t-h2   { font-size: 2.125rem; line-height: 1.15; margin-bottom: 1.25rem; max-width: 24ch; }
h3, .t-h3   { font-size: 1.625rem; line-height: 1.25; color: var(--mlc-maroon); }
h4, .t-h4   { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 1.25rem; line-height: 1.3; }

.mlc-label {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mlc-maroon);
  display: inline-block;
  margin-bottom: 0.75rem;
}
.mlc-label--brass { color: var(--mlc-brass); }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* -- 4. CONTAINERS + SECTIONS --------------------------------- */
.container        { width: 100%; max-width: var(--c-default); margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2.5rem); }
.container-narrow { width: 100%; max-width: var(--c-narrow);  margin: 0 auto; padding: var(--section-pad) clamp(1rem, 4vw, 2rem); }
.container-wide   { width: 100%; max-width: var(--c-wide);    margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2.5rem); }

section { padding: var(--section-pad) 0; }
section.section--stone { background: var(--mlc-stone); }
section.section--deep  { background: var(--mlc-deep-navy); color: var(--mlc-ivory); }
section.section--deep h1,
section.section--deep h2,
section.section--deep h3 { color: var(--mlc-ivory); }
section.section--deep p { color: rgba(250,246,240,0.88); }
section.section--deep .mlc-label { color: var(--mlc-brass); }
section.section--deep strong,
section.section--deep b { color: inherit; }
section.section--center { text-align: center; }
section.section--center h2 { margin-left: auto; margin-right: auto; }
section.section--center p.lead { margin-left: auto; margin-right: auto; }
section.section--statement { padding: clamp(4rem, 7vw, 6rem) 0 var(--section-pad); }

/* FIX 2: direct-child containers of <main> without a wrapping <section> act as section slots */
main > div.container,
main > div.container-wide,
main > div.container-narrow { padding-block: var(--section-pad); }
/* Ensure mlc-anchor in a bare container has breathing room */
.container > .mlc-anchor,
.container-wide > .mlc-anchor { margin-block: 0; }
/* mlc-not-for gets bottom clearance against adjacent deep sections */
.mlc-not-for { margin-bottom: var(--section-pad); }

section h2 + p.lead { font-size: clamp(1rem, 1.6vw, 1.15rem); line-height: 1.55; margin-bottom: 2.5rem; color: var(--mlc-soft-ink); max-width: 60ch; }
section.section--deep h2 + p.lead { color: rgba(250,246,240,0.82); }

/* -- 5. BUTTONS + CTAs ---------------------------------------- */
.mlc-cta {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--mlc-maroon); color: var(--mlc-ivory);
  padding: 16px 28px; border-radius: 8px;
  font-family: 'Lato', sans-serif; font-weight: 700; font-size: 1rem;
  min-height: 56px; text-decoration: none;
  border: none; cursor: pointer;
  transition: background 0.15s, transform 0.1s;
  letter-spacing: -0.005em;
}
.mlc-cta:hover { background: var(--mlc-maroon-dark); color: var(--mlc-ivory); }
.mlc-cta:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 2px; }
.mlc-cta-icon { width: 20px; height: 20px; flex: none; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.mlc-cta--secondary { background: var(--mlc-teal-dark); }
.mlc-cta--secondary:hover { background: var(--mlc-teal-dark); color: var(--mlc-ivory); }

.mlc-cta--ghost { background: transparent; color: var(--mlc-maroon); border: none; box-shadow: inset 0 0 0 2px var(--mlc-maroon); }
.mlc-cta--ghost:hover { background: var(--mlc-maroon); color: var(--mlc-ivory); box-shadow: none; }

.mlc-cta--ghost-light { background: transparent; color: var(--mlc-ivory); border: none; box-shadow: inset 0 0 0 2px rgba(250,246,240,0.75); }
.mlc-cta--ghost-light:hover { background: rgba(255,255,255,0.12); box-shadow: inset 0 0 0 2px var(--mlc-ivory); color: var(--mlc-ivory); }

.mlc-cta-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.mlc-cta-stack .main { font-weight: 700; font-size: 1.05rem; line-height: 1.2; }
.mlc-cta-stack .sub  { font-size: 0.82rem; font-weight: 400; opacity: 0.92; margin-top: 2px; }
.mlc-cta-stack .sub-hours { font-size: 0.75rem; font-weight: 400; color: rgba(250,246,240,0.6); margin-top: 1px; display: block; }

.mlc-cta-row { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin-top: 2rem; }
.mlc-cta-row--center { justify-content: center; }

/* -- 6. SITE CHROME ------------------------------------------- */
.announce {
  background: var(--mlc-deep-navy); color: var(--mlc-ivory);
  padding: 0.5rem 0;
  font-size: clamp(0.7rem, 1.2vw, 0.78rem);
  text-align: center; line-height: 1.4;
  /* z-index above mega backdrop so blur never hits the announce bar */
  position: relative; z-index: calc(var(--z-header) + 2);
}
.announce strong { color: var(--mlc-brass); font-weight: 700; }
@keyframes mlc-marquee {
  0%   { transform: translateX(100vw); }
  100% { transform: translateX(-100%); }
}
@media (max-width: 768px) and (prefers-reduced-motion: reduce) {
  .announce { overflow: visible; padding: 0.5rem 0; }
  .announce .container { display: block; white-space: normal; text-align: center; animation: none; padding: 0; }
}

/* FSE: the template-part wrapper constrains sticky scroll range to its own height.
   display:contents removes the box from layout so header.site sticks for full page length. */
.wp-block-template-part:has(header.site) { display: contents; }

header.site {
  background: var(--mlc-ivory);
  border-bottom: 1px solid var(--mlc-line);
  position: sticky; top: 0; z-index: var(--z-header);
  padding: 0.85rem 0;
}
header.site .inner { display: flex; align-items: center; gap: 0; min-height: 56px; max-width: none; width: 100%; padding-inline: clamp(0rem, 3vw, 3rem); }
header.site .logo { flex: 0 0 auto; margin-right: auto; display: flex; align-items: center; text-decoration: none; }
header.site .logo img { height: clamp(44px, 5vw, 56px); width: auto; display: block; }
header.site nav { flex: 0 0 auto; display: flex; gap: 2.25rem; align-items: center; }
/* Scope to top-level nav links only  -  `:not(.mlc-nav-panel *)` excludes mega-panel descendants
   so panel-link rules below can apply without specificity fights. */
header.site nav a:not(.mlc-nav-panel *) {
  color: var(--mlc-navy); font-family: 'Lato', sans-serif;
  font-weight: 700; font-size: 1.02rem;
  text-decoration: none; padding: 0.4rem 0;
  transition: color 0.15s; white-space: nowrap;
}
header.site nav a:not(.mlc-nav-panel *):hover,
header.site nav a:not(.mlc-nav-panel *)[aria-current="page"],
header.site nav a:not(.mlc-nav-panel *).active { color: var(--mlc-maroon); }
header.site nav a:not(.mlc-nav-panel *):focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 3px; border-radius: 2px; }
header.site .header-cta { flex: 0 0 auto; display: flex; align-items: center; gap: 1rem; justify-content: flex-end; margin-left: 2rem; }
header.site .phone-inline {
  color: var(--mlc-navy); font-weight: 700; font-size: 1rem;
  text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; white-space: nowrap;
}
header.site .phone-inline:hover { color: var(--mlc-maroon); }
header.site .phone-inline svg { width: 18px; height: 18px; stroke: var(--mlc-maroon); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
header.site .header-cta-btn {
  background: transparent; color: var(--mlc-maroon);
  border: 1.5px solid var(--mlc-maroon);
  padding: 0.4rem 0.85rem; border-radius: 5px;
  font-size: 0.82rem; font-weight: 700;
  text-decoration: none; white-space: nowrap;
  min-height: 44px; display: inline-flex; align-items: center;
  transition: background 0.15s, color 0.15s;
}
header.site .header-cta-btn:hover { background: var(--mlc-maroon); color: var(--mlc-ivory); }
header.site .header-cta-btn.active { background: var(--mlc-maroon); color: var(--mlc-ivory); }
.header-phone-icon {
  display: none; width: 44px; height: 44px; border-radius: 50%;
  background: var(--mlc-maroon); align-items: center; justify-content: center;
  color: var(--mlc-ivory); text-decoration: none; margin-right: 10px;
  transition: background 0.15s;
}
.header-phone-icon:hover { background: var(--mlc-maroon-dark); }
.header-phone-icon svg { width: 20px; height: 20px; stroke: var(--mlc-ivory); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.header-phone-icon:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 3px; }
.hamburger {
  display: none; background: transparent; border: none;
  width: 44px; height: 44px; padding: 0; cursor: pointer;
  align-items: center; justify-content: center; color: var(--mlc-navy);
}
.hamburger svg { width: 26px; height: 26px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }
.hamburger:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 2px; border-radius: 4px; }

/* Landing page stripped header */
header.site--landing nav,
header.site--landing .header-cta-btn { display: none; }

/* Breadcrumb */
.mlc-crumbs { font-size: 0.875rem; color: var(--mlc-soft-ink); margin-bottom: 1rem; line-height: 1.4; }
.mlc-crumbs a { color: var(--mlc-maroon); text-decoration: underline; }
.mlc-crumbs a:hover { text-decoration: underline; }

/* Footer */
footer.site {
  background: var(--mlc-deep-navy); color: rgba(250,246,240,0.82);
  padding: clamp(3rem, 6vw, 5rem) 0 2rem;
  font-size: 1rem;
}
footer.site .cols {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: clamp(1rem, 4vw, 3rem); margin-bottom: 3rem;
}
footer.site h5 { color: var(--mlc-ivory); font-family: 'Antic Didone', serif; font-size: 1.2rem; margin-bottom: 1rem; }
footer.site strong { color: var(--mlc-ivory); }
footer.site a { color: var(--mlc-ivory); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.15s; }
footer.site a:hover { border-bottom-color: var(--mlc-brass); }
/* Webjects credit  -  ghost border only, no brass underline (higher specificity than footer.site a:hover) */
footer.site .wjx-credit a:hover { border-bottom-color: transparent; }
footer.site ul { list-style: none; margin: 0; padding: 0; }
footer.site ul li { margin-bottom: 0.5rem; }
footer.site .footer-logo { max-height: 48px; margin-bottom: 1rem; filter: brightness(0) invert(1); opacity: 0.9; width: auto; }
footer.site .small { font-size: 0.875rem; color: rgba(250,246,240,0.6); padding-top: 1.5rem; border-top: 1px solid rgba(250,246,240,0.15); }
footer.site .small p { margin: 0 0 1.5rem; max-width: none; }
footer.site .footer-bottom-row { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 0.375rem 2rem; margin-top: 0; padding-top: 0.75rem; border-top: 1px solid rgba(250,246,240,0.09); }
footer.site .footer-copy { font-size: 0.78rem; color: rgba(250,246,240,0.65); }
footer.site .footer-legal-links { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; align-items: center; }
footer.site .footer-legal-links a { font-size: 0.78rem; color: rgba(250,246,240,0.6); padding-block: 0.75rem; display: inline-block; }
footer.site .footer-legal-links a:hover { color: var(--mlc-brass); }

footer.site--minimal .cols { grid-template-columns: 1fr; }
footer.site--minimal .cols > div:not(:first-child) { display: none; }

/* Footer accordion menus  -  open in HTML, JS collapses on mobile ≤520px */
footer.site .footer-accordion { margin: 0; }
footer.site .footer-accordion summary {
  list-style: none; -webkit-list-style: none;
  font-family: 'Antic Didone', serif; font-size: 1.2rem;
  color: var(--mlc-ivory); margin-bottom: 1rem;
  cursor: default; pointer-events: none;
  display: block;
}
footer.site .footer-accordion summary::-webkit-details-marker { display: none; }
footer.site .footer-accordion summary::marker { display: none; }
@media (max-width: 520px) {
  footer.site .footer-accordion summary {
    pointer-events: auto; cursor: pointer;
    padding: 0.6rem 0;
    border-bottom: 1px solid rgba(250,246,240,0.15);
    margin-bottom: 0;
    display: flex; justify-content: space-between; align-items: center;
  }
  footer.site .footer-accordion summary::after {
    content: '';
    width: 14px; height: 14px; flex: none;
    background:
      linear-gradient(rgba(250,246,240,0.6), rgba(250,246,240,0.6)) center / 14px 2px no-repeat,
      linear-gradient(rgba(250,246,240,0.6), rgba(250,246,240,0.6)) center / 2px 14px no-repeat;
  }
  footer.site .footer-accordion[open] summary::after {
    background: linear-gradient(rgba(250,246,240,0.6), rgba(250,246,240,0.6)) center / 14px 2px no-repeat;
  }
  footer.site .footer-accordion[open] > ul { padding-top: 0.5rem; padding-bottom: 0.25rem; }
  footer.site .footer-accordion ul li { margin-bottom: 0.35rem; }
}

/* Template debug banner */
.mlc-template-banner {
  background: var(--mlc-brass); color: var(--mlc-deep-navy);
  padding: 0.6rem 0; text-align: center;
  font-family: 'Lato', sans-serif; font-size: 0.82rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.08em;
}

/* -- 7. SUB-MODE A: PHOTOGRAPHIC ANCHOR ----------------------- */
.mlc-hero-full {
  position: relative; width: 100vw;
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  min-height: clamp(540px, 72dvh, 780px);
  overflow: hidden; display: flex; align-items: center;
}
.mlc-hero-full::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(11,25,44,0.85) 0%, rgba(11,25,44,0.6) 45%, rgba(11,25,44,0.25) 100%);
  z-index: 1;
}
.mlc-hero-full .bg { position: absolute; inset: 0; z-index: 0; }
.mlc-hero-full .bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.mlc-hero-full .bg video { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.mlc-hero-full .content {
  position: relative; z-index: 2;
  padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 5vw, 5rem) clamp(3rem, 7vw, 6rem) 0;
  color: var(--mlc-ivory); max-width: 1080px;
  margin: 0 auto 0 max(2rem, calc((100vw - 1400px) / 2 + 2rem));
}
.mlc-hero-full .mlc-label { color: var(--mlc-brass); opacity: 1; margin-bottom: 0.75rem; }
.mlc-label-chip { font-size: 0.7em; letter-spacing: 0.04em; opacity: 1; }
.mlc-hero-full h1 {
  font-family: 'Antic Didone', serif; font-weight: 400;
  font-size: clamp(2.5rem, 4vw, 3.5rem); line-height: 1.05;
  margin: 0 0 1.25rem; color: var(--mlc-ivory); letter-spacing: -0.015em; max-width: 18ch;
}
.mlc-hero-full h1 em { font-style: normal; color: var(--mlc-ivory); }
.mlc-hero-h1-br { display: none; }
.mlc-hero-full p.lead { color: rgba(250,246,240,0.92); font-size: clamp(0.92rem, 1.05vw, 1.02rem); line-height: 1.55; margin: 0 0 2rem; max-width: 56ch; }
.mlc-hero-full .ctas { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.mlc-hero-full .microcopy { color: rgba(250,246,240,0.78); font-size: 0.9rem; margin: 1.25rem 0 0; max-width: 48ch; }
.mlc-hero-full .microcopy strong { color: var(--mlc-ivory); font-weight: 700; }

/* Photographic anchor (mlc-anchor) */
.mlc-anchor {
  position: relative; border-radius: 14px; overflow: hidden;
  aspect-ratio: 21 / 9;
  box-shadow: 0 20px 60px rgba(17,35,55,0.15), 0 4px 16px rgba(17,35,55,0.08);
  display: flex; align-items: flex-end;
}
.mlc-anchor img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
/* chip-vs-dpa hero  -  centre on subjects' faces */
.page-id-985 .mlc-anchor img { object-position: center 50%; }
.mlc-anchor figcaption {
  position: relative; z-index: 2; padding: 2rem; width: 100%;
  background: linear-gradient(to top, rgba(11,25,44,0.85) 0%, transparent 100%);
  color: var(--mlc-ivory); font-family: 'Antic Didone', serif;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem); line-height: 1.3;
}
/* Compare pages  -  tighten figcaption text so long headings don't stretch full width.
   width: 100% preserved so gradient spans the full image base; padding-right
   constrains the text column without clipping the overlay. */
.page-id-983 .mlc-anchor figcaption,
.page-id-984 .mlc-anchor figcaption,
.page-id-985 .mlc-anchor figcaption {
  font-size: clamp(1rem, 1.8vw, 1.4rem);
  padding-right: clamp(2rem, 30%, 36%);
  text-wrap: balance;
}
/* Video anchor variant  -  coats / hallway band */
.mlc-coat-band { padding: 0; }
.mlc-coat-band .mlc-anchor { border-radius: 0; box-shadow: none; aspect-ratio: 21 / 8; margin-bottom: 0; }
.mlc-anchor--video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.mlc-band-title { font-family: 'Lato', sans-serif; font-size: clamp(0.7rem, 1vw, 0.85rem); color: var(--mlc-brass); letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; margin: 0 0 0.6em; }
.mlc-band-sub { font-family: 'Antic Didone', serif; font-size: clamp(2rem, 4.5vw, 3.5rem); color: var(--mlc-ivory); line-height: 1.1; margin: 0; }

/* Statement break */
.mlc-statement {
  position: relative; min-height: clamp(360px, 48vh, 500px);
  overflow: hidden; border-radius: 14px;
  display: flex; align-items: center;
  padding: clamp(2.5rem, 6vw, 5rem); color: var(--mlc-ivory);
  box-shadow: 0 20px 60px rgba(17,35,55,0.18), 0 4px 16px rgba(17,35,55,0.08);
}
.mlc-statement::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(11,25,44,0.8) 0%, rgba(11,25,44,0.5) 65%, rgba(11,25,44,0.2) 100%);
  z-index: 1;
}
.mlc-statement .bg { position: absolute; inset: 0; z-index: 0; }
.mlc-statement .bg img,
.mlc-statement .bg video { width: 100%; height: 100%; object-fit: cover; object-position: center; }
/* Video statement variant  -  bottom-aligned text, subtle corner gradient */
.mlc-statement--video { align-items: flex-end; padding: clamp(1.25rem, 2vw, 1.75rem) clamp(1.25rem, 2vw, 1.75rem) 0.65rem; }
.mlc-statement--video::before {
  background: linear-gradient(to top right, rgba(11,25,44,0.65) 0%, transparent 58%);
}
.mlc-statement--video h2 { color: var(--mlc-ivory); font-size: clamp(1.6rem, 2.5vw, 1.95rem); line-height: 1.2; margin-bottom: 0; }
.mlc-statement .content { position: relative; z-index: 2; max-width: 580px; }
.mlc-statement .mlc-label { color: var(--mlc-brass); margin-bottom: 0.5rem; }
.mlc-statement h2 { color: var(--mlc-ivory); font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.12; margin-bottom: 1rem; letter-spacing: -0.01em; max-width: 18ch; }
.mlc-statement p { color: rgba(250,246,240,0.9); font-size: clamp(1rem, 1.5vw, 1.1rem); max-width: 42ch; margin-bottom: 1.75rem; }

/* Caption strip */
.mlc-caption-strip {
  background: var(--mlc-stone); padding: clamp(2rem, 4vw, 3rem);
  border-radius: 12px; text-align: center;
  font-family: 'Antic Didone', serif; font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  line-height: 1.3; color: var(--mlc-navy); max-width: 60ch; margin: 2rem auto 0;
}

/* Split (image + text) */
.mlc-split { display: grid; grid-template-columns: 1fr 1.35fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
.mlc-split.reverse { grid-template-columns: 1.35fr 1fr; }
.mlc-split-image {
  border-radius: 14px; overflow: hidden; aspect-ratio: 4 / 5;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2), 0 4px 16px rgba(0,0,0,0.12); background: var(--mlc-stone);
}
.mlc-split-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* Video section */
/* Promo video section (section④  -  deep navy block after How the Plan works) */
.mlc-promo-video-section h2 { color: var(--mlc-ivory); }
.mlc-promo-video-section p.lead { color: rgba(250,246,240,0.82); }
.mlc-video-wrap {
  margin-top: 2.5rem;
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,0.5), 0 8px 24px rgba(0,0,0,0.3);
  background: #000; aspect-ratio: 16 / 9; position: relative;
}
.mlc-video-wrap video { width: 100%; height: 100%; display: block; object-fit: cover; }

.mlc-video-section { position: relative; overflow: hidden; }
.mlc-video-section::after {
  content: ''; position: absolute; inset: auto 0 0 0; height: 40%;
  background: linear-gradient(to top, rgba(11,25,44,0.8) 0%, transparent 100%);
  pointer-events: none; z-index: 1;
}
.mlc-video-caption {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 2;
  padding: 0 0 clamp(2rem, 5vw, 4rem);
}
.mlc-video-eyebrow {
  font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.875rem;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--mlc-brass);
  display: block; margin-bottom: 0.5rem;
}
.mlc-video-lockup {
  font-family: 'Antic Didone', serif;
  font-size: clamp(2rem, 4vw, 2.5rem); line-height: 1.1;
  color: var(--mlc-ivory); margin: 0; max-width: 22ch;
}
.mlc-video-bg {
  display: block; width: 100%; height: clamp(340px, 55vh, 620px);
  object-fit: cover; object-position: center;
}

/* Pullquote (full-width maroon rules  -  founder story, case study body) */
.mlc-pullquote {
  margin: 3.5rem 0;
  padding: 2rem 0;
  border-top: 1px solid var(--mlc-line); border-bottom: 1px solid var(--mlc-line);
  font-family: 'Antic Didone', serif; font-size: clamp(1.5rem, 2.4vw, 1.9rem);
  line-height: 1.35; color: var(--mlc-navy); max-width: none;
}
.mlc-pullquote cite { display: block; margin-top: 1.25rem; font-family: 'Lato', sans-serif; font-style: normal; font-weight: 700; font-size: 0.78rem; color: var(--mlc-maroon); text-transform: uppercase; letter-spacing: 0.1em; }

/* Scene break (editorial image)  -  position:relative so caption overlays correctly */
.mlc-scene-break {
  margin: 3.5rem 0; aspect-ratio: 21/9; border-radius: 14px; overflow: hidden;
  position: relative;
  box-shadow: 0 20px 60px rgba(17,35,55,0.14), 0 4px 16px rgba(17,35,55,0.06);
}
.mlc-scene-break img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mlc-scene-break::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(11,25,44,0.78) 0%, rgba(11,25,44,0.08) 55%, transparent 100%);
}
.mlc-scene-break .cap {
  position: absolute; bottom: 1.75rem; left: 2rem; z-index: 2;
  color: var(--mlc-ivory); font-family: 'Antic Didone', serif;
  font-size: clamp(1rem, 1.8vw, 1.25rem); line-height: 1.2;
  max-width: 52ch;
}

/* Founder story hero */
.mlc-fs-hero { padding: 0; }
.mlc-fs-hero-inner {
  position: relative; min-height: clamp(440px, 60vh, 600px);
  display: flex; align-items: flex-end; overflow: hidden;
}
.mlc-fs-hero-inner .bg { position: absolute; inset: 0; z-index: 0; }
.mlc-fs-hero-inner .bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.mlc-fs-hero-inner::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to top,
    rgba(11,25,44,0.92) 0%,
    rgba(11,25,44,0.85) 20%,
    rgba(11,25,44,0.72) 45%,
    rgba(11,25,44,0.65) 60%,
    rgba(11,25,44,0.22) 76%,
    transparent 92%
  );
}
.mlc-fs-hero-content {
  position: relative; z-index: 2;
  padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4rem); max-width: 800px;
}
.mlc-fs-hero-content .mlc-label { color: var(--mlc-brass); }
.mlc-fs-hero-content h1 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(2.5rem, 4vw, 3.5rem); line-height: 1.05; color: var(--mlc-ivory); margin: 0.5rem 0 1rem; max-width: 18ch; letter-spacing: -0.01em; }
.mlc-fs-hero-content p { color: rgba(250,246,240,0.92); font-size: 1.125rem; max-width: 56ch; margin: 0; }

/* Founder story body */
.mlc-fs-body { padding-block: clamp(3rem, 5vw, 4rem); }
.mlc-fs-body h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); margin: 2.5rem 0 1rem; max-width: 24ch; color: var(--mlc-navy); }
.mlc-fs-body p { font-size: 1.0625rem; line-height: 1.75; margin: 0 0 1.25rem; max-width: 62ch; color: var(--mlc-navy); }
.mlc-fs-body p.lead { font-size: 1.25rem; line-height: 1.5; max-width: 60ch; color: var(--mlc-soft-ink); }

/* Case study hero */
.mlc-cs-hero { padding: 0; }
.mlc-cs-hero-inner {
  position: relative; min-height: clamp(440px, 60vh, 600px);
  display: flex; align-items: flex-end; overflow: hidden;
}
.mlc-cs-hero-inner .bg { position: absolute; inset: 0; z-index: 0; }
.mlc-cs-hero-inner .bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.mlc-cs-hero-inner::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(17,35,55,0.85) 0%, rgba(90,10,25,0.5) 50%, rgba(72,142,142,0.3) 100%);
  z-index: 1;
}
.mlc-cs-hero-content { position: relative; z-index: 2; padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4rem); max-width: 800px; }
.mlc-cs-hero-content .mlc-label { color: var(--mlc-brass); }
.mlc-cs-hero-content h1 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(2.25rem, 4vw, 3rem); line-height: 1.05; color: var(--mlc-ivory); margin: 0.5rem 0 1rem; max-width: 22ch; letter-spacing: -0.01em; }
.mlc-cs-hero-content p { color: rgba(250,246,240,0.92); font-size: 1.125rem; max-width: 56ch; margin: 0; }

/* Case study metadata strip */
.mlc-cs-card-strip { background: var(--mlc-stone); padding: 2rem 0; border-bottom: 1px solid var(--mlc-line); }
.mlc-cs-card-strip .grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 3vw, 2rem); align-items: start; }
.mlc-cs-cell { padding: 0 clamp(1rem, 2vw, 2rem); border-right: 1px solid var(--mlc-line); }
.mlc-cs-cell:last-child { border-right: none; }
.mlc-cs-cell .mlc-label { font-size: 0.72rem; margin-bottom: 0.25rem; }
.mlc-cs-cell .value { font-family: 'Antic Didone', serif; font-size: 1.3rem; color: var(--mlc-navy); line-height: 1.3; }

/* Case study body */
.mlc-cs-body { padding: clamp(3rem, 5vw, 4rem) 0; }
.mlc-cs-body h2 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.15; margin: 2.5rem 0 1rem; max-width: 26ch; }
.mlc-cs-body p { font-size: 1.0625rem; line-height: 1.75; margin: 0 0 1.25rem; max-width: 62ch; color: var(--mlc-navy); }
.mlc-cs-body p.lead { font-size: 1.25rem; color: var(--mlc-soft-ink); max-width: 60ch; }

.mlc-cs-scene { margin: 2.5rem 0; aspect-ratio: 21/9; border-radius: 14px; overflow: hidden; box-shadow: 0 20px 60px rgba(17,35,55,0.12); display: flex; align-items: flex-end; }
.mlc-cs-scene img { width: 100%; height: 100%; object-fit: cover; }
.mlc-cs-scene .cap { background: rgba(11,25,44,0.85); color: var(--mlc-ivory); padding: 0.5rem 1rem; border-radius: 6px; font-family: 'Antic Didone', serif; font-size: 1.1rem; line-height: 1.3; margin: 0 1.5rem 1.5rem; }

.mlc-cs-quote { margin: 2.5rem 0; padding: 2rem; border-top: 2px solid var(--mlc-maroon); border-bottom: 2px solid var(--mlc-maroon); font-family: 'Antic Didone', serif; font-size: clamp(1.4rem, 2.4vw, 1.8rem); line-height: 1.3; color: var(--mlc-navy); max-width: none; }
.mlc-cs-quote cite { display: block; margin-top: 1rem; font-family: 'Lato', sans-serif; font-style: normal; font-weight: 700; font-size: 0.85rem; color: var(--mlc-soft-ink); }

.mlc-disclosure { background: var(--mlc-stone); border-radius: 10px; padding: 1.25rem 1.5rem; margin: 2rem 0; font-size: 0.95rem; line-height: 1.55; }
.mlc-disclosure strong { color: var(--mlc-maroon); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; display: block; margin-bottom: 0.4rem; }
.mlc-disclosure p { font-size: 0.95rem; max-width: none; margin: 0; }

/* -- 8. SUB-MODE B: STRUCTURED CARD ---------------------------- */

/* Page title bar (stone hero for sub-mode B pages) */
.mlc-page-header {
  background: var(--mlc-stone);
  padding: clamp(3rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3rem);
  border-bottom: 1px solid var(--mlc-line);
}
.mlc-page-header h1 { font-size: clamp(2.25rem, 3.8vw, 3rem); line-height: 1.1; margin: 0.5rem 0 1rem; max-width: 22ch; }
.mlc-page-header p.lead { font-size: 1.25rem; line-height: 1.5; max-width: 60ch; color: var(--mlc-soft-ink); }
/* Anchor image that sits directly below a page-header  -  needs breathing room from the border-bottom line */
.mlc-page-header + .container { margin-top: clamp(2.5rem, 5vw, 4rem); }

/* Anchored sub-nav */
.mlc-anchored-nav {
  background: var(--mlc-ivory); border-bottom: 1px solid var(--mlc-line);
  position: sticky; top: var(--mlc-header-h, 84px); z-index: var(--z-subnav); padding: 0.85rem 0;
}
.mlc-anchored-nav .inner { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; align-items: center; }
.mlc-anchored-nav .nav-label { font-weight: 700; font-size: 0.85rem; color: var(--mlc-soft-ink); text-transform: uppercase; letter-spacing: 0.06em; margin-right: 0.5rem; }
.mlc-anchored-nav a { color: var(--mlc-navy); font-weight: 700; font-size: 0.95rem; text-decoration: none; padding: 0.25rem 0; border-bottom: 2px solid transparent; transition: color 0.15s, border-color 0.15s; }
.mlc-anchored-nav a:hover { color: var(--mlc-maroon); border-bottom-color: var(--mlc-maroon); }
.mlc-anchored-nav a.active { color: var(--mlc-maroon); border-bottom-color: var(--mlc-maroon); }

/* Trust strip */
.mlc-trust-strip { background: var(--mlc-stone); padding: 1.8rem 0; border-bottom: 1px solid var(--mlc-line); }
.mlc-trust-strip .grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 3vw, 2rem); align-items: center; }
.mlc-trust-tile .mlc-label { font-size: 0.72rem; color: var(--mlc-maroon); margin-bottom: 0.4rem; }
.mlc-trust-tile p { font-size: clamp(0.95rem, 1.3vw, 1rem); line-height: 1.45; color: var(--mlc-navy); margin: 0; font-weight: 700; }
.mlc-trust-tile + .mlc-trust-tile { border-left: 1px solid var(--mlc-line); padding-left: clamp(1rem, 2vw, 2rem); }

/* Cards */
.mlc-card {
  background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 12px;
  padding: clamp(1.5rem, 2.5vw, 2rem);
  box-shadow: 0 1px 3px rgba(17,35,55,0.04), 0 4px 20px rgba(17,35,55,0.03);
  transition: transform 0.15s cubic-bezier(0.16,1,0.3,1), box-shadow 0.15s;
}
.mlc-card:hover { transform: translateY(-2px); box-shadow: 0 2px 6px rgba(17,35,55,0.06), 0 8px 30px rgba(17,35,55,0.05); }
.mlc-card .mlc-label { font-size: 0.72rem; }
.mlc-card h3 { font-family: 'Antic Didone', serif; font-size: clamp(1.25rem, 2vw, 1.4rem); color: var(--mlc-navy); margin: 0.6rem 0 0.8rem; line-height: 1.25; }
.mlc-card p { font-size: 1rem; line-height: 1.55; color: var(--mlc-soft-ink); margin: 0; }

.mlc-card-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2rem; }
.mlc-card-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2rem; }

/* Step component (how-chip-works) */
.mlc-step-section { padding: clamp(3rem, 6vw, 5rem) 0; }
.mlc-step-section + .mlc-step-section { border-top: 1px solid var(--mlc-line); }
.mlc-step-header { display: flex; align-items: center; gap: clamp(1rem, 2vw, 1.5rem); margin-bottom: 2rem; }
.mlc-step__badge {
  width: 72px; height: 72px; border-radius: 50%; flex: none;
  background: var(--mlc-maroon); color: var(--mlc-ivory);
  font-family: 'Antic Didone', serif; font-size: 2rem; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  border: 3px solid var(--mlc-brass); box-shadow: 0 2px 10px rgba(74,20,34,0.2);
}
.mlc-step__title { display: flex; flex-direction: column; gap: 0.15rem; }
.mlc-step__eyebrow {
  font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.78rem;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--mlc-brass-deep); display: block;
}
.mlc-step-header h2 {
  margin: 0; font-family: 'Antic Didone', serif; font-weight: 400;
  font-size: clamp(2rem, 3.4vw, 2.75rem); line-height: 1.1;
  color: var(--mlc-navy); max-width: 24ch;
}
.mlc-step-body { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.mlc-step-body p { font-size: 1.0625rem; line-height: 1.7; margin-bottom: 1.1rem; max-width: 60ch; }
.mlc-step-aside .mlc-card h3 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: 1.25rem; color: var(--mlc-navy); margin-bottom: 0.5rem; }
.mlc-step-aside .mlc-card p { font-size: 0.95rem; line-height: 1.55; color: var(--mlc-soft-ink); margin: 0; }
/* Step editorial image — sits inside the aside card, above the label */
figure.mlc-step-image { margin: 0 0 1.25rem; overflow: hidden; border-radius: 8px; }
figure.mlc-step-image img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }

/* Panel emphasis (within steps) */
.mlc-panel-emphasis { background: var(--mlc-stone); border: 1px solid var(--mlc-line); border-radius: 12px; padding: 1.5rem 1.75rem; margin: 1.5rem 0; }
.mlc-panel-emphasis p { margin: 0; font-size: 1rem; line-height: 1.55; max-width: none; }
.mlc-panel-emphasis .panel-head { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--mlc-maroon); margin-bottom: 0.4rem; }

/* Steps grid (home page 4-step) */
.mlc-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-top: 2.5rem; position: relative; }
.mlc-steps::before { content: ''; position: absolute; top: 32px; left: 8%; right: 8%; height: 2px; background: var(--mlc-brass); z-index: 0; }
.mlc-step { position: relative; z-index: 1; }
.mlc-step-num { font-family: 'Antic Didone', serif; font-size: 2.25rem; line-height: 1; color: var(--mlc-ivory); background: var(--mlc-maroon); width: 70px; height: 70px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 3px solid var(--mlc-brass); margin-bottom: 1.2rem; box-shadow: 0 2px 10px rgba(74,20,34,0.2); }
/* section.section--stone .mlc-step-num override removed  -  maroon badge applies everywhere */
.mlc-step h4 { font-family: 'Antic Didone', serif; font-size: clamp(1.2rem, 1.8vw, 1.35rem); color: var(--mlc-navy); font-weight: 400; margin-bottom: 0.5rem; }
.mlc-step p { font-size: 1rem; line-height: 1.55; color: var(--mlc-soft-ink); margin: 0; }

/* Binary two-col (standard vs third way) */
/* Section header 2-col (text + image) used by #how-it-works header band.
   Per original Claude Design prototype. Mobile collapses to single column. */
.how-header {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
  margin-bottom: clamp(2rem, 4vw, 3.25rem);
}
.how-header > div:first-child { min-width: 0; }
.how-header-image {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--mlc-stone);
}
.how-header-image img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: opacity 240ms ease;
}
.how-header-image img:not(.loaded) { opacity: 0; }
@media (max-width: 768px) {
  .how-header { grid-template-columns: 1fr; gap: 1.5rem; }
  .how-header-image { aspect-ratio: 16 / 9; }
}

.mlc-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; margin-top: 2rem; }
.mlc-two-col > div { padding: clamp(1.5rem, 3vw, 2rem); border-radius: 12px; }
.mlc-two-col .standard { background: var(--mlc-ivory); border: 1px solid var(--mlc-line); }
.mlc-two-col .third-way { background: var(--mlc-teal-dark); color: var(--mlc-ivory); box-shadow: 0 10px 40px rgba(58,116,116,0.28); }
.mlc-two-col .third-way h3,
.mlc-two-col .third-way strong { color: var(--mlc-ivory); }
.mlc-two-col .third-way p { color: rgba(255,255,255,0.94); }
.mlc-two-col h3 { margin-bottom: 1rem; font-size: clamp(1.3rem, 2vw, 1.55rem); }
.mlc-two-col ul { list-style: none; margin: 0 0 1rem; padding: 0; }
.mlc-two-col ul li { padding-left: 1.5rem; position: relative; margin-bottom: 0.6rem; font-size: 1rem; line-height: 1.5; }
.mlc-two-col ul li::before { content: '-'; position: absolute; left: 0; color: var(--mlc-maroon); font-weight: 700; font-size: 1.4em; line-height: 0.9; }
.mlc-two-col .third-way ul li::before { color: rgba(255,255,255,0.9); }
.mlc-two-col .third-way ul li { color: rgba(255,255,255,0.96); }

/* Comparison face-off (chip-vs-* pages) */
.mlc-face-off { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--mlc-line); border-radius: 12px; overflow: hidden; }
.mlc-face-off > div { padding: clamp(1.5rem, 3vw, 2.25rem); }
.mlc-face-off .chip { background: var(--mlc-chip-tint); border-right: 1px solid var(--mlc-line); position: relative; }
.mlc-face-off .chip::before { content: 'Our route'; position: absolute; top: -1px; left: -1px; background: var(--mlc-maroon); color: var(--mlc-ivory); padding: 4px 12px; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; border-bottom-right-radius: 6px; font-family: 'Lato', sans-serif; }
.mlc-face-off .alt { background: var(--mlc-ivory); }
.mlc-face-off h3 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: 1.625rem; margin: 1.5rem 0 1rem; color: var(--mlc-navy); }
.mlc-face-off h4 { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--mlc-soft-ink); text-transform: uppercase; letter-spacing: 0.06em; margin: 1.25rem 0 0.5rem; }
.mlc-face-off p { font-size: 1rem; line-height: 1.6; margin: 0 0 0.75rem; max-width: none; }

/* When-each-fits grid */
.mlc-when-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 3rem); margin-top: 2rem; }
.mlc-when-grid > div { padding: 1.75rem; background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 12px; }
.mlc-when-grid h3 { font-size: 1.4rem; margin: 0 0 1rem; color: var(--mlc-navy); }
.mlc-when-grid ul { margin: 0 0 0 1.25rem; padding: 0; }
.mlc-when-grid li { font-size: 1rem; line-height: 1.6; margin-bottom: 0.6rem; }

/* Regulatory callout (amber border) */
.mlc-reg-callout { background: var(--mlc-stone); border: 1px solid var(--mlc-amber); border-radius: 10px; padding: 1.25rem 1.5rem; margin: 2rem 0; }
.mlc-reg-callout .callout-head { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--mlc-amber); display: block; margin-bottom: 0.4rem; }
.mlc-reg-callout p { margin: 0; font-size: 1rem; line-height: 1.55; }

/* Comparison table */
.mlc-compare-wrap { margin-top: 2rem; overflow-x: auto; border-radius: 12px; box-shadow: 0 2px 12px rgba(17,35,55,0.05); }
.mlc-compare { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 1rem; background: var(--mlc-ivory); min-width: 680px; }
.mlc-compare thead th:first-child { width: 26%; }
.mlc-compare thead th:not(:first-child) { width: 18.5%; }
.mlc-compare th, .mlc-compare td { padding: 0.9rem 1rem; text-align: left; border-bottom: 1px solid var(--mlc-line); vertical-align: top; word-wrap: break-word; }
.mlc-compare thead th { background: var(--mlc-stone); color: var(--mlc-navy); font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em; }
.mlc-compare thead th.chip-col { background: var(--mlc-maroon); color: var(--mlc-ivory); }
.mlc-compare tbody td:first-child { font-weight: 700; color: var(--mlc-navy); }
.mlc-compare tbody td.chip-col { background: var(--mlc-chip-tint); border-left: 2px solid var(--mlc-maroon); border-right: 2px solid var(--mlc-maroon); font-weight: 700; }
.mlc-compare tbody tr:last-child td { border-bottom: none; }
.mlc-compare tbody tr:last-child td.chip-col { border-bottom: 2px solid var(--mlc-maroon); }
.mlc-tick { color: var(--mlc-sage); font-weight: 700; }
.mlc-dash { color: var(--mlc-soft-ink); }
.mlc-compare-footnote { font-size: 0.9rem; color: var(--mlc-soft-ink); margin-top: 1.5rem; max-width: 70ch; }

/* FAQ accordion */
.mlc-faqs-list { margin-top: 2rem; }
.mlc-faq { background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 10px; margin-bottom: 0.75rem; overflow: hidden; }
.mlc-faq[open] { box-shadow: 0 4px 20px rgba(17,35,55,0.06); }
.mlc-faq summary { cursor: pointer; padding: 1.2rem 1.6rem; font-family: 'Antic Didone', serif; font-size: clamp(1.15rem, 1.6vw, 1.35rem); color: var(--mlc-navy); list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; }
.mlc-faq summary::-webkit-details-marker { display: none; }
.mlc-faq summary::after { content: '+'; font-family: 'Lato', sans-serif; font-weight: 400; font-size: 1.4rem; color: var(--mlc-maroon); flex: none; transition: transform 0.2s; }
.mlc-faq[open] summary::after { content: '−'; }
.mlc-faq summary:hover { background: var(--mlc-stone); }
.mlc-faq summary:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: -3px; }
.mlc-faq-body { padding: 1.1rem 1.6rem 1.4rem; color: var(--mlc-soft-ink); font-size: 1rem; line-height: 1.65; border-top: 1px solid var(--mlc-line); }
.mlc-faq-body p { margin: 0 0 0.8rem; max-width: none; }
.mlc-faq-body p:last-child { margin-bottom: 0; }

/* FAQ category section */
.mlc-faq-cat { padding: clamp(2.5rem, 5vw, 4rem) 0; border-top: 1px solid var(--mlc-line); }
.mlc-faq-cat h2 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.15; margin: 0 0 0.5rem; }
.mlc-faq-cat .cat-lead { font-size: 1.125rem; color: var(--mlc-soft-ink); max-width: 60ch; margin: 0 0 1.5rem; }

/* Founder section (deep navy) */
.mlc-founder-grid { display: grid; grid-template-columns: 1fr 1.35fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
.mlc-founder-image { border-radius: 14px; overflow: hidden; aspect-ratio: 2 / 3; box-shadow: 0 20px 60px rgba(0,0,0,0.35), 0 4px 16px rgba(0,0,0,0.2); background: var(--mlc-ivory); }
.mlc-founder-image img { width: 100%; height: 100%; object-fit: cover; object-position: 65% top; }
.mlc-founder-copy h3 { font-family: 'Antic Didone', serif; font-size: clamp(1.2rem, 2vw, 1.4rem); color: var(--mlc-brass); margin-bottom: 0.5rem; }

/* Bordered founder quote */
.mlc-quote--bordered {
  border: 1px solid rgba(184,134,74,0.35); border-radius: 10px;
  padding: 1.75rem; margin: 1.75rem 0 0; font-style: normal;
  font-family: 'Antic Didone', serif; font-size: clamp(1.1rem, 1.8vw, 1.25rem); line-height: 1.4;
  color: var(--mlc-ivory); background: rgba(184,134,74,0.04);
}
.mlc-quote--bordered cite { display: block; margin-top: 0.6rem; font-family: 'Lato', sans-serif; font-size: 0.85rem; font-weight: 700; font-style: normal; color: var(--mlc-brass); }

/* Testimonial feature */
.mlc-testimonial-row { display: grid; grid-template-columns: 2fr 3fr; gap: clamp(3rem, 6vw, 5rem); align-items: center; margin-top: 0; }
.mlc-testimonial-image { border-radius: 14px; overflow: hidden; aspect-ratio: 4/5; box-shadow: 0 20px 60px rgba(17,35,55,0.12), 0 4px 16px rgba(17,35,55,0.06); background: var(--mlc-stone); }
.mlc-testimonial-image img { width: 100%; height: 100%; object-fit: cover; }
.mlc-testimonial-row blockquote { margin: 1rem 0 0; padding: 0; }
.mlc-testimonial-quote { font-family: 'Antic Didone', serif; font-size: clamp(1.5rem, 2.8vw, 2.2rem); line-height: 1.4; letter-spacing: -0.01em; color: var(--mlc-navy); margin: 0 0 1.5rem; max-width: none; }
.mlc-testimonial-cite { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.88rem; letter-spacing: 0.03em; color: var(--mlc-soft-ink); display: block; margin-bottom: 1.5rem; }
.mlc-testimonial-disclaimer { font-size: 0.82rem; color: var(--mlc-soft-ink); line-height: 1.5; margin: 0; max-width: none; }

/* Testimonial — dark section treatment */
section:has(.mlc-testimonial-row) { background: var(--mlc-deep-navy); padding: clamp(4rem, 8vw, 7rem) 0; }
section:has(.mlc-testimonial-row) .mlc-testimonial-image { border-radius: 16px; box-shadow: 0 32px 80px rgba(0,0,0,0.55), 0 6px 24px rgba(0,0,0,0.3); }
section:has(.mlc-testimonial-row) .mlc-label { color: var(--mlc-brass); letter-spacing: 0.1em; }
section:has(.mlc-testimonial-row) .mlc-testimonial-quote { color: var(--mlc-ivory); }
section:has(.mlc-testimonial-row) .mlc-testimonial-cite { color: rgba(250,246,240,0.75); letter-spacing: 0.04em; margin-bottom: 2rem; }
section:has(.mlc-testimonial-row) .mlc-cta--ghost { color: var(--mlc-ivory); box-shadow: inset 0 0 0 2px rgba(250,246,240,0.5); transition: background 0.25s cubic-bezier(0.16,1,0.3,1), color 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s cubic-bezier(0.16,1,0.3,1); }
section:has(.mlc-testimonial-row) .mlc-cta--ghost:hover { background: var(--mlc-ivory); color: var(--mlc-navy); box-shadow: inset 0 0 0 2px var(--mlc-ivory); }

/* Contact options */
.mlc-contact-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2.5rem; }
.mlc-contact-option { background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 12px; padding: clamp(1.5rem, 2.5vw, 2rem); text-align: center; text-decoration: none; color: var(--mlc-navy); transition: transform 0.15s cubic-bezier(0.16,1,0.3,1), box-shadow 0.15s; display: block; }
.mlc-contact-option:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(17,35,55,0.08); }
.mlc-contact-option .icon { width: 48px; height: 48px; background: var(--mlc-maroon); color: var(--mlc-ivory); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.mlc-contact-option.secondary .icon { background: var(--mlc-teal); }
.mlc-contact-option.tertiary .icon { background: var(--mlc-brass); }
.mlc-contact-option .icon svg { width: 22px; height: 22px; stroke: var(--mlc-ivory); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mlc-contact-option h3 { font-family: 'Antic Didone', serif; font-size: clamp(1.25rem, 2vw, 1.4rem); margin-bottom: 0.5rem; color: var(--mlc-navy); }
.mlc-contact-option .primary-line { font-weight: 700; font-size: 1.05rem; color: var(--mlc-maroon); margin: 0.4rem 0 0.6rem; }
.mlc-contact-option p { font-size: 1rem; color: var(--mlc-soft-ink); line-height: 1.5; margin: 0 auto; max-width: 30ch; }

/* Callback form layout */
.mlc-callback-form-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); margin-top: clamp(3rem, 5vw, 4rem); align-items: start; }
.mlc-callback-form-wrap h2 { font-size: 1.625rem; margin: 0 0 1rem; }
.mlc-callback-form-wrap p { font-size: 1rem; line-height: 1.65; max-width: 56ch; }

form.mlc-callback { background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 12px; padding: clamp(1.5rem, 3vw, 2rem); box-shadow: 0 1px 3px rgba(17,35,55,0.04), 0 4px 20px rgba(17,35,55,0.03); }
form.mlc-callback .field { margin-bottom: 1.25rem; }
form.mlc-callback label { display: block; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.875rem; color: var(--mlc-maroon); margin-bottom: 0.4rem; }
form.mlc-callback .help { display: block; font-size: 0.85rem; color: var(--mlc-soft-ink); margin-top: 0.3rem; }
form.mlc-callback input[type="text"],
form.mlc-callback input[type="email"],
form.mlc-callback input[type="tel"],
form.mlc-callback select,
form.mlc-callback textarea { width: 100%; font-family: 'Lato', sans-serif; font-size: 1rem; padding: 0.85rem 1rem; border: 2px solid var(--mlc-line); border-radius: 6px; background: var(--mlc-ivory); color: var(--mlc-navy); min-height: 56px; transition: border-color 0.15s; }
form.mlc-callback textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
form.mlc-callback input:focus,
form.mlc-callback select:focus,
form.mlc-callback textarea:focus { outline: 3px solid var(--mlc-brass); outline-offset: 2px; border-color: var(--mlc-maroon); }
form.mlc-callback .row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
form.mlc-callback .consent { display: flex; gap: 0.6rem; align-items: flex-start; background: var(--mlc-stone); padding: 0.85rem 1rem; border-radius: 6px; font-size: 0.9rem; line-height: 1.55; margin-bottom: 1.25rem; }
form.mlc-callback .consent input { margin-top: 0.25rem; flex: none; width: 18px; height: 18px; }
form.mlc-callback button[type="submit"] { width: 100%; min-height: 56px; background: var(--mlc-maroon); color: var(--mlc-ivory); border: none; border-radius: 8px; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 1rem; cursor: pointer; transition: background 0.15s; }
form.mlc-callback button[type="submit"]:hover { background: var(--mlc-maroon-dark); }
form.mlc-callback button[type="submit"]:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 2px; }

/* Calculator page */
.mlc-calc-embed { background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 12px; padding: clamp(1rem, 3vw, 2rem); margin: 2rem auto 0; box-shadow: 0 4px 30px rgba(17,35,55,0.07); }
.mlc-calc-embed-frame { display: flex; align-items: start; justify-content: center; color: var(--mlc-soft-ink); text-align: left; }
/* .mlc-calc-embed-frame strong { display: block; color: var(--mlc-navy); font-family: 'Antic Didone', serif; font-size: 1.5rem; font-weight: 400; margin-bottom: 0.5rem; } */

/* -- §calc-after-summary: context panel rendered after GF results -- */
.mlc-calc-after-summary { margin-top: 1.5rem; padding: 1.25rem 1.5rem; background: var(--mlc-stone); border-radius: 10px; }
.mlc-calc-after-summary__heading { font-family: 'Antic Didone', serif; font-size: 1.0625rem; font-weight: 400; color: var(--mlc-navy); line-height: 1.45; margin: 0 0 0.875rem; }
.mlc-calc-after-summary__list { list-style: none; padding: 0; margin: 0 0 0.875rem; }
.mlc-calc-after-summary__list li { position: relative; padding-left: 1.1rem; margin-bottom: 0.4rem; font-size: 0.875rem; color: var(--mlc-soft-ink); line-height: 1.55; }
.mlc-calc-after-summary__list li::before { content: ''; position: absolute; left: 0; top: 0.52em; width: 4px; height: 4px; border-radius: 50%; background: var(--mlc-maroon); }
.mlc-calc-after-summary > p { font-size: 0.875rem; color: var(--mlc-soft-ink); line-height: 1.55; margin: 0 0 0.75rem; }
.mlc-calc-after-summary > p:last-of-type { margin-bottom: 0; }
.mlc-calc-after-summary a { color: var(--mlc-maroon); }
.mlc-calc-after-summary__links { display: flex; flex-direction: column; gap: 0.375rem; padding-top: 0.75rem; margin-top: 0.875rem; border-top: 1px solid var(--mlc-line); }
.mlc-calc-after-summary__links a { font-size: 0.8rem; color: var(--mlc-soft-ink); text-decoration: none; }
.mlc-calc-after-summary__links a:hover { color: var(--mlc-navy); }

.mlc-privacy-strip { background: var(--mlc-stone); padding: 1rem 1.25rem; border-radius: 8px; margin-top: 2rem; display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.95rem; line-height: 1.55; }
.mlc-privacy-strip svg { width: 20px; height: 20px; stroke: var(--mlc-sage); fill: none; stroke-width: 2.5; flex: none; margin-top: 0.15rem; }
.mlc-calc-side { display: grid; grid-template-columns: 2fr 1fr; gap: clamp(2rem, 4vw, 3rem); margin-top: clamp(3rem, 5vw, 4rem); margin-bottom: var(--section-pad); }
.mlc-calc-side h2 { font-size: 1.625rem; margin: 0 0 1rem; }
.mlc-calc-side p { font-size: 1rem; line-height: 1.65; max-width: 60ch; }
.mlc-next-card { background: var(--mlc-deep-navy); color: var(--mlc-ivory); border-radius: 12px; padding: 2rem 1.75rem; }
.mlc-next-card h3 { color: var(--mlc-ivory); font-family: 'Antic Didone', serif; font-size: 1.4rem; margin: 0 0 0.75rem; }
.mlc-next-card p { color: rgba(250,246,240,0.88); font-size: 0.95rem; margin: 0 0 1.25rem; max-width: none; }
.mlc-next-card .mlc-label { color: var(--mlc-brass); }

/* About page */
.mlc-about-split { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.mlc-about-split-image { aspect-ratio: 4/5; border-radius: 14px; overflow: hidden; box-shadow: 0 20px 60px rgba(17,35,55,0.12), 0 4px 16px rgba(17,35,55,0.06); background: var(--mlc-stone); }
.mlc-about-split-image img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.mlc-about-split h2 { font-size: clamp(2rem, 3.4vw, 2.5rem); line-height: 1.1; margin: 0.5rem 0 1rem; }
.mlc-team-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; margin-top: 2rem; }
.mlc-team-card { background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 12px; padding: 1.75rem; text-align: left; }
.mlc-team-card .portrait { width: 100%; aspect-ratio: 1/1; border-radius: 10px; margin-bottom: 1rem; overflow: hidden; background: var(--mlc-stone); }
.mlc-team-card .portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.mlc-team-card h3 { font-family: 'Antic Didone', serif; font-size: 1.3rem; color: var(--mlc-navy); margin: 0 0 0.25rem; }
.mlc-team-card .role { font-size: 0.85rem; color: var(--mlc-maroon); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.75rem; display: block; }
.mlc-team-card p { font-size: 0.95rem; line-height: 1.55; color: var(--mlc-soft-ink); margin: 0; }
.mlc-team-card .portrait--initials { background: var(--mlc-stone); display: flex; align-items: center; justify-content: center; }
.mlc-team-card .portrait--initials span { font-family: 'Antic Didone', serif; font-size: clamp(2.2rem, 5vw, 3.5rem); color: var(--mlc-navy); letter-spacing: 0.04em; }

/* Founder card — bordered panel, portrait full-bleed left, body padded right */
.mlc-founder-card { display: grid; grid-template-columns: 380px 1fr; gap: 0; align-items: stretch; margin-top: 2.5rem; background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 16px; overflow: hidden; }
.mlc-founder-card__portrait { overflow: hidden; aspect-ratio: 4/5; background: var(--mlc-stone); }
.mlc-founder-card__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.mlc-founder-card__body { padding: 2.25rem 2.75rem; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.mlc-founder-card__body h3 { font-family: 'Antic Didone', serif; font-size: clamp(1.5rem, 2.5vw, 2.1rem); color: var(--mlc-navy); margin: 0 0 0.3rem; letter-spacing: -0.01em; }
.mlc-founder-card__role { font-size: 0.85rem; color: var(--mlc-maroon); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 1.25rem; display: block; }
.mlc-founder-card__body p { font-size: 1.05rem; line-height: 1.65; color: var(--mlc-soft-ink); margin: 0 0 2rem; max-width: 52ch; }

/* Who-chip-is-for scenarios */
.mlc-scenario-detail { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; padding: clamp(3rem, 6vw, 5rem) 0; border-top: 1px solid var(--mlc-line); }
.mlc-scenario-visual { aspect-ratio: 4/5; border-radius: 14px; overflow: hidden; box-shadow: 0 20px 60px rgba(17,35,55,0.12), 0 4px 16px rgba(17,35,55,0.06); background: var(--mlc-stone); }
.mlc-scenario-visual img { width: 100%; height: 100%; object-fit: cover; }
.mlc-scenario-detail h2 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(2rem, 3.4vw, 2.5rem); line-height: 1.1; margin: 0.5rem 0 1rem; max-width: 22ch; }
.mlc-scenario-detail p { font-size: 1.0625rem; line-height: 1.7; max-width: 60ch; }
.mlc-signals { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.mlc-signals li { padding: 0.6rem 1rem; background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 8px; font-size: 0.95rem; line-height: 1.45; color: var(--mlc-navy); }
.mlc-signals li strong { color: var(--mlc-maroon); }
.mlc-not-for {
  background: var(--mlc-stone);
  border-radius: 12px;
  padding: clamp(2rem, 4vw, 3rem);
  margin-top: 2rem;
}
.mlc-not-for h2 {
  font-size: 1.625rem;
  margin: 0 0 0.5rem;
  color: var(--mlc-navy);
}
.mlc-not-for > p {
  margin: 0 0 2rem;
  color: var(--mlc-soft-ink);
  max-width: 56ch;
}
/* Editorial rule-divided grid  -  full width of container, no max-width cap.
   2 columns separated by structural line rules, not decorative side-stripes.
   5th item (odd total) spans both columns for visual gravity. */
.mlc-not-for ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--mlc-line);
}
.mlc-not-for ul li {
  padding: 1.75rem 2rem 1.75rem 0;
  border-bottom: 1px solid var(--mlc-line);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--mlc-soft-ink);
}
/* Right-column items: left rule as structural column divider */
.mlc-not-for ul li:nth-child(even) {
  padding-left: 2rem;
  padding-right: 0;
  border-left: 1px solid var(--mlc-line);
}
/* 5th item alone in its row: span full width for added weight */
.mlc-not-for ul li:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  padding-right: 0;
  border-left: none;
}
/* Disqualifier heading  -  maroon block element above body text */
.mlc-not-for ul li strong {
  display: block;
  font-family: 'Lato', sans-serif;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--mlc-maroon);
  margin-bottom: 0.4rem;
}

/* -- 9. SUB-MODE B: NEWS TEMPLATES ---------------------------- */
.mlc-news-hero { padding: clamp(2.5rem, 5vw, 4rem) 0 0; }
.mlc-news-meta { font-size: 0.875rem; color: var(--mlc-soft-ink); margin-bottom: 0.75rem; }
.mlc-news-meta a { color: var(--mlc-maroon); text-decoration: none; }
.mlc-news-meta a:hover { text-decoration: underline; }
.mlc-news-h1 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(2.25rem, 4vw, 3rem); line-height: 1.1; margin: 0.5rem 0 1.25rem; max-width: 26ch; color: var(--mlc-navy); }
.mlc-news-strap { font-size: 1.25rem; line-height: 1.5; color: var(--mlc-soft-ink); max-width: 60ch; margin-bottom: 2rem; }
.mlc-news-byline { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; padding: 1rem 0; border-top: 1px solid var(--mlc-line); border-bottom: 1px solid var(--mlc-line); margin-bottom: 2rem; font-size: 0.95rem; }
.mlc-news-byline .author { color: var(--mlc-navy); font-weight: 700; }
.mlc-news-byline .date,
.mlc-news-byline .reading-time { color: var(--mlc-soft-ink); }
.mlc-news-hero-image { margin: 0 0 clamp(2rem, 4vw, 3rem); aspect-ratio: 21/9; border-radius: 14px; overflow: hidden; box-shadow: 0 20px 60px rgba(17,35,55,0.15), 0 4px 16px rgba(17,35,55,0.08); }
.mlc-news-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.mlc-news-body p { font-size: 1.0625rem; line-height: 1.75; margin: 0 0 1.25rem; max-width: 62ch; }
.mlc-news-body h2 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(1.625rem, 2.8vw, 2rem); line-height: 1.2; margin: 2.5rem 0 1rem; max-width: 28ch; }
.mlc-news-body h3 { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 1.125rem; color: var(--mlc-maroon); text-transform: none; letter-spacing: 0; margin: 2rem 0 0.5rem; }
.mlc-news-body blockquote { margin: 2rem 0; padding: 1.5rem 2rem; background: var(--mlc-stone); border-radius: 12px; font-family: 'Antic Didone', serif; font-size: 1.5rem; line-height: 1.35; color: var(--mlc-navy); max-width: none; border: 1px solid var(--mlc-line); }
/* Case study illustrative-scenario disclaimer */
.mlc-news-body blockquote.mlc-case-disclaimer { background: transparent; border: 1px solid var(--mlc-line); border-radius: 8px; padding: 0.875rem 1.25rem 0.875rem 1.25rem; font-family: 'Lato', sans-serif; font-size: 0.83rem; line-height: 1.65; color: var(--mlc-soft-ink); margin: 0 0 2.5rem; }
.mlc-news-body blockquote.mlc-case-disclaimer::before { content: 'Illustrative scenario'; display: block; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--mlc-brass); margin-bottom: 0.4rem; }
.mlc-news-body blockquote.mlc-case-disclaimer em { font-style: normal; }
.mlc-news-body blockquote cite { display: block; margin-top: 0.75rem; font-family: 'Lato', sans-serif; font-style: normal; font-size: 0.9rem; font-weight: 700; color: var(--mlc-soft-ink); }
.mlc-news-body ul { margin: 0 0 1.25rem 1.25rem; max-width: 60ch; }
.mlc-news-body ul li { font-size: 1.0625rem; line-height: 1.65; margin-bottom: 0.4rem; }
.mlc-news-figure { margin: 2rem 0; }
.mlc-news-figure .frame { aspect-ratio: 16/10; border-radius: 12px; overflow: hidden; }
.mlc-news-figure .frame img { width: 100%; height: 100%; object-fit: cover; }
.mlc-news-figure figcaption { font-family: 'Antic Didone', serif; font-size: 1.05rem; color: var(--mlc-soft-ink); margin-top: 0.75rem; text-align: center; }
.mlc-news-tail { padding: clamp(3rem, 5vw, 4rem) 0; background: var(--mlc-stone); border-top: 1px solid var(--mlc-line); margin-top: 3rem; }
.mlc-news-tail h2 { font-size: 1.5rem; margin: 0 0 1rem; }
.mlc-related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 1rem; }
.mlc-related-card { background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 12px; overflow: hidden; padding: 0; text-decoration: none; color: inherit; transition: transform 0.15s cubic-bezier(0.16,1,0.3,1), box-shadow 0.15s; display: flex; flex-direction: column; }
.mlc-related-card:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(17,35,55,0.06); }
.mlc-related-card__img { display: block; flex-shrink: 0; aspect-ratio: 3 / 2; overflow: hidden; }
.mlc-related-card__img img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.mlc-related-card__body { display: flex; flex-direction: column; padding: 1rem 1.25rem 1.25rem; flex: 1; }
.mlc-related-card__cat { display: block; font-size: 0.78rem; color: var(--mlc-maroon); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-family: 'Lato', sans-serif; }
.mlc-related-card__title { display: block; font-family: 'Antic Didone', serif; font-size: 1.15rem; margin: 0.4rem 0 0.4rem; color: var(--mlc-navy); }
.mlc-related-card__excerpt { display: block; font-size: 0.875rem; color: var(--mlc-soft-ink); margin: 0; padding-bottom: 0.875rem; }
.mlc-related-card__read { display: block; margin-top: auto; padding-top: 0.875rem; border-top: 1px solid var(--mlc-line); font-size: 0.875rem; font-weight: 700; color: var(--mlc-maroon); letter-spacing: -0.01em; transition: color 0.18s; }
.mlc-related-card:hover .mlc-related-card__read { color: var(--mlc-navy); }

/* -- 10. SUB-MODE C: EDITORIAL RESTRAINT ---------------------- */
.mlc-restraint { background: var(--mlc-ivory); }
.mlc-restraint .container-narrow { padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(3rem, 6vw, 5rem); }
.mlc-restraint h1 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: clamp(2.25rem, 3.8vw, 3rem); line-height: 1.1; color: var(--mlc-navy); margin: 0 0 1.5rem; max-width: 22ch; }
.mlc-restraint .preamble { font-size: 1.125rem; line-height: 1.65; color: var(--mlc-soft-ink); max-width: 60ch; margin: 0 0 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--mlc-line); }
.mlc-restraint h2 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: 1.625rem; line-height: 1.25; color: var(--mlc-navy); margin: 2.5rem 0 1rem; max-width: 30ch; }
.mlc-restraint h3 { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 1.125rem; line-height: 1.3; color: var(--mlc-maroon); margin: 2rem 0 0.5rem; text-transform: none; letter-spacing: 0; }
.mlc-restraint p { font-size: 1rem; line-height: 1.7; color: var(--mlc-navy); margin: 0 0 1rem; max-width: 65ch; }
.mlc-restraint p.small { font-size: 0.875rem; color: var(--mlc-soft-ink); }
.mlc-restraint ul,
.mlc-restraint ol { margin: 0 0 1.25rem 1.25rem; max-width: 60ch; }
.mlc-restraint li { font-size: 1rem; line-height: 1.65; margin-bottom: 0.4rem; }
.mlc-restraint .rule { border: none; border-top: 1px solid var(--mlc-line); margin: 2.5rem 0; }
.mlc-restraint .meta-block { background: var(--mlc-stone); border-radius: 8px; padding: 1.25rem 1.5rem; margin: 2rem 0; font-size: 0.95rem; line-height: 1.55; color: var(--mlc-navy); }
.mlc-restraint .meta-block p { max-width: none; margin: 0 0 0.4rem; font-size: 0.95rem; }
.mlc-restraint .meta-block p:last-child { margin-bottom: 0; }
.mlc-restraint .meta-block strong { color: var(--mlc-maroon); }
table.mlc-cookies { width: 100%; border-collapse: separate; border-spacing: 0; margin: 1.5rem 0 2rem; font-size: 1rem; background: var(--mlc-ivory); border: 1px solid var(--mlc-line); border-radius: 10px; overflow: hidden; }
table.mlc-cookies th,
table.mlc-cookies td { padding: 0.85rem 1rem; text-align: left; border-bottom: 1px solid var(--mlc-line); vertical-align: top; }
table.mlc-cookies thead th { background: var(--mlc-stone); color: var(--mlc-navy); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; font-family: 'Lato', sans-serif; }
table.mlc-cookies tbody tr:last-child td { border-bottom: none; }
table.mlc-cookies td code { font-family: 'Roboto Mono', Menlo, monospace; font-size: 0.85rem; background: var(--mlc-stone); padding: 1px 6px; border-radius: 3px; }

/* -- 11. LANDING PAGE COMPONENTS ------------------------------ */
.mlc-landing-pill { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(184,134,74,0.18); color: var(--mlc-brass); padding: 0.35rem 0.9rem; border-radius: 999px; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1rem; }
.mlc-landing-pill svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }
.mlc-three-up { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 4vw, 3rem); padding-top: clamp(2rem, 5vw, 3rem); }
.mlc-three-up > div { border-top: 2px solid var(--mlc-navy); padding-top: 1.25rem; }
.mlc-three-up h3 { font-family: 'Antic Didone', serif; font-weight: 400; font-size: 1.5rem; line-height: 1.25; color: var(--mlc-navy); margin: 0 0 0.5rem; }
.mlc-three-up p { font-size: 1rem; line-height: 1.55; color: var(--mlc-soft-ink); margin: 0; max-width: 36ch; }
.mlc-reassure-row { display: grid; grid-template-columns: repeat(4, auto); gap: clamp(1rem, 3vw, 2rem); align-items: center; margin-top: 2rem; padding: 1.5rem clamp(1rem, 3vw, 2rem); background: var(--mlc-stone); border: 1px solid var(--mlc-line); border-radius: 12px; }
.mlc-reassure-row .item { display: flex; align-items: center; gap: 0.6rem; font-size: 0.95rem; }
.mlc-reassure-row .item svg { width: 18px; height: 18px; stroke: var(--mlc-sage); fill: none; stroke-width: 2.5; flex: none; }
.mlc-single-quote { background: var(--mlc-stone); border-radius: 12px; padding: clamp(2rem, 4vw, 3rem); text-align: center; max-width: 56ch; margin: 0 auto; font-family: 'Antic Didone', serif; font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.3; color: var(--mlc-navy); }
.mlc-single-quote cite { display: block; margin-top: 1.5rem; font-family: 'Lato', sans-serif; font-style: normal; font-size: 0.9rem; font-weight: 700; color: var(--mlc-soft-ink); }

/* -- 12. UTILITY ----------------------------------------------- */
.mlc-compare-footnote { font-size: 0.9rem; color: var(--mlc-soft-ink); margin-top: 1.5rem; max-width: 70ch; }
.mlc-note { font-size: 0.875rem; color: var(--mlc-soft-ink); }

/* -- 13. RESPONSIVE ------------------------------------------- */
@media (max-width: 1280px) {
  .mlc-step-body { grid-template-columns: 1fr; }
  .mlc-step-body p { max-width: none; }
  .mlc-about-split { grid-template-columns: 1fr; }
  .mlc-calc-side { grid-template-columns: 1fr; }
}
@media (max-width: 1400px) {
  header.site .mlc-nav,
  header.site nav { display: none; }
  .hamburger { display: inline-flex; }
}
/* Desktop nav centering: logo left (1fr), nav true-centred (auto), CTAs right (1fr).
   Hamburger + header-phone-icon are display:none at this breakpoint, so only 3 items
   participate in grid placement. Mega panels are position:fixed  -  unaffected. */
@media (min-width: 1401px) {
  header.site .inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
  }
  header.site .logo { margin-right: 0; }
  header.site .header-cta { margin-left: 0; justify-self: end; }
}
@media (max-width: 1024px) {
  .mlc-scenario-detail { grid-template-columns: 1fr; gap: 2rem; }
  .mlc-founder-grid { grid-template-columns: 1fr; gap: 2rem; }
  .mlc-testimonial-row { grid-template-columns: 1fr; gap: 2rem; }
  .mlc-callback-form-wrap { grid-template-columns: 1fr; }
  footer.site .cols { grid-template-columns: 1fr 1fr; }
  .mlc-split,
  .mlc-split.reverse { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 768px) {
  /* not-for grid: single column on mobile */
  .mlc-not-for ul { grid-template-columns: 1fr; }
  .mlc-not-for ul li { padding: 1.25rem 0; }
  .mlc-not-for ul li:nth-child(even) { padding-left: 0; border-left: none; }
  .mlc-not-for ul li:last-child:nth-child(odd) { padding-right: 0; }

  .mlc-step__badge { width: 56px; height: 56px; font-size: 1.6rem; }
  header.site .header-cta-btn,
  header.site .phone-inline { display: none; }
  .header-phone-icon { display: inline-flex; }
  .announce { overflow: hidden; padding: 0; }
  .announce .container {
    display: inline-block; white-space: nowrap;
    padding: 0.5rem 0;
    animation: mlc-marquee 18s linear infinite;
  }
  h1 { font-size: 2.25rem; }
  h2 { font-size: 1.75rem; }
  h3 { font-size: 1.4rem; }
  .t-display { font-size: clamp(2.25rem, 7vw, 3rem); }
  .mlc-hero-full { display: block; min-height: unset; }
  .mlc-hero-full::before { display: none; }
  .mlc-hero-full .bg { position: relative; height: 220px; display: block; z-index: 2; }
  .mlc-hero-full .bg img { object-position: 38% 18%; }
  .mlc-hero-full .bg::after { content: ''; display: block; height: 4px; background: var(--mlc-maroon); position: absolute; bottom: 0; left: 0; right: 0; }
  .mlc-hero-full .content { position: relative; z-index: auto; background: var(--mlc-deep-navy); margin: 0; padding: 1.75rem 1.5rem 2rem; }
  .mlc-hero-full .mlc-label { margin-bottom: 0.25em; font-size: 0.78rem; letter-spacing: 0.05em; }
  .mlc-hero-full h1 { font-size: 1.65rem; letter-spacing: -0.02em; line-height: 1.07; margin-bottom: 0.75rem; max-width: none; color: var(--mlc-ivory); }
  .mlc-hero-h1-br { display: block; }
  .mlc-hero-full p.lead { font-size: 0.95rem; line-height: 1.5; margin-bottom: 1rem; }
  /* Mobile hero CTAs: full-width, icon beside Call text, sub on own line. */
  .mlc-hero-full .ctas { flex-direction: column; align-items: stretch; gap: 0.6rem; }
  .mlc-hero-full .ctas .mlc-cta {
    display: flex; flex-wrap: wrap; align-items: center;
    justify-content: center; padding: 10px 18px; min-height: 44px;
    font-size: 0.9rem; gap: 6px 8px; width: 100%;
  }
  .mlc-hero-full .ctas .mlc-cta .mlc-cta-icon { width: 16px; height: 16px; flex: none; }
  .mlc-hero-full .ctas .mlc-cta-stack { display: contents; }
  .mlc-hero-full .ctas .mlc-cta-stack .main { font-size: 0.95rem; font-weight: 700; }
  .mlc-hero-full .ctas .mlc-cta-stack .sub { width: 100%; text-align: center; font-size: 0.74rem; opacity: 0.88; }
  .mlc-hero-lead-extra { display: none; }
  .mlc-anchor { aspect-ratio: 16/10; }
  .mlc-steps { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .mlc-steps::before { display: none; }
  .mlc-trust-strip .grid { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
  .mlc-trust-tile + .mlc-trust-tile { border-left: none; padding-left: 0; }
  .mlc-two-col { grid-template-columns: 1fr; gap: 1.5rem; }
  .mlc-face-off { grid-template-columns: 1fr; }
  .mlc-face-off .chip { border-right: none; border-bottom: 1px solid var(--mlc-line); }
  .mlc-when-grid { grid-template-columns: 1fr; }
  .mlc-contact-options { grid-template-columns: 1fr; }
  .mlc-card-grid-3 { grid-template-columns: 1fr; }
  .mlc-card-grid-2 { grid-template-columns: 1fr; }
  .mlc-team-list { grid-template-columns: 1fr; }
  .mlc-founder-card { grid-template-columns: 1fr; }
  .mlc-founder-card__portrait { aspect-ratio: 4/3; }
  .mlc-founder-card__body { padding: 1.5rem; }
  .mlc-related { grid-template-columns: 1fr; }
  .mlc-three-up { grid-template-columns: 1fr; gap: 2rem; }
  .mlc-reassure-row { grid-template-columns: 1fr 1fr; }
  .mlc-cs-card-strip .grid { grid-template-columns: 1fr 1fr; }
  .mlc-cs-cell { border-right: none; padding: 0.5rem 0; }
  .mlc-cs-cell:nth-child(1),
  .mlc-cs-cell:nth-child(2) { padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--mlc-line); }
  .mlc-anchored-nav { display: none; }
  footer.site .cols { grid-template-columns: 1fr 1fr; }
  form.mlc-callback .row-2 { grid-template-columns: 1fr; }
  .mlc-calc-embed { padding: 0; border: none; border-radius: 0; box-shadow: none; background: transparent; }
}
@media (max-width: 520px) {
  .mlc-steps { grid-template-columns: 1fr; counter-reset: mlc-step; }
  .mlc-step { display: grid; grid-template-columns: 70px 1fr; grid-template-rows: auto auto; column-gap: 1rem; row-gap: 0; counter-increment: mlc-step; }
  .mlc-step-num { grid-column: 1; grid-row: 1; margin-bottom: 0; align-self: center; }
  .mlc-step h4 { grid-column: 2; grid-row: 1; margin-bottom: 0; align-self: center; }
  .mlc-step p { grid-column: 2; grid-row: 2; margin-top: 0.4rem; }
  .mlc-step h4::before {
    content: 'Step ' counter(mlc-step);
    display: block;
    font-family: 'Lato', sans-serif;
    font-weight: 700;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--mlc-brass);
    line-height: 1;
    margin-bottom: 0.25rem;
  }
  .mlc-trust-strip .grid { grid-template-columns: 1fr; }
  .mlc-reassure-row { grid-template-columns: 1fr; }
  .mlc-cta-stack .sub { font-size: 0.78rem; }
  .mlc-cs-card-strip .grid { grid-template-columns: 1fr; }
  footer.site .cols { grid-template-columns: 1fr; }
  .mlc-statement { padding: 2.5rem 1.5rem; }
  footer.site .footer-bottom-row { flex-direction: column; align-items: flex-start; gap: 0.375rem; }
  footer.site .footer-legal-links { gap: 0.4rem 1rem; }
}

/* -- 14. DARK-SURFACE LINK COLOURS --------------------
/* Target bare <a> tags (no class) on deep/dark sections; CTAs excluded */
.section--deep a:not([class]),
.section--statement a:not([class]) { color: var(--mlc-brass); text-decoration: underline; text-underline-offset: 3px; }
.section--deep a:not([class]):hover,
.section--statement a:not([class]):hover { color: var(--mlc-ivory); }

/* -- 15. COMPARE TABLE MOBILE SCROLL -------------------------------- */
@media (max-width: 720px) {
  .mlc-compare thead th:first-child,
  .mlc-compare tbody td:first-child {
    position: sticky; left: 0; z-index: 1;
  }
  .mlc-compare thead th:first-child { background: var(--mlc-stone); }
  .mlc-compare tbody td:first-child { background: var(--mlc-ivory); box-shadow: 4px 0 12px rgba(17,35,55,0.22); }
  .mlc-compare-wrap::after {
    content: 'Scroll to compare →';
    display: block; text-align: center;
    font-family: 'Lato', sans-serif; font-weight: 700;
    font-size: 0.72rem; text-transform: uppercase;
    letter-spacing: 0.08em; color: var(--mlc-brass);
    padding: 0.875rem 0;
  }
}

/* -- 15. COOKIES TABLE MOBILE --------------------------------- */
@media (max-width: 768px) {
  table.mlc-cookies,
  table.mlc-cookies thead,
  table.mlc-cookies tbody,
  table.mlc-cookies tr,
  table.mlc-cookies td,
  table.mlc-cookies th { display: block; }
  table.mlc-cookies thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  table.mlc-cookies tr { padding: 1rem; border-bottom: 1px solid var(--mlc-line); }
  table.mlc-cookies tbody tr:last-child { border-bottom: none; }
  table.mlc-cookies td { padding: 0.35rem 0; border-bottom: none; }
  table.mlc-cookies td::before { content: attr(data-label) ': '; font-weight: 700; color: var(--mlc-maroon); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; display: block; margin-bottom: 0.2rem; font-family: 'Lato', sans-serif; }
}

/* -- 16. REDUCED MOTION --------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none; transition: none; }
  html { scroll-behavior: auto; }
}


/* -- 17. MEGA-MENU --------------------------------------------- */
.mlc-nav-list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0; }
/* override global `li { margin-bottom: 0.4rem }` so nav items align vertically with header CTAs */
.mlc-nav-list .mlc-nav-item,
.mlc-mega__links li { margin-bottom: 0; }
.mlc-nav-item { position: relative; }
header.site .mlc-nav-list > .mlc-nav-item > .mlc-nav-link {
  color: var(--mlc-navy); font-family: 'Lato', sans-serif; font-weight: 700; font-size: 1rem;
  text-decoration: none; padding: 0.4rem 0; margin: 0 clamp(0.5rem, 1vw, 0.875rem);
  display: flex; align-items: center; gap: 0.3rem;
  transition: color 0.15s; white-space: nowrap;
}
header.site .mlc-nav-list > .mlc-nav-item > .mlc-nav-link:hover,
header.site .mlc-nav-list > .mlc-nav-item > .mlc-nav-link.active { color: var(--mlc-maroon); }
header.site .mlc-nav-list > .mlc-nav-item > .mlc-nav-link.active { text-decoration: underline; text-decoration-color: var(--mlc-maroon); text-underline-offset: 3px; text-decoration-thickness: 2px; }
header.site .mlc-nav-list > .mlc-nav-item > .mlc-nav-link:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 3px; border-radius: 2px; }
.mlc-nav-chevron { transition: transform 0.2s cubic-bezier(0.16,1,0.3,1); flex: none; stroke: currentColor; }
.mlc-nav-item--has-sub:hover .mlc-nav-chevron,
.mlc-nav-item--has-sub:focus-within .mlc-nav-chevron { transform: rotate(180deg); }

/* -- MEGA PANEL (full-width editorial) ---------------- */
.mlc-nav-panel {
  position: fixed;
  /* --mlc-header-h is updated on DOMContentLoaded, load, resize, AND scroll via mlc-chrome.js
     to header.site.getBoundingClientRect().bottom  -  always reflects actual sticky header bottom.
     Fallback 115px = announce (~30px) + header (~85px) at desktop. */
  top: var(--mlc-header-h, 115px);
  left: 50%; transform: translateX(-50%) translateY(-6px);
  width: min(var(--c-default), calc(100vw - 2rem));
  background: var(--mlc-ivory);
  border: 1px solid var(--mlc-line); border-top: none;
  border-radius: 0 0 12px 12px;
  padding: clamp(2rem, 3vw, 3rem) clamp(2rem, 3vw, 3rem) clamp(2rem, 2.5vw, 2.5rem);
  box-shadow: 0 16px 48px rgba(17,35,55,0.14), 0 4px 16px rgba(17,35,55,0.06);
  /* All panels share the same min-height so switching panels doesn't cause layout jump */
  min-height: var(--mlc-mega-h, 320px);
  opacity: 0; visibility: hidden; pointer-events: none;
  /* visibility delayed so it becomes hidden AFTER opacity finishes fading out (crossfade) */
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
  z-index: calc(var(--z-header) + 5);
}
.mlc-nav-item--has-sub.is-open .mlc-nav-panel,
.mlc-nav-item--has-sub:focus-within .mlc-nav-panel {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0);
  /* visibility shows instantly on open (no delay) */
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s;
}
.mlc-nav-item--has-sub.is-open .mlc-nav-chevron,
.mlc-nav-item--has-sub:focus-within .mlc-nav-chevron { transform: rotate(180deg); }

/* 2-col inner grid */
.mlc-mega__inner {
  display: grid; grid-template-columns: 3fr 2fr;
  gap: clamp(2rem, 4vw, 3rem); align-items: stretch;
}

/* Left: link list */
.mlc-mega__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.mlc-mega__links li { border-bottom: 1px solid var(--mlc-line); }
.mlc-mega__links li:first-child { border-top: 1px solid var(--mlc-line); }
.mlc-mega__links a {
  display: block; padding: 0.9rem 1.5rem;
  text-decoration: none; color: var(--mlc-navy);
  position: relative; transition: background 0.12s;
}
.mlc-mega__links a::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 0; background: var(--mlc-brass); opacity: 0;
  transition: width 0.15s, opacity 0.15s;
}
.mlc-mega__links a:hover::before { width: 2px; opacity: 1; }
.mlc-mega__links a:hover { background: rgba(241,235,226,0.6); }
.mlc-mega__links a:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: -3px; }
.mlc-nav-sub-title {
  display: block; font-family: 'Lato', sans-serif; font-weight: 700;
  font-size: 1.2rem; line-height: 1.3; color: var(--mlc-navy);
}
.mlc-mega__links a:hover .mlc-nav-sub-title { color: var(--mlc-maroon); }
.mlc-nav-sub-desc {
  display: block; font-size: 0.82rem; color: var(--mlc-soft-ink);
  line-height: 1.45; margin-top: 0.4rem;
  font-family: 'Lato', sans-serif; font-weight: 400;
}

/* Right: CTA image card */
.mlc-mega__cta {
  display: flex; flex-direction: column; justify-content: flex-end;
  position: relative; overflow: hidden; border-radius: 8px;
  text-decoration: none; min-height: 360px;
}
.mlc-mega__cta img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 65% top;
  transition: transform 0.4s ease;
}
.mlc-mega__cta:hover img { transform: scale(1.04); }
.mlc-mega__cta::after {
  content: ''; position: absolute; inset: 0;
  /* Stacked gradients: left→right (darker left, fade right) for text legibility on
     dominant-left CTA layouts + bottom darkening for headline contrast. */
  background:
    linear-gradient(to right, rgba(11,25,44,0.78) 0%, rgba(11,25,44,0.45) 55%, rgba(11,25,44,0.18) 100%),
    linear-gradient(to bottom, rgba(11,25,44,0) 30%, rgba(11,25,44,0.55) 100%);
}
/* (Founder modifier no longer needed  -  top-center is now default for all mega CTA images.) */
.mlc-mega__cta-content { position: relative; z-index: 1; padding: clamp(1.5rem, 2.5vw, 2rem); }
.mlc-mega__eyebrow {
  display: block; font-family: 'Lato', sans-serif; font-weight: 700;
  font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--mlc-brass); margin-bottom: 0.5rem;
}
.mlc-mega__headline {
  font-family: 'Antic Didone', serif;
  font-size: clamp(1.5rem, 2.4vw, 1.75rem); line-height: 1.2;
  color: var(--mlc-ivory); margin: 0 0 0.4rem;
}
.mlc-mega__subline {
  font-family: 'Lato', sans-serif; font-weight: 400;
  font-size: 0.875rem; line-height: 1.5;
  color: rgba(250,246,240,0.82); margin: 0 0 1rem;
}
.mlc-mega__btn {
  font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.875rem;
  color: var(--mlc-ivory);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
  transition: text-decoration-thickness 0.15s; display: inline-block;
}
.mlc-mega__cta:hover .mlc-mega__btn { text-decoration-thickness: 2px; }

/* -- 18. MOBILE DRAWER ----------------------------------------- */
.mlc-drawer {
  position: fixed; inset: 0 0 0 auto; width: min(460px, 92vw);
  background: var(--mlc-deep-navy); color: var(--mlc-ivory);
  z-index: var(--z-drawer); display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform 0.35s cubic-bezier(0.16,1,0.3,1);
  overflow-y: auto; box-shadow: -8px 0 40px rgba(11,25,44,0.5);
}
.mlc-drawer[aria-hidden="false"] { transform: translateX(0); }
.mlc-drawer-backdrop { position: fixed; inset: 0; background: rgba(11,25,44,0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); z-index: calc(var(--z-drawer) - 1); opacity: 0; pointer-events: none; transition: opacity 0.25s; }
.mlc-drawer-backdrop.visible { opacity: 1; pointer-events: auto; }
.mlc-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 0.875rem 1.25rem; border-bottom: 1px solid rgba(250,246,240,0.12); flex: 0 0 auto; }
.mlc-drawer-logo { filter: brightness(0) invert(1); opacity: 0.9; height: 30px; width: auto; }
.mlc-drawer-close { background: transparent; border: none; color: var(--mlc-ivory); cursor: pointer; width: 40px; height: 40px; min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 6px; flex: none; }
.mlc-drawer-close:hover { background: rgba(250,246,240,0.1); }
.mlc-drawer-close:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 2px; }
.mlc-drawer-nav { flex: 1; padding: 0; }
.mlc-drawer-list { list-style: none; margin: 0; padding: 0; }
.mlc-drawer-list li { margin-bottom: 0; }
.mlc-drawer-link {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.7rem 1.25rem; color: var(--mlc-ivory); text-decoration: none;
  font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.95rem; line-height: 1.4;
  transition: background 0.12s; border-bottom: 1px solid rgba(250,246,240,0.07);
}
.mlc-drawer-link:hover { background: rgba(250,246,240,0.07); color: var(--mlc-ivory); }
.mlc-drawer-link:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: -3px; }
button.mlc-drawer-link { width: 100%; background: transparent; border: none; border-bottom: 1px solid rgba(250,246,240,0.07); cursor: pointer; text-align: left; }
button.mlc-drawer-link:hover { background: rgba(250,246,240,0.07); }
.mlc-drawer-sub { list-style: none; margin: 0; padding: 0; overflow: hidden; } /* height + opacity controlled by GSAP */
/* chevron rotation handled by GSAP  -  no CSS rule needed */
.mlc-drawer-sub a { display: block; padding: 0.55rem 1.25rem 0.55rem 2rem; color: rgba(250,246,240,0.78); text-decoration: none; font-family: 'Lato', sans-serif; font-size: 0.875rem; border-bottom: 1px solid rgba(250,246,240,0.06); transition: color 0.12s, background 0.12s; }
.mlc-drawer-sub a:hover { color: var(--mlc-ivory); background: rgba(250,246,240,0.05); }
.mlc-drawer-sub a:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: -3px; }
.mlc-drawer-foot { padding: 1rem 1.25rem; border-top: 1px solid rgba(250,246,240,0.12); flex: 0 0 auto; }
.mlc-drawer-phone { display: flex; align-items: center; gap: 0.6rem; color: var(--mlc-ivory); text-decoration: none; font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.975rem; padding: 0.6rem 0; }
.mlc-drawer-phone svg { stroke: var(--mlc-brass); flex: none; }
.mlc-drawer-phone:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 2px; }
/* Enriched drawer foot */
.mlc-drawer-cta { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.875rem 1.25rem; text-decoration: none; transition: background 0.12s; }
.mlc-drawer-cta:hover { background: rgba(250,246,240,0.07); }
.mlc-drawer-cta:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: -3px; }
.mlc-drawer-cta svg { stroke: var(--mlc-brass); fill: none; stroke-width: 2; flex: none; margin-top: 2px; }
.mlc-drawer-cta--call { background: var(--mlc-maroon); border-radius: 8px; padding-top: 0.5rem; padding-bottom: 0.5rem; }
.mlc-drawer-cta--call:hover { background: var(--mlc-maroon-dark); }
.mlc-drawer-cta--call svg { stroke: var(--mlc-ivory); }
.mlc-drawer-cta-label { display: flex; flex-direction: column; }
.mlc-drawer-cta-main { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.975rem; color: var(--mlc-ivory); }
.mlc-drawer-cta-sub { font-family: Lato, sans-serif; font-weight: 400; font-size: 0.78rem; color: rgba(250,246,240,0.7); margin-top: 0; }
.mlc-drawer-cta--email { margin-top: 0.5rem; }
.mlc-drawer-cta--email .mlc-drawer-cta-main { font-size: 0.875rem; word-break: break-all; }
.mlc-drawer-cta--calc { border: 1px solid rgba(250,246,240,0.22); border-radius: 8px; padding-top: 0.5rem; padding-bottom: 0.5rem; margin-top: 0.5rem; }
.mlc-drawer-cta--calc:hover { background: rgba(250,246,240,0.08); border-color: rgba(250,246,240,0.38); }
.mlc-drawer-legal { padding: 0.875rem 1.25rem 0.375rem; border-top: 1px solid rgba(250,246,240,0.1); }
.mlc-drawer-legal-label { font-family: 'Lato', sans-serif; font-weight: 700; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--mlc-brass); display: block; margin-bottom: 0.5rem; font-variant: small-caps; }
.mlc-drawer-legal ul { list-style: none; margin: 0; padding: 0; }
.mlc-drawer-legal ul li { margin-bottom: 0.2rem; }
.mlc-drawer-legal ul a { font-family: 'Lato', sans-serif; font-size: 0.82rem; color: rgba(250,246,240,0.72); text-decoration: none; transition: color 0.12s; }
.mlc-drawer-legal ul a:hover { color: var(--mlc-brass); }
.mlc-drawer-trust { padding: 0.625rem 1.25rem; font-family: 'Lato', sans-serif; font-size: 0.75rem; color: rgba(250,246,240,0.4); line-height: 1.45; margin: 0; border-top: 1px solid rgba(250,246,240,0.08); }
@media (max-width: 768px) { .mlc-drawer { width: 90vw; } }


/* === 18. MEGA-MENU OPEN BACKDROP =====================================
 * When any mega-menu panel is open the site behind it is dimmed and blurred
 * so the user's focus stays on the panel. Class toggled by mlc-chrome.js
 * on body. Same visual style is shared by the video lightbox below for
 * consistency (per Chris brief 2026-05-19).
 * =================================================================== */
.mlc-mega-backdrop {
  /* z-index sits 1 BELOW --z-header so header keeps its natural sticky behaviour
     above the backdrop. Mega panel uses --z-header + 5 (already in §17) so it
     too stays above the backdrop. Do NOT add position overrides on header.site
     or its FSE template-part wrapper  -  it would break header sticky behaviour
     and trigger JS re-measure → header-height feedback loop. */
  position: fixed; inset: 0; z-index: calc(var(--z-header) - 1);
  background: rgba(11,25,44,0.55);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.18s, visibility 0s linear 0.18s;
}
body.mlc-mega-open .mlc-mega-backdrop {
  opacity: 1; visibility: visible; transition: opacity 0.18s, visibility 0s;
}


/* === 19. WATCH-THE-FILM PILL + VIDEO LIGHTBOX ======================
 * Gold pill button that opens a fullscreen video modal. Ported from
 * legacy Path B theme.css (twentytwentyfive-mlcpb). Class names match
 * legacy markup + mlc-chrome.js trigger so JS is identical.
 * Lightbox uses the same navy + blur backdrop as the mega menu (above)
 * for consistency.
 * =================================================================== */

/* Inline pill (sits under hero microcopy on desktop) */
.video-pill {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--mlc-brass); color: var(--mlc-deep-navy);
  padding: 8px 16px 8px 10px; border-radius: 100px;
  font-family: 'Lato', sans-serif; font-size: 0.82rem; font-weight: 700;
  text-decoration: none; border: none; cursor: pointer;
  position: relative; margin-top: 1.25rem;
  box-shadow: 0 4px 18px rgba(184,134,74,0.45);
  transition: transform 0.15s, box-shadow 0.15s;
  letter-spacing: 0.01em; white-space: nowrap;
}
.video-pill:hover { transform: translateY(-1px); box-shadow: 0 6px 24px rgba(184,134,74,0.55); }
.video-pill:active { transform: translateY(0); }
.video-pill:focus-visible { outline: 3px solid var(--mlc-ivory); outline-offset: 3px; }
.video-pill::before {
  content: ''; position: absolute; inset: -4px; border-radius: 100px;
  border: 2px solid rgba(184,134,74,0.5);
  animation: pill-pulse 2s ease-out infinite;
}
.video-pill .play-icon {
  width: 28px; height: 28px;
  background: var(--mlc-deep-navy); border-radius: 50%;
  display: flex; align-items: center; justify-content: center; flex: none;
}
.video-pill .play-icon svg { width: 11px; height: 11px; fill: var(--mlc-brass); margin-left: 2px; }

/* Mobile floating pill  -  absolute bottom-left of hero image area */
.video-pill-mobile {
  display: none; align-items: center; gap: 9px;
  background: var(--mlc-brass); color: var(--mlc-deep-navy);
  padding: 8px 16px 8px 10px; border-radius: 100px;
  font-family: 'Lato', sans-serif; font-size: 0.82rem; font-weight: 700;
  border: none; cursor: pointer;
  position: absolute; bottom: 1rem; left: 1rem; z-index: 5;
  box-shadow: 0 4px 18px rgba(184,134,74,0.45);
  transition: transform 0.15s, box-shadow 0.15s;
  letter-spacing: 0.01em; white-space: nowrap;
}
.video-pill-mobile:hover { transform: translateY(-1px); box-shadow: 0 6px 24px rgba(184,134,74,0.55); }
.video-pill-mobile:focus-visible { outline: 3px solid var(--mlc-ivory); outline-offset: 3px; }
.video-pill-mobile::before {
  content: ''; position: absolute; inset: -4px; border-radius: 100px;
  border: 2px solid rgba(184,134,74,0.5);
  animation: pill-pulse 2s ease-out infinite;
}
.video-pill-mobile .play-icon {
  width: 28px; height: 28px;
  background: var(--mlc-deep-navy); border-radius: 50%;
  display: flex; align-items: center; justify-content: center; flex: none;
}
.video-pill-mobile .play-icon svg { width: 11px; height: 11px; fill: var(--mlc-brass); margin-left: 2px; }

@keyframes pill-pulse {
  0%   { transform: scale(1); opacity: 0.7; }
  70%  { transform: scale(1.08); opacity: 0; }
  100% { transform: scale(1.08); opacity: 0; }
}

/* Desktop: show inline pill, hide mobile-floating */
@media (min-width: 769px) {
  .video-pill-mobile { display: none !important; }
}
/* Mobile: hide inline pill, show floating */
@media (max-width: 768px) {
  .video-pill { display: none !important; }
  .video-pill-mobile { display: inline-flex; }
}

/* Lightbox modal  -  fullscreen overlay matching mega backdrop */
.mlc-video-lightbox {
  display: flex;
  position: fixed; inset: 0; z-index: 999;
  background: rgba(11,25,44,0.55);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  align-items: center; justify-content: center; padding: 1.5rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(0.16,1,0.3,1),
              visibility 0s linear 0.25s;
}
.mlc-video-lightbox.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.25s cubic-bezier(0.16,1,0.3,1),
              visibility 0s;
}
.mlc-video-lightbox .lb-inner {
  position: relative; max-width: 1100px; width: 100%;
  background: var(--mlc-deep-navy); border-radius: 12px; overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.45);
  transform: scale(0.97);
  transition: transform 0.3s cubic-bezier(0.16,1,0.3,1);
}
.mlc-video-lightbox.open .lb-inner {
  transform: scale(1);
}
.mlc-video-lightbox video {
  display: block; width: 100%; height: auto; max-height: 80vh;
  background: #000;
}
.mlc-lightbox-close {
  position: absolute; top: 0.75rem; right: 0.75rem; z-index: 2;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(11,25,44,0.7); color: var(--mlc-ivory);
  border: 1px solid rgba(250,246,240,0.3); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; line-height: 1; transition: background 0.15s;
}
.mlc-lightbox-close:hover { background: var(--mlc-maroon); }
.mlc-lightbox-close:focus-visible { outline: 3px solid var(--mlc-brass); outline-offset: 2px; }


/* === Webjects credit (Designed by Webjects footer block) === */
/* Colour #E6007E is Webjects brand  -  do NOT change to MLC palette */
/* Footer-context centering override (width:100% ensures justify-content works) */
footer.site .wjx-credit-wrap { width: 100%; }
.wjx-credit-wrap {
  display: flex;
  justify-content: flex-start;
  margin-top: 10px;
}
.wjx-credit {
  font-size: 12px;
  color: #9d9d9d;
  margin: 0;
}
.wjx-credit a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  color: #d8d8d8;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  transition: border-color 220ms ease, background-color 220ms ease, color 220ms ease;
}
.wjx-credit a:hover,
.wjx-credit a:focus-visible {
  border-color: rgba(255,255,255,0.22);
  background-color: rgba(255,255,255,0.05);
  color: #ffffff;
}
.wjx-credit a:focus-visible {
  outline: 2px solid #E6007E;
  outline-offset: 4px;
}
.wjx-credit-prefix { color: #9d9d9d; }
.wjx-credit-pin {
  line-height: 0;
  opacity: 0.7;
  transition: opacity 220ms ease, transform 220ms ease;
  flex-shrink: 0;
}
.wjx-credit-pin circle { transition: fill 220ms ease; }
.wjx-credit a:hover .wjx-credit-pin,
.wjx-credit a:focus-visible .wjx-credit-pin {
  opacity: 1;
  transform: scale(1.08);
}
.wjx-credit a:hover .wjx-credit-pin circle,
.wjx-credit a:focus-visible .wjx-credit-pin circle { fill: #E6007E; }
.wjx-credit-brand {
  color: #ffffff;
  display: inline-block;
  min-width: 70px;
  text-align: left;
}
@media (prefers-reduced-motion: reduce) {
  .wjx-credit a, .wjx-credit-pin, .wjx-credit-pin circle { transition: none; }
}

/* ============================================================
   20. GRAVITY FORMS  -  MLC BRAND OVERRIDES
   Targets: GF orbital theme + gotrgf (GP On The Right / GP Preview)
   Strategy: override GF CSS custom props at wrapper level so all
   orbital-driven UI (inputs, focus rings, buttons, choices) picks
   up MLC colours without element-level !important sprawl.
   gotrgf panel gets explicit overrides (it uses its own inline CSS).
   ============================================================ */

/* -- 20a. GF orbital CSS custom prop overrides -----------------
   Set at .gform_wrapper so they cascade to every child.
   --gf-color-primary drives progress fill, focus rings,
   checked-choice borders, and (for some versions) button bg.
   Sizing vars match the mlc-callback blueprint: 56px min-height,
   0.85rem / 1rem padding, 1rem base font, 2px border weight. */

.gform_wrapper.gform-theme--orbital,
.gform_wrapper.gform-theme--framework {
  --gf-color-primary:         #700D1F;
  --gf-color-primary-rgb:     112, 13, 31;
  --gf-color-primary-lighter: #8a1427;
  --gf-color-primary-darker:  #5A0A19;
  --gf-color-primary-contrast: #FAF6F0;
  --gf-color-primary-contrast-rgb: 250, 246, 240;

  --gf-font-family-base:      'Lato', sans-serif;
  --gf-font-family-primary:   'Lato', sans-serif;
  --gf-font-family-secondary: 'Lato', sans-serif;
  --gf-font-family-tertiary:  'Lato', sans-serif;

  /* Sizing  -  match mlc-callback blueprint */
  --gf-font-size:             1.0625rem; /* 17px  -  comfortable reading size */
  --gf-ctrl-pad-v:            0.85rem;
  --gf-ctrl-pad-h:            1rem;
  --gf-field-gap:             0.75rem;   /* reduced from 1.25rem  -  fields were too spread */

  --gf-ctrl-border-color:       #D9D1C5;
  --gf-ctrl-border-color-hover: #700D1F;
  --gf-ctrl-border-color-focus: #700D1F;
  --gf-ctrl-outline-color-focus: rgba(112, 13, 31, 0.18);
  --gf-ctrl-label-color-primary: #700D1F; /* maroon  -  matches prototype label colour */
  --gf-ctrl-desc-color:          #4A5363;

  --gf-ctrl-btn-bg-color-primary:         #700D1F;
  --gf-ctrl-btn-color-primary:            #FAF6F0;
  --gf-ctrl-btn-bg-color-hover-primary:   #5A0A19;
  --gf-ctrl-btn-color-hover-primary:      #FAF6F0;
  --gf-ctrl-btn-bg-color-focus-primary:   #5A0A19;
  --gf-ctrl-btn-color-focus-primary:      #FAF6F0;

  --gf-ctrl-btn-bg-color-secondary:       transparent;
  --gf-ctrl-btn-color-secondary:          #700D1F;
  --gf-ctrl-btn-border-color-secondary:   #700D1F;
  --gf-ctrl-btn-bg-color-hover-secondary: #700D1F;
  --gf-ctrl-btn-color-hover-secondary:    #FAF6F0;
}

/* -- 20b. Progress bar (old-style .gf_progressbar classes) -----
   GF generates these for multi-page forms using the percentage
   display style. Orbital theme does not fully control them via vars. */

.gf_progressbar_wrapper { margin-bottom: 1.5rem; }

.gf_progressbar_title {
  font-family: 'Lato', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--mlc-maroon);
}

.gf_progressbar {
  background: var(--mlc-line);
  border-radius: 4px;
  height: 4px;
  border: none;
  overflow: hidden;
}

.gf_progressbar_percentage {
  background: var(--mlc-maroon) !important; /* GF injects inline background-color; !important required */
  border-radius: 4px;
  height: 4px;
  color: transparent !important;
  font-size: 0;
}

/* -- 20c. Field labels ----------------------------------------- */

.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme .gform-field-label,
.gform_wrapper.gform-theme--orbital .gfield_label,
.gform_wrapper.gform-theme--orbital .gform-field-label {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--mlc-maroon);
  margin-bottom: 0.4rem;
}

.gform_wrapper .gfield_required_asterisk { color: var(--mlc-maroon); }

.gform_wrapper .gfield_description,
.gform_wrapper .gfield_description p {
  font-family: 'Lato', sans-serif;
  font-size: 0.85rem;
  color: var(--mlc-soft-ink);
  line-height: 1.5;
  margin-top: 0.3rem;
}

/* -- 20d. Text inputs, selects, textarea ----------------------- */
/* Sizing blueprint: mlc-callback fake form on /contact-us/
    -  56px min-height, 0.85rem v-padding, 1rem h-padding, 2px border.
   Specificity: GF uses .gform_wrapper.gravity-theme input[type=text] (0,2,1).
   We match with the same double-class pattern so theme CSS wins cascade. */

.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="number"],
.gform_wrapper.gravity-theme input[type="url"],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea,
.gform_wrapper.gform-theme--orbital input[type="text"],
.gform_wrapper.gform-theme--orbital input[type="email"],
.gform_wrapper.gform-theme--orbital input[type="tel"],
.gform_wrapper.gform-theme--orbital input[type="number"],
.gform_wrapper.gform-theme--orbital input[type="url"],
.gform_wrapper.gform-theme--orbital select,
.gform_wrapper.gform-theme--orbital textarea {
  border: 2px solid var(--mlc-line);
  border-radius: 6px;
  background: #fff;
  color: var(--mlc-navy);
  font-family: 'Lato', sans-serif;
  font-size: 1rem;
  padding: 0.85rem 1rem;
  min-height: 56px;
  box-shadow: none;
  transition: border-color 0.15s;
  width: 100%;
}

.gform_wrapper.gravity-theme textarea,
.gform_wrapper.gform-theme--orbital textarea {
  min-height: 120px;
  resize: vertical;
  line-height: 1.5;
}

.gform_wrapper.gravity-theme input[type="text"]:hover,
.gform_wrapper.gravity-theme input[type="email"]:hover,
.gform_wrapper.gravity-theme input[type="tel"]:hover,
.gform_wrapper.gravity-theme input[type="number"]:hover,
.gform_wrapper.gravity-theme select:hover,
.gform_wrapper.gravity-theme textarea:hover,
.gform_wrapper.gform-theme--orbital input[type="text"]:hover,
.gform_wrapper.gform-theme--orbital input[type="email"]:hover,
.gform_wrapper.gform-theme--orbital input[type="tel"]:hover,
.gform_wrapper.gform-theme--orbital input[type="number"]:hover,
.gform_wrapper.gform-theme--orbital select:hover,
.gform_wrapper.gform-theme--orbital textarea:hover {
  border-color: var(--mlc-maroon);
}

.gform_wrapper.gravity-theme input[type="text"]:focus,
.gform_wrapper.gravity-theme input[type="email"]:focus,
.gform_wrapper.gravity-theme input[type="tel"]:focus,
.gform_wrapper.gravity-theme input[type="number"]:focus,
.gform_wrapper.gravity-theme select:focus,
.gform_wrapper.gravity-theme textarea:focus,
.gform_wrapper.gform-theme--orbital input[type="text"]:focus,
.gform_wrapper.gform-theme--orbital input[type="email"]:focus,
.gform_wrapper.gform-theme--orbital input[type="tel"]:focus,
.gform_wrapper.gform-theme--orbital input[type="number"]:focus,
.gform_wrapper.gform-theme--orbital select:focus,
.gform_wrapper.gform-theme--orbital textarea:focus {
  border-color: var(--mlc-maroon);
  outline: none;
  box-shadow: 0 0 0 3px rgba(112, 13, 31, 0.12);
}

/* -- 20e. Radio + checkbox choices ----------------------------- */

/* accent-color catches native input indicators */
.gform_wrapper input[type="radio"],
.gform_wrapper input[type="checkbox"] {
  accent-color: var(--mlc-maroon);
}

/* choice-buttons style (card-style radio rows) */
.gfield--input-type-radio.choice-buttons .gfield_radio .gchoice label,
.gfield--input-type-radio.choice-borders .gfield_radio .gchoice label {
  border-color: var(--mlc-line);
  color: var(--mlc-navy);
  font-family: 'Lato', sans-serif;
  transition: border-color 0.15s, background 0.15s;
}

.gfield--input-type-radio.choice-buttons .gfield_radio .gchoice label:hover,
.gfield--input-type-radio.choice-borders .gfield_radio .gchoice label:hover {
  border-color: var(--mlc-maroon);
}

/* .gfield--input-type-radio.choice-buttons .gfield_radio .gchoice input:checked ~ label,
.gfield--input-type-radio.choice-borders .gfield_radio .gchoice input:checked ~ label {
  border-color: var(--mlc-maroon);
  background: rgba(112, 13, 31, 0.05);
  color: var(--mlc-maroon);
} */

/* Choice option labels (the text next to each checkbox / radio).
   GF renders these as <label> inside .gchoice. Needs explicit sizing
   because GF choice-buttons layout can override the base font var. */
.gform_wrapper .gfield_radio .gchoice label,
.gform_wrapper .gfield_checkbox .gchoice label {
  font-family: 'Lato', sans-serif;
  font-size: 1rem;
  color: var(--mlc-navy);
  line-height: 1.4;
}
.gform_wrapper .gfield_checkbox .gchoice {
  min-height: 44px;
  display: flex;
  align-items: center;
}

/* Direct field-list gap override  -  GF Orbital uses row-gap on .gform_fields
   grid but may also add margin via .gfield or child elements. Belt-and-braces. */
.gform_wrapper .gform_fields {
  row-gap: 0.75rem !important;
}
.gform_wrapper .gfield {
  margin-block: 0;
}

/* Contact page form card ----------------------------------------
   Wraps the GF form in .mlc-callback-form-wrap to give it similar
   visual weight to the care calculator embed  -  border, radius, shadow.
   Applied to .gform_wrapper (the element GF renders) not a container div,
   since the shortcode is a direct child of .mlc-callback-form-wrap. */
.mlc-callback-form-wrap .gform_wrapper {
  background: #fff;
  border: 1px solid var(--mlc-line);
  border-radius: 12px;
  padding: clamp(1.25rem, 3vw, 2rem);
  box-shadow: 0 4px 24px rgba(17, 35, 55, 0.07);
}

/* -- 20f. Section headings ------------------------------------- */

.gform_wrapper .gsection .gsection_title {
  font-family: 'Antic Didone', serif;
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--mlc-navy);
  border-bottom: 1px solid var(--mlc-line);
  padding-bottom: 0.5rem;
}

/* GF notice-alert / notice-info section cards  -  de-blue to MLC stone */
.gform_wrapper .gsection.notice-alert,
.gform_wrapper .gsection.notice-info,
.gform_wrapper .gsection.notice-success {
  background-color: var(--mlc-stone) !important;
  border: 1px solid var(--mlc-line) !important;
  border-radius: 6px !important;
}
.gform_wrapper .gsection.notice-alert .gsection_title,
.gform_wrapper .gsection.notice-info .gsection_title {
  font-family: 'Antic Didone', serif !important;
  color: var(--mlc-navy) !important;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

/* -- 20g. Next / Previous / Submit buttons --------------------- */

.gform_wrapper .gform_next_button,
.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"] {
  background: var(--mlc-maroon);
  color: var(--mlc-ivory);
  border: none;
  border-radius: 6px;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 1.0625rem; /* matches --gf-font-size; keeps submit = next button size */
  letter-spacing: 0.03em;
  padding: 0.85rem 2rem;
  min-height: 56px;
  cursor: pointer;
  transition: background 0.15s;
  box-shadow: none;
}

.gform_wrapper input[type="submit"] {
  width: 100%; /* full-width submit matches blueprint */
}

.gform_wrapper .gform_next_button:hover,
.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover {
  background: var(--mlc-maroon-dark);
}

.gform_wrapper .gform_previous_button {
  background: transparent;
  color: var(--mlc-maroon);
  border: none;
  box-shadow: inset 0 0 0 2px var(--mlc-maroon);
  border-radius: 6px;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  padding: 0.75rem 2rem;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.gform_wrapper .gform_previous_button:hover {
  background: var(--mlc-maroon);
  color: var(--mlc-ivory);
}

/* Page footer button row */
.gform_wrapper .gform_page_footer {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

/* -- 20h. Validation errors ------------------------------------ */

.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea {
  border-color: var(--mlc-maroon);
}

.gform_wrapper .validation_message {
  color: var(--mlc-maroon);
  font-family: 'Lato', sans-serif;
  font-size: 0.8rem;
}

/* -- 20i. gotrgf (GP Preview Summary) panel overrides ----------
   gotrgf injects its own inline <style> block configured in GF admin.
   Admin has already set Antic Didone + navy for the title  -  we only
   need to correct container background, separator colour, and
   "nothing selected" placeholder tone. */

#gotrgf_form_container_12 {
  background-color: var(--mlc-ivory);
}

.gotrgf_form_overview_container {
  background: var(--mlc-stone);
  border: 1px solid var(--mlc-line);
  border-radius: 8px;
}

/* Sticky panel must paint above .mlc-calc-after-summary (later in DOM).
   Plugin injects position:sticky on this selector  -  we add z-index so the
   stuck panel isn't overlaid by positioned descendants in the sibling. */
.gotrgf_summary_wrapper .gotrgf_form_overview_container {
  z-index: 1;
}

/* Separator under "My Care Summary" heading: brass accent not grey */
.gotrgf_form_overview_container > .gotrgf_summary_title {
  border-bottom-color: var(--mlc-brass) !important;
  border-bottom-width: 2px !important;
}

/* Awaiting-choices placeholder text */
.gotrgf_nothing_selected {
  font-style: italic;
  opacity: 0.6;
  font-size: 0.875rem;
}

/* Summary lines: tighter font size (gotrgf admin sets 19px  -  reduce) */
.gotrgf_summary_lines {
  font-size: 0.95rem !important;
  color: var(--mlc-navy) !important;
  font-family: 'Lato', sans-serif !important;
}

/* ─── §21. MAGAZINE ARCHIVE ─────────────────────────────────────── */

/* Archive masthead  -  navy editorial band */
.mlc-archive-masthead {
  background: var(--mlc-navy);
  padding: clamp(3.5rem, 8vw, 6rem) 0 clamp(3rem, 7vw, 5rem);
}
.mlc-archive-masthead .eyebrow {
  font-family: 'Lato', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mlc-brass);
  margin: 0 0 1rem;
  display: block;
}
/* WP core/query-title renders as h1 in archive context */
.mlc-archive-masthead .wp-block-query-title {
  font-family: 'Antic Didone', serif;
  font-weight: 400;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  line-height: 1.05;
  color: var(--mlc-ivory);
  margin: 0 0 1.25rem;
}
/* WP core/term-description renders the category description */
.mlc-archive-masthead .wp-block-term-description,
.mlc-archive-masthead .wp-block-term-description p {
  font-size: 1.1rem;
  line-height: 1.65;
  color: rgba(250,246,240,0.72);
  max-width: 55ch;
  margin: 0;
}

/* Archive grid section  -  ivory background */
.mlc-archive-grid-section {
  padding: clamp(3rem, 6vw, 5rem) 0;
  background: var(--mlc-ivory);
}

/* Post template list  -  reset + grid */
ul.wp-block-post-template.mlc-post-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

/* Featured first post  -  horizontal full-width layout */
ul.wp-block-post-template.mlc-post-grid > li:first-child {
  grid-column: 1 / -1;
}
ul.wp-block-post-template.mlc-post-grid > li:first-child .mlc-post-card {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
ul.wp-block-post-template.mlc-post-grid > li:first-child .mlc-post-card__image {
  aspect-ratio: 16/9;
  border-radius: 16px;
  margin-bottom: 0;
}
ul.wp-block-post-template.mlc-post-grid > li:first-child .mlc-post-card__title {
  max-width: none;
}
ul.wp-block-post-template.mlc-post-grid > li:first-child .mlc-post-card__excerpt {
  font-size: 1.0625rem;
}

/* Post card */
.mlc-post-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
.mlc-post-card__image {
  aspect-ratio: 4/3;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: clamp(0.875rem, 2vw, 1.125rem);
  flex-shrink: 0;
}
.mlc-post-card__image a {
  display: block;
  width: 100%;
  height: 100%;
}
.mlc-post-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.mlc-post-card:hover .mlc-post-card__image img {
  transform: scale(1.04);
}
.mlc-post-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.mlc-post-card__cat,
.mlc-post-card__cat a {
  font-family: 'Lato', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mlc-maroon);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-bottom: 0.5rem;
}
.mlc-post-card__title {
  font-family: 'Antic Didone', serif;
  font-weight: 400;
  font-size: clamp(1.3rem, 2.2vw, 1.625rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--mlc-navy);
  margin: 0 0 0.65rem;
  max-width: 28ch;
}
.mlc-post-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.18s;
}
.mlc-post-card:hover .mlc-post-card__title a {
  color: var(--mlc-maroon);
}
.mlc-post-card__excerpt {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--mlc-soft-ink);
  flex: 1;
  padding-bottom: 1rem;
}
.mlc-post-card__excerpt p { margin: 0; }
.mlc-post-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.875rem;
  border-top: 1px solid var(--mlc-line);
  margin-top: auto;
}
.mlc-post-card__date { font-size: 0.8125rem; color: var(--mlc-soft-ink); }
.mlc-post-card__date time { font-size: inherit; }
.mlc-post-card__read a {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--mlc-maroon);
  text-decoration: none;
  letter-spacing: -0.01em;
  transition: color 0.18s;
}
.mlc-post-card__read a:hover { color: var(--mlc-navy); }

/* No-results empty state */
.mlc-archive-empty {
  padding: clamp(3rem, 6vw, 5rem) 0;
  text-align: left;
}
.mlc-archive-empty p {
  font-size: 1.125rem;
  color: var(--mlc-soft-ink);
  margin: 0;
}

/* Pagination */
.mlc-pagination {
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: 2.5rem;
  border-top: 1px solid var(--mlc-line);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
/* Prev / Next  -  typographic links, no border chrome */
.mlc-pagination .wp-block-query-pagination-previous,
.mlc-pagination .wp-block-query-pagination-previous a,
.mlc-pagination .wp-block-query-pagination-next,
.mlc-pagination .wp-block-query-pagination-next a {
  font-family: 'Lato', sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mlc-maroon);
  text-decoration: none;
  padding: 0.625rem 1.25rem;
  border: none;
  background: none;
  border-radius: 0;
  transition: color 0.18s;
}
.mlc-pagination .wp-block-query-pagination-previous:hover,
.mlc-pagination .wp-block-query-pagination-previous a:hover,
.mlc-pagination .wp-block-query-pagination-next:hover,
.mlc-pagination .wp-block-query-pagination-next a:hover {
  color: var(--mlc-navy);
  background: none;
}
/* Number pills  -  circles */
.mlc-pagination .wp-block-query-pagination-numbers {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.mlc-pagination .wp-block-query-pagination-numbers a,
.mlc-pagination .wp-block-query-pagination-numbers span.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.375rem;
  height: 2.375rem;
  padding: 0 0.375rem;
  border-radius: 50%;
  font-family: 'Lato', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--mlc-navy);
  text-decoration: none;
  border: 1px solid transparent;
  background: transparent;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
/* Ellipsis / dots */
.mlc-pagination .wp-block-query-pagination-numbers span.page-numbers:not(.current) {
  color: var(--mlc-soft-ink);
  pointer-events: none;
}
/* Current page */
.mlc-pagination .wp-block-query-pagination-numbers .current {
  background: var(--mlc-maroon);
  color: var(--mlc-ivory);
  border-color: var(--mlc-maroon);
}
/* Hover on number links */
.mlc-pagination .wp-block-query-pagination-numbers a:hover {
  background: var(--mlc-stone);
  border-color: var(--mlc-navy);
  color: var(--mlc-navy);
}

/* ─── §22. SINGLE POST  -  EDITORIAL ──────────────────────────────── */

/* Hero section  -  stone background, pre-image */
.mlc-single-hero {
  background: var(--mlc-stone);
  padding: clamp(2.5rem, 5vw, 4rem) 0 0;
}
/* Category chip */
.mlc-single-cat { margin-bottom: 0.875rem; }
.mlc-single-cat a {
  font-family: 'Lato', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mlc-maroon);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
/* Post title  -  WP renders className on the heading element itself */
.mlc-single-h1 {
  font-family: 'Antic Didone', serif;
  font-weight: 400;
  font-size: clamp(2.25rem, 4.5vw, 3.25rem);
  line-height: 1.08;
  color: var(--mlc-navy);
  margin: 0 0 1.25rem;
  max-width: 24ch;
}
/* Standfirst  -  excerpt used as article intro */
.mlc-single-strap {
  font-size: 1.2rem;
  line-height: 1.55;
  color: var(--mlc-soft-ink);
  max-width: 60ch;
  margin-bottom: 1.75rem;
}
.mlc-single-strap p,
.mlc-single-strap .wp-block-post-excerpt__excerpt { margin: 0; font-size: inherit; }
.mlc-single-strap .wp-block-post-excerpt__more-link { display: none; }
/* Byline strip */
.mlc-single-byline {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 0.875rem 0;
  border-top: 1px solid var(--mlc-line);
  font-size: 0.875rem;
  color: var(--mlc-soft-ink);
}
.mlc-single-byline .wp-block-post-date time { font-size: 0.875rem; color: var(--mlc-soft-ink); }

/* Hero image  -  parallax container (GSAP ScrollTrigger) */
.mlc-single-feat-img {
  background: var(--mlc-stone);
  line-height: 0;
  overflow: hidden;
  height: clamp(380px, 42vw, 580px);
}
.mlc-single-feat-img .wp-block-post-featured-image {
  height: 100%;
  overflow: hidden;
  margin: 0;
}
.mlc-single-feat-img .wp-block-post-featured-image img {
  width: 100%;
  height: 125%;              /* extra height = room for parallax travel */
  object-fit: cover;
  object-position: center 25%; /* default  -  subject faces in upper third */
  display: block;
  will-change: transform;
}
/* Reduced-motion fallback: static, well-cropped */
@media (prefers-reduced-motion: reduce) {
  .mlc-single-feat-img .wp-block-post-featured-image img {
    height: 100%;
    will-change: auto;
    object-position: center 25%;
  }
}

/* Article body  -  ivory, narrow reading column */
.mlc-single-body-wrap {
  padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(2.5rem, 5vw, 4rem);
  background: var(--mlc-ivory);
}
.mlc-single-body-inner {
  max-width: 740px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 5vw, 2rem);
  padding-right: clamp(1rem, 5vw, 2rem);
}

/* Pre-footer CTA  -  full-bleed deep navy, single post only */
.mlc-single-cta {
  padding: clamp(3rem, 6vw, 5rem) 0;
  text-align: center;
}
.mlc-single-cta .mlc-label {
  margin-bottom: 0.875rem;
}
.mlc-single-cta__heading {
  font-family: 'Antic Didone', serif;
  font-weight: 400;
  font-size: clamp(1.875rem, 3.5vw, 2.625rem);
  line-height: 1.1;
  margin: 0 auto 1.25rem;
  max-width: 24ch;
}
.mlc-single-cta__lead {
  font-size: 1.1rem;
  line-height: 1.65;
  max-width: 54ch;
  margin: 0 auto 0;
}
.mlc-single-cta .mlc-cta-row {
  margin-top: 2rem;
}

/* Related reading heading output by [mlc_related] shortcode */
.mlc-related-heading {
  font-family: 'Antic Didone', serif;
  font-weight: 400;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--mlc-navy);
  margin: 0 0 1.25rem;
}
/* Collapse the tail section when shortcode returns empty (no related posts) */
.mlc-news-tail--shortcode .container:empty,
.mlc-news-tail--shortcode .wp-block-shortcode:empty { display: none; }
.mlc-news-tail--shortcode:has(.mlc-related) {
  padding: clamp(3rem, 5vw, 4rem) 0;
  background: var(--mlc-stone);
  border-top: 1px solid var(--mlc-line);
  margin-top: 0;
}
/* When no related posts, collapse section to zero */
.mlc-news-tail--shortcode:not(:has(.mlc-related)) {
  padding: 0;
  background: transparent;
  border: none;
  margin: 0;
}

/* Responsive */
@media (max-width: 1024px) {
  ul.wp-block-post-template.mlc-post-grid { grid-template-columns: repeat(2, 1fr); }
  ul.wp-block-post-template.mlc-post-grid > li:first-child .mlc-post-card {
    grid-template-columns: 1fr;
    gap: 0;
  }
  ul.wp-block-post-template.mlc-post-grid > li:first-child .mlc-post-card__image {
    aspect-ratio: 16/9;
    margin-bottom: 0.5rem;
  }
}
@media (max-width: 640px) {
  ul.wp-block-post-template.mlc-post-grid { grid-template-columns: 1fr; }
  .mlc-post-card__image { margin-bottom: 0.5rem; }
  .mlc-single-byline { flex-wrap: wrap; gap: 0.5rem; }
}

/* Spinner (loading indicator inside gotrgf) */
.gotr_summary_spinner { color: var(--mlc-maroon); }

/* ─── §22. CALCULATOR THANK-YOU PAGE (ID 750) ──────────────────────
   Scene: family member at kitchen table, laptop, evening after
   submitting the care cost calculator. Cautious hope, anxious wait.
   The page is a warm landing: reassurance, clarity, next steps. No fanfare.
   Color strategy: Committed  -  deep navy hero anchors the moment, stone
   for the body. Brass confirmation mark. No teal, no green tick, no cards.
   ─────────────────────────────────────────────────────────────────── */

/* Hero  -  extra vertical space for a genuine landing moment */
.mlc-thankyou-hero { padding-block: clamp(4.5rem, 9vw, 8rem); }

/* Brass circle checkmark  -  restrained, brand-coloured.
   Not a hero metric. Not a green checkmark. Just a quiet confirmation. */
.mlc-thankyou-mark {
  width: 52px;
  height: 52px;
  color: var(--mlc-brass);
  margin: 0 auto 2.5rem;
}
.mlc-thankyou-mark svg { width: 100%; height: 100%; display: block; }

/* H1  -  generous Antic Didone, constrained for reading on dark bg */
.mlc-thankyou-hero h1 {
  font-size: clamp(2rem, 4.5vw, 3rem);
  margin-top: 1.25rem;
  margin-bottom: 1.5rem;
  max-width: 18ch;
  margin-left: auto;
  margin-right: auto;
}

/* Body  -  narrow centered column, focused reading */
.mlc-thankyou-inner {
  max-width: 640px;
  margin: 0 auto;
}

/* Email note  -  flex row, no box, no card. Only content in the body section. */
.mlc-thankyou-email-note {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--mlc-line);
}
.mlc-thankyou-note-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 0.25em; /* optical alignment with first text line */
  color: var(--mlc-soft-ink);
}
.mlc-thankyou-email-note p {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--mlc-soft-ink);
  margin: 0;
}

/* "What happens next" label  -  mlc-label needs display:block in this context */
.mlc-thankyou-body .mlc-label {
  display: block;
  margin-bottom: 0.75rem;
}

/* Conditional paragraphs rendered by GF conditional shortcode */
.mlc-thankyou-body .mlc-thankyou-inner > p {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--mlc-navy);
  margin: 0;
}

/* ---------- Stars rating ---------- */
.mlc-stars {
  display: flex;
  gap: 4px;
  margin-bottom: 0.75rem;
  line-height: 1;
}
.mlc-stars svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  display: block;
}
.mlc-stars path {
  fill: #B8864A;
}

/* ============================================================
   CALLBACK POPUP
   Fixed bottom-right notification — no overlay, no modal.
   Trigger: 40% scroll depth via mlc-chrome.js.
   ============================================================ */
.mlc-popup {
  display: none;
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  max-width: 595px;
  width: calc(100vw - 48px);
  background: var(--mlc-ivory);
  border-radius: 12px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.18);
  overflow: hidden;
  flex-direction: row;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 320ms ease-out, transform 320ms ease-out;
}
.mlc-popup.is-open {
  display: flex;
  opacity: 1;
  transform: translateY(0);
}

.mlc-popup__img {
  width: 40%;
  min-width: 40%;
  object-fit: cover;
  display: block;
  flex-shrink: 0;
  max-height: 100%;
}
.mlc-popup__content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  flex: 1;
  min-width: 0; /* prevent flex blowout */
}
.mlc-popup__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.25rem;
  color: var(--mlc-navy);
  opacity: 0.5;
  border-radius: 4px;
  padding: 0;
  line-height: 1;
  transition: opacity 0.15s;
}
.mlc-popup__close:hover { opacity: 1; }
.mlc-popup__close:focus-visible {
  outline: 2px solid var(--mlc-maroon);
  outline-offset: 2px;
  opacity: 1;
}
.mlc-popup__eyebrow {
  /* .mlc-label--brass handles colour; override margin to suit popup spacing */
  margin-bottom: 4px;
}
.mlc-popup__heading {
  font-family: 'Antic Didone', Georgia, serif;
  font-size: 1.375rem;
  line-height: 1.15;
  color: var(--mlc-navy);
  margin: 0;
  padding-right: 32px; /* clear the close button */
}
.mlc-popup__body {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--mlc-navy);
  margin: 0;
}
.mlc-popup__subnote {
  font-size: 0.8125rem;
  color: var(--mlc-soft-ink);
  margin: 0;
}
.mlc-popup__cta {
  display: inline-flex;
  margin-top: 4px;
  text-decoration: none;
  font-size: 0.9375rem; /* slightly tighter than full .mlc-cta for popup scale */
  padding: 12px 20px;
  min-height: 48px;
}
.mlc-popup__dismiss {
  background: none;
  border: none;
  font-family: 'Lato', sans-serif;
  font-size: 0.8125rem;
  color: var(--mlc-soft-ink);
  cursor: pointer;
  padding: 0;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 2px;
  margin-top: 4px;
  transition: color 0.15s;
}
.mlc-popup__dismiss:hover { color: var(--mlc-navy); }
.mlc-popup__dismiss:focus-visible {
  outline: 2px solid var(--mlc-maroon);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Mobile — centred, no image */
@media (max-width: 600px) {
  .mlc-popup {
    right: auto;
    left: 50%;
    transform: translateX(-50%) translateY(24px);
    bottom: 12px;
    width: calc(100vw - 24px);
    max-width: 540px;
  }
  .mlc-popup.is-open {
    transform: translateX(-50%) translateY(0);
  }
  .mlc-popup__img { display: none; }
  .mlc-popup__content { padding: 20px; }
  .mlc-popup__cta { width: 100%; justify-content: center; }
}

/* Reduced motion — skip transforms, just show/hide */
@media (prefers-reduced-motion: reduce) {
  .mlc-popup {
    transition: none;
    transform: none;
  }
  .mlc-popup.is-open {
    transform: none;
  }
}
/* Reduced motion + mobile centring — translateX only, no Y animation */
@media (prefers-reduced-motion: reduce) and (max-width: 600px) {
  .mlc-popup {
    transform: translateX(-50%);
  }
  .mlc-popup.is-open {
    transform: translateX(-50%);
  }
}

/* Drawer open — popup sits behind drawer + backdrop */
body:has(#mobile-nav[aria-hidden="false"]) .mlc-popup {
  z-index: calc(var(--z-drawer) - 2); /* 58 — below backdrop(59) and drawer(60) */
}


/* ── Skip link (a11y: WCAG 2.4.1) ─────────────────────────────── */
.mlc-skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 9999;
  padding: 0.75rem 1.25rem;
  background: var(--mlc-maroon);
  color: var(--mlc-ivory);
  font-family: var(--mlc-body);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: 0 0 4px 4px;
  transition: top 0.15s ease-out;
  outline: none;
}
.mlc-skip-link:focus {
  top: 0;
}

/* ── Hero trust quote ─────────────────────────────────────────────────────── */
/* Desktop: absolutely positioned bottom-right of hero, outside content flow */
.mlc-hero-full > .mlc-hero-trust {
  position: absolute;
  bottom: clamp(4rem, 8vw, 7rem);
  right: clamp(3rem, 4.5vw, 5rem);
  max-width: 320px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.mlc-hero-trust__stars {
  color: var(--mlc-brass);
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  line-height: 1;
}
.mlc-hero-trust__quote {
  color: rgba(250,246,240,0.9);
  font-family: 'Lato', sans-serif;
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
}
.mlc-hero-trust__attr {
  color: rgba(250,246,240,0.56);
  font-family: 'Lato', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0;
}
/* Squeezed desktop: trust retreats to corner when CTA button wraps to new line */
@media (min-width: 769px) and (max-width: 1200px) {
  .mlc-hero-full > .mlc-hero-trust {
    bottom: 1.75rem;
    right: 2rem;
    max-width: 270px;
  }
}
/* Mobile: static, below microcopy, visually inside navy content area */
@media (max-width: 768px) {
  .mlc-hero-full > .mlc-hero-trust {
    position: relative;
    bottom: auto;
    right: auto;
    max-width: 100%;
    background: var(--mlc-deep-navy);
    border-top: 1px solid rgba(250,246,240,0.15);
    padding: 0.75rem 1.5rem 1.75rem;
    margin-top: -1rem;
  }
  .mlc-hero-trust__quote {
    font-size: 0.82rem;
  }
}

/* ============================================================
   Hide Zapier chatbot while our popup or mobile drawer is open.
   Chatbot widget z-index ~2.1bn (shadow DOM) — hide the light-DOM
   host instead of a z-index war. Added 05-06-2026 (go-live).
   ============================================================ */
body:has(.mlc-popup.is-open) zapier-interfaces-chatbot-embed,
body:has(.mlc-drawer[aria-hidden="false"]) zapier-interfaces-chatbot-embed {
  display: none !important;
}
