/* Apexis Academies: scoped to .apx-acad. Base palette matches apexis-about
   (site red #cf2d22, slate #1e293b / #334155, tint #f0f5fa); each academy
   sets --acc / --acc-ink for its own accent. */

body.apx-acad-page .site-content > .ast-container { max-width: 100%; padding: 0; display: block; }
body.apx-acad-page #primary, body.apx-acad-page .site-main { margin: 0; padding: 0; width: 100%; }

.apx-acad {
  --red: #cf2d22;
  --ink: #1e293b;
  --body: #334155;
  --muted: #64748b;
  --tint: #f0f5fa;
  --line: #e5e7eb;
  --acc: #cf2d22;
  --acc-ink: #fff;
  color: var(--body);
  font-size: 16px;
  line-height: 1.7;
  overflow-x: clip;
}
.apx-acad *, .apx-acad *::before, .apx-acad *::after { box-sizing: border-box; }
.apx-acad h1, .apx-acad h2, .apx-acad h3 { color: var(--ink); margin: 0; font-weight: 700; line-height: 1.2; }
.apx-acad p { margin: 0 0 1em; }
.apx-acad p:last-child { margin-bottom: 0; }
.apx-acad ul, .apx-acad ol { list-style: none; margin: 0; padding: 0; }
.apx-acad img { display: block; max-width: 100%; height: auto; }
.apx-acad a { color: var(--red); text-underline-offset: 3px; }
.apx-acad a:focus-visible, .apx-acad summary:focus-visible, .apx-acad button:focus-visible { outline: 3px solid var(--acc); outline-offset: 3px; border-radius: 4px; }

.apx-acad-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.apx-acad-narrow { max-width: 820px; }
.apx-acad-section { padding: clamp(56px, 8vw, 96px) 0; scroll-margin-top: 64px; }
.apx-acad-tint { background: var(--tint); }
.apx-acad-dark { background: var(--ink); color: rgba(255,255,255,.85); }
.apx-acad-dark .apx-acad-h2 { color: #fff; }

.apx-acad-kicker { font-size: 13px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin: 0 0 12px !important; }
.apx-acad-kicker::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 2px; background: var(--acc); margin-right: 10px; vertical-align: 0; }
.apx-acad-h2 { font-size: clamp(26px, 3.4vw, 38px); letter-spacing: -.01em; text-wrap: balance; margin-bottom: clamp(28px, 4vw, 44px) !important; max-width: 24ch; }
.apx-acad-note { margin-top: 24px !important; color: var(--muted); font-size: 15px; max-width: 70ch; }

/* Buttons */
.apx-acad-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px;
  padding: 12px 24px; border-radius: 6px; font-weight: 600; font-size: 15px; text-decoration: none !important;
  border: 2px solid transparent; cursor: pointer; font-family: inherit; line-height: 1.2;
  transition: filter .2s, background-color .2s, color .2s, transform .2s;
}
.apx-acad-btn:hover { transform: translateY(-1px); }
.apx-acad-btn--accent { background: var(--acc); color: var(--acc-ink) !important; border-color: var(--acc); }
.apx-acad-btn--accent:hover { filter: brightness(.92); }
.apx-acad-btn--ghost { color: #fff !important; border-color: rgba(255,255,255,.75); }
.apx-acad-btn--ghost:hover { background: #fff; color: var(--ink) !important; }
.apx-acad-btn--outline { color: var(--ink) !important; border-color: var(--ink); background: transparent; }
.apx-acad-btn--outline:hover { background: var(--ink); color: #fff !important; }
.apx-acad-btn--light { background: #fff; color: var(--ink) !important; }
.apx-acad-btn--sm { min-height: 40px; padding: 8px 18px; font-size: 14px; }
.apx-acad-btn:disabled { opacity: .7; cursor: wait; transform: none; }
.apx-acad .btn-wa {
  display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 12px 22px; border-radius: 6px;
  background: #25d366; color: #0b2e17 !important; font-weight: 600; font-size: 15px; text-decoration: none !important;
}

/* Hero */
.apx-acad-hero {
  position: relative; color: #fff; padding: clamp(88px, 13vw, 160px) 0 clamp(72px, 9vw, 112px);
  background: linear-gradient(100deg, rgba(10,12,16,.93) 0%, rgba(10,12,16,.8) 48%, rgba(10,12,16,.4) 100%), var(--hero) center / cover no-repeat, #111;
}
.apx-acad-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--acc); }
.apx-acad-eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 14px !important; color: rgba(255,255,255,.75); }
.apx-acad-eyebrow a { color: inherit; text-decoration: none; }
.apx-acad-eyebrow a:hover { color: #fff; text-decoration: underline; }
.apx-acad-hero h1 { color: #fff; font-size: clamp(36px, 5.6vw, 64px); line-height: 1.06; letter-spacing: -.02em; max-width: 16ch; text-wrap: balance; }
.apx-acad-hero__sub { margin-top: 22px !important; font-size: clamp(17px, 1.8vw, 20px); max-width: 40em; color: rgba(255,255,255,.88); }
.apx-acad-hero__intake { display: inline-flex; align-items: center; gap: 10px; margin-top: 8px !important; font-size: 15px; color: rgba(255,255,255,.8); }
.apx-acad-dot { width: 10px; height: 10px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 4px rgba(74,222,128,.25); }
.apx-acad-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

/* Jump nav */
.apx-acad-jump { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--line); }
.apx-acad-jump .apx-acad-wrap { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.apx-acad-jump .apx-acad-wrap::-webkit-scrollbar { display: none; }
.apx-acad-jump a { flex: none; padding: 14px 12px; font-size: 14px; font-weight: 600; color: var(--body); text-decoration: none; border-bottom: 3px solid transparent; }
.apx-acad-jump a:hover { color: var(--ink); border-bottom-color: var(--acc); }
body.admin-bar .apx-acad-jump { top: 32px; }
@media (max-width: 782px) { body.admin-bar .apx-acad-jump { top: 0; } }

/* Why now */
.apx-acad-stats { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 860px) { .apx-acad-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.apx-acad-stats li { border-top: 3px solid var(--acc); padding-top: 20px; }
.apx-acad-stat { display: block; font-size: clamp(40px, 5vw, 56px); font-weight: 800; line-height: 1; color: var(--ink); letter-spacing: -.02em; margin-bottom: 14px; }
.apx-acad-stats p { color: var(--body); }
.apx-acad-src { font-size: 13px; color: var(--muted) !important; }

/* Proof */
.apx-acad-split { display: grid; gap: clamp(28px, 5vw, 64px); grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .apx-acad-split { grid-template-columns: 1fr 1fr; } }
.apx-acad-split img { width: 100%; border-radius: 14px; aspect-ratio: 16 / 10; object-fit: cover; }
.apx-acad-split .apx-acad-h2 { margin-bottom: 20px !important; }
.apx-acad-link { font-weight: 600; }

/* Audience cards */
.apx-acad-cards { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .apx-acad-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .apx-acad-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.apx-acad-card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 26px 24px; font-size: 15px; }
.apx-acad-card h3 { font-size: 18px; margin: 18px 0 10px; }
.apx-acad-card__icon { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--acc); color: var(--acc-ink); }
.apx-acad-ico { width: 24px; height: 24px; }

/* Pathway */
.apx-acad-path { display: grid; gap: 16px; counter-reset: lvl; }
.apx-acad-level { display: grid; grid-template-columns: 1fr; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 22px; }
@media (min-width: 900px) { .apx-acad-level { grid-template-columns: 220px 1fr; gap: 28px; align-items: start; } }
.apx-acad-level__head { display: flex; align-items: center; gap: 14px; }
.apx-acad-level__num { flex: none; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--acc); color: var(--acc-ink); font-weight: 700; }
.apx-acad-level h3 { font-size: 19px; }
.apx-acad-level > ul { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 680px) { .apx-acad-level > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.apx-acad-course { position: relative; padding: 16px 18px; border-radius: 10px; background: var(--tint); font-size: 15px; }
.apx-acad-course a, .apx-acad-course strong { display: block; color: var(--ink); font-weight: 700; font-size: 16px; line-height: 1.35; margin-bottom: 6px; }
.apx-acad-course a { text-decoration: underline; text-decoration-color: var(--acc); text-decoration-thickness: 2px; }
.apx-acad-course p { margin-bottom: 10px; }
.apx-acad-badge { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 3px 10px; border-radius: 999px; background: #e2e8f0; color: var(--ink); }
.apx-acad-course--course .apx-acad-badge { background: var(--acc); color: var(--acc-ink); }
.apx-acad-course--development { background: #fff; border: 1px dashed #cbd5e1; }

/* Intakes */
.apx-acad-intakes { display: grid; gap: 12px; }
.apx-acad-intakes li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border: 1px solid var(--line); border-left: 4px solid var(--acc); border-radius: 10px; }
.apx-acad-intakes__name { font-weight: 700; font-size: 17px; color: var(--ink) !important; text-decoration: none; }
.apx-acad-empty { font-size: 17px; max-width: 60ch; }

/* Outcomes + entry */
.apx-acad-two { display: grid; gap: clamp(32px, 5vw, 72px); grid-template-columns: 1fr; }
@media (min-width: 960px) { .apx-acad-two { grid-template-columns: 1fr 1fr; } .apx-acad-two--form { grid-template-columns: .8fr 1.2fr; } }
.apx-acad-ticks li { position: relative; padding: 0 0 14px 34px; }
.apx-acad-ticks li::before { content: ""; position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--acc); }
.apx-acad-ticks li::after { content: ""; position: absolute; left: 6px; top: 9px; width: 8px; height: 5px; border-left: 2px solid var(--acc-ink); border-bottom: 2px solid var(--acc-ink); transform: rotate(-45deg); }
.apx-acad-cert { margin-top: 18px !important; padding: 16px 18px; border-radius: 10px; background: #fff; border-left: 3px solid var(--acc); font-weight: 500; color: var(--ink); }
.apx-acad-entry { margin: 0; display: grid; gap: 0; }
.apx-acad-entry dt { font-weight: 700; color: var(--ink); padding-top: 14px; border-top: 1px solid #d8dee6; }
.apx-acad-entry dd { margin: 4px 0 14px; }

/* Products band */
.apx-acad-band { display: grid; gap: 24px; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .apx-acad-band { grid-template-columns: 1fr auto; } }
.apx-acad-band .apx-acad-h2 { margin-bottom: 14px !important; }

/* Form */
.apx-acad-form { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: clamp(20px, 3vw, 32px); }
.apx-acad-form__grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .apx-acad-form__grid { grid-template-columns: 1fr 1fr; } }
.apx-acad-form label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ink); }
.apx-acad-form__wide { grid-column: 1 / -1; }
.apx-acad-form input, .apx-acad-form select, .apx-acad-form textarea {
  width: 100%; font: inherit; font-weight: 400; font-size: 16px; color: var(--ink); padding: 11px 12px;
  border: 1px solid #cbd5e1; border-radius: 6px; background: #fff;
}
.apx-acad-form input:focus, .apx-acad-form select:focus, .apx-acad-form textarea:focus { outline: 2px solid var(--acc); outline-offset: 1px; border-color: var(--acc); }
.apx-acad-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.apx-acad-form__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.apx-acad-form__status { margin-top: 12px !important; font-size: 14px; }
.apx-acad-form__status.is-error { color: #b91c1c; }
.apx-acad-form__done { font-size: 17px; color: var(--ink); padding: 12px 0; }

/* FAQs */
.apx-acad-faqs details { border-bottom: 1px solid #d8dee6; }
.apx-acad-faqs summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; position: relative; font-weight: 700; color: var(--ink); font-size: 17px; }
.apx-acad-faqs summary::-webkit-details-marker { display: none; }
.apx-acad-faqs summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 24px; font-weight: 400; color: var(--muted); }
.apx-acad-faqs details[open] summary::after { content: "\2212"; }
.apx-acad-faqs details p { padding: 0 0 18px; }
.apx-acad-back { margin-top: 32px !important; font-weight: 600; }

/* Hub */
.apx-acad-tiles { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .apx-acad-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .apx-acad-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.apx-acad-tile { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.apx-acad-tile__img { aspect-ratio: 16 / 9; background: #111 center / cover no-repeat; border-bottom: 5px solid var(--acc); }
.apx-acad-tile--soon .apx-acad-tile__img { filter: grayscale(.6); }
.apx-acad-tile__body { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 40px 26px 28px; flex: 1; }
.apx-acad-tile__icon { position: absolute; top: -28px; left: 26px; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; background: var(--acc); color: var(--acc-ink); box-shadow: 0 0 0 4px #fff; }
.apx-acad-tile h2 { font-size: 23px; }
.apx-acad-tile p { flex: 1; }
.apx-acad-steps { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 860px) { .apx-acad-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.apx-acad-steps li { background: #fff; border-radius: 12px; padding: 26px 24px; font-size: 15px; }
.apx-acad-steps span { display: block; font-weight: 700; letter-spacing: .1em; color: var(--red); margin-bottom: 12px; }
.apx-acad-steps h3 { font-size: 18px; margin-bottom: 8px; }

@media (max-width: 520px) {
  .apx-acad-wrap { padding: 0 16px; }
  .apx-acad-hero__actions .apx-acad-btn, .apx-acad-form__actions .apx-acad-btn, .apx-acad-form__actions .btn-wa { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .apx-acad-btn { transition: none; } .apx-acad-btn:hover { transform: none; } }
