/* ==========================================================================
   Devol Legal — "Understated" design layer
   Loaded last on every page. Earlier stylesheets on the static pages are
   wrapped in @layer legacy, so these unlayered rules take precedence there.
   ========================================================================== */

/* ---------- Fonts (self-hosted) ---------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/Inter-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/Inter-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400 500;font-display:swap;src:url(/assets/fonts/SourceSerif4-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400 500;font-display:swap;src:url(/assets/fonts/SourceSerif4-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/SourceSerif4-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/SourceSerif4-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ---------- Tokens ---------- */
:root {
  --u-paper: #ffffff;
  --u-paper-alt: #e4e8e2;
  --u-paper-deep: #d4dad2;
  --u-ink: #18221c;
  --u-text: #333b36;
  --u-muted: #5b655e;
  --u-faint: #606862;
  --u-rule: #daded8;
  --u-rule-strong: #b8beb5;
  --u-accent: #41564a;
  --u-accent-hover: #314339;
  --u-accent-tint: #e4e8e2;
  --u-serif: 'Source Serif 4', 'Source Serif Pro', Georgia, 'Times New Roman', serif;
  --u-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --u-radius: 3px;
  --u-measure: 42rem;

  /* Remap the Next.js theme variables (home + team pages, header, footer) */
  --navy-950: var(--u-paper);
  --navy-900: var(--u-paper);
  --navy-850: var(--u-paper-alt);
  --navy-800: var(--u-paper-alt);
  --navy-750: var(--u-paper-deep);
  --ivory: var(--u-ink);
  --ivory-muted: var(--u-text);
  --ivory-faint: var(--u-muted);
  --gold: var(--u-accent);
  --gold-bright: var(--u-accent);
  --gold-soft: rgba(65, 86, 74, .12);
  --rule: var(--u-rule);
  --serif: var(--u-serif);
  --sans: var(--u-sans);

  /* Remap the legacy static-page variables to light equivalents */
  --ink: var(--u-ink);
  --bone: var(--u-paper);
  --bone-bright: var(--u-paper);
  --bone-04: rgba(24, 34, 28, .03);
  --bone-08: rgba(24, 34, 28, .05);
  --bone-25: var(--u-rule-strong);
  --bone-45: var(--u-faint);
  --bone-65: var(--u-muted);
  --bone-90: var(--u-text);
  --paper: var(--u-paper);
  --pearl: var(--u-paper-alt);
  --midnight: var(--u-ink);
  --midnight-2: var(--u-paper-alt);
  --midnight-94: rgba(255, 255, 255, .96);
  --slate: var(--u-text);
  --mist: var(--u-muted);
  --forest: var(--u-ink);
  --aged-gold: var(--u-muted);
  --oxblood: var(--u-accent);
  --oxblood-deep: var(--u-accent-hover);
  --oxblood-soft: var(--u-accent);
  --oxblood-2: var(--u-accent);
  --rule-bone: var(--u-rule);
  --rule-night: var(--u-rule);
  --rule-pearl: var(--u-rule);
  --line: var(--u-rule);
  --muted: var(--u-muted);
  --navy: var(--u-ink);
  --shadow-editorial: none;
  --shadow-float: none;
}

/* ---------- Base ---------- */
html, body { background: var(--u-paper); }
body {
  color: var(--u-text);
  font-family: var(--u-sans);
  font-weight: 400;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--u-accent-tint); color: var(--u-ink); }
:focus-visible { outline: 2px solid var(--u-accent); outline-offset: 3px; }
.siteShell { background: var(--u-paper); }

/* Decorative arrows on the home/team pages are aria-hidden spans: remove them */
.button > span[aria-hidden="true"],
.textLink > span[aria-hidden="true"],
.regulatoryLink > span[aria-hidden="true"],
.headerCta > span[aria-hidden="true"] { display: none; }

.skipLink { background: var(--u-accent); color: #fff; }

/* ---------- Header ---------- */
body .siteHeader {
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--u-rule);
  -webkit-backdrop-filter: saturate(1.2) blur(8px);
  backdrop-filter: saturate(1.2) blur(8px);
  box-shadow: none;
}
body .siteHeader .brandMonogram {
  border: 1px solid var(--u-ink);
  color: var(--u-ink);
  background: transparent;
  font-family: var(--u-serif);
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: .02em;
  border-radius: 0;
}
body .siteHeader .brandName {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-weight: 500;
  font-size: 1.25rem;
  letter-spacing: 0;
  text-transform: none;
}
body .siteHeader .brandStrap {
  color: var(--u-muted);
  font-family: var(--u-sans);
  font-size: .75rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
body .siteHeader .desktopNav a {
  color: var(--u-text);
  font-family: var(--u-sans);
  font-size: .9375rem;
  font-weight: 450;
  letter-spacing: 0;
  text-transform: none;
}
body .siteHeader .desktopNav a:hover,
body .siteHeader .desktopNav a[aria-current="page"] {
  color: var(--u-ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}
body .siteHeader .headerCta,
body.legacyStatic .siteHeader .headerCta {
  background: var(--u-accent);
  border: 1px solid var(--u-accent);
  color: #fff;
  border-radius: var(--u-radius);
  font-family: var(--u-sans);
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
body .siteHeader .headerCta:hover,
body.legacyStatic .siteHeader .headerCta:hover { background: var(--u-accent-hover); border-color: var(--u-accent-hover); color: #fff; }
body .siteHeader .mobileNav summary {
  color: var(--u-ink);
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
body .siteHeader .mobileNav > div {
  background: var(--u-paper);
  border: 1px solid var(--u-rule);
  box-shadow: 0 12px 32px rgba(24, 34, 28, .08);
  color: var(--u-ink);
  border-radius: var(--u-radius);
}
body .siteHeader .mobileNav a {
  color: var(--u-ink);
  border-bottom: 1px solid var(--u-rule);
  font-size: .9375rem;
  letter-spacing: 0;
  text-transform: none;
}

/* ---------- Shared type helpers (home/team) ---------- */
.eyebrow,
.briefKicker,
.personLabel {
  color: var(--u-accent);
  font-family: var(--u-sans);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .01em;
  text-transform: none;
}

.button {
  border-radius: var(--u-radius);
  font-family: var(--u-sans);
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.buttonGold { background: var(--u-accent); border-color: var(--u-accent); color: #fff; }
.buttonGold:hover { background: var(--u-accent-hover); border-color: var(--u-accent-hover); color: #fff; }
.buttonGhost { background: transparent; border-color: var(--u-rule-strong); color: var(--u-ink); }
.buttonGhost:hover { background: var(--u-paper-alt); border-color: var(--u-ink); color: var(--u-ink); }

.textLink {
  color: var(--u-accent);
  font-family: var(--u-sans);
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-color: rgba(65, 86, 74, .35);
}
.textLink:hover { color: var(--u-accent-hover); text-decoration-color: currentColor; }

/* ---------- Home: hero ---------- */
.hero {
  background: var(--u-paper-alt);
  border-bottom: 1px solid var(--u-rule);
}
.hero::after, .hero:after { display: none; }
.heroGlow { display: none; }
.hero h1 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: clamp(2.5rem, 4.4vw, 3.75rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.015em;
}
.hero h1 span {
  display: block;
  color: var(--u-muted);
  font-style: normal;
}
.heroLead {
  color: var(--u-text);
  font-size: clamp(1.0625rem, 1.3vw, 1.1875rem);
  line-height: 1.65;
}
.heroFootnote {
  color: var(--u-muted);
  font-family: var(--u-sans);
  font-size: .875rem;
  font-style: normal;
}
.heroBrief {
  background: var(--u-paper);
  border: 1px solid var(--u-rule);
  box-shadow: none;
  border-radius: var(--u-radius);
}
.briefRule { background: var(--u-accent); }
.heroBrief h2 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
}
.heroBrief > p:not(.briefKicker) { color: var(--u-text); font-size: .9375rem; line-height: 1.65; }
.heroBrief li { color: var(--u-text); border-bottom: 1px solid var(--u-rule); }
.heroBrief li span { color: var(--u-accent); font-family: var(--u-sans); }
.heroPrincipal img { border: 1px solid var(--u-rule); filter: none; }
.heroPrincipal strong { color: var(--u-ink); font-family: var(--u-serif); font-size: 1.125rem; font-weight: 500; }
.heroPrincipal span {
  color: var(--u-muted);
  font-size: .8125rem;
  letter-spacing: 0;
  text-transform: none;
}
.regulatoryLink {
  color: var(--u-accent);
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-color: rgba(65, 86, 74, .35);
}

/* ---------- Home: credentials strip ---------- */
.assurance {
  background: var(--u-paper);
  color: var(--u-text);
  border-bottom: 1px solid var(--u-rule);
}
.assurance p {
  color: var(--u-muted);
  border-right: 1px solid var(--u-rule);
  font-size: .8125rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.assurance p strong {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: 1.375rem;
  font-weight: 500;
}
.assurance p span { font-size: .8125rem; }
.assurance p:last-child { border: 0; }

/* ---------- Home: section headings ---------- */
.contactBand h2,
.sectionHeading h1,
.sectionHeading h2 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: clamp(2rem, 3.2vw, 2.75rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -.01em;
}
.splitHeading > p { color: var(--u-text); font-size: 1.0625rem; line-height: 1.7; }

/* ---------- Home: sections & cards ---------- */
.expertise, .work, .analysis, .team, .principal { background: var(--u-paper); }
.work, .analysis { border-top: 1px solid var(--u-rule); border-bottom: 0; }
.products, .engagement { background: var(--u-paper-alt); border-top: 1px solid var(--u-rule); border-bottom: 1px solid var(--u-rule); }

.serviceGrid,
.experienceGrid {
  border: 0;
  column-gap: clamp(1.5rem, 3vw, 3rem);
  row-gap: 2.5rem;
}
.serviceCard,
.experienceCard {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--u-ink);
  min-height: 0;
  padding: 1.75rem 0 0;
}
.serviceCard:hover { background: transparent; transform: none; }
.serviceNumber,
.experienceIndex,
.engagementSteps li > span {
  color: var(--u-faint);
  font-family: var(--u-sans);
  font-size: .8125rem;
  font-weight: 500;
  letter-spacing: .02em;
}
.serviceNumber, .experienceIndex { margin-bottom: 1.25rem; }
.engagementSteps h3 { margin-top: 1rem; }
.experienceCard, .productCard { min-height: 0; }
.experienceCard h3, .productCard h3 { margin-bottom: .75rem; }
.serviceCard h3 { margin-bottom: .75rem; }
.section { padding: clamp(4.5rem, 8vw, 7rem) 0; }
.serviceCard h3,
.experienceCard h3,
.principalPromise h3,
.productCard h3,
.engagementSteps h3 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
}
.serviceCard > p,
.experienceCard > p:last-child,
.productCard p,
.engagementSteps p { color: var(--u-text); font-size: .975rem; line-height: 1.65; }
.experienceCard .eyebrow { color: var(--u-muted); }
.serviceNote,
.productCard span {
  color: var(--u-muted);
  border-top: 1px solid var(--u-rule);
  font-size: .8125rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.productGrid { background: var(--u-rule); border: 1px solid var(--u-rule); }
.productCard { background: var(--u-paper); }

/* Principal */
.portraitFrame {
  background: var(--u-paper-alt);
  border: 1px solid var(--u-rule);
  box-shadow: none;
}
.portraitFrame::after, .portraitFrame:after { display: none; }
.portraitFrame img { filter: none; }
.portraitIndex { display: none; }
.principalCopy h2,
.personCopy h2,
.personCopy h3 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: clamp(2.25rem, 3.6vw, 3rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.01em;
}
.personRole {
  color: var(--u-muted);
  font-size: .9375rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.principalCopy > p:not(.eyebrow):not(.personRole),
.personCopy > p:not(.personLabel):not(.personRole),
.principalPromise p { color: var(--u-text); font-size: 1.0625rem; line-height: 1.7; }
.principalPromise { border-left: 2px solid var(--u-rule-strong); }
.tagRow span {
  background: var(--u-paper-alt);
  border: 1px solid var(--u-rule);
  color: var(--u-text);
  border-radius: var(--u-radius);
  font-size: .8125rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

/* Analysis feature */
.analysisFeature h2 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: clamp(1.875rem, 3vw, 2.5rem);
  font-weight: 400;
  line-height: 1.2;
}
.analysisFeature > div:last-child p { color: var(--u-text); }

/* Engagement steps */
.engagementSteps li { border-top: 1px solid var(--u-ink); }

/* Contact band */
.contactBand {
  background: var(--u-paper);
  border-top: 1px solid var(--u-rule);
  border-bottom: 0;
  padding: clamp(4.5rem, 8vw, 6.5rem) 0;
}
.contactBand h2 { max-width: 22ch; }
.contactBandInner > p:not(.eyebrow) { color: var(--u-text); }
.telephone {
  color: var(--u-ink);
  font-family: var(--u-sans);
  font-size: 1rem;
  font-weight: 500;
}

/* Team page specifics */
.teamHeading > p:last-child { color: var(--u-text); }
.currentProfileFacts > div { border-top: 1px solid var(--u-rule); }
.currentProfileFacts dt { color: var(--u-muted); font-size: .8125rem; letter-spacing: 0; text-transform: none; }
.currentProfileFacts dd { color: var(--u-ink); font-size: .975rem; }
.profileCurrent, .profileCurrent .profile-block { border-color: var(--u-rule); }
.profileCurrent h3 { color: var(--u-ink); font-family: var(--u-serif); font-size: 1.5rem; font-weight: 500; letter-spacing: 0; }
.profileCurrent p, .profileCurrent .profile-experience { color: var(--u-text); font-size: 1rem; line-height: 1.7; }
.profileCurrent .profile-lead { font-size: 1.125rem; color: var(--u-ink); }
.profileCurrent .profile-career li,
.profileCurrent .profile-list li { border-top: 1px solid var(--u-rule); color: var(--u-text); font-size: .95rem; }
.profileCurrent strong { color: var(--u-ink); font-weight: 600; }
.profileCurrent .profile-aside { background: var(--u-paper-alt); border: 1px solid var(--u-rule); border-radius: var(--u-radius); }
.profileCurrent .profile-aside h3 { font-size: 1.25rem; }
.profileCurrent .team-tag {
  background: var(--u-paper);
  border: 1px solid var(--u-rule);
  color: var(--u-text);
  border-radius: var(--u-radius);
  font-size: .8125rem;
  letter-spacing: 0;
  text-transform: none;
}

/* ---------- Footer ---------- */
body .siteFooter {
  background: var(--u-paper-alt);
  border-top: 1px solid var(--u-rule);
  color: var(--u-text);
}
body .siteFooter .brandMonogram { border-color: var(--u-ink); color: var(--u-ink); background: transparent; }
body .siteFooter .footerBrand strong {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
body .siteFooter .footerBrand p,
body .siteFooter .footerLegal p { color: var(--u-muted); font-size: .8125rem; line-height: 1.6; }
body .siteFooter .footerLegal { border-top: 1px solid var(--u-rule); border-bottom: 1px solid var(--u-rule); }
body .siteFooter .footerNavigation nav h2 {
  color: var(--u-ink);
  font: 600 .8125rem/1.5 var(--u-sans);
  letter-spacing: 0;
  text-transform: none;
}
body .siteFooter .footerContacts a,
body .siteFooter .footerNavigation nav a { color: var(--u-text); font-size: .875rem; }
body .siteFooter .footerEnd {
  color: var(--u-muted);
  font-size: .8125rem;
  letter-spacing: 0;
  text-transform: none;
}
body .siteFooter .footerEnd a,
body .siteFooter .footerEnd > .footerLegalLinks a { color: var(--u-text); font-size: .8125rem; }

/* ---------- Responsive (home/team) ---------- */
@media (max-width: 760px) {
  .hero h1 { font-size: clamp(2.25rem, 9vw, 2.75rem); }
  .principalCopy h2, .personCopy h2, .personCopy h3 { font-size: clamp(2rem, 8vw, 2.5rem); }
  .assurance p { border-right: 0; border-bottom: 1px solid var(--u-rule); }
  body .siteHeader .brandName { font-size: 1.125rem; }
}

/* ==========================================================================
   Static (legacy) pages
   ========================================================================== */

/* Neutralise the old dark treatments inside page content. Old styles live in
   @layer legacy, so these low-specificity rules still win. */
body.legacyStatic main *,
body.legacyStatic main *::before,
body.legacyStatic main *::after,
body.legacyStatic .newsletter-section *,
body.legacyStatic .newsletter-section *::before,
body.legacyStatic .newsletter-section *::after {
  background-color: transparent;
  background-image: none;
  box-shadow: none;
  text-shadow: none;
  color: inherit;
  border-color: var(--u-rule);
  font-family: inherit;
  letter-spacing: normal;
  text-transform: none;
}
body.legacyStatic main,
body.legacyStatic .newsletter-section {
  background: var(--u-paper);
  color: var(--u-text);
  font-family: var(--u-sans);
}
body.legacyStatic main p,
body.legacyStatic main li,
body.legacyStatic main td,
body.legacyStatic main dd {
  font-size: 1.0625rem;
  line-height: 1.7;
  font-weight: 400;
}
body.legacyStatic main strong,
body.legacyStatic main b { color: var(--u-ink); font-weight: 600; }
body.legacyStatic main h1,
body.legacyStatic main h2,
body.legacyStatic main h3,
body.legacyStatic main h4 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-weight: 500;
  letter-spacing: -.005em;
}
body.legacyStatic main h2 { font-size: clamp(1.5rem, 2.2vw, 1.875rem); line-height: 1.25; font-weight: 500; }
body.legacyStatic main h3 { font-size: 1.25rem; line-height: 1.35; }
body.legacyStatic main h4 { font-size: 1.0625rem; line-height: 1.4; }

body.legacyStatic main a { color: var(--u-accent); text-decoration-color: rgba(65, 86, 74, .35); text-underline-offset: 3px; }
body.legacyStatic main a:hover { color: var(--u-accent-hover); text-decoration-color: currentColor; }

/* Whole-card links: body copy stays in text colour */
body.legacyStatic main a.pillar-service-card,
body.legacyStatic main a:has(> h3),
body.legacyStatic main a:has(> h4) { color: var(--u-text); text-decoration: none; }
body.legacyStatic main a.pillar-service-card h4,
body.legacyStatic main a.pillar-service-card h3 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.35;
}
body.legacyStatic main a.pillar-service-card p { font-size: .975rem; }
body.legacyStatic main a.pillar-service-card .card-arrow { color: var(--u-accent); }

/* Line icons */
body.legacyStatic main .contact-detail-icon svg,
body.legacyStatic main .service-icon svg,
body.legacyStatic main .practice-icon svg,
body.legacyStatic main .payment-icon svg { stroke: currentColor; fill: none; }

/* Page hero */
body.legacyStatic .page-hero,
body.legacyStatic .marketing-hero {
  background: var(--u-paper-alt);
  border-bottom: 1px solid var(--u-rule);
}
body.legacyStatic .page-hero .container,
body.legacyStatic .page-hero .container::before,
body.legacyStatic .page-hero::before,
body.legacyStatic .page-hero::after { border-left-color: transparent; }
body.legacyStatic .page-hero::before,
body.legacyStatic .page-hero::after,
body.legacyStatic .page-hero .container::before,
body.legacyStatic .page-hero .container::after { display: none; }
body.legacyStatic .section-label,
body.legacyStatic .eyebrow,
body.legacyStatic main .insight-date,
body.legacyStatic main .insight-article-meta,
body.legacyStatic main .case-sector,
body.legacyStatic main .dc-kicker {
  color: var(--u-accent);
  font-family: var(--u-sans);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .01em;
  text-transform: none;
}
body.legacyStatic main .insight-article-meta { color: var(--u-muted); font-weight: 400; }
body.legacyStatic main .page-title,
body.legacyStatic main .marketing-hero h1 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.015em;
}
body.legacyStatic main .page-intro,
body.legacyStatic main .marketing-hero p {
  color: var(--u-text);
  font-size: 1.1875rem;
  line-height: 1.65;
  max-width: var(--u-measure);
}
body.legacyStatic main .page-regulatory {
  color: var(--u-muted);
  font-size: .875rem;
  font-weight: 400;
  text-decoration: underline;
  text-decoration-color: var(--u-rule-strong);
  text-underline-offset: 4px;
}
body.legacyStatic main .page-regulatory::before {
  border: 1px solid var(--u-rule-strong);
  color: var(--u-muted);
  font-family: var(--u-sans);
  font-size: .6875rem;
  font-weight: 600;
  border-radius: 2px;
}

/* Content */
body.legacyStatic main .lead,
body.legacyStatic main .profile-lead {
  color: var(--u-ink);
  font-family: var(--u-sans);
  font-size: 1.25rem;
  font-style: normal;
  line-height: 1.6;
}
body.legacyStatic main blockquote,
body.legacyStatic main .closing-statement,
body.legacyStatic main .case-why {
  border-left: 2px solid var(--u-rule-strong);
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-style: normal;
}
body.legacyStatic main .case-why { background: var(--u-paper-alt); font-family: var(--u-sans); }
body.legacyStatic main .styled-list li::before,
body.legacyStatic main .case-deliverables li::before,
body.legacyStatic main .checklist li::before { color: var(--u-faint); }
body.legacyStatic main hr,
body.legacyStatic main .section-divider { border-color: var(--u-rule); background: var(--u-rule); }

/* Buttons */
body.legacyStatic .btn-primary,
body.legacyStatic main .pay-btn,
body.legacyStatic main .full-width-btn,
body.legacyStatic main button[type="submit"],
body.legacyStatic .newsletter-form button {
  background: var(--u-accent);
  border: 1px solid var(--u-accent);
  color: #fff;
  border-radius: var(--u-radius);
  font-family: var(--u-sans);
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
}
body.legacyStatic .btn-primary:hover,
body.legacyStatic main .pay-btn:hover,
body.legacyStatic main .full-width-btn:hover,
body.legacyStatic main button[type="submit"]:hover,
body.legacyStatic .newsletter-form button:hover {
  background: var(--u-accent-hover);
  border-color: var(--u-accent-hover);
  color: #fff;
}
body.legacyStatic .btn-secondary {
  background: transparent;
  border: 1px solid var(--u-rule-strong);
  color: var(--u-ink);
  border-radius: var(--u-radius);
  font-family: var(--u-sans);
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
}
body.legacyStatic .btn-secondary:hover { background: var(--u-paper-alt); border-color: var(--u-ink); color: var(--u-ink); }

/* Cards and panels */
body.legacyStatic main .insight-card,
body.legacyStatic main .regulatory-card,
body.legacyStatic main .payment-card,
body.legacyStatic main .pillar-service-card,
body.legacyStatic main .case-study-full,
body.legacyStatic main .case-index,
body.legacyStatic main .form-card,
body.legacyStatic main .contact-form,
body.legacyStatic main .methodology-box,
body.legacyStatic main .resource-summary,
body.legacyStatic main .dc-sidebox,
body.legacyStatic main .ra-radar-card,
body.legacyStatic main .ra-priority,
body.legacyStatic main .download-card,
body.legacyStatic main .faq-item,
body.legacyStatic main .cta-block,
body.legacyStatic main .notice,
body.legacyStatic main .unpublished-notice {
  background: var(--u-paper);
  border: 1px solid var(--u-rule);
  border-radius: var(--u-radius);
}
body.legacyStatic main .insight-card::before,
body.legacyStatic main .insight-card::after,
body.legacyStatic main .contact-form::before,
body.legacyStatic main .form-card::before { display: none; }
body.legacyStatic main .insight-card:hover,
body.legacyStatic main .pillar-service-card:hover { border-color: var(--u-rule-strong); transform: none; }
body.legacyStatic main .case-study-full { border: 0; border-top: 1px solid var(--u-ink); border-radius: 0; }
body.legacyStatic main .case-study-full { padding-left: 0; }
body.legacyStatic main .case-study-full::before { display: none; }
body.legacyStatic main .case-number { font-size: 1.5rem; line-height: 1; }
body.legacyStatic main .case-number,
body.legacyStatic main .ci-num,
body.legacyStatic main .section-number,
body.legacyStatic main .dc-number,
body.legacyStatic main .ra-domain-num { color: var(--u-faint); font-family: var(--u-sans); font-style: normal; }
body.legacyStatic main .case-client,
body.legacyStatic main .ci-client { color: var(--u-muted); font-size: .8125rem; }
body.legacyStatic main .card-link,
body.legacyStatic main .card-arrow,
body.legacyStatic main .dc-textlink { color: var(--u-accent); font-size: .9375rem; font-weight: 500; }
body.legacyStatic main .service-icon,
body.legacyStatic main .contact-detail-icon,
body.legacyStatic main .payment-icon {
  background: var(--u-paper-alt);
  border: 1px solid var(--u-rule);
  color: var(--u-accent);
  border-radius: var(--u-radius);
}
body.legacyStatic main .pillar-header { border-left-color: var(--u-rule-strong); }
body.legacyStatic main .bank-primary { background: var(--u-paper-alt); }
body.legacyStatic main .bank-label { color: var(--u-muted); font-size: .8125rem; }
body.legacyStatic main .bank-value { color: var(--u-ink); font-family: var(--u-sans); }

/* Forms */
body.legacyStatic main label,
body.legacyStatic main .form-group label {
  color: var(--u-ink);
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
body.legacyStatic main input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]),
body.legacyStatic main select,
body.legacyStatic main textarea,
body.legacyStatic .newsletter-form input {
  background: var(--u-paper);
  border: 1px solid var(--u-rule-strong);
  border-radius: var(--u-radius);
  color: var(--u-ink);
  font-family: var(--u-sans);
  font-size: 1rem;
}
body.legacyStatic main input::placeholder,
body.legacyStatic main textarea::placeholder,
body.legacyStatic .newsletter-form input::placeholder { color: var(--u-faint); }
body.legacyStatic main input:focus,
body.legacyStatic main select:focus,
body.legacyStatic main textarea:focus,
body.legacyStatic .newsletter-form input:focus {
  border-color: var(--u-accent);
  outline: 2px solid rgba(65, 86, 74, .18);
  outline-offset: 0;
}
body.legacyStatic main select option { background: var(--u-paper); color: var(--u-ink); }
body.legacyStatic main input[type="checkbox"],
body.legacyStatic main input[type="radio"] { accent-color: var(--u-accent); }
body.legacyStatic main .form-note,
body.legacyStatic main .newsletter-fine,
body.legacyStatic main .source-note,
body.legacyStatic main .disclaimer-note,
body.legacyStatic main .payment-note,
body.legacyStatic .newsletter-fine { color: var(--u-muted); font-size: .875rem; }

/* Self-assessment diagnostics */
body.legacyStatic main .ra-progress-track,
body.legacyStatic main .ra-bd-track { background: var(--u-paper-deep); }
body.legacyStatic main .ra-progress-fill,
body.legacyStatic main .ra-bd-fill { background: var(--u-accent); }
body.legacyStatic main .ra-opt {
  background: var(--u-paper);
  border: 1px solid var(--u-rule-strong);
  border-radius: var(--u-radius);
  color: var(--u-ink);
}
body.legacyStatic main .ra-opt:hover { border-color: var(--u-accent); }
body.legacyStatic main .ra-opt.selected,
body.legacyStatic main .ra-opt.active,
body.legacyStatic main .ra-opt[aria-pressed="true"],
body.legacyStatic main .ra-opt[aria-checked="true"],
body.legacyStatic main .ra-opt:has(input:checked) {
  background: var(--u-accent);
  border-color: var(--u-accent);
  color: #fff;
}
body.legacyStatic main .ra-band { background: var(--u-paper-alt); border: 1px solid var(--u-rule); }
body.legacyStatic main .ra-domain-title {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-weight: 500;
}

/* Checklist / resource landing pages */
body.legacyStatic main .marketing-layout h2,
body.legacyStatic main .marketing-layout h3 { margin: 1.75rem 0 .75rem; }
body.legacyStatic main .marketing-layout h2:first-child,
body.legacyStatic main .marketing-layout h3:first-child { margin-top: 0; }
body.legacyStatic main .marketing-layout li { margin-bottom: .35rem; }

/* Newsletter */
body.legacyStatic .newsletter-section {
  background: var(--u-paper);
  border-top: 1px solid var(--u-rule);
}
body.legacyStatic .newsletter-section .newsletter-inner { background: transparent; border: 0; }
body.legacyStatic .newsletter-section h2,
body.legacyStatic .newsletter-section h3 {
  color: var(--u-ink);
  font-family: var(--u-serif);
  font-weight: 500;
}
body.legacyStatic .newsletter-section p { color: var(--u-text); }
body.legacyStatic .newsletter-section a { color: var(--u-accent); }

/* Cookie consent banner (injected by consent-loader.js) */
.consent-banner {
  background: var(--u-paper);
  color: var(--u-text);
  border: 1px solid var(--u-rule);
  border-radius: var(--u-radius);
  box-shadow: 0 12px 32px rgba(24, 34, 28, .10);
  font-family: var(--u-sans);
  font-size: .9rem;
}
.consent-banner p, .consent-banner strong { color: var(--u-text); }
.consent-banner strong { color: var(--u-ink); font-weight: 600; }
.consent-banner a { color: var(--u-accent); }
.consent-actions button {
  border-radius: var(--u-radius);
  font-family: var(--u-sans);
  font-size: .875rem;
  font-weight: 500;
}
.consent-banner .consent-accept { background: var(--u-accent); border: 1px solid var(--u-accent); color: #fff; }
.consent-banner .consent-reject { background: var(--u-paper); border: 1px solid var(--u-rule-strong); color: var(--u-ink); }

/* Responsive (static pages) */
@media (max-width: 760px) {
  body.legacyStatic main .page-title,
  body.legacyStatic main .marketing-hero h1 { font-size: clamp(2rem, 8vw, 2.5rem); }
  body.legacyStatic main .page-intro { font-size: 1.0625rem; }
  body.legacyStatic main .lead { font-size: 1.125rem; }
}

@media print {
  body .siteHeader, body .siteFooter, body.legacyStatic .newsletter-section { display: none; }
}

/* Measured refinements, retaining the existing palette and typefaces. */
.hero { min-height: 0; }
.heroInner { padding: clamp(4rem, 6vw, 6rem) 0; gap: clamp(2.5rem, 5vw, 5rem); }
.hero h1 { max-width: 20ch; text-wrap: balance; }
.heroLead { max-width: 40rem; margin-top: 1.75rem; }
.heroActions { margin-top: 1.75rem; }
.section { padding: clamp(3.5rem, 6vw, 5.5rem) 0; }
.sectionHeading h1, .sectionHeading h2, .contactBand h2,
body.legacyStatic main .page-title { text-wrap: balance; }

/* Keep navigation clear for touch and keyboard users. */
body .siteHeader .desktopNav a { min-height: 44px; display: inline-flex; align-items: center; }
body .siteHeader .mobileNav summary { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: flex-end; }
body .siteHeader .mobileNav > div { top: calc(100% + .5rem); max-width: calc(100vw - 2rem); }
body .siteHeader .mobileNav a { min-height: 44px; display: flex; align-items: center; }
body .siteHeader .mobileNav a[aria-current="page"] { background: var(--u-paper-alt); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
body .siteHeader .headerCta[aria-current="page"] { text-decoration: underline; text-underline-offset: 4px; }

/* Remove the residual inset left behind by the former decorative hero rule. */
body.legacyStatic .page-hero .container { padding-inline: 0; }
body.legacyStatic main .page-title { max-width: 30ch; }

/* Give diagnostic results the same readable hierarchy as the rest of the site. */
body.legacyStatic main .ra-band { display: inline-block; padding: .25rem .75rem; font-family: var(--u-serif); font-weight: 500; }
body.legacyStatic main #ra-breakdown { display: grid; gap: 1.75rem; }
body.legacyStatic main .ra-breakdown-domain { margin: 0; }
body.legacyStatic main .ra-bd-name { font-size: 1.0625rem; font-weight: 600; line-height: 1.4; }
body.legacyStatic main .ra-bd-note { margin: 0; font-size: 1rem; line-height: 1.65; }
body.legacyStatic main .ra-radar svg text { font-family: var(--u-sans); }

@media (max-width: 760px) {
  .heroInner { padding: 3.5rem 0 4rem; gap: 3rem; }
  .hero h1 { max-width: 20ch; }
  body.legacyStatic .page-hero { padding: 3rem 1.5rem; }
  body.legacyStatic .page-hero .container { width: 100%; }
  body.legacyStatic main .page-title { font-size: clamp(2rem, 8vw, 2.5rem); }
  body.legacyStatic main .ra-bd-head { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .button, .ra-bd-fill { transition: none; }
}
