/*
Theme Name: AOS — Concours Licence Véto
Theme URI: https://www.concours-licence-veto.com/
Author: Alors On Science
Author URI: https://alors-on-science.com/
Description: Thème éditorial et pédagogique sur mesure pour la préparation au concours Licence Véto.
Version: 1.4.3
Requires at least: 6.7
Requires PHP: 8.1
Text Domain: aos-licence-veto
*/

@font-face { font-family: "Lato"; src: url("assets/fonts/Lato-Regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Lato"; src: url("assets/fonts/Lato-Italic.ttf") format("truetype"); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "Lato"; src: url("assets/fonts/Lato-Bold.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "Lato"; src: url("assets/fonts/Lato-Black.ttf") format("truetype"); font-style: normal; font-weight: 900; font-display: swap; }

:root {
  --aos-blue: #005284;
  --aos-blue-dark: #003b61;
  --aos-blue-soft: #e9f4fa;
  --aos-orange: #f5851f;
  --aos-orange-dark: #ad4a00;
  --aos-ink: #17242d;
  --aos-muted: #56656f;
  --aos-line: #d9e4ea;
  --aos-paper: #ffffff;
  --aos-wash: #f5f9fb;
  --aos-green: #177b57;
  --aos-red: #b43a36;
  --aos-radius-sm: .75rem;
  --aos-radius: 1.25rem;
  --aos-radius-lg: 2rem;
  --aos-shadow: 0 1.25rem 3.5rem rgba(0, 59, 97, .10);
  --aos-width: 75rem;
  --aos-text: "Lato", "Aptos", "Segoe UI", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 6.5rem; }

body {
  margin: 0;
  background: var(--aos-paper);
  color: var(--aos-ink);
  font-family: var(--aos-text);
  font-size: 1.05rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img, svg { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }

a { color: var(--aos-blue); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--aos-orange-dark); }

button, input, select { font: inherit; }

:focus-visible {
  outline: .18rem solid #fff;
  outline-offset: .12rem;
  box-shadow: 0 0 0 .36rem var(--aos-blue-dark);
}

.screen-reader-text,
.skip-link:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link:focus {
  position: fixed;
  z-index: 1000;
  top: 1rem;
  left: 1rem;
  padding: .7rem 1rem;
  border-radius: .6rem;
  background: var(--aos-paper);
  color: var(--aos-ink);
  box-shadow: var(--aos-shadow);
}

.site-shell { min-height: 100vh; overflow: clip; }
.aos-container { width: min(calc(100% - 2rem), var(--aos-width)); margin-inline: auto; }
.aos-narrow { width: min(calc(100% - 2rem), 52rem); margin-inline: auto; }

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(217, 228, 234, .8);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(16px);
}

.header-inner {
  min-height: 5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}

.brand-link { display: inline-flex; align-items: center; gap: .75rem; color: var(--aos-ink); text-decoration: none; }
.brand-link img { width: 4.2rem; height: 4.2rem; object-fit: contain; }
.brand-copy { display: grid; line-height: 1.12; }
.brand-copy strong { font-size: .98rem; letter-spacing: .01em; }
.brand-copy span { margin-top: .25rem; color: var(--aos-muted); font-size: .76rem; }

.site-nav { display: flex; align-items: center; gap: 1.05rem; }
.site-nav a { color: var(--aos-ink); font-size: .91rem; font-weight: 700; text-decoration: none; }
.site-nav a:hover, .site-nav a[aria-current], .site-nav a.is-section-current { color: var(--aos-blue); }
.site-nav .nav-cta { padding: .65rem .9rem; border-radius: 999px; background: var(--aos-blue); color: #fff; }
.site-nav .nav-cta:hover { background: var(--aos-blue-dark); color: #fff; }

.nav-toggle {
  display: none;
  width: 2.8rem;
  height: 2.8rem;
  place-items: center;
  border: 1px solid var(--aos-line);
  border-radius: .7rem;
  background: #fff;
  color: var(--aos-ink);
  cursor: pointer;
}
.nav-toggle-icon, .nav-toggle-icon::before, .nav-toggle-icon::after {
  display: block; width: 1.25rem; height: 2px; background: currentColor; content: "";
}
.nav-toggle-icon { position: relative; transition: background .16s ease; }
.nav-toggle-icon::before, .nav-toggle-icon::after { position: absolute; left: 0; transition: top .16s ease, transform .16s ease; }
.nav-toggle-icon::before { top: -.38rem; }
.nav-toggle-icon::after { top: .38rem; }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::after { top: 0; transform: rotate(-45deg); }

.aos-hero {
  position: relative;
  padding: clamp(4rem, 9vw, 7.5rem) 0 4rem;
  background:
    radial-gradient(circle at 80% 20%, rgba(245, 133, 31, .15), transparent 18rem),
    linear-gradient(135deg, #fff 0 58%, #edf7fb 58% 100%);
}
.aos-hero::before {
  position: absolute;
  inset: 0;
  opacity: .38;
  background-image: linear-gradient(rgba(0,82,132,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(0,82,132,.06) 1px, transparent 1px);
  background-size: 2.4rem 2.4rem;
  mask-image: linear-gradient(to bottom, black, transparent 82%);
  content: "";
  pointer-events: none;
}
.hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(17rem, .72fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 1rem;
  color: var(--aos-blue);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.eyebrow::before { width: 1.7rem; height: .22rem; border-radius: 999px; background: var(--aos-orange); content: ""; }

h1, h2, h3, h4 { margin: 0 0 .7em; color: var(--aos-ink); font-weight: 900; line-height: 1.08; text-wrap: balance; }
h1 { max-width: 16ch; font-size: clamp(2.65rem, 6.1vw, 5.35rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.035em; }
h3 { font-size: clamp(1.22rem, 2vw, 1.55rem); letter-spacing: -.015em; }
h4 { font-size: 1.05rem; }

.hero-lead { max-width: 42rem; margin: 1.25rem 0 1.75rem; color: var(--aos-muted); font-size: clamp(1.08rem, 2vw, 1.3rem); line-height: 1.55; }
.official-source-banner {
  display: grid;
  gap: .25rem;
  max-width: 44rem;
  margin: 0 0 1.35rem;
  padding: .9rem 1rem;
  border: 1px solid #b8dceb;
  border-left: .3rem solid var(--aos-blue);
  border-radius: .75rem;
  background: rgba(255,255,255,.9);
  color: var(--aos-muted);
  font-size: .86rem;
  line-height: 1.45;
}
.official-source-banner strong { color: var(--aos-blue-dark); font-size: .94rem; }
.official-source-banner a { width: fit-content; font-weight: 900; }
.hero-actions, .button-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }

.aos-button {
  display: inline-flex;
  min-height: 3.05rem;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .78rem 1.08rem;
  border: 2px solid var(--aos-blue);
  border-radius: .8rem;
  background: var(--aos-blue);
  color: #fff;
  font-weight: 900;
  line-height: 1.1;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.aos-button:hover { transform: translateY(-2px); background: var(--aos-blue-dark); color: #fff; box-shadow: 0 .8rem 1.8rem rgba(0, 82, 132, .17); }
.aos-button--secondary { border-color: var(--aos-line); background: #fff; color: var(--aos-ink); }
.aos-button--secondary:hover { border-color: var(--aos-blue); background: var(--aos-blue-soft); color: var(--aos-blue-dark); }
.aos-button--orange { border-color: var(--aos-orange); background: var(--aos-orange); color: #17242d; }
.aos-button--orange:hover { border-color: #e47715; background: #e47715; color: #17242d; }

.hero-proof { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin: 1.45rem 0 0; padding: 0; color: var(--aos-muted); font-size: .88rem; list-style: none; }
.hero-proof li { display: inline-flex; align-items: center; gap: .42rem; }
.hero-proof li::before { width: .5rem; height: .5rem; border-radius: 50%; background: var(--aos-orange); content: ""; }

.portrait-card { position: relative; justify-self: end; width: min(100%, 25rem); }
.portrait-card::before { position: absolute; z-index: 0; inset: 10% -8% -4% 8%; border-radius: 48% 52% 2rem 2rem; background: var(--aos-blue); content: ""; transform: rotate(3deg); }
.portrait-card img { position: relative; z-index: 1; width: 100%; border-radius: 45% 45% var(--aos-radius-lg) var(--aos-radius-lg); filter: drop-shadow(0 1rem 2rem rgba(23,36,45,.16)); }
.portrait-note { position: absolute; z-index: 2; right: -1rem; bottom: 1rem; max-width: 13.5rem; padding: .9rem 1rem; border: 1px solid rgba(255,255,255,.8); border-radius: .9rem; background: rgba(255,255,255,.94); box-shadow: var(--aos-shadow); color: var(--aos-muted); font-size: .82rem; line-height: 1.35; }
.portrait-note strong { display: block; color: var(--aos-ink); font-size: .95rem; }

.trust-strip { position: relative; z-index: 2; margin-top: -1px; padding: 1.1rem 0; border-block: 1px solid var(--aos-line); background: #fff; }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; }
.trust-item { padding: .45rem .8rem; border-left: .22rem solid var(--aos-orange); }
.trust-item strong { display: block; color: var(--aos-blue-dark); font-size: 1rem; }
.trust-item span { color: var(--aos-muted); font-size: .79rem; }

.aos-section { padding: clamp(4rem, 8vw, 7rem) 0; }
.aos-section--soft { background: var(--aos-wash); }
.aos-section--blue { background: var(--aos-blue-dark); color: #eaf6fc; }
.aos-section--blue h2, .aos-section--blue h3 { color: #fff; }
.aos-section--blue .eyebrow { color: #d8effa; }
.section-heading { display: grid; grid-template-columns: minmax(0, .9fr) minmax(18rem, .7fr); gap: 2rem 4rem; align-items: end; margin-bottom: 2.25rem; }
.section-heading p { margin: 0 0 .8rem; color: var(--aos-muted); }
.section-heading--single { display: block; max-width: 46rem; }
.section-heading--spaced { margin-top: clamp(3.5rem, 7vw, 6rem); }
.on-dark { color: #cce4ef !important; }

.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.aos-card { position: relative; padding: 1.45rem; border: 1px solid var(--aos-line); border-radius: var(--aos-radius); background: #fff; box-shadow: 0 .5rem 1.6rem rgba(0,59,97,.045); }
.aos-card--link { color: inherit; text-decoration: none; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.aos-card--link:hover { transform: translateY(-4px); border-color: rgba(0,82,132,.35); color: inherit; box-shadow: var(--aos-shadow); }
.card-kicker { margin: 0 0 .55rem; color: var(--aos-orange-dark); font-size: .74rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.aos-card p:last-child { margin-bottom: 0; }
.aos-card .arrow { display: inline-block; margin-top: .8rem; color: var(--aos-blue); font-weight: 900; }
.aos-card .button-row, .exam-card .button-row { margin-top: 1rem; }
.aos-card .button-row > a:not(.aos-button), .exam-card .button-row > a:not(.aos-button) { font-weight: 900; }
.card-accent { overflow: hidden; border-top: .35rem solid var(--aos-orange); }
.paid-resource-card { background: linear-gradient(145deg, #fff 0 72%, #fff4e9 72%); }
.legal-hint { max-width: 78ch; color: var(--aos-muted); font-size: .83rem; line-height: 1.5; }

.number-card { padding-top: 3.8rem; }
.number-card::before { position: absolute; top: 1.2rem; left: 1.35rem; color: var(--aos-blue); font-size: 1.45rem; font-weight: 900; content: attr(data-number); }

.feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.feature { padding: 1.35rem 1.4rem; border-radius: var(--aos-radius); background: #fff; }
.feature strong { display: block; margin-bottom: .35rem; color: var(--aos-blue-dark); font-size: 1.08rem; }
.feature p { margin: 0; color: var(--aos-muted); }

.path { display: grid; grid-template-columns: repeat(5, 1fr); gap: .8rem; counter-reset: path; }
.path-step { position: relative; min-height: 9rem; padding: 1.25rem; border-radius: 1rem; background: rgba(255,255,255,.08); counter-increment: path; }
.path-step::before { display: grid; width: 2rem; height: 2rem; margin-bottom: 1rem; place-items: center; border-radius: 50%; background: var(--aos-orange); color: #17242d; font-weight: 900; content: counter(path); }
.path-step strong { display: block; color: #fff; }
.path-step span { color: #cce4ef; font-size: .88rem; }

.source-note { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; margin-top: 1.4rem; padding: .9rem 1rem; border-left: .25rem solid var(--aos-orange); border-radius: .5rem; background: var(--aos-blue-soft); color: var(--aos-muted); font-size: .83rem; }
.source-note strong { color: var(--aos-ink); }

.status-banner {
  display: grid;
  grid-template-columns: minmax(15rem, .72fr) minmax(0, 1fr) auto;
  gap: .75rem 1.4rem;
  align-items: center;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
  padding: 1.1rem 1.2rem;
  border: 1px solid #f1c18f;
  border-radius: 1rem;
  background: #fff7ee;
}
.status-banner > div { display: flex; gap: .6rem; align-items: center; color: var(--aos-ink); }
.status-banner p { margin: 0; color: var(--aos-muted); font-size: .92rem; }
.status-banner a { font-size: .86rem; font-weight: 900; white-space: nowrap; }
.status-banner--large { grid-template-columns: 1fr; }
.status-dot { width: .72rem; height: .72rem; flex: 0 0 auto; border-radius: 50%; background: var(--aos-orange); box-shadow: 0 0 0 .28rem rgba(245, 133, 31, .16); }

.page-hero { padding: clamp(3.2rem, 7vw, 5.8rem) 0 3rem; background: linear-gradient(145deg, #fff 0 60%, var(--aos-blue-soft) 60%); }
.page-hero h1 { max-width: 18ch; font-size: clamp(2.4rem, 5vw, 4.4rem); }
.page-lead { max-width: 48rem; margin: 1rem 0 0; color: var(--aos-muted); font-size: 1.18rem; }
.breadcrumb { margin: 0 0 1.35rem; color: var(--aos-muted); font-size: .82rem; }
.breadcrumb a { color: inherit; }

.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: 3rem; align-items: start; }
.content-main > :first-child { margin-top: 0; }
.content-main h2 { margin-top: 2.4rem; font-size: clamp(1.75rem, 3vw, 2.45rem); }
.content-main h3 { margin-top: 1.8rem; }
.content-main p, .content-main li { max-width: 72ch; }
.content-main table { display: block; width: 100%; max-width: 100%; margin: 1.25rem 0; overflow-x: auto; border-collapse: collapse; font-size: .94rem; }
.content-main th, .content-main td { padding: .8rem; border: 1px solid var(--aos-line); text-align: left; vertical-align: top; }
.content-main th { background: var(--aos-blue-soft); color: var(--aos-blue-dark); }
.content-main pre, .formula { overflow-x: auto; padding: 1rem; border-radius: .75rem; background: #f0f5f8; font-family: "SFMono-Regular", Consolas, monospace; }
.content-main .compact { margin-block: .45rem; }
.content-main [id], .legal-content [id], section[id] { scroll-margin-top: 6.5rem; }

.check-list, .link-list, .timeline-list { padding: 0; list-style: none; }
.check-list li, .link-list li { position: relative; padding-left: 1.75rem; }
.check-list li + li, .link-list li + li { margin-top: .55rem; }
.check-list li::before { position: absolute; top: .13rem; left: 0; color: var(--aos-green); font-weight: 900; content: "✓"; }
.link-list li::before { position: absolute; top: .08rem; left: .1rem; color: var(--aos-orange-dark); font-weight: 900; content: "↗"; }
.timeline-list { display: grid; gap: .85rem; counter-reset: timeline; }
.timeline-list li { position: relative; min-height: 3.25rem; padding: .75rem 1rem .75rem 3.7rem; border-left: .18rem solid var(--aos-line); counter-increment: timeline; }
.timeline-list li::before { position: absolute; top: .55rem; left: .75rem; display: grid; width: 2.1rem; height: 2.1rem; place-items: center; border-radius: 50%; background: var(--aos-blue); color: #fff; font-size: .78rem; font-weight: 900; content: counter(timeline); }
.timeline-list strong { display: block; color: var(--aos-blue-dark); }

.fact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.25rem 0; }
.fact-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fact { display: grid; gap: .22rem; padding: 1.05rem; border: 1px solid var(--aos-line); border-radius: .85rem; background: #fff; }
.fact strong { color: var(--aos-blue-dark); overflow-wrap: anywhere; }
.fact span { color: var(--aos-muted); font-size: .88rem; line-height: 1.45; }
.concept-pair, .boundary-grid, .contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.3rem 0; }
.concept-pair > div:not(.aos-card), .boundary-grid > div { display: grid; align-content: start; gap: .3rem; padding: 1.15rem; border: 1px solid var(--aos-line); border-radius: .85rem; background: #fff; }
.concept-pair > div:not(.aos-card) strong, .boundary-grid > div > strong { color: var(--aos-blue-dark); font-size: 1.05rem; }
.concept-pair > div:not(.aos-card) span { color: var(--aos-muted); }
.contact-grid { grid-template-columns: minmax(17rem, .7fr) minmax(0, 1.3fr); gap: clamp(1.5rem, 5vw, 4.5rem); align-items: start; margin: 0; }

.testimonial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.testimonial { display: grid; align-content: space-between; min-height: 15rem; margin: 0; padding: 1.45rem; border: 1px solid var(--aos-line); border-radius: var(--aos-radius); background: #fff; }
.testimonial blockquote { margin: 0; color: var(--aos-ink); font-size: 1.02rem; font-weight: 700; line-height: 1.55; }
.testimonial figcaption { margin-top: 1.2rem; color: var(--aos-blue-dark); font-size: .85rem; font-weight: 900; }

.toc { position: sticky; top: 6.4rem; padding: 1rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: #fff; }
.toc strong { display: block; margin-bottom: .6rem; }
.toc ol { margin: 0; padding-left: 1.1rem; }
.toc li + li { margin-top: .35rem; }
.toc a { color: var(--aos-muted); font-size: .86rem; text-decoration: none; }
.toc a:hover { color: var(--aos-blue); }

.callout { margin: 1.4rem 0; padding: 1.2rem 1.25rem; border: 1px solid #b8dceb; border-radius: .9rem; background: var(--aos-blue-soft); }
.callout--warning { border-color: #f5c89f; background: #fff4e9; }
.callout--success { border-color: #abd9c8; background: #eef9f4; }
.callout strong { display: block; margin-bottom: .25rem; color: var(--aos-blue-dark); }

.exam-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.exam-card { padding: 1.35rem; border: 1px solid var(--aos-line); border-top: .32rem solid var(--aos-blue); border-radius: .9rem; background: #fff; }
.exam-card--orange { border-top-color: var(--aos-orange); }
.exam-meta { display: flex; flex-wrap: wrap; gap: .45rem; margin: .8rem 0 0; }
.tag { display: inline-flex; padding: .3rem .58rem; border-radius: 999px; background: var(--aos-blue-soft); color: var(--aos-blue-dark); font-size: .76rem; font-weight: 900; }

.course-index { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin: 1.6rem 0 2.5rem; padding: 0; list-style: none; }
.course-index a { display: block; height: 100%; padding: 1rem; border: 1px solid var(--aos-line); border-radius: .75rem; background: #fff; color: var(--aos-ink); font-weight: 800; text-decoration: none; }
.course-index a:hover { border-color: var(--aos-blue); background: var(--aos-blue-soft); color: var(--aos-blue-dark); }

.quantum-table td:first-child { color: var(--aos-blue-dark); font-weight: 900; white-space: nowrap; }
.orbital-figure { margin: 1.5rem 0; padding: 1rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: #fff; }
.orbital-figure figcaption { margin-top: .75rem; color: var(--aos-muted); font-size: .84rem; }
.orbital-atlas { margin: 1.5rem 0; padding: clamp(1rem, 2.5vw, 1.5rem); border: 1px solid var(--aos-line); border-radius: 1rem; background: #fff; }
.orbital-atlas__header { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.orbital-atlas__header h3 { margin: 0; }
.orbital-atlas__header .eyebrow { margin-bottom: .25rem; }
.orbital-atlas__intro { max-width: 60rem; margin: .9rem 0 1.1rem; color: var(--aos-muted); font-size: .92rem; }
.orbital-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.orbital-card { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--aos-line); border-radius: .8rem; background: var(--aos-wash); }
.orbital-card img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: #fff; }
.orbital-card figcaption { display: grid; gap: .15rem; min-height: 4.25rem; padding: .68rem .75rem .75rem; }
.orbital-card figcaption strong { color: var(--aos-blue-dark); font-size: 1rem; }
.orbital-card figcaption span { color: var(--aos-muted); font-size: .78rem; line-height: 1.35; }
.orbital-atlas__note { margin: 1rem 0 0; padding: .85rem .95rem; border-left: .25rem solid var(--aos-orange); background: #fff4e9; color: var(--aos-muted); font-size: .86rem; }
.orbital-atlas__note strong { color: var(--aos-ink); }
.configuration { display: flex; flex-wrap: wrap; gap: .35rem; align-items: baseline; margin: .8rem 0; }
.orbital-token { padding: .28rem .48rem; border-radius: .4rem; background: var(--aos-blue-soft); color: var(--aos-blue-dark); font-family: "SFMono-Regular", Consolas, monospace; font-weight: 800; }
.course-content { min-width: 0; }
.course-meta { margin: 0 0 2rem; padding: 1.25rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: var(--aos-wash); }
.course-meta-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.course-meta-grid div { display: grid; gap: .15rem; }
.course-meta-grid strong { color: var(--aos-blue-dark); font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.course-meta-grid span { color: var(--aos-muted); font-size: .9rem; }
.worked-example { margin: 1.5rem 0; padding: 1.35rem; border: 1px solid #b8dceb; border-left: .35rem solid var(--aos-blue); border-radius: .9rem; background: #f5fbfe; }
.worked-example h3 { margin-top: 0; }
.worked-example ol:last-child, .worked-example p:last-child { margin-bottom: 0; }
.nuclide { display: inline-block; padding-inline: .12rem; white-space: nowrap; }
.orbital-boxes { display: grid; grid-template-columns: repeat(5, minmax(2.25rem, 1fr)); gap: .4rem; max-width: 22rem; margin: .75rem 0; }
.orbital-boxes span { display: grid; min-height: 2.6rem; place-items: center; border: 2px solid var(--aos-blue); background: #fff; color: var(--aos-blue-dark); font-weight: 900; }
.self-check { margin: 2rem 0; padding: 1.4rem; border: 2px solid var(--aos-orange); border-radius: 1rem; background: #fff9f3; }
.self-check > h3 { margin-top: 0; }

details { margin: 1rem 0; border: 1px solid var(--aos-line); border-radius: .8rem; background: #fff; }
summary { padding: .9rem 1rem; color: var(--aos-blue-dark); font-weight: 900; cursor: pointer; }
details > div { padding: 0 1rem 1rem; }

.diagnostic-shell { display: grid; grid-template-columns: minmax(0, 1fr) 16rem; gap: 2rem; align-items: start; }
.diagnostic-intro { margin-bottom: 1.2rem; }
.diagnostic-privacy { display: inline-flex; align-items: center; gap: .4rem; color: var(--aos-green); font-size: .84rem; font-weight: 800; }
.diagnostic-form { display: grid; gap: 1rem; }
.question-card { margin: 0; padding: 1.25rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: #fff; }
.question-card legend { width: 100%; padding: 0 0 .8rem; color: var(--aos-ink); font-weight: 900; line-height: 1.35; }
.question-number { color: var(--aos-orange-dark); }
.option { display: flex; gap: .65rem; align-items: flex-start; padding: .65rem .7rem; border-radius: .55rem; cursor: pointer; }
.option:hover { background: var(--aos-wash); }
.option input { flex: 0 0 auto; margin-top: .28rem; accent-color: var(--aos-blue); }
.question-card.is-reviewed .option.is-answer { background: #e6f5ef; box-shadow: inset .2rem 0 0 var(--aos-green); }
.question-card.is-reviewed .option.is-choice-wrong { background: #fceceb; box-shadow: inset .2rem 0 0 var(--aos-red); }
.question-feedback { display: none; margin-top: .7rem; padding: .75rem; border-radius: .55rem; background: var(--aos-wash); color: var(--aos-muted); font-size: .9rem; }
.question-card.is-correct { border-color: #78b99f; }
.question-card.is-wrong { border-color: #e4a09d; }
.question-card.is-unanswered { border-color: #e5ae72; }
.question-card.is-reviewed .question-feedback { display: block; }
.diagnostic-aside { position: sticky; top: 6.4rem; padding: 1.1rem; border-radius: 1rem; background: var(--aos-blue-dark); color: #d9eff9; }
.diagnostic-aside strong { color: #fff; }
.diagnostic-aside hr { margin: 1rem 0; border: 0; border-top: 1px solid rgba(255,255,255,.2); }
.progress-track { height: .55rem; margin: .7rem 0; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.18); }
.progress-bar { width: 0; height: 100%; border-radius: inherit; background: var(--aos-orange); transition: width .2s ease; }
.diagnostic-result { display: none; margin-top: 2rem; padding: 1.5rem; border: 2px solid var(--aos-blue); border-radius: 1rem; background: var(--aos-blue-soft); }
.diagnostic-result.is-visible { display: block; }
.result-score { margin: 0; color: var(--aos-blue-dark); font-size: 2.4rem; font-weight: 900; line-height: 1; }
.result-score small { display: block; margin-top: .4rem; color: var(--aos-muted); font-size: .9rem; font-weight: 700; line-height: 1.4; }
.domain-bars { display: grid; gap: .6rem; margin: 1rem 0; }
.domain-row { display: grid; grid-template-columns: 9rem 1fr 3rem; gap: .6rem; align-items: center; font-size: .85rem; }
.domain-row .bar { height: .55rem; overflow: hidden; border-radius: 999px; background: #cadde7; }
.domain-row .bar span { display: block; height: 100%; background: var(--aos-blue); }
.diagnostic-primer { margin: 0 0 2rem; padding: 1.25rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: var(--aos-wash); }
.diagnostic-primer > h2 { margin-top: 0; }
.primer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.primer-grid p { display: grid; gap: .1rem; margin: 0; padding: .75rem; border-radius: .65rem; background: #fff; }
.primer-grid strong { color: var(--aos-blue-dark); font-size: .82rem; }
.primer-grid span { color: var(--aos-muted); font-size: .85rem; }
.text-button { padding: 0; border: 0; background: transparent; color: #fff; font-size: .8rem; font-weight: 800; text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.diagnostic-result .text-button { color: var(--aos-blue-dark); }
.privacy-note { margin-top: .8rem; color: var(--aos-muted); font-size: .83rem; }

.diagnostic-choice-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.diagnostic-choice-card { display: flex; grid-column: span 2; min-width: 0; flex-direction: column; padding: 1.45rem; border: 1px solid var(--aos-line); border-top: .32rem solid var(--aos-blue); border-radius: var(--aos-radius); background: #fff; box-shadow: 0 .5rem 1.6rem rgba(0,59,97,.045); }
.diagnostic-choice-card:nth-child(4) { grid-column: 2 / span 2; }
.diagnostic-choice-card--featured { border-top-color: var(--aos-orange); background: linear-gradient(145deg, #fff 0 78%, #fff4e9 78%); }
.diagnostic-choice-card h3 { margin-top: 0; }
.diagnostic-choice-card > p:not(.diagnostic-level) { color: var(--aos-muted); }
.diagnostic-choice-card .aos-button { width: 100%; margin-top: auto; text-align: center; }
.diagnostic-level { margin: 0 0 .55rem; color: var(--aos-orange-dark); font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.diagnostic-choice-meta { display: flex; flex-wrap: wrap; gap: .4rem; margin: .8rem 0 1.2rem; padding: 0; color: var(--aos-muted); font-size: .8rem; list-style: none; }
.diagnostic-choice-meta li { padding: .3rem .55rem; border-radius: 999px; background: var(--aos-blue-soft); }
.diagnostic-choice-meta strong { color: var(--aos-blue-dark); }
.diagnostic-guidance { display: grid; grid-template-columns: minmax(16rem, .65fr) minmax(0, 1fr); gap: 1.5rem 3rem; align-items: center; margin-top: 1.25rem; padding: 1.4rem 1.5rem; border: 1px solid #b8dceb; border-radius: var(--aos-radius); background: var(--aos-blue-soft); }
.diagnostic-guidance .eyebrow { margin-bottom: .55rem; }
.diagnostic-guidance h2 { margin-bottom: 0; font-size: clamp(1.45rem, 2.7vw, 2rem); }
.diagnostic-guidance > p { margin: 0; color: var(--aos-muted); }

.program-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.3rem 0; }
.program-grid > * { display: grid; align-content: start; gap: .25rem; padding: 1.25rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: #fff; }
.program-grid h3 { margin-top: 0; }
.program-grid > div strong { color: var(--aos-blue-dark); }
.program-grid > div span { color: var(--aos-muted); font-size: .9rem; line-height: 1.45; }
.resource-list { display: grid; gap: .7rem; }
.resource-row { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1.05rem 1.15rem; border: 1px solid var(--aos-line); border-radius: .85rem; background: #fff; color: inherit; text-decoration: none; }
.resource-row:hover { border-color: var(--aos-blue); background: var(--aos-blue-soft); color: inherit; }
.resource-row span { display: grid; gap: .12rem; }
.resource-row strong { color: var(--aos-blue-dark); }
.resource-row small { color: var(--aos-muted); }
.resource-row b { flex: 0 0 auto; color: var(--aos-orange-dark); font-size: .82rem; }

.oral-comparison { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.4rem 0; }
.oral-card { padding: 1.3rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: #fff; }
.oral-card--featured { border-top: .35rem solid var(--aos-orange); box-shadow: var(--aos-shadow); }
.oral-card h3 { margin-top: 0; }
.oral-card ul { padding-left: 1.15rem; }
.oral-card dl { display: grid; gap: .35rem; margin: 1.2rem 0; }
.oral-card dl div { display: flex; justify-content: space-between; gap: 1rem; padding-top: .35rem; border-top: 1px solid var(--aos-line); }
.oral-card dt { color: var(--aos-muted); font-size: .82rem; }
.oral-card dd { margin: 0; color: var(--aos-blue-dark); font-size: .86rem; font-weight: 900; text-align: right; }

.legal-content { max-width: 53rem; min-width: 0; }
.legal-content h2 { margin-top: 2.2rem; font-size: 1.7rem; }
.legal-content h3 { margin-top: 1.6rem; font-size: 1.18rem; }
.legal-content address { font-style: normal; }
.legal-content table { display: block; width: 100%; max-width: 100%; margin: 1.25rem 0; overflow-x: auto; border-collapse: collapse; font-size: .94rem; -webkit-overflow-scrolling: touch; }
.legal-content caption { padding: 0 0 .65rem; color: var(--aos-ink); font-weight: 900; text-align: left; }
.legal-content th, .legal-content td { min-width: 9rem; padding: .8rem; border: 1px solid var(--aos-line); text-align: left; vertical-align: top; }
.legal-content th, .legal-content th[scope] { background: var(--aos-blue-soft); color: var(--aos-blue-dark); }
.article-toc { margin: 1.5rem 0 2.5rem; padding: 1.2rem 1.35rem; border: 1px solid var(--aos-line); border-radius: 1rem; background: var(--aos-wash); }
.article-toc strong { display: block; color: var(--aos-blue-dark); }
.article-toc ol { columns: 2; gap: 2rem; margin-bottom: 0; padding-left: 1.25rem; }
.article-toc li { break-inside: avoid; margin: .25rem 0; }
.article-toc a { color: var(--aos-muted); font-size: .9rem; text-decoration: none; }
.article-toc a:hover { color: var(--aos-blue); }

.cta-band { padding: clamp(2.5rem, 6vw, 4rem) 0; background: var(--aos-orange); color: #17242d; }
.cta-band-inner { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; }
.cta-band h2 { color: #17242d; font-size: clamp(1.7rem, 3.3vw, 2.7rem); }
.cta-band p { margin-bottom: 0; }

.site-footer { padding: 3.3rem 0 1.5rem; background: #10232f; color: #c9d9e2; }
.footer-grid { display: grid; grid-template-columns: 1.3fr repeat(3, .7fr); gap: 2rem; }
.footer-brand img { width: 4.15rem; aspect-ratio: 354 / 512; object-fit: contain; filter: brightness(0) invert(1); }
.footer-brand p { max-width: 27rem; font-size: .9rem; }
.footer-heading { margin: 0 0 .7rem; color: #fff; font-size: 1rem; letter-spacing: 0; }
.footer-column ul { margin: 0; padding: 0; list-style: none; }
.footer-column li + li { margin-top: .35rem; }
.footer-column a { display: block; width: fit-content; color: #c9d9e2; font-size: .88rem; text-decoration: none; }
.footer-column a:hover { color: #fff; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.12); color: #9fb4c0; font-size: .78rem; }

.cookie-consent-fallback { max-width: 44rem; margin: .8rem 0 0; padding: .8rem .9rem; border-left: .25rem solid var(--aos-blue); border-radius: .55rem; background: var(--aos-blue-soft); color: var(--aos-muted); font-size: .88rem; }

.not-found { min-height: 60vh; display: grid; place-items: center; padding: 4rem 0; text-align: center; }

@media (max-width: 68rem) {
  .nav-toggle { display: grid; }
  .site-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: none; max-height: calc(100dvh - 5rem); padding: 1rem; overflow-y: auto; overscroll-behavior: contain; border-bottom: 1px solid var(--aos-line); background: #fff; box-shadow: 0 1rem 2rem rgba(0,59,97,.1); -webkit-overflow-scrolling: touch; }
  .site-nav.is-open { display: grid; }
  .site-nav a { padding: .55rem .65rem; }
  .site-nav .nav-cta { text-align: center; }
  body.nav-is-open { overflow: hidden; }
  .hero-grid { grid-template-columns: 1fr minmax(15rem, .62fr); }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .path { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .testimonial-grid, .oral-comparison, .fact-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .status-banner { grid-template-columns: 1fr 1fr; }
  .status-banner a { grid-column: 1 / -1; }
}

@media (max-width: 50rem) {
  body { font-size: 1rem; }
  .brand-copy span { display: none; }
  .aos-hero { padding-top: 3.2rem; background: linear-gradient(160deg, #fff 0 70%, #edf7fb 70%); }
  .hero-grid, .section-heading, .content-grid, .diagnostic-shell, .cta-band-inner, .contact-grid, .diagnostic-guidance { grid-template-columns: 1fr; }
  .portrait-card { justify-self: center; width: min(80%, 20rem); }
  .portrait-note { right: -1.5rem; }
  .content-grid { gap: 1rem; }
  .toc, .diagnostic-aside { position: static; }
  .card-grid, .feature-grid, .exam-grid, .program-grid, .concept-pair, .boundary-grid, .testimonial-grid, .oral-comparison, .fact-grid, .course-meta-grid { grid-template-columns: 1fr; }
  .orbital-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .orbital-atlas__header { display: grid; align-items: start; }
  .path { grid-template-columns: 1fr 1fr; }
  .course-index { grid-template-columns: 1fr 1fr; }
  .status-banner { grid-template-columns: 1fr; }
  .status-banner a { grid-column: auto; }
  .cta-band .aos-button { width: 100%; }
  .diagnostic-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diagnostic-choice-card, .diagnostic-choice-card:nth-child(4) { grid-column: auto; }
  .diagnostic-choice-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 34rem) {
  .aos-container, .aos-narrow { width: min(calc(100% - 1.25rem), var(--aos-width)); }
  .brand-link img { width: 3.55rem; height: 3.55rem; }
  .header-inner { min-height: 4.4rem; }
  .hero-actions .aos-button, .button-row .aos-button { width: 100%; }
  .trust-grid, .path, .course-index, .footer-grid, .primer-grid { grid-template-columns: 1fr; }
  .diagnostic-choice-grid { grid-template-columns: 1fr; }
  .diagnostic-choice-card:last-child { grid-column: auto; }
  .orbital-grid { grid-template-columns: 1fr; }
  .article-toc ol { columns: 1; }
  .portrait-note { position: relative; right: auto; bottom: auto; margin: -1rem auto 0; }
  .domain-row { grid-template-columns: 1fr; gap: .25rem; }
  .domain-row > :last-child { display: none; }
}

@media print {
  .site-header, .site-footer, .cta-band, .diagnostic-aside, .hero-actions, .button-row { display: none !important; }
  body { color: #000; font-size: 11pt; }
  .page-hero, .aos-section { padding: 1rem 0; background: #fff; }
  .question-card, .diagnostic-result { break-inside: avoid; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
