/* RD Classes — public website. Interface follows the Cadets Academy system (Libre Baskerville headings,
   IBM Plex Sans text, IBM Plex Mono labels, dark command gradient, cream paper, small radius, white cards),
   recoloured from the RD Classes logo: gold #F4C20D and black. */

@font-face { font-family: "Libre Baskerville"; src: url("/assets/fonts/libre-baskerville-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Libre Baskerville"; src: url("/assets/fonts/libre-baskerville-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Libre Baskerville"; src: url("/assets/fonts/libre-baskerville-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("/assets/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("/assets/fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("/assets/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("/assets/fonts/ibm-plex-sans-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("/assets/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("/assets/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }

:root {
  --bg: #fbfaf6;
  --bg-alt: #f4f1e8;
  --card: #ffffff;
  --ink: #1c1a15;
  --muted: #67625a;
  --border: #e6e1d3;
  --black: #141414;
  --black-2: #1d1d1f;
  --gold: #f4c20d;
  --gold-hover: #ffd23a;
  --gold-ink: #8c6a00;
  --gold-soft: #fff4cc;
  --green: #1f7a4d;
  --command: linear-gradient(140deg, #2b2406 0%, #141416 55%, #3b3007 100%);
  --topo: repeating-linear-gradient(115deg, rgba(255, 255, 255, .05) 0, rgba(255, 255, 255, .05) 1px, transparent 1px, transparent 12px);
  --stripe: linear-gradient(90deg, var(--gold) 0 33.3%, #f6f3ea 33.3% 66.6%, var(--black) 66.6% 100%);
  --display: "Libre Baskerville", Georgia, "Times New Roman", serif;
  --sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
  --wrap: 1180px;
  --gutter: clamp(16px, 4vw, 32px);
  --radius: 4px;
  --shadow: 0 1px 2px rgba(20, 20, 20, .04), 0 14px 32px -18px rgba(20, 20, 20, .28);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 1rem/1.6 var(--sans); }
img { max-width: 100%; height: auto; display: block; -webkit-user-drag: none; user-select: none; -webkit-touch-callout: none; }
a { color: var(--gold-ink); text-underline-offset: 3px; }
a:hover { color: var(--black); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--display); font-weight: 700; color: var(--black); line-height: 1.2; margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(1.9rem, 4.2vw, 2.85rem); }
h2 { font-size: clamp(1.45rem, 2.8vw, 1.95rem); }
h3 { font-size: 1.12rem; }
h4 { font-size: 1rem; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.2em; }
strong, b { font-weight: 600; }
[hidden] { display: none !important; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--gold); color: var(--black); padding: 8px 14px; z-index: 100; font-weight: 600; }
.skip:focus { left: 8px; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.narrow { max-width: 820px; }
.muted { color: var(--muted); }
.lede { font-size: 1.06rem; color: var(--muted); max-width: 64ch; }
.mt-0 { margin-top: 0; } .mt-2 { margin-top: 2rem; } .center { text-align: center; }
.table-wrap { overflow-x: auto; }

/* eyebrow labels (Cadets: tracked mono capitals) */
.kicker, .eyebrow { display: inline-flex; align-items: center; gap: 8px; font: 600 .72rem/1.4 var(--mono); letter-spacing: .2em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: .7rem; }
.section-navy .kicker, .on-dark .kicker, .page-head .kicker, .hero .kicker { color: var(--gold); }

/* ------------------------------------------------------------------ buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 44px; padding: .65em 1.2em; border-radius: var(--radius);
  font: 600 .95rem/1.1 var(--sans); text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .15s, color .15s, border-color .15s, box-shadow .15s; }
.btn svg { width: 1.05em; height: 1.05em; flex: none; }
.btn-gold { background: var(--gold); color: var(--black); box-shadow: 0 8px 18px -10px rgba(244, 194, 13, .9); }
.btn-gold:hover { background: var(--gold-hover); color: var(--black); }
.btn-navy { background: var(--black); color: #fff; }
.btn-navy:hover { background: #2a2a2c; color: #fff; }
.btn-line { background: var(--card); color: var(--black); border-color: var(--border); box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
.btn-line:hover { border-color: var(--black); color: var(--black); }
.on-dark .btn-line, .page-head .btn-line, .hero .btn-line, .cta-band .btn-line { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); box-shadow: none; }
.on-dark .btn-line:hover, .page-head .btn-line:hover, .hero .btn-line:hover, .cta-band .btn-line:hover { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }
.btn-wa { background: #1f8f4e; color: #fff; }
.btn-wa:hover { background: #18733e; color: #fff; }
.btn-block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }
.link-arrow { font-weight: 600; text-decoration: none; color: var(--gold-ink); }
.link-arrow:hover { color: var(--black); }
.link-arrow::after { content: " →"; }

/* ------------------------------------------------------------------ top bar + header (Cadets) */
.strip { background: #0c0c0d; color: #d8d3c4; font: 500 .74rem/1 var(--mono); letter-spacing: .02em; position: relative; }
.strip::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--stripe); }
.strip .wrap { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 34px; padding-top: 3px; }
.strip p { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.strip a { color: #d8d3c4; text-decoration: none; }
.strip a:hover { color: var(--gold); }
.strip-links { display: flex; gap: 18px; white-space: nowrap; }
@media (max-width: 720px) { .strip-links .hide-sm { display: none; } }

.site-head { position: sticky; top: 0; z-index: 40; background: var(--black); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.site-head .wrap { display: flex; align-items: center; gap: 18px; min-height: 68px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.brand img { width: 56px; height: auto; background: #fff; border-radius: 4px; padding: 3px 4px; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-text strong { font: 700 1.05rem/1.2 var(--display); color: #fff; }
.brand-text small { font: 600 .66rem/1.4 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-top: 3px; }
.nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; align-items: center; }
.nav a { display: block; padding: 9px 11px; color: #e9e5da; text-decoration: none; font: 600 .7rem/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; border-radius: var(--radius); white-space: nowrap; }
.nav a:hover { color: var(--gold); }
.nav a[aria-current="page"] { color: var(--gold); }
.nav .nav-cta { margin-left: 6px; }
.nav .nav-cta a { background: var(--gold); color: var(--black); padding: 10px 14px; }
.nav .nav-cta a:hover { background: var(--gold-hover); color: var(--black); }
.nav-login a { border: 1px solid rgba(255, 255, 255, .25); }
.head-icons { display: flex; gap: 8px; }
.head-icons a { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255, 255, 255, .25); border-radius: var(--radius); color: #fff; }
.head-icons a:hover { border-color: var(--gold); color: var(--gold); }
.head-icons svg { width: 16px; height: 16px; }
.menu-btn { display: none; background: none; border: 1px solid rgba(255, 255, 255, .3); border-radius: var(--radius); padding: 9px 12px; font: 600 .72rem var(--mono); letter-spacing: .14em; text-transform: uppercase; color: #fff; cursor: pointer; }
@media (max-width: 1120px) {
  .menu-btn { display: inline-flex; }
  .head-icons { display: none; }
  .nav { position: fixed; inset: 102px 0 auto 0; background: var(--black); border-top: 1px solid rgba(255, 255, 255, .1); display: none; max-height: calc(100vh - 102px); overflow: auto; }
  .nav.open { display: block; }
  .nav ul { flex-direction: column; align-items: stretch; padding: 8px var(--gutter) 18px; }
  .nav a { padding: 15px 6px; border-bottom: 1px solid rgba(255, 255, 255, .08); border-radius: 0; font-size: .78rem; }
  .nav .nav-cta { margin: 12px 0 0; }
  .nav .nav-cta a, .nav-login a { text-align: center; border-radius: var(--radius); }
  .nav-login a { margin-top: 10px; }
}
@media (max-width: 520px) { .brand-text small { display: none; } .brand img { width: 48px; } }

/* stripe between sections (Cadets tricolour → gold / cream / black) */
.stripe { height: 3px; background: var(--stripe); }

/* ------------------------------------------------------------------ sections */
.section { padding: clamp(52px, 7vw, 84px) 0; }
.section-tight { padding: clamp(28px, 4vw, 44px) 0; }
.section-white { background: var(--bg-alt); }
.section-navy { background: var(--command); color: #d9d4c6; position: relative; }
.section-navy::before { content: ""; position: absolute; inset: 0; background: var(--topo); pointer-events: none; }
.section-navy > * { position: relative; }
.section-navy h2, .section-navy h3 { color: #fff; }
.section-navy a:not(.btn) { color: var(--gold); }
.section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 40px; margin-bottom: clamp(22px, 3.5vw, 34px); }
.section-head > div { max-width: 680px; }
.section-head h2 { margin-bottom: .35em; }
.section-head p { margin: 0; color: var(--muted); }
.section-navy .section-head p { color: #c9c3b3; }
.section-head.centered { justify-content: center; text-align: center; }
.section-head.centered > div { max-width: 760px; }

/* ------------------------------------------------------------------ hero (Cadets) */
.hero { background: var(--command); color: #e2ddcf; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: var(--topo); pointer-events: none; }
.hero .wrap { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 5vw, 56px); align-items: center; padding-top: clamp(36px, 6vw, 70px); padding-bottom: clamp(40px, 6vw, 74px); }
.hero-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.chip { display: inline-flex; align-items: center; gap: 7px; font: 600 .68rem/1.3 var(--mono); letter-spacing: .16em; text-transform: uppercase; padding: 6px 10px; border: 1px solid rgba(244, 194, 13, .55); color: var(--gold); border-radius: 2px; }
.chip svg { width: 13px; height: 13px; }
.chip-solid { background: rgba(244, 194, 13, .14); border-color: transparent; }
.hero h1 { color: #fff; font-size: clamp(2rem, 4.3vw, 3rem); margin-bottom: .35em; }
.hero .h1-sub { display: block; font: 600 clamp(1.1rem, 1.9vw, 1.4rem)/1.35 var(--sans); color: var(--gold); margin: 0 0 14px; letter-spacing: 0; }
.hero-track { font: 600 .78rem/1.4 var(--mono); letter-spacing: .22em; text-transform: uppercase; color: #f1d785; margin: 6px 0 16px; }
.hero-bar { width: 160px; height: 3px; background: var(--stripe); margin-bottom: 22px; }
.hero .lede { color: #d7d1c1; font-size: 1rem; }
.hero .btn-row { margin: 22px 0 14px; }
.hero-wa { display: inline-flex; gap: 6px; font-weight: 600; color: var(--gold); text-decoration: none; font-size: .92rem; }
.hero-wa:hover { color: #fff; }
.hero-points { list-style: none; padding: 0; margin: 22px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 26px; font-size: .92rem; color: #e2ddcf; }
.hero-points li { padding-left: 24px; position: relative; }
.hero-points li::before { content: ""; position: absolute; left: 2px; top: .4em; width: 11px; height: 6px; border-left: 2px solid var(--gold); border-bottom: 2px solid var(--gold); transform: rotate(-45deg); }
.collage { position: relative; min-height: 440px; }
.collage figure { margin: 0; position: absolute; border: 1px solid rgba(255, 255, 255, .7); background: #2b2b2e; box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .8); overflow: hidden; }
.collage img { width: 100%; height: 100%; object-fit: cover; }
.collage .c1 { right: 0; top: 0; width: 58%; height: 72%; }
.collage .c2 { left: 0; bottom: 4%; width: 60%; height: 52%; z-index: 2; }
.collage .c-badge { position: absolute; left: 2%; top: 0; width: 28%; aspect-ratio: 1; border: 1px solid rgba(244, 194, 13, .7); display: grid; place-items: center; text-align: center; font: 700 1rem var(--display); color: var(--gold); background: rgba(0, 0, 0, .35); padding: 10px; }
.collage .c-badge small { display: block; font: 600 .6rem var(--mono); letter-spacing: .16em; text-transform: uppercase; color: #e2ddcf; margin-top: 6px; }
.rating-card { position: absolute; right: 2%; bottom: 0; z-index: 3; width: 44%; background: rgba(14, 14, 15, .92); border: 1px solid rgba(255, 255, 255, .15); padding: 14px 16px; font-size: .85rem; color: #e2ddcf; }
.rating-card strong { display: flex; align-items: center; gap: 6px; font: 600 .68rem var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; }
.rating-card a { display: inline-block; margin-top: 8px; color: var(--gold); font-weight: 600; text-decoration: none; }
@media (max-width: 960px) { .hero .wrap { grid-template-columns: 1fr; } .collage { min-height: 360px; } }
@media (max-width: 520px) { .hero-points { grid-template-columns: 1fr; } .collage { min-height: 300px; } .rating-card { width: 60%; } }

/* ------------------------------------------------------------------ stats band (Cadets) */
.figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--card); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.figure { padding: 26px 16px 22px; text-align: center; }
.figure b { display: block; font: 700 clamp(1.7rem, 3vw, 2.2rem)/1.1 var(--display); color: var(--black); margin-bottom: 8px; }
.figure span { display: block; font: 600 .68rem/1.4 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 760px) { .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.section-tight .figures { border: 1px solid var(--border); box-shadow: var(--shadow); }

/* ------------------------------------------------------------------ cards and grids */
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 3vw, 28px); }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 900px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .grid-2 { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .grid-3, .grid-4 { grid-template-columns: 1fr; } }
.panel, .card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: clamp(18px, 2.6vw, 26px); box-shadow: var(--shadow); }
.panel h3, .card h3 { margin-bottom: .45em; }
.panel p:last-child, .panel ul:last-child, .card p:last-child { margin-bottom: 0; }
.panel-gold { background: var(--gold-soft); border-color: #f0dc95; box-shadow: none; }
.card-dark { background: var(--command); color: #e2ddcf; border-color: transparent; position: relative; overflow: hidden; }
.card-dark::before { content: ""; position: absolute; inset: 0; background: var(--topo); }
.card-dark > * { position: relative; }
.card-dark h3 { color: #fff; }
.card-dark .big { font: 700 2.4rem/1 var(--display); color: var(--gold); margin-bottom: 10px; }
.card-icon { width: 26px; height: 26px; color: var(--gold-ink); margin-bottom: 14px; }
.card-dark .card-icon { color: var(--gold); }
.card .link-arrow { display: inline-block; margin-top: 6px; }
.card-dark .link-arrow { color: var(--gold); }
.prog-card h3 { border-bottom: 1px solid var(--border); padding-bottom: 12px; margin-bottom: 12px; font-size: 1.08rem; }
.prog-card p { color: var(--muted); font-size: .92rem; }
.arrow-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; font-size: .92rem; }
.arrow-list li { position: relative; padding-left: 20px; }
.arrow-list li::before { content: "↗"; position: absolute; left: 0; color: var(--gold-ink); font-weight: 700; }
.arrow-list a { color: var(--ink); text-decoration: none; }
.arrow-list a:hover { color: var(--gold-ink); text-decoration: underline; }
.tag { display: inline-block; font: 600 .62rem/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; background: var(--bg-alt); border: 1px solid var(--border); padding: 4px 8px; color: var(--muted); margin-bottom: 12px; }
.feature-card { display: flex; flex-direction: column; }
.feature-card .bar { margin-top: auto; padding-top: 16px; }
.feature-card .bar span { display: block; height: 3px; background: linear-gradient(90deg, var(--gold) 0 35%, transparent 35% 65%, var(--black) 65% 100%); }
.ticks { list-style: none; padding: 0; margin: 0 0 1em; }
.ticks li { position: relative; padding: 7px 0 7px 28px; }
.ticks li::before { content: ""; position: absolute; left: 3px; top: 15px; width: 11px; height: 6px; border-left: 2px solid var(--gold-ink); border-bottom: 2px solid var(--gold-ink); transform: rotate(-45deg); }
.section-navy .ticks li::before { border-color: var(--gold); }
.check-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; list-style: none; padding: 0; margin: 0 0 1.5em; }
.check-cards li { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 12px 14px 12px 40px; position: relative; font-size: .92rem; border-radius: var(--radius); }
.check-cards li::before { content: ""; position: absolute; left: 16px; top: 18px; width: 11px; height: 6px; border-left: 2px solid var(--green); border-bottom: 2px solid var(--green); transform: rotate(-45deg); }
@media (max-width: 600px) { .check-cards { grid-template-columns: 1fr; } }

/* course list (Cadets "Current batches" card) */
.course-ledger { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); border-radius: var(--radius); padding: 6px clamp(14px, 2.4vw, 24px); }
.course-row { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--border); }
.course-row:last-child { border-bottom: 0; }
.course-row .folio { display: none; }
.course-row .eyebrow { margin-bottom: .3rem; color: var(--muted); }
.course-row h3 { margin: 0 0 4px; font-size: 1.05rem; }
.course-row h3 a { color: var(--black); text-decoration: none; }
.course-row h3 a:hover { color: var(--gold-ink); }
.course-row p { margin: 0; color: var(--muted); font-size: .9rem; }
.course-meta { font-size: .88rem; color: var(--muted); }
.course-meta span { display: block; }
.course-go { display: flex; gap: 8px; }
.course-go .btn { min-height: 36px; padding: .5em .9em; font-size: .82rem; }
@media (max-width: 860px) { .course-row { grid-template-columns: 1fr; gap: 8px; } }

/* entries tiles (Cadets "Pick the uniform") */
.tiles { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.tile { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--command); border: 1px solid var(--border); display: block; text-decoration: none; }
.tile img { width: 100%; height: 100%; object-fit: cover; }
.tile .tile-fallback { position: absolute; inset: 0; display: grid; place-items: center; padding: 12px; text-align: center; font: 700 1rem/1.3 var(--display); color: var(--gold); background: var(--command); }
.tile .tile-fallback::before { content: ""; position: absolute; inset: 0; background: var(--topo); }
.tile span.tl { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; background: var(--black); color: #fff; font-weight: 600; font-size: .85rem; padding: 7px 10px; }
.tile:hover span.tl { background: var(--gold); color: var(--black); }
@media (max-width: 900px) { .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* admission steps */
.steps { list-style: none; counter-reset: s; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.steps li { counter-increment: s; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 16px; position: relative; color: var(--ink); }
.steps li::before { content: "0" counter(s); display: block; font: 700 1.25rem var(--display); color: var(--gold-ink); margin-bottom: 8px; }
.steps li + li::after { content: ""; position: absolute; left: -15px; top: 26px; width: 15px; height: 2px; background: var(--gold); }
.steps h3 { font: 600 .98rem/1.3 var(--sans); color: var(--black); margin: 0 0 4px; }
.steps p { font-size: .86rem; color: var(--muted); margin: 0; }
.section-navy .steps h3 { color: var(--black); }
.section-navy .steps p { color: var(--muted); }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr 1fr; } .steps li + li::after { display: none; } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }

/* why-us split with image (Cadets) */
.why { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: center; }
.why-img { border: 1px solid var(--border); box-shadow: var(--shadow); background: var(--command); aspect-ratio: 4 / 3; overflow: hidden; }
.why-img img { width: 100%; height: 100%; object-fit: cover; }
.why-list { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 12px; }
.why-list li { position: relative; padding-left: 30px; }
.why-list li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 20px; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238c6a00' stroke-width='2'%3E%3Cpath d='M12 2l8 3v6c0 5-3.5 9-8 11-4.5-2-8-6-8-11V5z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.why-list strong { display: block; color: var(--black); }
.why-list span { color: var(--muted); font-size: .9rem; }
@media (max-width: 860px) { .why { grid-template-columns: 1fr; } }
.t-account { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.t-account > div { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 20px 22px; }
.t-account h3 { display: flex; justify-content: space-between; font-size: 1.05rem; border-bottom: 1px solid var(--border); padding-bottom: 10px; margin-bottom: 10px; }
.t-account h3 span { font: 600 .7rem var(--mono); letter-spacing: .16em; color: var(--gold-ink); }
@media (max-width: 760px) { .t-account { grid-template-columns: 1fr; } }

/* toppers */
.toppers { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.topper { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 18px; display: flex; flex-direction: column; gap: 3px; }
.topper .score { font: 700 2rem/1 var(--display); color: var(--black); border-bottom: 3px solid var(--gold); align-self: flex-start; padding-bottom: 4px; margin-bottom: 10px; }
.topper strong { font-size: 1rem; }
.topper span { color: var(--muted); font-size: .88rem; }
.topper img { width: 100%; aspect-ratio: 1; object-fit: cover; margin-bottom: 10px; background: var(--bg-alt); }

/* image grids (reviews, gallery) */
.shots { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.shot { margin: 0; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); overflow: hidden; }
.shot button { all: unset; display: block; cursor: zoom-in; width: 100%; }
.shot button:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
.shot img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; background: var(--bg-alt); }
.shot.wide img { aspect-ratio: 4 / 3; object-position: center; }
.shot figcaption { padding: 8px 12px; font-size: .85rem; color: #fff; background: var(--black); }
.lightbox { position: fixed; inset: 0; z-index: 90; background: rgba(10, 10, 10, .92); display: grid; place-items: center; padding: 20px; }
.lightbox img { max-height: 86vh; max-width: min(1100px, 100%); width: auto; }
.lightbox button { position: absolute; top: 14px; right: 14px; background: #fff; border: 0; border-radius: 50%; width: 44px; height: 44px; font-size: 1.4rem; cursor: pointer; }
.lightbox p { color: #e2ddcf; text-align: center; margin: 12px 0 0; }

/* FAQ (Cadets: plain rows with chevrons, serif-free questions) */
.faq { border-top: 1px solid var(--border); }
.faq details { border-bottom: 1px solid var(--border); }
.faq summary { list-style: none; cursor: pointer; padding: 15px 36px 15px 0; font-size: .95rem; color: var(--ink); position: relative; font-family: var(--display); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid var(--muted); border-bottom: 1.5px solid var(--muted); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq details > div { padding: 0 0 16px; color: var(--muted); font-size: .95rem; }
.faq details > div p:last-child { margin: 0; }

/* curriculum (recorded lectures) */
.curriculum { border-top: 1px solid var(--border); }
.curriculum details { border-bottom: 1px solid var(--border); }
.curriculum summary { cursor: pointer; display: flex; justify-content: space-between; gap: 12px; padding: 15px 4px; font-family: var(--display); color: var(--black); }
.curriculum summary span { font: 500 .78rem var(--mono); color: var(--muted); white-space: nowrap; }
.curriculum ol { margin: 0; padding: 0 4px 14px 36px; }
.curriculum li { padding: 6px 0; border-bottom: 1px dashed var(--border); display: flex; justify-content: space-between; gap: 12px; font-size: .93rem; }
.curriculum li:last-child { border-bottom: 0; }
.curriculum li span { color: var(--muted); font-size: .85rem; white-space: nowrap; }
.lms-cover { text-decoration: none; aspect-ratio: 16 / 9; background: var(--command); color: #fff; padding: 16px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.lms-cover::after { content: ""; position: absolute; inset: 0; background: var(--topo); }
.lms-cover b { font: 700 1.15rem/1.25 var(--display); position: relative; z-index: 1; }
.lms-cover small { color: var(--gold); font: 600 .64rem var(--mono); letter-spacing: .16em; text-transform: uppercase; position: relative; z-index: 1; }
.lms-card { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); display: flex; flex-direction: column; }
.lms-card h3 { font-size: .98rem; margin: 14px 16px 6px; line-height: 1.35; }
.lms-card h3 a { color: var(--black); text-decoration: none; }
.lms-card h3 a:hover { color: var(--gold-ink); }
.lms-card .facts { margin: auto 16px 16px; font: 500 .78rem var(--mono); display: flex; gap: 14px; color: var(--muted); }

/* inner page head (Cadets) */
.page-head { background: var(--command); color: #e2ddcf; padding: clamp(30px, 5vw, 52px) 0 clamp(34px, 5vw, 56px); position: relative; overflow: hidden; }
.page-head::before { content: ""; position: absolute; inset: 0; background: var(--topo); pointer-events: none; }
.page-head .wrap { position: relative; }
.page-head h1 { color: #fff; max-width: 24ch; }
.page-head p.lede { color: #d7d1c1; }
.page-head .post-meta { color: #c9c3b3; font-size: .9rem; }
.crumbs { font: 600 .7rem/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 16px; }
.crumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: #8f8a7c; }
.crumbs a { color: #c9c3b3; text-decoration: none; }
.crumbs a:hover { color: #fff; }
.crumbs [aria-current] { color: var(--gold); }
.page-head .btn-row { margin-top: 22px; }
.page-head + .stripe { margin-top: 0; }

/* article / long text */
.prose { max-width: 74ch; }
.prose h2 { font-size: 1.35rem; margin-top: 1.6em; }
.prose h3 { margin-top: 1.4em; }
.prose li { margin-bottom: .4em; }
.prose table { width: 100%; border-collapse: collapse; margin: 1em 0 1.5em; font-size: .93rem; background: var(--card); box-shadow: var(--shadow); border: 1px solid var(--border); }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
.prose th { background: var(--bg-alt); color: var(--black); }
.prose blockquote { margin: 1.4em 0; padding: 14px 18px; border-left: 3px solid var(--gold); background: var(--gold-soft); }
.layout-side { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(28px, 4vw, 52px); align-items: start; }
.layout-side aside { position: sticky; top: 90px; display: grid; gap: 16px; }
@media (max-width: 960px) { .layout-side { grid-template-columns: 1fr; } .layout-side aside { position: static; } }
.post-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.post-card { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 18px; display: flex; flex-direction: column; }
.post-card .cat { font: 600 .66rem/1.4 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.post-card h3 { font-size: 1rem; margin: 8px 0; line-height: 1.35; }
.post-card h3 a { color: var(--black); text-decoration: none; }
.post-card h3 a:hover { color: var(--gold-ink); }
.post-card p { color: var(--muted); font-size: .9rem; }
.post-card .meta { margin-top: auto; font-size: .82rem; color: var(--muted); }
.cover-img { width: 100%; height: auto; margin-bottom: 1.6rem; border: 1px solid var(--border); box-shadow: var(--shadow); }

/* areas served chips (Cadets "Students come to us from") */
.areas { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0; }
.areas a { display: inline-block; padding: 6px 12px; border: 1px solid var(--border); text-decoration: none; color: var(--ink); background: var(--card); font-size: .86rem; }
.areas a:hover { border-color: var(--black); }
.section-navy .areas a { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .3); }

/* ------------------------------------------------------------------ forms */
.form-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: clamp(18px, 2.6vw, 24px); color: var(--ink); box-shadow: var(--shadow); position: relative; }
.form-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--stripe); }
.form-card h2 { font-size: 1.3rem; margin-bottom: .3em; }
.form-card > p { color: var(--muted); font-size: .92rem; }
.field { margin-bottom: 13px; }
.field label { display: block; font-weight: 600; font-size: .85rem; margin-bottom: 5px; color: var(--ink); }
.field input, .field select, .field textarea { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font: 400 .95rem var(--sans); background: #fff; color: var(--ink); }
.field textarea { min-height: 90px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid rgba(244, 194, 13, .55); border-color: var(--black); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 520px) { .field-row { grid-template-columns: 1fr; } }
.hp { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }
.form-note { font-size: .8rem; color: var(--muted); margin: 10px 0 0; text-align: center; }
.form-msg { margin-top: 12px; padding: 11px 13px; font-weight: 500; font-size: .92rem; }
.form-msg.ok { background: #e3f4ea; color: #145c37; }
.form-msg.err { background: #fbe6e3; color: #8e2a1f; }
.gate { max-width: 460px; margin: 0 auto; }
.role-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 18px; }
.role-tabs a { text-align: center; padding: 9px 4px; border: 1px solid var(--border); background: var(--card); text-decoration: none; color: var(--ink); font: 600 .7rem var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.role-tabs a[aria-current] { background: var(--black); color: var(--gold); border-color: var(--black); }

/* visit / contact cards (Cadets) */
.map { border: 1px solid var(--border); box-shadow: var(--shadow); overflow: hidden; background: var(--bg-alt); aspect-ratio: 4 / 3; }
.map iframe { width: 100%; height: 100%; border: 0; display: block; }
.nap { font-style: normal; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 20px 22px; }
.nap dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.nap dl div:first-child { grid-column: 1 / -1; }
.nap dt { font: 600 .66rem/1.4 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.nap dd { margin: 3px 0 0; font-weight: 500; }
.nap dd a { color: var(--black); }
.nap-actions { margin-top: 18px; }
@media (max-width: 520px) { .nap dl { grid-template-columns: 1fr; } }

/* CTA band + footer (Cadets) */
.cta-band { background: var(--command); color: #e2ddcf; position: relative; }
.cta-band::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--stripe); }
.cta-band .wrap { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding-top: 28px; padding-bottom: 28px; }
.cta-band h2 { margin: 0 0 4px; font-size: 1.2rem; color: #fff; }
.cta-band p { margin: 0; font-size: .9rem; color: #c9c3b3; }
.cta-band .btn { min-height: 38px; font-size: .86rem; }
.site-foot { background: #0e0e0f; color: #b8b2a2; padding: 52px 0 100px; font-size: .9rem; position: relative; }
.site-foot::before { content: ""; position: absolute; inset: 0; background: var(--topo); pointer-events: none; }
.site-foot .wrap { position: relative; }
.site-foot a { color: #ddd8ca; text-decoration: none; }
.site-foot a:hover { color: var(--gold); }
.foot-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr 1.1fr; gap: 32px; }
.foot-grid h2 { font: 700 .74rem/1.4 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; padding-bottom: 8px; position: relative; }
.foot-grid h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 36px; height: 2px; background: linear-gradient(90deg, var(--gold), transparent); }
.foot-grid ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.foot-brand img { width: 70px; background: #fff; border-radius: 4px; padding: 5px; margin-bottom: 12px; }
.foot-name { color: #fff; font-family: var(--display); }
.foot-contact { border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .03); padding: 16px; }
.foot-bottom { margin-top: 40px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; font-size: .8rem; }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .foot-grid { grid-template-columns: 1fr; } }

/* mobile action bar + WhatsApp float */
.action-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: none; grid-template-columns: 1fr 1fr 1.3fr; background: var(--black); border-top: 1px solid rgba(255, 255, 255, .12); padding-bottom: env(safe-area-inset-bottom); }
.action-bar a { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 54px; font-weight: 600; text-decoration: none; color: #fff; font-size: .9rem; }
.action-bar a + a { border-left: 1px solid rgba(255, 255, 255, .12); }
.action-bar a.wa { color: #6fd39b; }
.action-bar a.demo { background: var(--gold); color: var(--black); }
.action-bar svg { width: 18px; height: 18px; }
@media (max-width: 860px) { .action-bar { display: grid; } }
.wa-float { position: fixed; right: 18px; bottom: 22px; z-index: 50; width: 56px; height: 56px; border-radius: 50%; background: #1f8f4e; color: #fff; display: grid; place-items: center; box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .45); }
.wa-float svg { width: 28px; height: 28px; }
@media (max-width: 860px) { .wa-float { display: none; } }

/* practice quiz */
.quiz { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: clamp(18px, 3vw, 26px); }
.quiz-q { font-family: var(--display); font-size: 1.12rem; color: var(--black); margin-bottom: 14px; }
.quiz-opts { display: grid; gap: 8px; margin-bottom: 14px; }
.quiz-opts button { text-align: left; padding: 11px 13px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; font: 500 .95rem var(--sans); color: var(--ink); cursor: pointer; }
.quiz-opts button:hover:not(:disabled) { border-color: var(--black); }
.quiz-opts button.right { border-color: var(--green); background: #e3f4ea; }
.quiz-opts button.wrong { border-color: #c0392b; background: #fbe6e3; }
.quiz-explain { background: var(--bg-alt); padding: 12px 14px; font-size: .93rem; margin-bottom: 12px; }
.quiz-bar { height: 4px; background: var(--bg-alt); margin-bottom: 16px; overflow: hidden; }
.quiz-bar span { display: block; height: 100%; background: var(--gold); transition: width .3s; }

/* hero journal card is no longer used on the homepage; kept for older cached pages */
.journal { display: none; }

@media print { .strip, .site-head, .action-bar, .wa-float, .cta-band, .site-foot { display: none !important; } }

/* ================================================================== Cadets homepage blocks */
svg { flex: none; }
.panel > svg, .portal > svg, .card > svg { width: 26px; height: 26px; color: var(--gold-ink); margin-bottom: 14px; display: block; }
.panel h3 svg, .muted svg, .shield-list svg { width: 18px; height: 18px; vertical-align: -3px; color: var(--gold-ink); }
.link { color: var(--gold-ink); }
.btn-dark { background: var(--black); color: #fff; }
.btn-dark:hover { background: #2a2a2c; color: #fff; }
.head-cta-sm { display: none; }
@media (max-width: 1120px) { .head-cta-sm { display: inline-flex; min-height: 36px; padding: .45em .9em; font-size: .82rem; } }
@media (max-width: 420px) { .head-cta-sm { display: none; } }

/* dark sections */
.section.dark { background: var(--command); color: #d9d4c6; position: relative; }
.section.dark::before { content: ""; position: absolute; inset: 0; background: var(--topo); pointer-events: none; }
.section.dark > * { position: relative; }
.section.dark h2, .section.dark h3 { color: #fff; }
.section.dark .kicker { color: var(--gold); }
.section.dark .section-head p, .section.dark .muted { color: #c9c3b3; }
.section.dark .btn-line { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); box-shadow: none; }
.section.dark .btn-line:hover { background: rgba(255, 255, 255, .08); border-color: #fff; color: #fff; }
.section.dark .shot { border-color: rgba(244, 194, 13, .5); box-shadow: 0 0 0 4px rgba(244, 194, 13, .08), 0 20px 40px -20px #000; }
.section.dark .shot figcaption { background: var(--gold); color: var(--black); font: 600 .66rem var(--mono); letter-spacing: .14em; text-transform: uppercase; text-align: center; }
.section-dots { background-color: var(--bg-alt); background-image: radial-gradient(rgba(20, 20, 20, .08) 1px, transparent 1px); background-size: 16px 16px; }
.ribboned { position: relative; }
.ribboned::before, .figures-band::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--stripe); }

/* hero extras */
.hero-bg { position: absolute; inset: 0; background: radial-gradient(70% 60% at 85% 30%, rgba(244, 194, 13, .12), transparent 70%); pointer-events: none; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.chip-ink { border-color: var(--black); color: var(--black); background: var(--gold); }
.typed { font: 600 .8rem/1.4 var(--mono); letter-spacing: .2em; text-transform: uppercase; color: #f1d785; margin: 4px 0 14px; }
.typed b { color: #fff; font-weight: 600; }
.caret { display: inline-block; width: 2px; height: 1em; background: var(--gold); margin-left: 4px; vertical-align: -2px; animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.ribbon-short { width: 160px; height: 3px; background: var(--stripe); margin-bottom: 20px; }
.collage .cube { position: absolute; left: 4%; top: 2%; width: 26%; aspect-ratio: 1; border: 1px solid rgba(244, 194, 13, .7); display: grid; place-items: center; font: 700 1.5rem var(--display); color: var(--gold); background: rgba(0, 0, 0, .3); z-index: 1; }
.collage .ph { position: absolute; border: 1px solid rgba(255, 255, 255, .75); background: #2b2b2e; box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .8); overflow: hidden; }
.collage .ph img { width: 100%; height: 100%; object-fit: cover; }
.collage .ph-1 { right: 0; top: 4%; width: 54%; height: 78%; }
.collage .ph-2 { left: 0; bottom: 2%; width: 62%; height: 50%; z-index: 2; }
.collage .ph-2 img { object-position: center; }
.badge-card { position: absolute; right: 2%; bottom: 0; z-index: 3; width: 46%; background: rgba(14, 14, 15, .94); border: 1px solid rgba(244, 194, 13, .35); padding: 14px 16px; font-size: .84rem; color: #e2ddcf; line-height: 1.5; }
.badge-card b { display: flex; align-items: center; gap: 6px; font: 600 .68rem var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; }
.badge-card svg { width: 14px; height: 14px; }

/* announcement band */
.announce { background: linear-gradient(180deg, #fffaf0, var(--bg)); }
.announce .wrap { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr); gap: clamp(22px, 4vw, 44px); align-items: center; }
.announce h2 { max-width: 26ch; }
.announce-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--black); border-bottom: 1px solid var(--border); margin: 18px 0 22px; }
.announce-stats div { padding: 12px 12px 12px 0; }
.announce-stats div + div { border-left: 1px solid var(--border); padding-left: 12px; }
.announce-stats b { display: block; font: 700 1.25rem var(--display); color: var(--black); }
.announce-stats span { font-size: .78rem; color: var(--muted); line-height: 1.35; display: block; }
.mini-card { background: var(--black); color: #e2ddcf; padding: 22px; position: relative; border-top: 3px solid var(--gold); box-shadow: var(--shadow); }
.mini-card h3 { color: #fff; }
.mini-card p { font-size: .9rem; color: #c9c3b3; }
.mini-card form { display: grid; gap: 10px; }
.mini-card input { min-height: 42px; padding: 9px 11px; border: 1px solid rgba(255, 255, 255, .2); background: #fff; font: 400 .95rem var(--sans); border-radius: var(--radius); }
.mini-card .link-arrow { color: var(--gold); }
.mini-card .link-arrow::after { content: ""; }
@media (max-width: 860px) { .announce .wrap { grid-template-columns: 1fr; } .announce-stats { grid-template-columns: 1fr 1fr; } .announce-stats div:nth-child(3) { border-left: 0; padding-left: 0; } }

/* stats band wrapper */
.figures-band { position: relative; background: var(--card); }
.figures-band .figures { border: 0; }

/* toppers (Cadets officer cards) */
.topper { padding: 0; overflow: hidden; gap: 0; }
.t-photo { position: relative; aspect-ratio: 4 / 3; background: var(--command); display: grid; place-items: center; overflow: hidden; }
.t-photo::before { content: ""; position: absolute; inset: 0; background: var(--topo); }
.t-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; aspect-ratio: auto; }
.ph-label { position: relative; font: 600 .66rem var(--mono); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.t-photo .score { position: absolute; left: 12px; top: 12px; z-index: 2; background: var(--gold); color: var(--black); font: 700 1.05rem var(--display); padding: 4px 9px; border: 0; margin: 0; }
.t-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 4px; }
.t-body small { font: 600 .64rem var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--gold-ink); }
.t-body strong { font: 700 1.02rem var(--display); color: var(--black); }

.panel-dark { background: var(--command); color: #e2ddcf; border-color: transparent; position: relative; overflow: hidden; }
.panel-dark::before { content: ""; position: absolute; inset: 0; background: var(--topo); }
.panel-dark > * { position: relative; }
.panel-dark h3 { color: #fff; }
.panel-dark .big { font: 700 2.4rem/1 var(--display); color: var(--gold); margin-bottom: 10px; }
.panel-dark .link-arrow { color: var(--gold); }
.panel .link-arrow::after, .portal span::after { content: ""; }

/* study desk (Cadets briefing desk) */
.desk { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 16px; }
.desk-feature { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: clamp(18px, 3vw, 28px); display: flex; flex-direction: column; position: relative; }
.desk-feature::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--stripe); }
.desk-feature h3 { font-size: clamp(1.25rem, 2.3vw, 1.6rem); margin: 14px 0 10px; }
.desk-feature h3 a { color: var(--black); text-decoration: none; }
.desk-feature .foot { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: .82rem; color: var(--muted); }
.label-latest { display: inline-block; background: var(--gold); color: var(--black); font: 600 .64rem var(--mono); letter-spacing: .14em; text-transform: uppercase; padding: 5px 8px; }
.desk-feature .tag { margin: 0 0 0 6px; }
.desk-side { display: grid; gap: 12px; align-content: start; }
.desk-item { display: grid; grid-template-columns: 40px 1fr; gap: 12px; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 14px; text-decoration: none; color: var(--ink); }
.desk-item:hover { border-color: var(--black); }
.desk-item .ico { width: 40px; height: 40px; display: grid; place-items: center; background: var(--black); color: var(--gold); }
.desk-item .ico svg { width: 18px; height: 18px; }
.desk-item small { display: block; font: 600 .62rem var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--gold-ink); }
.desk-item b { display: block; font-size: .92rem; line-height: 1.35; margin: 3px 0; }
.desk-item span span { font-size: .8rem; color: var(--muted); }
@media (max-width: 860px) { .desk { grid-template-columns: 1fr; } }

/* featured courses (Cadets featured programs) */
.feat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.feat { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 18px 20px 0; display: flex; flex-direction: column; }
.feat h3 { font-size: 1.05rem; }
.feat h3 a { color: var(--black); text-decoration: none; }
.feat p { font-size: .9rem; color: var(--muted); }
.feat .link-arrow { margin-top: auto; padding-bottom: 16px; }
.feat .link-arrow::after { content: ""; }
.feat::after { content: ""; display: block; height: 3px; margin: 0 -20px; background: linear-gradient(90deg, var(--gold) 0 35%, transparent 35% 65%, var(--black) 65%); }
@media (max-width: 900px) { .feat-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .feat-grid { grid-template-columns: 1fr; } }

/* batches (Cadets) */
.batches { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 0 clamp(16px, 2.6vw, 26px) 8px; }
.batches .section-head { border-bottom: 1px solid var(--border); padding-bottom: 16px; margin-bottom: 0; }
.batches .section-head p { max-width: 36ch; font-size: .88rem; }
.batch-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--border); }
.batch-row:last-child { border-bottom: 0; }
.batch-row small { display: flex; align-items: center; gap: 6px; font: 600 .64rem var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.batch-row small svg { width: 14px; height: 14px; }
.batch-row strong { display: block; font: 700 1rem var(--display); color: var(--black); margin-top: 4px; }
.batch-row .muted { font-size: .88rem; }
.batch-row .btn { min-height: 34px; padding: .45em .8em; font-size: .78rem; }
@media (max-width: 860px) { .batch-row { grid-template-columns: 1fr; gap: 8px; } }

/* portals (Cadets) */
.portal { display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 20px; text-decoration: none; color: var(--ink); }
.portal:hover { border-color: var(--black); }
.portal h3 { font-size: 1rem; margin-bottom: 6px; }
.portal p { font-size: .86rem; color: var(--muted); }
.portal span { margin-top: auto; font-weight: 600; color: var(--gold-ink); font-size: .9rem; }

/* why-us shield list */
.shield-list { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 12px; }
.shield-list li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; }
.shield-list li > svg { width: 18px; height: 18px; color: var(--gold-ink); margin-top: 3px; }
.shield-list b { display: block; color: var(--black); }
.shield-list span { color: var(--muted); font-size: .9rem; }
.why-img img { object-position: top; }

/* FAQ + guided counselling (Cadets) */
.guide { background-color: var(--card); background-image: radial-gradient(rgba(20, 20, 20, .09) 1px, transparent 1px); background-size: 16px 16px; border: 1px solid var(--border); box-shadow: var(--shadow); padding: clamp(18px, 3vw, 28px); position: relative; }
.guide::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--stripe); }
.guide-bg { margin-top: 16px; }
.guide-step { background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); padding: 20px; }
.guide-step small { font: 600 .64rem var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--gold-ink); }
.guide-step h3 { margin: 8px 0 14px; }
.guide-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.guide-opts button { padding: 11px 12px; border: 1px solid var(--border); background: #fff; font: 500 .9rem var(--sans); text-align: left; cursor: pointer; border-radius: var(--radius); }
.guide-opts button:hover { border-color: var(--black); }

/* visit (Cadets) */
.visit { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.visit .nap { border: 0; box-shadow: none; padding: 0; margin-top: 8px; }
.stack { display: grid; gap: 16px; }
.hours { width: 100%; border-collapse: collapse; font-size: .9rem; }
.hours td { padding: 7px 0; border-bottom: 1px solid var(--border); }
.hours td:last-child { text-align: right; font-weight: 600; }
@media (max-width: 860px) { .visit { grid-template-columns: 1fr; } }

/* footer extras */
.foot-brand .fb { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.foot-brand .fb img { margin: 0; width: 60px; }
.foot-brand .fb strong { font: 700 1.05rem var(--display); color: #fff; }
.socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.socials a { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .22); color: #ddd8ca; }
.socials a:hover { border-color: var(--gold); color: var(--gold); }
.socials svg { width: 15px; height: 15px; }
.foot-box { border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .03); padding: 16px; display: grid; gap: 9px; font-size: .88rem; margin-bottom: 20px; }
.foot-box b { color: #fff; }
.foot-box span { display: flex; gap: 8px; align-items: flex-start; }
.foot-box svg { width: 15px; height: 15px; color: var(--gold); margin-top: 3px; }
.to-top { border: 1px solid rgba(255, 255, 255, .25); padding: 5px 12px; border-radius: 999px; }
.lms-cover.has-img { padding: 0; }
.lms-cover.has-img::after { display: none; }
.lms-cover.has-img img { width: 100%; height: 100%; object-fit: cover; }
.link-arrow::after, .link-arrow:after { content: none !important; }
.foot-grid ul + h2 { margin-top: 24px; }
.guide-skip { margin-top: 14px; background: none; border: 0; font: 600 .88rem var(--sans); color: var(--gold-ink); cursor: pointer; float: right; }
.guide-step::after { content: ""; display: block; clear: both; }
.guide-step input { display: block; width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font: 400 .95rem var(--sans); margin-bottom: 10px; }
.foot-bottom > span:nth-child(2) { order: 3; flex-basis: 100%; }
