/* Curriculum vitae: shared restrained layout, original wording. */
.cv-hero .cv-name-row { display: flex; align-items: center; justify-content: center; gap: 26px; }
.cv-hero .cv-name-row h1 { max-width: 800px; margin: 0; text-align: left; }
.cv-hero .cv-name-row picture { flex: 0 0 104px; }
.cv-hero .profile-photo { width: 104px; height: 120px; }
.cv-hero p { max-width: 900px; }
.cv-contacts { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px 24px; margin-top: 24px; }
.cv-contacts a { color: white; font-size: 13px; line-height: 1.6; }
.cv-contacts a:hover { color: var(--light); }
.cv-section .container > p { max-width: 930px; }
.cv-section .grid.cv-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cv-section .grid.cv-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cv-section .grid .card h3 { min-height: 0; }
.cv-section .grid.cv-four .card { padding: 23px; }
.cv-section .grid.cv-four .card h3 { font-size: 20px; }
.cv-records { display: grid; gap: 20px; }
.cv-record-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.cv-record-heading > div { min-width: 0; }
.cv-record .cv-record-heading h3 { margin: 0 0 6px; font-family: var(--sans); font-size: 20px; font-weight: 700; line-height: 1.4; }
.cv-record .cv-record-heading h4 { margin: 0; font-family: var(--sans); font-size: 15px; font-weight: 400; line-height: 1.6; }
.cv-record > ul { margin-top: 22px; }
.cv-record .cv-record-heading p { margin-top: 10px; }
.cv-date { flex: 0 0 auto; font-size: 13px; line-height: 1.6; }
.cv-course-card .cv-course-list { margin: 0; padding: 0; list-style: none; }
.cv-course-list > li { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin: 0; padding: 18px 0; }
.cv-course-list > li + li { border-top: 1px solid var(--light); }
.cv-course-list > li:first-child { padding-top: 0; }
.cv-course-list > li:last-child { padding-bottom: 0; }
.cv-course-list > li > div { min-width: 0; }
.cv-course-name { display: block; font-family: var(--sans); font-size: 16px; font-weight: 700; line-height: 1.5; }
.cv-course-provider { display: block; margin-top: 4px; font-size: 14px; line-height: 1.6; }
.cv-other-qualifications { margin: 0; }
.cv-contact .container { max-width: 900px; text-align: center; }
.cv-contact h2 { margin-bottom: 20px; }
.cv-contact .cv-actions { margin-top: 26px; }
@media (max-width: 1080px) {
  .cv-section .grid.cv-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .cv-hero .cv-name-row { justify-content: flex-start; gap: 20px; }
  .cv-hero .cv-name-row picture { flex-basis: 88px; }
  .cv-hero .profile-photo { width: 88px; height: 102px; }
  .cv-hero .cv-name-row h1 { font-size: 28px; }
  .cv-hero > .container > p { text-align: left; }
  .cv-contacts { flex-direction: column; align-items: flex-start; gap: 8px; }
  .cv-contacts a { font-size: 12px; }
  .cv-section .grid.cv-four, .cv-section .grid.cv-two { grid-template-columns: minmax(0, 1fr); }
  .cv-record-heading { flex-direction: column; gap: 10px; }
  .cv-records { gap: 16px; }
  .cv-course-list > li { flex-direction: column; gap: 8px; }
  .cv-contact .cv-actions { align-items: stretch; flex-direction: column; }
}

/* Resource pages use the shared brand, typography, navigation, and card system. */
.resources-hero .resource-eyebrow {
  margin: 0 auto 18px;
  max-width: 900px;
  color: var(--light);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.resources-hero h1 { max-width: 1000px; }
.resources-hero p:last-child { max-width: 850px; }
.resource-intro { margin-bottom: 30px; max-width: 850px; }
.resource-intro h2 { margin-bottom: 16px; }
.resources-section .resources-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resources-list .resource-card { min-width: 0; }
.resources-list .resource-card .resource-eyebrow {
  margin: 0 0 16px;
  color: var(--blue);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.resources-list .resource-card h3 { min-height: 0; margin-bottom: 18px; }
.resources-list .resource-card p { margin: 0 0 24px; }
.resources-list .resource-card > .button { margin-top: auto; }
.article-body { width: min(100%, 800px); margin-inline: auto; }
.article-body > p:first-child { margin-bottom: 28px; font-size: 14px; }
.article-body p, .article-body li { line-height: 1.85; }
.article-body h2 {
  margin: 48px 0 22px;
  font-size: 29px;
  line-height: 1.35;
  color: var(--blue);
}
.article-body h3 { margin: 32px 0 16px; font-size: 22px; line-height: 1.4; }
.article-body h2 + h3 { margin-top: 24px; }
.article-body ul, .article-body ol { margin-block: 20px; padding-left: 24px; }
.article-body li + li { margin-top: 9px; }
.article-body blockquote {
  margin: 24px 0;
  padding: 20px 24px;
  border-left: 3px solid var(--blue);
  background: var(--light);
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.article-body p + h2 { margin-top: 48px; }
.article-body .button { text-align: center; }
.article-contact { margin-top: 48px; padding: 30px; background: var(--light); }
.article-contact h2 { margin: 0 0 20px; font-size: 28px; }
.article-actions { justify-content: flex-start; margin-top: 26px; }
.article-body [id] { scroll-margin-top: 112px; }
@media (max-width: 1080px) {
  .resources-section .resources-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .resources-hero .resource-eyebrow { margin: 0 auto 14px; font-size: 10px; }
  .resources-section .resources-list { grid-template-columns: minmax(0, 1fr); }
  .article-body p, .article-body li { font-size: 15px; line-height: 1.8; }
  .article-body h2 { margin-top: 38px; font-size: 25px; }
  .article-body h3 { margin-top: 28px; font-size: 21px; }
  .article-body blockquote { padding: 18px; font-size: 15px; }
  .article-contact { padding: 23px; }
  .article-contact h2 { font-size: 25px; }
  .article-actions { flex-direction: column; align-items: stretch; }
  .article-body [id] { scroll-margin-top: 94px; }
}

.consulting-hero h1 { max-width: 1020px; }
.consulting-section, .consulting-principles { overflow-wrap: anywhere; }
.consulting-hero .consulting-eyebrow {
  margin: 0 auto 18px;
  color: var(--light);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.consulting-hero p + p { margin-top: 16px; font-size: 16px; }
.consulting-principles { padding-block: 30px; background: var(--white); }
.consulting-principle {
  padding: 5px 18px;
  border-left: 2px solid var(--blue);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.65;
}
.consulting-section .consulting-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.consulting-section .consulting-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.consulting-section .consulting-grid-four,
.consulting-principles .consulting-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.consulting-section-intro { max-width: 950px; margin-bottom: 30px; }
.consulting-section-intro h2 { margin-bottom: 22px; }
.consulting-section .consulting-reading { max-width: 950px; }
.consulting-section h2 { max-width: 980px; }
.consulting-section h3 { margin-bottom: 16px; }
.consulting-section h4 { margin: 0 0 12px; font-family: var(--serif); font-size: 20px; line-height: 1.4; }
.consulting-section .card { min-width: 0; }
.consulting-section .card h3 { min-height: 0; }
.consulting-section .card p { line-height: 1.8; }
.consulting-section .consulting-full { grid-column: 1 / -1; }
.consulting-following { margin-top: 30px; }
.consulting-comparison { padding-left: 20px; border-left: 2px solid var(--blue); }
.consulting-panel > h3 { color: var(--blue); font-size: 24px; margin-bottom: 24px; }
.consulting-panel > p:last-child { margin-top: 24px; }
.consulting-process-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 60px; margin-bottom: 30px; }
.consulting-eyebrow { color: var(--blue); font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 14px; }
.consulting-process-intro h2 { margin: 0; }
.consulting-subheading { display: block; margin-top: 10px; font-size: .76em; }
.consulting-card .consulting-step-number { font-size: 13px; color: var(--blue); font-weight: 700; margin-bottom: 14px; }
.consulting-reference { font-size: 13px; margin-top: 16px; }
.consulting-grid-spaced { margin-block: 26px; }
.consulting-reading > .button { margin-top: 24px; }
.consulting-faq-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.consulting-faq { padding: 23px 0; border-bottom: 1px solid var(--line); }
.consulting-faq summary { cursor: pointer; font-size: 17px; font-weight: 600; line-height: 1.65; padding-right: 15px; }
.consulting-faq summary::marker { color: var(--blue); }
.consulting-faq p { margin-top: 18px; font-size: 15px; line-height: 1.8; max-width: 850px; }
.consulting-contact { text-align: center; }
.consulting-contact .container { max-width: 900px; }
.consulting-contact p { max-width: 800px; margin-inline: auto; }
.consulting-contact .button { margin-top: 26px; }
.consulting-section [id] { scroll-margin-top: 112px; }
@media (max-width: 1080px) {
  .consulting-section .consulting-grid-four,
  .consulting-principles .consulting-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consulting-section .consulting-grid-three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consulting-process-intro { gap: 35px; }
}
@media (max-width: 600px) {
  .consulting-hero .consulting-eyebrow { margin: 0 auto 14px; font-size: 10px; }
  .consulting-hero p + p { font-size: 15px; }
  .consulting-principles { padding-block: 26px; }
  .consulting-section .consulting-grid-three,
  .consulting-section .consulting-grid-two,
  .consulting-section .consulting-grid-four,
  .consulting-principles .consulting-grid-four { grid-template-columns: minmax(0, 1fr); }
  .consulting-principles .consulting-grid-four { gap: 16px; }
  .consulting-process-intro { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .consulting-section p { font-size: 15px; }
  .consulting-section .card p { font-size: 14px; }
  .consulting-panel > h3 { font-size: 22px; }
  .consulting-section h4 { font-size: 19px; }
  .consulting-faq summary { font-size: 16px; }
  .consulting-faq p { font-size: 14px; }
  .consulting-contact .button { width: 100%; }
  .consulting-section [id] { scroll-margin-top: 94px; }
}


.app-shell {
      --bg: #f6f7f9;
      --surface: #ffffff;
      --surface-soft: #f1f4f8;
      --text: #172033;
      --muted: #5f6f84;
      --border: #d9e0ea;
      --accent: #0A4D8C;
      --accent-soft: #e8eef8;
      --green: #146c43;
      --green-bg: #e8f5ed;
      --yellow: #8a5d00;
      --yellow-bg: #fff3cf;
      --red: #a3221b;
      --red-bg: #fde8e6;
      --grey: #4f5d6f;
      --grey-bg: #edf0f4;
      --shadow: 0 18px 50px rgba(23, 32, 51, 0.08);
      --radius-lg: 24px;
      --radius-md: 16px;
      --radius-sm: 10px;
      --focus: 0 0 0 3px rgba(10, 77, 140, 0.18);
    }
.app-shell, .app-shell * { box-sizing: border-box; }
.app-shell {
      margin: 0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      color: var(--text);
      background: linear-gradient(135deg, #f4f7fb 0%, #f7f7f8 100%);
      line-height: 1.5;
    }
.app-shell a { color: var(--accent); }
.app-shell {
      min-height: 100vh;
      padding: 32px 18px;
      display: flex;
      justify-content: center;
    }
.app-shell .app {
      width: min(1160px, 100%);
      display: grid;
      grid-template-columns: 320px 1fr;
      gap: 22px;
      align-items: start;
    }
.app-shell .panel {
      background: rgba(255, 255, 255, 0.94);
      border: 1px solid rgba(217, 224, 234, 0.9);
      box-shadow: var(--shadow);
      border-radius: var(--radius-lg);
    }
.app-shell .sidebar {
      padding: 22px;
      position: sticky;
      top: 20px;
    }
.app-shell .main { padding: 28px; }
.app-shell .language-switch {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-bottom: 18px;
      padding: 4px;
      background: var(--surface-soft);
      border: 1px solid var(--border);
      border-radius: 999px;
    }
.app-shell .lang-btn {
      text-align: center;
      text-decoration: none;
      appearance: none;
      border: 0;
      background: transparent;
      border-radius: 999px;
      padding: 8px 10px;
      cursor: pointer;
      font: inherit;
      font-size: 13px;
      font-weight: 850;
      color: var(--muted);
    }
.app-shell .lang-btn.active {
      background: var(--surface);
      color: var(--accent);
      box-shadow: 0 6px 16px rgba(23, 32, 51, 0.08);
    }
.app-shell .brand-block {
      margin-bottom: 18px;
      padding: 14px 14px 13px;
      border-radius: var(--radius-md);
      background: linear-gradient(135deg, var(--accent), #365984);
      color: white;
      box-shadow: 0 14px 30px rgba(10, 77, 140, 0.16);
    }
.app-shell .brand-name {
      font-size: 15px;
      font-weight: 900;
      letter-spacing: -0.01em;
      line-height: 1.2;
    }
.app-shell .brand-subtitle {
      margin-top: 4px;
      font-size: 12.5px;
      line-height: 1.35;
      color: rgba(255,255,255,0.84);
    }
.app-shell .kicker {
      font-size: 12px;
      font-weight: 850;
      letter-spacing: 0.08em;
      color: var(--muted);
      text-transform: uppercase;
      margin-bottom: 8px;
    }
.app-shell h1 {
      font-size: clamp(30px, 4vw, 44px);
      line-height: 1.04;
      margin: 0 0 12px;
      letter-spacing: -0.045em;
    }
.app-shell h2 {
      font-size: clamp(23px, 3vw, 32px);
      line-height: 1.16;
      margin: 0 0 12px;
      letter-spacing: -0.03em;
    }
.app-shell h3 { font-size: 17px; margin: 20px 0 10px; }
.app-shell p { margin: 0 0 14px; }
.app-shell .lead {
      color: var(--muted);
      font-size: 16px;
      max-width: 800px;
    }
.app-shell .notice {
      border-radius: var(--radius-md);
      padding: 14px 16px;
      background: var(--accent-soft);
      border: 1px solid #d5e0f3;
      color: #203553;
      margin: 18px 0 0;
      font-size: 14px;
    }
.app-shell .notice strong { color: var(--accent); }
.app-shell .sidebar-download {
      margin: 14px 0 16px;
      padding: 12px 13px;
      border: 1px solid var(--border);
      border-radius: var(--radius-md);
      background: #fbfcfe;
    }
.app-shell .sidebar-download-title {
      margin-bottom: 8px;
      color: var(--accent);
      font-size: 12px;
      line-height: 1.2;
      font-weight: 900;
      letter-spacing: 0.02em;
    }
.app-shell .sidebar-download-link {
      width: 100%;
      padding: 10px 12px;
      font-size: 13px;
      line-height: 1.15;
    }
.app-shell .sidebar-download-copy {
      margin-top: 8px;
      color: var(--muted);
      font-size: 12.5px;
      line-height: 1.35;
    }
.app-shell .progress-status {
      margin-top: 18px;
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 10px;
      color: var(--accent);
      font-size: 12.5px;
      font-weight: 850;
      letter-spacing: 0.01em;
    }
.app-shell .progress-status-subtle {
      color: var(--muted);
      font-size: 11.5px;
      font-weight: 750;
      white-space: nowrap;
    }
.app-shell .sidebar-progress { margin: 8px 0 14px; }
.app-shell .steps { display: grid; gap: 9px; margin-top: 0; }
.app-shell .step-pill {
      display: flex;
      gap: 10px;
      align-items: center;
      padding: 10px 12px;
      border-radius: var(--radius-sm);
      color: var(--muted);
      background: transparent;
      border: 1px solid transparent;
      font-size: 14px;
      transition: background 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
    }
.app-shell .step-pill.active {
      color: white;
      background: var(--accent);
      border-color: var(--accent);
      font-weight: 850;
      box-shadow: 0 10px 22px rgba(10, 77, 140, 0.16);
    }
.app-shell .step-pill.done {
      color: var(--accent);
      background: rgba(232, 238, 248, 0.72);
      border-color: #d5e0f3;
      font-weight: 800;
    }
.app-shell .step-number {
      width: 26px;
      height: 26px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: var(--surface-soft);
      color: inherit;
      font-weight: 850;
      font-size: 13px;
      flex: 0 0 auto;
    }
.app-shell .step-pill.active .step-number { background: rgba(255,255,255,0.18); color: white; }
.app-shell .step-pill.done .step-number { background: var(--accent-soft); color: var(--accent); }
.app-shell .progress {
      height: 10px;
      border-radius: 999px;
      background: #e6ebf2;
      overflow: hidden;
      margin: 22px 0;
    }
.app-shell .progress-bar {
      height: 100%;
      background: linear-gradient(90deg, var(--accent), #5c77a5);
      width: 0%;
      transition: width 220ms ease;
    }
.app-shell .question-card { display: none; scroll-margin-top: 18px; }
.app-shell .question-card.active { display: block; animation: fadeIn 180ms ease-out; }

    @keyframes fadeIn {
      from { opacity: 0; transform: translateY(6px); }
      to { opacity: 1; transform: translateY(0); }
    }
.app-shell .early-exit {
      display: none;
      margin: 20px 0 24px;
      padding: 16px;
      border-radius: var(--radius-md);
      background: var(--red-bg);
      border: 1px solid #efb5b0;
      color: #641815;
    }
.app-shell .early-exit.active { display: block; animation: fadeIn 180ms ease-out; }
.app-shell .early-exit strong {
      display: block;
      margin-bottom: 4px;
      color: var(--red);
      font-weight: 900;
    }
.app-shell .options-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 20px;
    }
.app-shell .option {
      text-align: left;
      border: 1.5px solid var(--border);
      background: var(--surface);
      border-radius: var(--radius-md);
      padding: 16px;
      cursor: pointer;
      transition: transform 140ms ease, border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
      min-height: 142px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      color: var(--text);
      font: inherit;
    }
.app-shell .option:hover {
      transform: translateY(-2px);
      border-color: #b8c5d8;
      box-shadow: 0 12px 26px rgba(23, 32, 51, 0.08);
    }
.app-shell .option.selected { border-color: var(--accent); background: var(--accent-soft); }
.app-shell .option-title {
      font-size: 16px;
      font-weight: 850;
      display: flex;
      align-items: center;
      gap: 9px;
    }
.app-shell .risk-marker {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      display: inline-block;
      flex: 0 0 auto;
      background: var(--accent);
    }
.app-shell .risk-green { background: var(--green); }
.app-shell .risk-yellow { background: #c78400; }
.app-shell .risk-red { background: var(--red); }
.app-shell .risk-grey { background: var(--grey); }
.app-shell .option-desc { color: var(--muted); font-size: 14px; line-height: 1.42; }
.app-shell .examples {
      margin-top: auto;
      font-size: 12.5px;
      color: #425066;
      background: rgba(241, 244, 248, 0.82);
      border-radius: 10px;
      padding: 8px 9px;
    }
.app-shell .controls {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      margin-top: 24px;
      border-top: 1px solid var(--border);
      padding-top: 18px;
      flex-wrap: wrap;
    }
.app-shell .btn, .app-shell .link-button {
      appearance: none;
      border-radius: 999px;
      padding: 12px 16px;
      font-weight: 800;
      font-size: 14px;
      cursor: pointer;
      transition: transform 140ms ease, background 140ms ease, opacity 140ms ease;
      font-family: inherit;
      border: 0;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
    }
.app-shell .btn:hover, .app-shell .link-button:hover { transform: translateY(-1px); }
.app-shell .btn-primary { background: var(--accent); color: white; }
.app-shell .btn-danger { background: var(--red); color: white; margin-top: 10px; }
.app-shell .btn-secondary, .app-shell .link-button-secondary { background: var(--surface-soft); color: var(--text); border: 1px solid var(--border); }
.app-shell .link-button-disabled { background: var(--surface-soft); color: var(--muted); border: 1px solid var(--border); cursor: not-allowed; opacity: 0.75; }
.app-shell .link-button-disabled:hover { transform: none; }
.app-shell .btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }
.app-shell .lang-btn:focus-visible, .app-shell .option:focus-visible, .app-shell .btn:focus-visible, .app-shell .link-button:focus-visible { outline: none; box-shadow: var(--focus); }
.app-shell .result-card {
      display: none;
      border-radius: var(--radius-lg);
      padding: 22px;
      border: 1px solid var(--border);
      margin-top: 18px;
    }
.app-shell .result-card.active { display: block; animation: fadeIn 180ms ease-out; }
.app-shell .result-green { background: var(--green-bg); border-color: #badfca; }
.app-shell .result-yellow { background: var(--yellow-bg); border-color: #f1d291; }
.app-shell .result-red { background: var(--red-bg); border-color: #efb5b0; }
.app-shell .result-grey { background: var(--grey-bg); border-color: #d3d9e2; }
.app-shell .result-label {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      font-weight: 900;
      border-radius: 999px;
      padding: 8px 12px;
      background: rgba(255,255,255,0.72);
      border: 1px solid rgba(255,255,255,0.86);
      margin-bottom: 12px;
      font-size: 14px;
      text-transform: uppercase;
      letter-spacing: 0.03em;
    }
.app-shell .result-green .result-label {
      color: var(--green);
      border-color: #9bd0b1;
      background: rgba(255,255,255,0.82);
    }
.app-shell .result-yellow .result-label {
      color: var(--yellow);
      border-color: #e1bd6a;
      background: rgba(255,255,255,0.82);
    }
.app-shell .result-red .result-label {
      color: var(--red);
      border-color: #e6a19b;
      background: rgba(255,255,255,0.82);
    }
.app-shell .result-grey .result-label {
      color: var(--grey);
      border-color: #c4ccd8;
      background: rgba(255,255,255,0.82);
    }
.app-shell .result-title {
      font-size: clamp(24px, 3vw, 34px);
      line-height: 1.1;
      font-weight: 900;
      letter-spacing: -0.035em;
      margin-bottom: 10px;
    }
.app-shell .result-text { font-size: 16px; max-width: 800px; }
.app-shell .summary-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 16px;
    }
.app-shell .summary-item {
      background: rgba(255,255,255,0.72);
      border: 1px solid rgba(255,255,255,0.92);
      border-radius: 12px;
      padding: 10px 12px;
      font-size: 13px;
    }
.app-shell .summary-label { color: var(--muted); font-weight: 750; display: block; margin-bottom: 3px; }
.app-shell .summary-value { font-weight: 850; }
.app-shell .result-section {
      margin-top: 18px;
      background: rgba(255,255,255,0.64);
      border: 1px solid rgba(255,255,255,0.9);
      border-radius: var(--radius-md);
      padding: 14px 16px;
    }
.app-shell .result-section h3 { margin-top: 0; }
.app-shell .result-section.compact-note {
      background: rgba(255,255,255,0.78);
      border-color: rgba(255,255,255,0.95);
    }
.app-shell .result-section.compact-note h3 {
      margin: 0 0 6px;
      font-size: 15px;
      letter-spacing: -0.01em;
    }
.app-shell .result-section.compact-note p {
      margin: 0;
      color: #2f3b4c;
      font-size: 14px;
      line-height: 1.45;
    }
.app-shell .accordion-toggle {
      width: 100%;
      border: 0;
      background: transparent;
      padding: 0;
      font: inherit;
      color: var(--text);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      cursor: pointer;
      text-align: left;
      min-height: 34px;
    }
.app-shell .accordion-title {
      font-size: 16px;
      font-weight: 850;
      line-height: 1.25;
    }
.app-shell .accordion-icon {
      width: 30px;
      height: 30px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      background: var(--surface-soft);
      color: var(--accent);
      border: 1px solid var(--border);
      font-weight: 900;
      line-height: 1;
    }
.app-shell .accordion-toggle:focus-visible {
      outline: none;
      box-shadow: var(--focus);
      border-radius: 12px;
    }
.app-shell .accordion-content {
      margin-top: 10px;
    }
.app-shell .result-section.collapsible.collapsed .accordion-content {
      display: none;
    }
.app-shell .result-section.collapsible.open .accordion-content {
      display: block;
    }
.app-shell ul { margin: 8px 0 0; padding-left: 20px; }
.app-shell li { margin: 5px 0; }
.app-shell .mini-rules { display: grid; gap: 10px; margin-top: 18px; }
.app-shell .mini-rule {
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 9px 10px;
      background: var(--surface-soft);
      font-size: 13px;
      line-height: 1.35;
    }
.app-shell .mini-rule strong { display: inline; margin-right: 4px; }
.app-shell .app-meta {
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid var(--border);
      color: var(--muted);
      font-size: 12.5px;
      line-height: 1.45;
    }
.app-shell .app-meta strong { color: var(--text); font-weight: 850; }
.app-shell .app-meta p { margin: 0 0 7px; }
.app-shell .contact-list { display: grid; gap: 4px; margin-top: 6px; }
.app-shell .contact-list a { color: var(--accent); text-decoration: none; font-weight: 750; }
.app-shell .contact-list a:hover { text-decoration: underline; }
.app-shell .disclaimer-box {
      margin-top: 18px;
      border-radius: var(--radius-md);
      padding: 12px 14px;
      background: #fbfcfe;
      border: 1px solid var(--border);
      color: var(--muted);
      font-size: 13px;
    }
.app-shell .disclaimer-box strong { color: var(--text); }
.app-shell .footer-note { margin-top: 22px; color: var(--muted); font-size: 13px; }
.app-shell .yellow-navigator-box {
      background: rgba(255, 243, 207, 0.82);
      border-color: rgba(138, 93, 0, 0.28);
    }
.app-shell .yellow-navigator-box h3 {
      color: var(--yellow);
      margin-bottom: 8px;
    }
.app-shell .yellow-navigator-box ul {
      margin-top: 10px;
    }
.app-shell .navigator-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 12px;
    }
.app-shell .navigator-actions .link-button {
      font-size: 13px;
      padding: 10px 13px;
      background: rgba(255,255,255,0.78);
    }

    @media (max-width: 900px) {
.app-shell .app { grid-template-columns: 1fr; }
.app-shell .sidebar { position: static; }
.app-shell .options-grid, .app-shell .summary-grid { grid-template-columns: 1fr; }
.app-shell .main { padding: 22px; }
    }

    @media (max-width: 900px) {
.app-shell .question-card { scroll-margin-top: 14px; }
.app-shell .early-exit {
        margin: 18px 0 26px;
      }
body.check-started .app-shell .sidebar {
        padding: 16px;
      }
body.check-started .app-shell .sidebar .mini-rules, body.check-started .app-shell .sidebar .sidebar-download, body.check-started .app-shell .sidebar .app-meta {
        display: none;
      }
body.check-started .app-shell .sidebar .brand-block {
        margin-bottom: 12px;
        padding: 12px 13px;
      }
body.check-started .app-shell .sidebar h1 {
        font-size: clamp(24px, 7vw, 32px);
        margin-bottom: 8px;
      }
body.check-started .app-shell .sidebar .lead, body.check-started .app-shell .sidebar .notice {
        margin-bottom: 0;
      }
    }

    @media print {
.app-shell { background: white; }
.app-shell { padding: 0; }
.app-shell .app { display: block; width: 100%; }
.app-shell .sidebar, .app-shell .controls, .app-shell .no-print, .app-shell .progress, .app-shell .early-exit { display: none !important; }
.app-shell .panel, .app-shell .result-card { box-shadow: none; border: 1.5px solid #777; }
.app-shell .result-label { border: 1.5px solid #333 !important; background: #fff !important; color: #000 !important; }
.app-shell .result-title { color: #000 !important; }
.app-shell .result-section { border: 1px solid #aaa; background: #fff; }
.app-shell .result-section.collapsible .accordion-content { display: block !important; }
.app-shell .accordion-toggle { display: block; min-height: auto; }
.app-shell .accordion-icon { display: none; }
.app-shell .main { padding: 18px; }
.app-shell .question-card:not(.active) { display: none; }
.app-shell a { color: #000; text-decoration: none; }
    }

/* Approved brand: typography, quiet surfaces and consistent controls. */
.app-shell {
  --bg: #f9f7f7; --surface: #ffffff; --surface-soft: #f9f7f7;
  --text: #112d4e; --muted: #112d4e; --border: #dbe2ef;
  --accent: #3f72af; --accent-soft: #dbe2ef;
  --shadow: none; --radius-lg: 6px; --radius-md: 5px; --radius-sm: 4px;
  --focus: 0 0 0 3px rgba(63,114,175,.25);
  font: 400 16px/1.65 'Raleway', Arial, sans-serif;
  background: var(--bg); color: var(--text); min-height: 0;
  padding: 56px 32px;
}
.app-shell .app { width: min(1120px, 100%); grid-template-columns: 300px minmax(0, 1fr); }
.app-shell .panel { background: var(--surface); border: 1px solid var(--border); box-shadow: none; }
.app-shell .sidebar { top: 110px; background: var(--bg); }
.app-shell h1, .app-shell h2, .app-shell h3, .app-shell .result-title {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 700; letter-spacing: normal; line-height: 1.25;
}
.app-shell h1 { font-size: 30px; }
.app-shell h2 { font-size: 32px; color: var(--accent); }
.app-shell h3 { font-size: 21px; }
.app-shell h1, .app-shell h2, .app-shell h3, .app-shell p, .app-shell a, .app-shell li { overflow-wrap: anywhere; }
.app-shell .brand-block { background: #112d4e; box-shadow: none; }
.app-shell .brand-name { font-family: 'Playfair Display', Georgia, serif; font-weight: 700; letter-spacing: normal; }
.app-shell .brand-subtitle { color: #ffffff; }
.app-shell .notice { border-color: var(--border); color: var(--text); }
.app-shell .sidebar-download, .app-shell .disclaimer-box { background: var(--surface); }
.app-shell .lang-btn { border-radius: 4px; font-weight: 600; }
.app-shell .lang-btn.active { color: var(--text); box-shadow: none; }
.app-shell .language-switch { border-radius: 5px; }
.app-shell .step-pill.active { box-shadow: none; }
.app-shell .step-pill.done { background: var(--accent-soft); border-color: var(--border); }
.app-shell .progress { background: var(--border); }
.app-shell .progress-bar { background: var(--accent); }
.app-shell .btn, .app-shell .link-button { min-height: 46px; border-radius: 5px; padding: 11px 20px; font-weight: 600; }
.app-shell .btn-primary { border: 1px solid var(--accent); }
.app-shell .btn:hover, .app-shell .link-button:hover, .app-shell .option:hover { transform: none; box-shadow: none; }
.app-shell .btn-primary:hover { background: #112d4e; border-color: #112d4e; }
.app-shell .option { border-width: 1px; }
.app-shell .option:hover { border-color: var(--accent); }
.app-shell .option.selected { border-width: 2px; padding: 15px; }
.app-shell .option-title, .app-shell .accordion-title { font-weight: 700; }
.app-shell .result-section.compact-note > h3,
.app-shell .result-section .accordion-title {
  font-family: var(--sans); font-size: 16px; font-weight: 700; line-height: 1.25; letter-spacing: normal;
}
.app-shell .examples { color: var(--text); background: var(--bg); border-radius: 4px; }
.app-shell .summary-item { border-radius: 4px; }
.app-shell .accordion-icon { border-radius: 4px; }
.app-shell .result-title { font-size: 32px; }
.app-shell .lang-btn:focus-visible, .app-shell .option:focus-visible, .app-shell .btn:focus-visible,
.app-shell .link-button:focus-visible, .app-shell .accordion-toggle:focus-visible { outline: 2px solid #112d4e; outline-offset: 3px; }
.app-shell .question-card { scroll-margin-top: 112px; }
@media (max-width: 900px) {
  .app-shell { padding: 36px 20px; }
  .app-shell .app { grid-template-columns: minmax(0,1fr); }
  .app-shell .app > .main { order: -1; }
  .app-shell .sidebar { position: static; }
}
@media (max-width: 600px) {
  .app-shell { padding-block: 30px; }
  .app-shell .main { padding: 22px; }
  .app-shell h2, .app-shell .result-title { font-size: 27px; }
  .app-shell h1 { font-size: 28px; }
  .app-shell .option { min-height: 0; }
  .app-shell .controls { align-items: stretch; }
  .app-shell .controls > .btn, .app-shell .controls > .link-button { flex: 1 1 auto; }
  .app-shell .question-card { scroll-margin-top: 94px; }
}
@media print {
  .app-shell { background: #ffffff; padding: 0; }
  .app-shell .app { display: block; }
  .app-shell .panel { border-color: #777777; }
}
@media (prefers-reduced-motion: reduce) {
  .app-shell *, .app-shell *::before, .app-shell *::after { animation: none !important; transition: none !important; }
}

/* Shared disclosures preserve the original depth without crowding the entry. */
h4 { margin:0; font-family:var(--serif); line-height:1.3; }
.card h4 { font-size:21px; margin-bottom:14px; }
.mandates .card h4 { min-height:2.5em; }
.disclosure { border-top:1px solid var(--line); margin-top:28px; padding-top:18px; }
.disclosure summary { color:var(--blue); font-size:14px; font-weight:600; cursor:pointer; }
.disclosure summary::marker { color:var(--blue); }
.disclosure summary h2,.disclosure summary h3 { display:inline; font:600 15px/1.6 var(--sans); color:var(--blue); margin:0; }
.disclosure-body { margin-top:22px; }
.card .disclosure { margin-top:20px; padding-top:14px; }
.card .disclosure-body { margin-top:16px; }
.prose h2 { margin:28px 0 18px; }
.prose h3,.prose h4 { margin:22px 0 12px; }
.prose p + p { margin-top:14px; }
.prose ul { margin-bottom:20px; }
.prose .grid { margin-top:24px; }
.grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.profile-copy .button { margin-top:20px; }
.contact-layout h3 { margin:0 0 18px; }
.contact-details p + p { margin-top:0; }
.contact-details h4 { font:600 15px/1.5 var(--sans); }
.contact-details h4:first-child { margin-top:0; }
.site-footer .brand-name { margin:0; font-size:19px; }
.legal-content section { padding:0; }
.legal-content section + section { margin-top:36px; }
.legal-content h2 { margin-bottom:24px; }
.legal-content h3 { margin:28px 0 14px; }
.legal-content p + p { margin-top:14px; }
@media(max-width:600px){ .grid.two {grid-template-columns:minmax(0,1fr)} .mandates .card h4{min-height:0} .site-footer .brand-name{font-size:15px} }
@media print { .site-header,.site-footer,.legal-dialog,.skip{display:none!important} .section{padding-block:26px} details::details-content{content-visibility:visible} }
.contact-details { display:block; }
.site-footer .brand-name { color:var(--white); }
.site-footer .footer-links { flex-wrap:wrap; gap:10px 20px; }
.site-footer .footer-links a { overflow-wrap:normal; }
.site-footer .footer-pages { margin:14px 0; }
@media(max-width:600px){ .site-footer .footer-links { justify-content:flex-start; } }


/* Reading aids stay secondary to the article's existing serif headings. */
.article-body .article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 22px;
  margin: 0 0 28px;
  color: var(--navy);
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.65;
}
.article-body .article-meta a { font-weight: 600; }
.article-body .article-meta > span { min-width: 0; }

.article-body .article-summary { margin: 0 0 26px; }
.article-body .article-summary > h2,
.article-body .article-toc > h2,
.article-body .article-sources > h2 {
  margin: 0 0 12px;
  color: var(--navy);
  font-family: var(--sans);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}
.article-body .article-summary > ul {
  margin: 0;
  padding-left: 21px;
}
.article-body .article-summary li {
  font-size: 15px;
  line-height: 1.75;
}
.article-body .article-summary li + li { margin-top: 7px; }

.article-body .article-toc {
  margin: 26px 0 36px;
  padding: 23px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.article-body .article-toc > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 26px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.article-body .article-toc li,
.article-body .article-toc li + li {
  min-width: 0;
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}
.article-body .article-toc a {
  display: inline-block;
  max-width: 100%;
  padding-block: 4px;
  overflow-wrap: anywhere;
}

.article-body .article-sources {
  margin-top: 38px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.article-body .article-sources > p,
.article-body .article-sources li {
  font-size: 14px;
  line-height: 1.75;
}
.article-body .article-sources > ul {
  margin: 14px 0 0;
  padding-left: 21px;
}
.article-body .article-sources li + li { margin-top: 8px; }
.article-body .article-sources a { overflow-wrap: anywhere; }

@media (max-width: 600px) {
  .article-body .article-meta { margin-bottom: 24px; gap: 5px 16px; }
  .article-body .article-toc { margin-bottom: 30px; padding-block: 20px; }
  .article-body .article-toc > ul { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .article-body .article-sources { margin-top: 32px; padding-top: 22px; }
}

/* Citations link directly to compact, numbered original references. */
.article-body .article-citation {
  margin-left: .25em;
  font: 600 .75em/0 var(--sans);
  vertical-align: super;
  white-space: nowrap;
}
.article-body .article-citation a { padding: 2px 1px; text-decoration: none; }
.article-body .article-sources > ol { margin: 14px 0 0; padding-left: 25px; }
.article-body .article-references > li { padding-left: 3px; scroll-margin-top: 120px; }
.article-body .article-references > li + li { margin-top: 15px; }
.article-body .article-references > li::marker { font-weight: 600; }
.article-body .article-references > li:target { outline: 1px solid var(--blue); outline-offset: 6px; }
.article-body .source-context { display: block; margin-top: 3px; font-size: 13px; line-height: 1.65; }
.article-body .article-further-reading { margin-top: 24px; }
.article-body .article-further-reading p,
.article-body .article-further-reading li { font-size: 13px; line-height: 1.65; }
.article-body .article-further-reading ul { margin: 10px 0 0; padding-left: 21px; }
@media (max-width: 600px) {
  .article-body .article-references > li { scroll-margin-top: 100px; }
}


/* First-party prompting guides use the existing compact source typography. */
.article-body .article-provider-guides { margin-top: 26px; }
.article-body .article-provider-guides > h3 { margin: 0 0 10px; color: var(--navy); font-family: var(--sans); font-size: 16px; font-weight: 700; line-height: 1.5; }
.article-body .article-provider-guides > p { font-size: 13px; line-height: 1.65; }
.article-body .article-provider-guides > ul { margin: 12px 0; padding-left: 21px; }
.article-body .article-provider-guides li + li { margin-top: 12px; }
.article-body .article-provider-guides > .provider-reviewed { margin-bottom: 0; font-size: 12px; }


/* Existing navy keeps small text legible on light blue brand surfaces. */
.light .button.secondary:not(:hover),
.article-contact .button.secondary:not(:hover),
.light .disclosure summary,
.light .disclosure summary h2,
.light .disclosure summary h3,
.app-shell .notice strong { color: var(--navy); }
