/*
Theme Name: Abstraction Partners
Theme URI: https://abstractionpartners.com
Author: Abstraction Partners
Author URI: https://abstractionpartners.com
Description: The "Regalia" brand shell for Abstraction Partners — a verified Anthropic partner selling access to Claude-certified courses and Anthropic certification. Classic theme; presentation only (all business logic lives in the ap-core plugin).
Version: 0.7.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.2
License: Proprietary — © Abstraction Partners
Text Domain: abstraction-partners
*/

/* ============================================================
   1. DESIGN TOKENS  (transcribed from DESIGN.md §1, §4)
   ============================================================ */
:root {
  /* 1.1 Brand — the core four */
  --ap-navy:        #16223C;  /* Oxford Navy — grounds, headlines, authority */
  --ap-oxblood:     #7A2E2A;  /* Oxblood — seal detail, ribbon, rare alert */
  --ap-gold:        #AE8743;  /* Antique Gold — foil, primary accent */
  --ap-silver:      #C7C3B8;  /* Silver Taupe — hairlines, borders */

  /* Gold-on-light override (use for gold TEXT on a light ground) */
  --ap-gold-text:   #9A7530;

  /* 1.2 Supporting */
  --ap-parchment:   #F4EFE4;  /* page ground */
  --ap-midnight:    #0C1526;  /* deep layering, hover-dark navy, voice band */

  /* 1.3 Working neutrals */
  --ap-ivory:       #FAF7EF;  /* card background */
  --ap-mist:        #DED7C6;  /* borders */
  --ap-stone:       #9A9180;  /* muted detail */
  --ap-slate:       #4A4639;  /* body text */

  /* 1.4 Utility / contextual tones */
  --ap-reversed:        #EFE9DA;  /* reversed text / A-fill on navy */
  --ap-card-highlight:  #E6E0D2;  /* card top-edge highlight */
  --ap-lockup-strip:    #F1ECDF;  /* lockup footer strip */
  --ap-caption:         #8C8472;  /* section-header captions */
  --ap-caption-sm:      #6B6552;  /* small spec captions */
  --ap-pill-text:       #5A5446;  /* pill-tag text */
  --ap-muted-italic:    #5A6276;  /* muted italic on light */
  --ap-near-black:      #23211C;  /* near-black body, dense contexts */
  --ap-clearspace:      #C7B68C;  /* dashed clearspace guide */
  --ap-emboss:          #D8D0BE;  /* blind-emboss tone-on-tone */
  --ap-emboss-ring:     #EAD9C2;  /* emboss seal ring */
  --ap-oxblood-tint:    #D98B82;  /* oxblood-tint on dark (Don't card) */
  --ap-gold-tint:       #C8A45A;  /* gold-tint on navy (Do card) */

  /* 2. Typography */
  --ap-serif: "Bodoni Moda", Georgia, "Times New Roman", serif;
  --ap-sans:  "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ap-mono:  "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* 4. Radii */
  --ap-radius-pill:  100px;
  --ap-radius-card:  16px;   /* large cards: 14–16px */
  --ap-radius-card-sm: 14px;
  --ap-radius-btn:   9px;    /* buttons: 8–9px */
  --ap-radius-cert:  6px;    /* certificate */

  /* 4. Shadows */
  --ap-shadow-gold:  0 6px 18px rgba(174,135,67,.3);
  --ap-shadow-card:  0 1px 3px rgba(22,34,60,.05), 0 12px 34px rgba(22,34,60,.08);
  --ap-shadow-toast: 0 10px 34px rgba(0,0,0,.4);

  /* 4. Spacing */
  --ap-content-max:  1100px;
  --ap-section-pad:  60px 56px;
  --ap-band-pad:     78px 56px;
}

/* ============================================================
   2. BASE / RESET
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--ap-parchment);
  color: var(--ap-slate);
  font-family: var(--ap-sans);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, svg { max-width: 100%; }

a { color: var(--ap-navy); text-decoration: none; }
a:hover { color: var(--ap-gold-text); }

/* ---- Type scale (DESIGN.md §2) ---- */
h1, h2, h3 { color: var(--ap-navy); margin: 0 0 .5em; }

h1 {
  font-family: var(--ap-serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(46px, 6vw, 88px);
  letter-spacing: -0.01em;
  line-height: 1.05;
}

h2 {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 38px);
  line-height: 1.15;
}

h3 {
  font-family: var(--ap-sans);
  font-weight: 600;
  font-size: 21px;
}

p { margin: 0 0 1em; }

.ap-eyebrow,
.ap-kicker {
  font-family: var(--ap-mono);
  text-transform: uppercase;
  letter-spacing: 0.24em;
  font-size: 12px;
  color: var(--ap-gold-text);
}

.ap-caption {
  font-family: var(--ap-mono);
  font-weight: 500;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--ap-gold-text);
}

/* ============================================================
   3. LAYOUT
   ============================================================ */
.ap-container {
  max-width: var(--ap-content-max);
  margin: 0 auto;
  padding: 0 56px;
}

.ap-main { min-height: 50vh; padding: 60px 0; }

/* ============================================================
   4. SITE HEADER  (navy ground, seal + wordmark)
   ============================================================ */
.ap-header {
  background: var(--ap-navy);
  color: var(--ap-reversed);
  border-bottom: 1px solid rgba(174,135,67,.25);
}

.ap-header__inner {
  max-width: var(--ap-content-max);
  margin: 0 auto;
  padding: 18px 56px;
  display: flex;
  align-items: center;
  gap: 22px;
}

.ap-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--ap-reversed);
}
.ap-brand:hover { color: var(--ap-reversed); }

.ap-brand__seal { width: 44px; height: 44px; flex: 0 0 auto; display: block; }

.ap-brand__text { display: flex; flex-direction: column; line-height: 1; }

.ap-brand__wordmark {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.01em;
  color: var(--ap-reversed);
}

.ap-brand__kicker {
  font-family: var(--ap-mono);
  text-transform: uppercase;
  letter-spacing: 0.3em;
  font-size: 9.5px;
  color: var(--ap-gold);
  margin-top: 5px;
}

.ap-nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 30px;
  list-style: none;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}
.ap-nav li { margin: 0; list-style: none; }

.ap-nav a {
  font-family: var(--ap-mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 12px;
  color: rgba(239,233,218,.7);
  transition: color .15s ease;
}
.ap-nav a:hover { color: var(--ap-gold); }

.ap-nav .current-menu-item > a,
.ap-nav .current_page_item > a { color: var(--ap-reversed); }

/* ============================================================
   5. SITE FOOTER  (navy band, brand strip)
   ============================================================ */
.ap-footer {
  background: var(--ap-navy);
  color: rgba(239,233,218,.45);
  border-top: 1px solid rgba(174,135,67,.25);
  margin-top: 80px;
}

.ap-footer__inner {
  max-width: var(--ap-content-max);
  margin: 0 auto;
  padding: 48px 56px 40px;
  text-align: center;
}

.ap-footer__seal { width: 38px; height: 38px; margin: 0 auto 18px; display: block; }

.ap-footer__nav {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 26px;
  margin: 0 0 26px;
  padding: 0;
  list-style: none;
}
.ap-footer__nav li { margin: 0; list-style: none; }
.ap-footer__nav a {
  font-family: var(--ap-mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 11.5px;
  color: rgba(239,233,218,.6);
  transition: color .15s ease;
}
.ap-footer__nav a:hover { color: var(--ap-gold); }

.ap-footer__strip {
  font-family: var(--ap-mono);
  font-size: 11.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(239,233,218,.45);
}

/* ============================================================
   6. BUTTONS  (DESIGN.md §5.1)
   ============================================================ */
.ap-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--ap-sans);
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  border: none;
  border-radius: var(--ap-radius-btn);
  padding: 13px 24px;
  cursor: pointer;
  transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.ap-btn--navy   { background: var(--ap-navy); color: var(--ap-reversed); }
.ap-btn--navy:hover { background: var(--ap-midnight); box-shadow: var(--ap-shadow-card); }
.ap-btn--navy:active { transform: translateY(1px); }

.ap-btn--gold   { background: var(--ap-gold); color: var(--ap-navy); box-shadow: var(--ap-shadow-gold); }
.ap-btn--gold:active { transform: translateY(1px); }

.ap-btn--outline {
  background: transparent;
  color: var(--ap-navy);
  border: 1.5px solid var(--ap-navy);
  padding: 11.5px 22.5px; /* compensate for border */
}

/* Ghost — outline button for navy / midnight grounds */
.ap-btn--ghost {
  background: transparent;
  color: var(--ap-reversed);
  border: 1.5px solid rgba(239, 233, 218, .5);
  padding: 11.5px 22.5px;
}
.ap-btn--ghost:hover { border-color: var(--ap-gold); color: var(--ap-gold); }

/* ============================================================
   7. RESPONSIVE
   ============================================================ */
@media (max-width: 860px) {
  body { font-size: 16px; }
  .ap-container,
  .ap-header__inner,
  .ap-footer__inner { padding-left: 24px; padding-right: 24px; }
  .ap-nav { gap: 18px; }
  .ap-brand__kicker { display: none; }
}

@media (max-width: 560px) {
  .ap-header__inner { flex-wrap: wrap; gap: 14px; }
  .ap-nav { margin-left: 0; width: 100%; gap: 16px; flex-wrap: wrap; }
  .ap-nav a { font-size: 11px; }
}

/* WordPress core alignment helpers (presentation baseline) */
.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  height: 1px; width: 1px; margin: -1px; overflow: hidden;
  padding: 0; position: absolute; word-wrap: normal !important;
}
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin-right: 1.5em; }
.alignright { float: right; margin-left: 1.5em; }

/* ============================================================
   8. DESIGN-SYSTEM COMPONENTS  (DESIGN.md §5 — see /styleguide)
   Each block maps to a template-parts/components/*.php partial.
   ============================================================ */

/* ---- Button: display-only modifier + small (course-card) size ---- */
.ap-btn--static { cursor: default; }
.ap-btn--gold:hover { background: var(--ap-gold); box-shadow: var(--ap-shadow-gold); }
.ap-btn--sm { font-size: 14px; padding: 10px 18px; border-radius: 8px; }
.ap-btn--outline.ap-btn--sm { padding: 8.5px 16.5px; }
.ap-btn .ap-icon { display: block; }

/* ---- 5.2 "Certified" badge ---- */
.ap-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(174, 135, 67, .14);
  border: 1px solid var(--ap-gold);
  border-radius: var(--ap-radius-pill);
  padding: 7px 13px;
  font-family: var(--ap-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ap-gold-text);
}
.ap-badge .ap-icon { color: var(--ap-gold); }

/* ---- 5.5 Pill tag ---- */
.ap-pill {
  display: inline-flex;
  align-items: center;
  font-family: var(--ap-mono);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid var(--ap-mist);
  border-radius: var(--ap-radius-pill);
  padding: 6px 14px;
  color: var(--ap-pill-text);
}

/* ---- 5.4 Numbered section header ---- */
.ap-secnum {
  display: flex;
  align-items: baseline;
  gap: 16px;
  border-bottom: 1px solid var(--ap-mist);
  padding-bottom: 18px;
  margin-bottom: 44px;
}
.ap-secnum__num {
  font-family: var(--ap-mono);
  font-size: 13px;
  font-weight: 500;
  color: var(--ap-oxblood);
}
.ap-secnum__title {
  font-family: var(--ap-serif);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -.01em;
  color: var(--ap-navy);
  margin: 0;
}
.ap-secnum__caption {
  margin-left: auto;
  font-size: 14px;
  color: var(--ap-caption);
}
/* dark variant — on navy / midnight bands */
.ap-secnum--dark { border-bottom-color: rgba(174, 135, 67, .4); }
.ap-secnum--dark .ap-secnum__num { color: var(--ap-gold); }
.ap-secnum--dark .ap-secnum__title { color: var(--ap-reversed); }
.ap-secnum--dark .ap-secnum__caption { color: rgba(239, 233, 218, .5); }

/* ---- 5.3 Course card ---- */
.ap-course-card {
  border: 1px solid var(--ap-mist);
  border-radius: var(--ap-radius-card-sm);
  overflow: hidden;
  background: var(--ap-ivory);
  box-shadow: var(--ap-shadow-card);
  max-width: 430px;
}
.ap-course-card__media {
  position: relative;
  height: 148px;
  background: var(--ap-navy);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ap-course-card__rings { position: absolute; inset: 0; opacity: .5; }
.ap-course-card__partner {
  position: absolute;
  top: 15px;
  left: 18px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ap-course-card__partner-label {
  font-family: var(--ap-mono);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(239, 233, 218, .72);
}
.ap-course-card__cert {
  position: absolute;
  top: 14px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(174, 135, 67, .16);
  border: 1px solid rgba(174, 135, 67, .55);
  border-radius: var(--ap-radius-pill);
  padding: 5px 11px;
}
.ap-course-card__cert .ap-icon { color: var(--ap-gold); }
.ap-course-card__cert span {
  font-family: var(--ap-mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ap-gold);
}
.ap-course-card__track {
  position: relative;
  font-family: var(--ap-serif);
  font-style: italic;
  font-size: 30px;
  color: rgba(239, 233, 218, .9);
}
.ap-course-card__body { padding: 22px 24px 24px; }
.ap-course-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ap-mono);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ap-caption);
  margin-bottom: 12px;
}
.ap-course-card__dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--ap-silver);
}
.ap-course-card__title {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-size: 25px;
  line-height: 1.16;
  letter-spacing: -.01em;
  margin: 0 0 10px;
  color: var(--ap-navy);
}
.ap-course-card__desc {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ap-pill-text);
  margin: 0 0 20px;
}
.ap-course-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 18px;
  border-top: 1px solid var(--ap-card-highlight);
}
.ap-course-card__instructor { display: flex; align-items: center; gap: 10px; }
.ap-course-card__avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ap-card-highlight);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 13px;
  color: var(--ap-pill-text);
}
.ap-course-card__instructor-name {
  font-weight: 600;
  font-size: 13px;
  color: var(--ap-navy);
  line-height: 1.25;
}
.ap-course-card__instructor-role {
  font-size: 12px;
  color: var(--ap-caption);
  line-height: 1.25;
}

/* ---- 5.5 Primary lockup card ---- */
.ap-lockup {
  border: 1px solid var(--ap-mist);
  border-radius: var(--ap-radius-card);
  overflow: hidden;
  background: var(--ap-ivory);
}
.ap-lockup__body {
  padding: 60px 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
}
.ap-lockup__divider { width: 1px; height: 96px; background: var(--ap-mist); }
.ap-lockup__words { line-height: 1.04; }
.ap-lockup__wordmark {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-size: 38px;
  letter-spacing: .005em;
  color: var(--ap-navy);
}
.ap-lockup__kicker {
  font-family: var(--ap-mono);
  font-size: 10px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--ap-gold-text);
  margin-top: 10px;
}
.ap-lockup__strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 24px;
  border-top: 1px solid var(--ap-card-highlight);
  background: var(--ap-lockup-strip);
  font-family: var(--ap-mono);
  font-size: 11.5px;
  letter-spacing: .04em;
  color: var(--ap-caption);
}

/* ---- 5.5 Certificate ---- */
.ap-cert {
  position: relative;
  background: var(--ap-parchment);
  color: var(--ap-navy);
  border: 1px solid var(--ap-gold);
  border-radius: var(--ap-radius-cert);
  padding: 46px 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.ap-cert__inset {
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(174, 135, 67, .5);
  border-radius: 3px;
  pointer-events: none;
}
.ap-cert__kicker {
  font-family: var(--ap-mono);
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--ap-gold-text);
}
.ap-cert__intro {
  font-family: var(--ap-serif);
  font-style: italic;
  font-size: 15px;
  color: var(--ap-muted-italic);
  margin-top: 18px;
}
.ap-cert__name {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-size: 38px;
  line-height: 1.1;
  margin-top: 6px;
}
.ap-cert__rule { width: 64px; height: 1px; background: var(--ap-gold); margin: 16px 0; }
.ap-cert__body {
  font-family: var(--ap-sans);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ap-slate);
  max-width: 42ch;
}
.ap-cert__credential {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-style: italic;
  font-size: 22px;
  color: var(--ap-oxblood);
  margin-top: 10px;
}
.ap-cert__seal { margin-top: 26px; }
.ap-cert__sigs {
  display: flex;
  gap: 60px;
  margin-top: 24px;
  width: 100%;
  justify-content: center;
}
.ap-cert__sig { text-align: center; }
.ap-cert__sig-name {
  font-family: var(--ap-serif);
  font-style: italic;
  font-size: 16px;
  color: var(--ap-navy);
}
.ap-cert__sig-id {
  font-family: var(--ap-mono);
  font-size: 14px;
  letter-spacing: .04em;
  color: var(--ap-navy);
}
.ap-cert__sig-rule { width: 120px; height: 1px; background: var(--ap-silver); margin: 6px auto 5px; }
.ap-cert__sig-label {
  font-family: var(--ap-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ap-stone);
}

/* ---- 5.5 Swatch card (click-to-copy) ---- */
.ap-swatch {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0;
  margin: 0;
  font: inherit;
  cursor: pointer;
  border: 1px solid var(--ap-mist);
  border-radius: var(--ap-radius-card-sm);
  overflow: hidden;
  background: var(--ap-ivory);
}
.ap-swatch:focus-visible { outline: 2px solid var(--ap-gold); outline-offset: 2px; }
.ap-swatch__color { display: block; height: 128px; }
.ap-swatch__meta { display: block; padding: 16px 18px; }
.ap-swatch__name { display: block; font-weight: 700; font-size: 15px; color: var(--ap-navy); }
.ap-swatch__hex {
  display: block;
  font-family: var(--ap-mono);
  font-size: 12px;
  color: var(--ap-oxblood);
  margin-top: 7px;
}
.ap-swatch__usage { display: block; font-size: 12px; color: var(--ap-caption); margin-top: 7px; }

/* ---- Toast (swatch copy feedback) ---- */
.ap-toast {
  position: fixed;
  bottom: 34px;
  left: 50%;
  transform: translate(-50%, 12px);
  background: var(--ap-navy);
  color: var(--ap-reversed);
  font-family: var(--ap-mono);
  font-size: 13px;
  letter-spacing: .04em;
  padding: 12px 22px;
  border-radius: var(--ap-radius-pill);
  box-shadow: var(--ap-shadow-toast);
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 9px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.ap-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.ap-toast__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ap-gold); }

/* ============================================================
   9. STYLEGUIDE PAGE LAYOUT  (template-styleguide.php)
   ============================================================ */
.ap-sg__intro { padding: 64px 0 8px; }
.ap-sg__lead {
  font-size: 18px;
  line-height: 1.7;
  color: var(--ap-slate);
  max-width: 64ch;
}
.ap-sg-section { padding: 56px 0; }
.ap-sg-section--dark {
  background: var(--ap-navy);
  margin: 0 calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}
.ap-sg-section--midnight {
  background: var(--ap-midnight);
  margin: 0 calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}
.ap-sg-label {
  font-family: var(--ap-mono);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ap-caption);
  margin: 0 0 16px;
}
.ap-sg-stack { display: flex; flex-direction: column; gap: 16px; }
.ap-sg-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ap-sg-note { font-family: var(--ap-mono); font-size: 11.5px; color: var(--ap-caption); }
.ap-sg-split { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 40px; align-items: start; }
.ap-sg-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ap-sg-cert-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 34px; align-items: stretch; }
.ap-sg-subhead {
  font-family: var(--ap-sans);
  font-weight: 600;
  font-size: 19px;
  color: var(--ap-navy);
  margin: 0 0 20px;
}
.ap-sg-section--dark .ap-sg-subhead,
.ap-sg-section--midnight .ap-sg-subhead { color: var(--ap-reversed); }

@media (max-width: 860px) {
  .ap-sg-split { grid-template-columns: 1fr; gap: 32px; }
  .ap-sg-cert-grid { grid-template-columns: 1fr; }
  .ap-sg-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .ap-lockup__body { flex-direction: column; gap: 24px; text-align: center; }
  .ap-lockup__divider { width: 96px; height: 1px; }
  .ap-lockup__strip { flex-direction: column; gap: 6px; text-align: center; }
  .ap-cert { padding: 32px 22px; }
  .ap-cert__name { font-size: 30px; }
  .ap-cert__sigs { gap: 28px; }
  .ap-secnum { flex-wrap: wrap; gap: 8px 16px; }
  .ap-secnum__caption { margin-left: 0; width: 100%; }
}

/* ============================================================
   10. MARKETING PAGES  (front-page, courses, about)
   Full-bleed bands are direct children of .ap-main (full width);
   each band centers its own 1100px inner wrap.
   ============================================================ */
.ap-marketing .ap-main { padding: 0; min-height: 0; }

.ap-eyebrow--oxblood { color: var(--ap-oxblood); }
.ap-eyebrow--reversed { color: var(--ap-gold); }

.ap-band { padding: 80px 0; }
.ap-band--navy { background: var(--ap-navy); color: var(--ap-reversed); }
.ap-band--midnight { background: var(--ap-midnight); color: var(--ap-reversed); }
.ap-band--parchment { background: var(--ap-parchment); }
.ap-band--ivory { background: var(--ap-ivory); }
.ap-band__inner {
  position: relative;
  z-index: 1;
  max-width: var(--ap-content-max);
  margin: 0 auto;
  padding: 0 56px;
}
.ap-band--navy h2,
.ap-band--midnight h2 { color: var(--ap-reversed); }
.ap-band--navy p,
.ap-band--midnight p { color: rgba(239, 233, 218, .72); }

/* ---- Hero ---- */
.ap-hero { position: relative; overflow: hidden; background: var(--ap-navy); color: var(--ap-reversed); }
.ap-hero__rings {
  position: absolute;
  top: -180px;
  right: -160px;
  width: 660px;
  height: 660px;
  opacity: .5;
  pointer-events: none;
  z-index: 0;
}
.ap-hero--full .ap-band__inner { padding-top: 92px; padding-bottom: 96px; }
.ap-hero--center .ap-band__inner { padding-top: 86px; padding-bottom: 70px; text-align: center; }
.ap-hero__grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 48px;
  align-items: center;
}
.ap-hero__title {
  font-family: var(--ap-serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(46px, 6vw, 82px);
  line-height: 1.04;
  letter-spacing: -.01em;
  color: var(--ap-reversed);
  margin: 18px 0 0;
}
.ap-hero--center .ap-hero__title { font-size: clamp(40px, 5vw, 64px); }
.ap-hero__title em { font-style: normal; font-weight: 900; }
.ap-hero__lead {
  font-family: var(--ap-sans);
  font-weight: 300;
  font-size: 19px;
  line-height: 1.7;
  color: rgba(239, 233, 218, .72);
  max-width: 52ch;
  margin: 24px 0 0;
}
.ap-hero--center .ap-hero__lead { margin-left: auto; margin-right: auto; }
.ap-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 32px; }
.ap-hero--center .ap-hero__actions { justify-content: center; }
.ap-hero__seal { display: flex; align-items: center; justify-content: center; }
.ap-hero--center .ap-hero__seal { margin-bottom: 26px; }

/* shared row of meta labels under the hero (gold hairline) */
.ap-hero__rule {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 40px;
  padding-top: 22px;
  border-top: 1px solid rgba(174, 135, 67, .35);
  font-family: var(--ap-mono);
  font-size: 11.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(239, 233, 218, .55);
}
.ap-hero--center .ap-hero__rule { justify-content: center; }

/* ---- Narrative (two-column) ---- */
.ap-narrative {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 64px;
  align-items: start;
}
.ap-narrative__body p { font-size: 17px; line-height: 1.72; color: var(--ap-slate); }
.ap-narrative__pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.ap-band--navy .ap-narrative__body p,
.ap-band--midnight .ap-narrative__body p { color: rgba(239, 233, 218, .78); }

/* ---- Intro lede under a section header ---- */
.ap-lede { font-size: 18px; line-height: 1.7; color: var(--ap-slate); max-width: 64ch; margin: 0 0 40px; }
.ap-band--navy .ap-lede,
.ap-band--midnight .ap-lede { color: rgba(239, 233, 218, .72); }

/* ---- Course grid ---- */
.ap-course-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.ap-course-grid .ap-course-card { max-width: none; }

/* ---- Feature / value cards (what the credential means) ---- */
.ap-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ap-feature {
  border: 1px solid var(--ap-mist);
  border-radius: var(--ap-radius-card-sm);
  background: var(--ap-ivory);
  padding: 30px 28px;
}
.ap-band--navy .ap-feature,
.ap-band--midnight .ap-feature {
  background: rgba(239, 233, 218, .03);
  border-color: rgba(174, 135, 67, .3);
}
.ap-feature__num { font-family: var(--ap-mono); font-size: 12px; color: var(--ap-gold); margin-bottom: 12px; }
.ap-feature__title {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-size: 22px;
  color: var(--ap-navy);
  margin: 0 0 8px;
}
.ap-band--navy .ap-feature__title,
.ap-band--midnight .ap-feature__title { color: var(--ap-reversed); }
.ap-feature__text { font-size: 14.5px; line-height: 1.6; color: var(--ap-slate); margin: 0; }
.ap-band--navy .ap-feature__text,
.ap-band--midnight .ap-feature__text { color: rgba(239, 233, 218, .62); }

/* ---- Credential showcase (certificate + supporting copy) ---- */
.ap-credential-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 40px;
  align-items: center;
}

/* ---- Admissions / scarcity (institutional, no FOMO) ---- */
.ap-admissions { text-align: center; max-width: 720px; margin: 0 auto; }
.ap-admissions__figure {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-size: clamp(56px, 9vw, 104px);
  line-height: 1;
  color: var(--ap-gold);
  margin: 8px 0 4px;
}
.ap-admissions__cap {
  font-family: var(--ap-mono);
  font-size: 12.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(239, 233, 218, .55);
}
.ap-admissions__text { font-size: 17px; line-height: 1.72; color: rgba(239, 233, 218, .78); margin: 22px auto 0; max-width: 56ch; }
.ap-admissions__actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 32px; }

/* ---- CTA band ---- */
.ap-cta { text-align: center; }
.ap-cta__title { font-family: var(--ap-serif); font-weight: 400; font-style: italic; font-size: clamp(34px, 4.5vw, 48px); color: var(--ap-navy); margin: 0; letter-spacing: -.01em; }
.ap-band--navy .ap-cta__title,
.ap-band--midnight .ap-cta__title { color: var(--ap-reversed); }
.ap-cta__text { font-size: 18px; line-height: 1.7; margin: 18px auto 0; max-width: 56ch; }
.ap-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 30px; }

/* ---- Voice traits (Precise / Assured / Human) ---- */
.ap-traits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ap-trait {
  border: 1px solid rgba(174, 135, 67, .3);
  border-radius: var(--ap-radius-card-sm);
  padding: 28px 26px;
}
.ap-trait__name { font-family: var(--ap-serif); font-size: 26px; color: var(--ap-reversed); margin-bottom: 8px; }
.ap-trait__text { font-size: 14px; line-height: 1.6; color: rgba(239, 233, 218, .62); margin: 0; }

/* ============================================================
   SINGLE COURSE (detail page) — reuses bands, seal, badge, cards
   ============================================================ */
.ap-course-hero .ap-band__inner { padding-top: 72px; padding-bottom: 66px; }
.ap-course-hero__back { margin: 0 0 22px; }
.ap-course-hero__back a {
  font-family: var(--ap-mono);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(239, 233, 218, .6);
}
.ap-course-hero__back a:hover { color: var(--ap-gold); }
.ap-course-hero__title {
  font-family: var(--ap-serif);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.08;
  letter-spacing: -.01em;
  color: var(--ap-reversed);
  margin: 14px 0 0;
  max-width: 18ch;
}
.ap-course-hero__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
  font-family: var(--ap-mono);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(239, 233, 218, .6);
}
.ap-course-hero__dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(174, 135, 67, .7); }
.ap-course-hero__cert { display: inline-flex; align-items: center; gap: 6px; color: var(--ap-gold); }
.ap-course-hero__cert .ap-icon { color: var(--ap-gold); }
.ap-course-hero .ap-hero__lead { margin-top: 22px; }
.ap-course-hero__cta { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; margin-top: 32px; }
.ap-course-hero__price { display: flex; flex-direction: column; }
.ap-course-hero__amount { font-family: var(--ap-serif); font-weight: 700; font-size: 30px; color: var(--ap-reversed); line-height: 1; }
.ap-course-hero__amount-note {
  font-family: var(--ap-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(239, 233, 218, .5);
  margin-top: 6px;
}
/* ============================================================
   APPLY / MEMBERSHIP FUNNEL
   ============================================================ */
.ap-apply-hero__title { font-family: var(--ap-serif); font-weight: 700; font-size: clamp(34px, 5vw, 52px); color: var(--ap-reversed); margin: 10px 0 18px; letter-spacing: -.01em; }
.ap-apply-hero__seats {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 26px;
  font-family: var(--ap-mono);
  font-size: 13px;
  letter-spacing: .04em;
  color: rgba(239, 233, 218, .82);
}
.ap-apply-hero__dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.ap-apply-hero__dot--open { background: var(--ap-gold); box-shadow: 0 0 0 3px rgba(174,135,67,.22); }
.ap-apply-hero__dot--closed { background: var(--ap-silver); }

.ap-apply-main { }
.ap-apply-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 56px; align-items: start; }

.ap-apply-intro__title { font-family: var(--ap-serif); font-weight: 700; font-size: 26px; color: var(--ap-navy); margin: 0 0 20px; }
.ap-apply-steps { list-style: none; margin: 0 0 24px; padding: 0; }
.ap-apply-steps li { display: flex; gap: 14px; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--ap-mist); font-size: 16px; line-height: 1.55; color: var(--ap-slate); }
.ap-apply-steps li:first-child { border-top: 0; }
.ap-apply-steps li span { font-family: var(--ap-mono); font-size: 12px; color: var(--ap-oxblood); flex: 0 0 auto; }
.ap-apply-intro__note { font-size: 14px; line-height: 1.6; color: var(--ap-pill-text); border-top: 1px solid var(--ap-mist); padding-top: 18px; }

.ap-apply-formwrap {
  border: 1px solid var(--ap-mist);
  border-radius: var(--ap-radius-card);
  background: var(--ap-parchment);
  padding: 32px 30px;
  box-shadow: var(--ap-shadow-card);
}
.ap-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px; }
.ap-field { margin: 0 0 16px; }
.ap-field label { display: block; font-family: var(--ap-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-caption-sm); margin-bottom: 6px; }
.ap-field label span { color: var(--ap-oxblood); }
.ap-field input[type=text],
.ap-field input[type=email],
.ap-field textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--ap-sans);
  font-size: 15px;
  color: var(--ap-navy);
  background: var(--ap-ivory);
  border: 1px solid var(--ap-mist);
  border-radius: 8px;
  padding: 10px 12px;
}
.ap-field input:focus, .ap-field textarea:focus { outline: none; border-color: var(--ap-gold); box-shadow: 0 0 0 3px rgba(174,135,67,.16); }
.ap-field input[type=file] { font-family: var(--ap-sans); font-size: 14px; color: var(--ap-slate); }
.ap-apply-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.ap-apply-form .ap-btn { margin-top: 6px; }
.ap-apply-fineprint { font-size: 12px; line-height: 1.5; color: var(--ap-stone); margin: 14px 0 0; }
.ap-apply-error { background: rgba(122,46,42,.08); border: 1px solid rgba(122,46,42,.3); color: var(--ap-oxblood); border-radius: 8px; padding: 12px 14px; font-size: 14px; margin: 0 0 20px; }

/* Confirmation / pay / return cards (centred) */
.ap-apply-card { max-width: 720px; }
.ap-apply-card--center { margin: 0 auto; text-align: center; }
.ap-apply-card__seal { display: flex; justify-content: center; margin-bottom: 16px; }
.ap-apply-card__title { font-family: var(--ap-serif); font-weight: 700; font-size: 30px; color: var(--ap-navy); margin: 8px 0 14px; }
.ap-apply-card__text { font-size: 16px; line-height: 1.68; color: var(--ap-slate); max-width: 60ch; margin: 0 auto 20px; }
.ap-apply-price { display: flex; flex-direction: column; align-items: center; margin: 8px 0 22px; }
.ap-apply-price__amount { font-family: var(--ap-serif); font-weight: 700; font-size: 40px; color: var(--ap-navy); line-height: 1; }
.ap-apply-price__note { font-family: var(--ap-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ap-caption); margin-top: 8px; }
.ap-apply-payform { display: flex; justify-content: center; }
.ap-apply-card--center .ap-apply-fineprint { text-align: center; }

@media (max-width: 860px) {
  .ap-apply-layout { grid-template-columns: 1fr; gap: 36px; }
  .ap-field-grid { grid-template-columns: 1fr; }
}

/* body: content + at-a-glance sidebar */
.ap-course-layout { display: grid; grid-template-columns: 1.6fr .8fr; gap: 56px; align-items: start; }
.ap-course-content { font-size: 17px; line-height: 1.72; color: var(--ap-slate); }
.ap-course-content h2 { font-family: var(--ap-serif); font-weight: 700; font-size: 28px; color: var(--ap-navy); margin: 36px 0 14px; }
.ap-course-content h3 { font-family: var(--ap-sans); font-weight: 600; font-size: 21px; color: var(--ap-navy); margin: 28px 0 10px; }
.ap-course-content > :first-child { margin-top: 0; }
.ap-course-content p { margin: 0 0 18px; }
.ap-course-content ul, .ap-course-content ol { margin: 0 0 18px; padding-left: 20px; }
.ap-course-content li { margin-bottom: 8px; }
.ap-course-content a { color: var(--ap-gold-text); text-decoration: underline; }
.ap-course-track-note { margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--ap-mist); }
.ap-course-track-note p { margin: 14px 0 0; font-size: 15px; line-height: 1.6; color: var(--ap-pill-text); }

.ap-course-side { position: sticky; top: 28px; }
.ap-course-glance {
  border: 1px solid var(--ap-mist);
  border-radius: var(--ap-radius-card);
  background: var(--ap-parchment);
  padding: 28px 26px;
  box-shadow: var(--ap-shadow-card);
}
.ap-course-glance__cta { margin-top: 18px; }
.ap-course-glance__seal { margin-bottom: 14px; }
.ap-course-glance__title { font-family: var(--ap-serif); font-weight: 700; font-size: 20px; color: var(--ap-navy); margin: 0 0 16px; }
.ap-course-glance__list { margin: 0; }
.ap-course-glance__list > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-top: 1px solid var(--ap-mist);
}
.ap-course-glance__list > div:first-child { border-top: none; padding-top: 0; }
.ap-course-glance__list dt {
  font-family: var(--ap-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ap-caption);
  margin: 0;
}
.ap-course-glance__list dd { margin: 0; font-weight: 600; font-size: 14px; color: var(--ap-navy); text-align: right; }
.ap-course-glance__instructor {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--ap-mist);
}
.ap-course-glance__note { margin: 18px 0 0; font-size: 13px; line-height: 1.55; color: var(--ap-pill-text); }

/* ---- Marketing responsive ---- */
@media (max-width: 860px) {
  .ap-band { padding: 60px 0; }
  .ap-band__inner { padding-left: 24px; padding-right: 24px; }
  .ap-hero__grid { grid-template-columns: 1fr; gap: 36px; }
  .ap-hero__seal { order: -1; }
  .ap-narrative { grid-template-columns: 1fr; gap: 30px; }
  .ap-credential-grid { grid-template-columns: 1fr; gap: 32px; }
  .ap-course-grid { grid-template-columns: repeat(2, 1fr); }
  .ap-feature-grid,
  .ap-traits { grid-template-columns: 1fr; }
  .ap-course-layout { grid-template-columns: 1fr; gap: 36px; }
  .ap-course-side { position: static; }
}

@media (max-width: 560px) {
  .ap-course-grid { grid-template-columns: 1fr; }
  .ap-hero__actions,
  .ap-cta__actions,
  .ap-admissions__actions { flex-direction: column; align-items: stretch; }
  .ap-hero--center .ap-hero__actions .ap-btn,
  .ap-cta__actions .ap-btn,
  .ap-admissions__actions .ap-btn { justify-content: center; }
}
