html {
  background: var(--cmg-background);
  scroll-padding-top: 5.5rem;
}

body {
  background: var(--cmg-background);
  color: var(--cmg-text);
  font-family: var(--cmg-font);
  line-height: 1.6;
}

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

[hidden] { display: none !important; }

h1,
h2,
h3 {
  color: var(--cmg-text);
  font-family: var(--cmg-font);
  font-weight: 760;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

h1 { font-size: clamp(2.6rem, 6vw, 5.25rem); }
h2 { font-size: clamp(2rem, 3.7vw, 3.25rem); }
h3 { font-size: clamp(1.12rem, 2vw, 1.4rem); }

a { color: var(--cmg-primary); }
a:hover { color: var(--cmg-primary-hover); }

:focus-visible {
  outline: 3px solid #79a7ff;
  outline-offset: 3px;
}

::selection {
  background: #cfe0ff;
  color: var(--cmg-text);
}

.shell { width: min(calc(100% - 2rem), var(--cmg-shell)); }
.narrow { max-width: 60rem; }

.site-header {
  border-bottom: 1px solid var(--cmg-border);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 1px 0 rgba(23, 36, 58, 0.02);
  backdrop-filter: blur(16px);
}

.header-inner {
  min-height: 4.5rem;
  gap: 1.25rem;
}

.header-actions { gap: 1rem; }

.wordmark,
.wordmark:hover { color: var(--cmg-text); }

.wordmark__seal {
  width: 2.5rem;
  height: 2.5rem;
  transform: none;
  border: 1px solid #c99b44;
  border-radius: 0.65rem;
  background: linear-gradient(145deg, #fff9ea, #f0dcae);
  color: #765016;
  font-family: var(--cmg-font);
  box-shadow: inset 0 0 0 3px #fffaf0;
}

.wordmark strong {
  color: var(--cmg-text);
  font-family: var(--cmg-font);
  font-size: 1rem;
}

.wordmark small {
  color: var(--cmg-text-muted);
  font-size: 0.58rem;
}

.primary-nav { gap: 0.2rem; }

.primary-nav a {
  min-height: 2.5rem;
  padding: 0.65rem 0.78rem;
  border-radius: 0.55rem;
  color: var(--cmg-text-secondary);
  font-size: 0.82rem;
  letter-spacing: 0;
}

.primary-nav a::after { display: none; }

.primary-nav a:hover,
.primary-nav a[aria-current="page"] {
  background: var(--cmg-primary-soft);
  color: var(--cmg-primary);
}

.language-switcher {
  border-color: var(--cmg-border-strong);
  background: var(--cmg-surface-muted);
}

.language-switcher a {
  min-height: 2.25rem;
  padding: 0.48rem 0.7rem;
  color: var(--cmg-text-secondary);
}

.language-switcher a[aria-current="page"] {
  background: var(--cmg-surface);
  color: var(--cmg-text);
  box-shadow: var(--cmg-shadow-sm);
}

.language-switcher a:hover,
.language-switcher a[aria-current="page"]:hover { color: var(--cmg-primary); }

.site-search { position: relative; min-width: 0; }

.site-search > label {
  display: flex;
  min-height: 2.5rem;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid var(--cmg-border);
  border-radius: 0.6rem;
  background: var(--cmg-surface);
}

.site-search__icon { margin-left: 0.6rem; color: var(--cmg-text-muted); font-size: 1.05rem; }

.site-search input {
  width: 10.5rem;
  min-width: 0;
  min-height: 2.35rem;
  padding: 0.45rem 0.55rem 0.45rem 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--cmg-text);
  font: inherit;
  font-size: 0.74rem;
}

.site-search:focus-within > label { border-color: #79a7ff; box-shadow: 0 0 0 3px rgba(51, 105, 204, 0.12); }

.site-search__panel {
  position: absolute;
  z-index: 30;
  top: calc(100% + 0.5rem);
  right: 0;
  width: min(24rem, calc(100vw - 2rem));
  overflow: hidden;
  border: 1px solid var(--cmg-border);
  border-radius: var(--cmg-radius);
  background: var(--cmg-surface);
  box-shadow: var(--cmg-shadow-md);
}

.site-search__status { margin: 0; padding: 0.55rem 0.7rem; border-bottom: 1px solid var(--cmg-border); color: var(--cmg-text-muted); font-size: 0.68rem; }
.site-search__panel ul { max-height: 24rem; margin: 0; padding: 0.35rem; overflow-y: auto; list-style: none; }
.site-search__result { display: flex; min-height: 3.4rem; padding: 0.45rem; align-items: center; gap: 0.6rem; border-radius: 0.5rem; color: var(--cmg-text); text-decoration: none; }
.site-search__result:hover,
.site-search__result:focus { background: var(--cmg-primary-soft); color: var(--cmg-primary); }
.site-search__result img { width: 2.25rem; height: 2.25rem; flex: 0 0 auto; border-radius: 0.4rem; }
.site-search__result span { min-width: 0; }
.site-search__result strong,
.site-search__result small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-search__result strong { font-size: 0.78rem; }
.site-search__result small { color: var(--cmg-text-muted); font-size: 0.65rem; text-transform: capitalize; }

.mobile-nav { display: none; position: relative; }

.breadcrumbs {
  margin-top: 1rem;
  color: var(--cmg-text-muted);
  font-size: 0.76rem;
  letter-spacing: 0;
  text-transform: none;
}

.breadcrumbs ol { flex-wrap: wrap; }
.breadcrumbs li + li::before { color: var(--cmg-border-strong); content: "›"; }
.breadcrumbs a { color: var(--cmg-text-secondary); }

.button {
  min-height: 2.75rem;
  border-radius: var(--cmg-radius-sm);
  font-size: 0.84rem;
  letter-spacing: 0;
}

.button--primary {
  border-color: var(--cmg-primary);
  background: var(--cmg-primary);
  color: #fff;
}

.button--primary:hover {
  border-color: var(--cmg-primary-hover);
  background: var(--cmg-primary-hover);
  color: #fff;
}

.button--secondary {
  border-color: var(--cmg-border-strong);
  background: var(--cmg-surface);
  color: var(--cmg-text);
}

.eyebrow span,
.kicker {
  color: var(--cmg-primary);
  font-size: 0.7rem;
  letter-spacing: 0.11em;
}

.eyebrow span {
  border-color: #bfd1f2;
  border-radius: 999px;
  background: var(--cmg-primary-soft);
}

.eyebrow span + span {
  border-color: #e5cf9f;
  background: var(--cmg-classic-gold-soft);
  color: var(--cmg-classic-gold);
}

.fact-card,
.highlight-card,
.access-grid article,
.source-grid article,
.trust-card,
.preview-stack article,
.status-legend,
.callout {
  border-color: var(--cmg-border);
  border-radius: var(--cmg-radius);
  background: var(--cmg-surface);
  color: var(--cmg-text);
  box-shadow: var(--cmg-shadow-sm);
}

.fact-card h3,
.highlight-card h3,
.source-grid h3,
.trust-card h2,
.trust-card h3 { color: var(--cmg-text); }

.fact-card p,
.highlight-card dd,
.source-grid dd,
.preview-stack p { color: var(--cmg-text-secondary); }

.callout--warning {
  border-color: #ead49f;
  background: var(--cmg-warning-soft);
}

.callout--source {
  border-color: #bfd1f2;
  background: var(--cmg-primary-soft);
}

.status {
  border-radius: 999px;
  font-family: var(--cmg-font);
  letter-spacing: 0.02em;
}

.table-scroll {
  border: 1px solid var(--cmg-border);
  border-radius: var(--cmg-radius);
  background: var(--cmg-surface);
  box-shadow: var(--cmg-shadow-sm);
}

table { color: var(--cmg-text); }
thead { background: var(--cmg-surface-muted); }
th,
td { border-color: var(--cmg-border); }
tbody tr:hover { background: #f8faff; }

.toc {
  border: 1px solid var(--cmg-border);
  border-radius: var(--cmg-radius-lg);
  background: var(--cmg-surface);
  box-shadow: var(--cmg-shadow-sm);
}

.toc a { color: var(--cmg-text-secondary); }
.toc a:hover { color: var(--cmg-primary); }
.toc a span { color: var(--cmg-classic-gold); }

.site-footer {
  border-top: 0;
  background: #17243a;
  color: #dbe4ef;
}

.site-footer .wordmark strong,
.site-footer .wordmark { color: #fff; }
.site-footer a,
.site-footer button { color: #dbe4ef; }
.site-footer a:hover,
.site-footer button:hover { color: #fff; }
.site-footer .legal { border-color: rgba(255, 255, 255, 0.12); }

@media (max-width: 82rem) {
  .site-header { position: sticky; }
  .header-inner {
    min-height: 4.25rem;
    padding-block: 0.5rem;
    align-items: center;
    flex-direction: row;
    gap: 0.75rem;
  }
  .header-actions { display: none; }
  .mobile-nav { display: block; margin-left: auto; }
  .mobile-nav summary {
    min-width: 4.5rem;
    min-height: 2.75rem;
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--cmg-border-strong);
    border-radius: var(--cmg-radius-sm);
    background: var(--cmg-surface);
    color: var(--cmg-text);
    font-weight: 750;
    list-style: none;
    text-align: center;
    cursor: pointer;
  }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav__panel {
    position: absolute;
    top: calc(100% + 0.65rem);
    right: 0;
    width: min(20rem, calc(100vw - 2rem));
    padding: 0.75rem;
    border: 1px solid var(--cmg-border);
    border-radius: var(--cmg-radius);
    background: var(--cmg-surface);
    box-shadow: var(--cmg-shadow-md);
  }
  .mobile-nav .primary-nav { display: grid; }
  .mobile-nav .primary-nav a { min-height: 2.9rem; }
  .mobile-nav .site-search { margin-top: 0.65rem; }
  .mobile-nav .site-search input { width: 100%; }
  .mobile-nav .site-search__panel { position: relative; top: auto; right: auto; width: 100%; margin-top: 0.35rem; }
  .mobile-nav .site-search__panel ul { max-height: 14rem; }
  .mobile-nav .language-switcher { margin-top: 0.65rem; }
  .mobile-nav .language-switcher a { flex: 1; text-align: center; }
}

@media (max-width: 39rem) {
  .shell { width: min(calc(100% - 1.25rem), var(--cmg-shell)); }
  .wordmark small { display: none; }
  .header-inner { min-height: 4rem; }
}
