/* Canonical typography — overrides any Tailwind/legacy weight classes on body text */
main p, main li, main dd, main td, main blockquote,
article p, article li, article dd, article td,
.prose p, .prose li, .prose dd, .prose td,
.gp-deep p, .gp-deep li, .gp-deep dd, .gp-deep td {
  font-family: ReithSans, Helvetica, Arial, freesans, sans-serif !important;
  font-weight: 400 !important;
  font-feature-settings: 'ss01' off;
  font-size: 1rem !important;
  line-height: 1.975 !important;
  color: #181818 !important;
}
main p, article p, .prose p, .gp-deep p {
  margin-bottom: 28px !important;
  margin-top: 0 !important;
}
main strong, main b, article strong, article b,
.prose strong, .prose b, .gp-deep strong, .gp-deep b {
  font-weight: 700 !important;
  color: inherit !important;
}
main h1, main h2, main h3, main h4, main h5, main h6,
article h1, article h2, article h3, article h4, article h5, article h6,
.prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6,
.gp-deep h1, .gp-deep h2, .gp-deep h3 {
  font-family: ReithSans, Helvetica, Arial, freesans, sans-serif !important;
  font-weight: 700 !important;
  color: #0f172a !important;
}
main h2, article h2, .prose h2, .gp-deep h2 { font-size: 1.6rem !important; line-height: 1.25 !important; margin-top: 40px !important; margin-bottom: 14px !important; }
main h3, article h3, .prose h3, .gp-deep h3 { font-size: 1.25rem !important; line-height: 1.3 !important; margin-top: 28px !important; margin-bottom: 10px !important; }

/* Hero contrast: keep h1/p/li white on dark navy backgrounds (overrides the !important above).
   Applies to direct text content in dark-bg ancestors; nested white cards keep their own colors. */
main .bg-primary-container h1, article .bg-primary-container h1,
main .bg-primary-container > * p, article .bg-primary-container > * p,
main .bg-primary-container > p, article .bg-primary-container > p,
main .bg-brand-navy h1, article .bg-brand-navy h1,
main .bg-brand-navy > * p, article .bg-brand-navy > * p,
main .bg-navy h1, article .bg-navy h1,
main .bg-primary h1, article .bg-primary h1,
main .bg-black h1, article .bg-black h1,
main .bg-slate-800 h1, article .bg-slate-800 h1,
main [class*="bg-[#00134d]"] h1, article [class*="bg-[#00134d]"] h1,
main [class*="bg-[#001552]"] h1, article [class*="bg-[#001552]"] h1,
main [class*="bg-[#00247D]"] h1, article [class*="bg-[#00247D]"] h1,
main [class*="bg-[#00247D]"] > * p, article [class*="bg-[#00247D]"] > * p,
main [class*="bg-[#00247D]"] > p, article [class*="bg-[#00247D]"] > p,
main [class*="bg-[#0F766E]"] h1, article [class*="bg-[#0F766E]"] h1,
main [class*="bg-[#1E3A8A]"] h1, article [class*="bg-[#1E3A8A]"] h1,
main [class*="bg-[#CF142B]"] h1, article [class*="bg-[#CF142B]"] h1 {
  color: #ffffff !important;
}
/* Dark gradient cards (e.g. bg-gradient-to-br from-[#00247D] to-[#001a5c]): keep text light */
main [class*="from-[#00247D]"] h1, article [class*="from-[#00247D]"] h1,
main [class*="from-[#00247D]"] h2, article [class*="from-[#00247D]"] h2,
main [class*="from-[#00247D]"] h3, article [class*="from-[#00247D]"] h3,
main [class*="from-[#00247D]"] p, article [class*="from-[#00247D]"] p,
main [class*="from-[#00247D]"] li, article [class*="from-[#00247D]"] li,
main [class*="from-[#00247D]"] strong, article [class*="from-[#00247D]"] strong,
main [class*="from-[#00134d]"] h1, article [class*="from-[#00134d]"] h1,
main [class*="from-[#00134d]"] h2, article [class*="from-[#00134d]"] h2,
main [class*="from-[#00134d]"] h3, article [class*="from-[#00134d]"] h3,
main [class*="from-[#00134d]"] p, article [class*="from-[#00134d]"] p,
main [class*="from-[#00134d]"] li, article [class*="from-[#00134d]"] li,
main [class*="from-[#00134d]"] strong, article [class*="from-[#00134d]"] strong,
/* Also extend the existing dark-bg ancestors to cover h2/h3/li/strong */
main [class*="bg-[#00247D]"] h2, article [class*="bg-[#00247D]"] h2,
main [class*="bg-[#00247D]"] h3, article [class*="bg-[#00247D]"] h3,
main [class*="bg-[#00247D]"] li, article [class*="bg-[#00247D]"] li,
main [class*="bg-[#00247D]"] strong, article [class*="bg-[#00247D]"] strong,
main .bg-primary-container h2, article .bg-primary-container h2,
main .bg-primary-container h3, article .bg-primary-container h3,
main .bg-primary-container li, article .bg-primary-container li,
main .bg-primary-container strong, article .bg-primary-container strong {
  color: #ffffff !important;
}
/* Inside the dark gradient, white cards still keep their dark text */
main [class*="from-[#00247D]"] .bg-white p, article [class*="from-[#00247D]"] .bg-white p,
main [class*="from-[#00247D]"] .bg-white li, article [class*="from-[#00247D]"] .bg-white li,
main [class*="from-[#00247D]"] .bg-white strong, article [class*="from-[#00247D]"] .bg-white strong,
main [class*="from-[#00247D]"] [class*="bg-white"] p, article [class*="from-[#00247D]"] [class*="bg-white"] p {
  color: #181818 !important;
}
/* Hero subhead paragraphs that explicitly carry text-white/85 etc. should keep being light */
main .bg-primary-container [class*="text-white"], article .bg-primary-container [class*="text-white"],
main [class*="bg-[#00247D]"] [class*="text-white"], article [class*="bg-[#00247D]"] [class*="text-white"],
main [class*="bg-[#00134d]"] [class*="text-white"], article [class*="bg-[#00134d]"] [class*="text-white"],
main .bg-brand-navy [class*="text-white"], article .bg-brand-navy [class*="text-white"] {
  color: rgba(255,255,255,0.85) !important;
}
/* But preserve readable colors for content inside white/light cards nested in the dark hero */
main [class*="bg-[#00247D]"] .bg-white p, article [class*="bg-[#00247D]"] .bg-white p,
main [class*="bg-[#00247D]"] [class*="bg-white"] p, article [class*="bg-[#00247D]"] [class*="bg-white"] p,
main .bg-primary-container .bg-white p, article .bg-primary-container .bg-white p {
  color: #181818 !important;
}

/* Review CTA / dark gradient cards using Tailwind's from-primary-container start colour:
   keep h3/p/span/strong/icons white over the navy gradient. */
main [class*="from-primary-container"] h2, article [class*="from-primary-container"] h2,
main [class*="from-primary-container"] h3, article [class*="from-primary-container"] h3,
main [class*="from-primary-container"] h4, article [class*="from-primary-container"] h4,
main [class*="from-primary-container"] p, article [class*="from-primary-container"] p,
main [class*="from-primary-container"] li, article [class*="from-primary-container"] li,
main [class*="from-primary-container"] strong, article [class*="from-primary-container"] strong,
main [class*="from-primary-container"] .material-symbols-outlined,
article [class*="from-primary-container"] .material-symbols-outlined {
  color: #ffffff !important;
}
/* Within those gradient cards, nested white surface cards keep their dark text */
main [class*="from-primary-container"] [class*="bg-white"] p,
article [class*="from-primary-container"] [class*="bg-white"] p,
main [class*="from-primary-container"] [class*="bg-white"] h3,
article [class*="from-primary-container"] [class*="bg-white"] h3 {
  color: #181818 !important;
}

/* Footer language switcher: when the native <select> opens, the option list
   inherits the white text colour from the closed control and becomes invisible
   on the OS-default white dropdown background. Force readable colours on the
   options in the open state. */
select[data-lang-switch] option,
select[data-lang-switch] optgroup {
  color: #0f172a !important;
  background-color: #ffffff !important;
}

/* Antialiasing for cleaner rendering */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Prevent the legacy .font-bold .font-black on body paragraphs */
main p.font-bold, main p.font-black,
article p.font-bold, article p.font-black,
.prose p.font-bold, .prose p.font-black {
  font-weight: 400 !important;
}

/* 2026-05-13: Hero — give H1 more vertical breathing room so long titles
   don't get clipped above by overflow-hidden + absolute-bottom positioning.
   The hero block uses fixed h-[280px]/md:h-[500px]; we let it grow as content needs. */
main > article > div.bg-primary-container.overflow-hidden,
main article > div.bg-primary-container.overflow-hidden {
  height: auto !important;
  min-height: 360px !important;
  padding-top: 32px !important;
}
@media (min-width: 768px) {
  main > article > div.bg-primary-container.overflow-hidden,
  main article > div.bg-primary-container.overflow-hidden {
    min-height: 560px !important;
    padding-top: 48px !important;
  }
}
/* H1 inside the hero: extra top spacing so it never sits flush with the sticky header */
main .bg-primary-container h1.font-h1,
article .bg-primary-container h1.font-h1 {
  margin-top: 24px !important;
  padding-top: 8px !important;
}

/* 2026-05-13: Byline aside ([data-eeat="byline"]) — fix typography overrides that
   were forcing 1rem/1.975 line-height on the small author labels, breaking the layout.
   Restore the intended compact card design. */
aside[data-eeat="byline"] {
  margin-top: 20px !important;
  margin-bottom: 12px !important;
  padding: 18px 20px !important;
}
aside[data-eeat="byline"] p,
aside[data-eeat="byline"] li,
aside[data-eeat="byline"] span {
  font-size: inherit !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  color: inherit !important;
}
aside[data-eeat="byline"] p.font-bold {
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  color: #00134d !important;
}
aside[data-eeat="byline"] p.text-xs,
aside[data-eeat="byline"] .text-xs {
  font-size: 0.72rem !important;
  color: #444652 !important;
  margin-top: 2px !important;
}
aside[data-eeat="byline"] .text-sm,
aside[data-eeat="byline"] time {
  font-size: 0.82rem !important;
  color: #444652 !important;
}
/* Row spacing and column structure on small screens */
aside[data-eeat="byline"] > div.flex-wrap {
  gap: 18px 24px !important;
  align-items: center !important;
}
@media (max-width: 767px) {
  aside[data-eeat="byline"] > div.flex-wrap {
    gap: 14px !important;
  }
  aside[data-eeat="byline"] > div.flex-wrap > div {
    width: 100%;
  }
  aside[data-eeat="byline"] > div.flex-wrap > div.border-l {
    border-left: 0 !important;
    padding-left: 0 !important;
    padding-top: 10px;
    border-top: 1px solid #E2E8F0;
  }
}
/* Footer disclaimer row inside the byline */
aside[data-eeat="byline"] > p.text-xs {
  margin-top: 14px !important;
  padding-top: 12px !important;
  border-top: 1px solid #E2E8F0;
  font-size: 0.72rem !important;
  color: #757683 !important;
  line-height: 1.5 !important;
}
/* Author / verifier avatar circles: keep them perfectly round and aligned */
aside[data-eeat="byline"] .rounded-full {
  flex-shrink: 0;
}
/* Material icon span inside the byline — make sure font-family is the icon font */
aside[data-eeat="byline"] .material-symbols-outlined {
  font-family: 'Material Symbols Outlined' !important;
  font-size: 18px !important;
  line-height: 1 !important;
  vertical-align: middle;
}
/* Protect Material Symbols inside gp-page/gp-deep from the font-family wildcard override */
.gp-page .material-symbols-outlined,
article.gp-deep .material-symbols-outlined {
  font-family: 'Material Symbols Outlined' !important;
  font-feature-settings: 'liga' 1 !important;
}
#mobile-menu-scrim,#mobile-menu-drawer{display:none !important}
html.menu-open #mobile-menu-drawer{display:flex !important}
html.menu-open #mobile-menu-scrim{display:block !important}
:root{--bg:#f8fafc;--card:#fff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--soft:#f3f4f6;--accent:#1d4ed8}
.gp-page,.gp-page *,article.gp-deep,article.gp-deep *{font-family:ReithSans,Helvetica,Arial,freesans,sans-serif;font-feature-settings:'ss01' off}
.gp-page{max-width:1100px;margin:0 auto;padding:32px 36px;background:var(--bg);font-weight:400;font-size:1rem;line-height:1.975;color:#181818}
article.gp-deep{font-size:1rem;line-height:1.975;color:#181818}
article.gp-deep p{font-family:ReithSans,Helvetica,Arial,freesans,sans-serif;font-weight:400;font-feature-settings:'ss01' off;font-size:1rem;line-height:1.975;color:#181818;margin-bottom:40px;margin-top:0}
article.gp-deep li{font-family:ReithSans,Helvetica,Arial,freesans,sans-serif;font-weight:400;font-size:1rem;line-height:1.975;color:#181818;margin-bottom:10px}
article.gp-deep ul,article.gp-deep ol{margin:0 0 40px;padding-left:24px}
article.gp-deep td{font-weight:400;line-height:1.975;color:#181818}
article.gp-deep h2{line-height:1.2;margin-top:48px;margin-bottom:18px;color:#0f172a}
article.gp-deep h3{line-height:1.25;margin-top:32px;margin-bottom:12px;color:#1e293b}
article.gp-deep summary{line-height:1.4;color:#0f172a}
article.gp-deep details>p{margin-bottom:24px}
article.gp-deep strong,article.gp-deep b{font-weight:700}
.gp-page a{color:var(--accent);text-decoration:none}
.gp-page a:hover{text-decoration:underline}
.gp-breadcrumb{font-size:14px;color:var(--muted);margin-bottom:16px}
.gp-hero{background:linear-gradient(135deg,#fff,#eef4ff);border:1px solid var(--border);border-radius:24px;padding:32px;margin-bottom:24px}
.gp-hero h1{font-size:clamp(30px,5vw,52px);line-height:1.1;margin:0 0 14px;letter-spacing:-1px;color:#0f172a}
.gp-quick-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}
.gp-fact-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px}
.gp-fact-card span{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}
.gp-fact-card strong{display:block;font-size:20px}
.gp-calendar-card{background:#fff;border:1px solid var(--border);border-radius:24px;padding:22px;margin-bottom:24px;box-shadow:0 6px 24px rgba(15,23,42,.04)}
.gp-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border:2px solid #94a3b8;border-radius:14px;overflow:hidden;background:#fff}
.gp-day-name,.gp-day{background:#fff;min-height:108px;padding:12px;border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;position:relative}
.gp-day-name:nth-child(7n),.gp-day:nth-child(7n){border-right:0}
.gp-day-name{min-height:auto;text-align:center;font-size:13px;font-weight:800;text-transform:uppercase;color:#1e293b;background:#f1f5f9;letter-spacing:.04em;padding:10px}
.gp-day.gp-weekend{background:#f8fafc}
.gp-day.gp-empty{background:#f1f5f9;color:#cbd5e1}
.gp-date-number{font-weight:800;font-size:18px;color:#0f172a}
.gp-day.gp-weekend .gp-date-number{color:#475569}
.gp-event{display:inline-block;margin-top:8px;padding:4px 8px;border-radius:999px;font-size:12px;line-height:1.2;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-weight:700}
.gp-moon{display:inline-block;margin-top:8px;padding:4px 8px;border-radius:999px;font-size:12px;line-height:1.2;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;font-weight:700}
.gp-timer{font-size:clamp(40px,7vw,80px);font-weight:900;letter-spacing:-1px;color:var(--accent);font-variant-numeric:tabular-nums;text-align:center}
.gp-timer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.gp-timer-cell{background:#fff;border:1px solid var(--border);border-radius:16px;padding:12px;text-align:center}
.gp-timer-cell .gp-num{font-size:28px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.gp-timer-cell .gp-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;margin-top:2px}
.gp-big-answer{font-size:clamp(48px,8vw,96px);font-weight:900;color:var(--accent);text-align:center;letter-spacing:-2px;margin:14px 0}
article.gp-deep{background:#fff;border:1px solid var(--border);border-radius:18px;padding:40px 48px;margin-bottom:24px}
article.gp-deep h2{font-size:26px;margin-top:28px;margin-bottom:12px;line-height:1.2;color:#0f172a}
article.gp-deep h2:first-child{margin-top:0}
article.gp-deep h3{font-size:19px;margin-top:20px;margin-bottom:8px;color:#1e293b}
article.gp-deep p{margin:0 0 12px}
article.gp-deep ul,article.gp-deep ol{margin:0 0 14px;padding-left:22px}
article.gp-deep li{margin-bottom:6px}
article.gp-deep details{border-top:1px solid var(--border);padding:14px 0}
article.gp-deep details:first-of-type{border-top:0;margin-top:6px}
article.gp-deep summary{cursor:pointer;font-weight:700;font-size:16px;color:#0f172a}
.gp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:14px 0;border:1px solid var(--border);border-radius:10px;max-width:100%}
.gp-table-wrap table{border-collapse:collapse;margin:0;width:100%;min-width:520px}
article.gp-deep .gp-table-wrap th,article.gp-deep .gp-table-wrap td{border:1px solid var(--border);padding:8px 10px;text-align:left;word-break:break-word;vertical-align:top}
article.gp-deep .gp-table-wrap th{background:var(--soft);font-weight:800}
article.gp-deep img{max-width:100%;height:auto}
article.gp-deep pre,article.gp-deep code{white-space:pre-wrap;word-break:break-word;max-width:100%;overflow-wrap:break-word}
article.gp-deep p,article.gp-deep li{overflow-wrap:break-word}
article.gp-deep blockquote{border-left:4px solid var(--accent);padding:6px 14px;margin:12px 0;color:#374151}
.gp-figure{margin:18px 0;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:#fff}
.gp-figure img{display:block;width:100%;height:auto;max-width:100%}
.gp-featured{margin:18px 0;border-radius:18px;overflow:hidden;border:1px solid var(--border);background:#fff}
.gp-featured img{display:block;width:100%;height:auto;max-width:100%}
.gp-rg{background:#fef3c7;border:1px solid #fde68a;border-radius:14px;padding:16px;font-size:14px;color:#78350f;margin-top:24px}
.gp-sources{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:14px;padding:16px;font-size:13px;color:#374151;margin-top:14px}
.gp-sources ul{margin:6px 0 0;padding-left:18px}
@media print{body{background:#fff}.gp-breadcrumb,.gp-hero,.gp-rg,.gp-sources,header,footer{display:none}.gp-page{padding:0}.gp-calendar-card,article.gp-deep{border:0;box-shadow:none;padding:0}.gp-day{min-height:100px}}
@media (max-width:820px){.gp-page{padding:18px 18px}article.gp-deep{padding:22px 22px}article.gp-deep p,article.gp-deep li{margin-bottom:24px}.gp-quick-facts{grid-template-columns:1fr}.gp-day,.gp-day-name{padding:7px}.gp-day{min-height:72px}.gp-event,.gp-moon{font-size:10px;padding:3px 6px}.gp-timer-grid{grid-template-columns:repeat(2,1fr)}}