/* ============================================================================
   دورة الإسقاط النجمي — Grand Master Dorayd Raydan
   Design direction: "الإسطرلاب" — the astrolabe.
   Gold line-work instrumentation on a deep night sky.

   WordPress hardening — three rules this file never breaks:
   1. Every selector is namespaced and written as `.apl .apl-x`, which lands at
      0,2,0. A theme rule like `.entry-content p { color: … }` is 0,1,1 and
      therefore loses. Source order still decides ties between our own rules.
   2. Every text-bearing rule states its own color, font-family and font-size.
      Nothing is left to be inherited from the theme.
   3. No bare element selector ever escapes the `.apl` root.
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
.apl{
  /* Sky */
  --apl-void:        #05060F;
  --apl-deep:        #0A0E22;
  --apl-deep-2:      #0E1330;
  --apl-nebula:      #1E1748;
  --apl-violet:      #4A2F8F;

  /* Instrument */
  --apl-gold:        #E8B45C;
  --apl-gold-bright: #FFDFA3;
  --apl-gold-deep:   #B8863A;
  --apl-aura:        #7CE0D3;

  /* Ink — raised from the first pass. Arabic carries diacritics and needs more
     contrast than Latin at the same size to stay comfortable on a dark ground. */
  --apl-ink:         #F6EFE2;
  --apl-ink-soft:    #E2D9C8;
  --apl-ink-faint:   #B8AF9D;
  --apl-on-gold:     #1A1206;
  --apl-line:        rgba(232,180,92,.26);
  --apl-line-soft:   rgba(243,233,216,.13);

  /* Type — families are swapped by [data-apl-font] below. */
  --apl-display: "Almarai", "Segoe UI", system-ui, sans-serif;
  --apl-body:    "IBM Plex Sans Arabic", "Segoe UI", system-ui, sans-serif;
  --apl-label:   "IBM Plex Sans Arabic", "Segoe UI", system-ui, sans-serif;
  --apl-mono:    "IBM Plex Mono", ui-monospace, monospace;
  --apl-lh-display: 1.42;
  --apl-w-display: 800;

  /* Editor-controlled multiplier, set by [data-apl-scale]. */
  --apl-scale: 1;

  /* Ramp. Noticeably larger than a Latin page would use — Arabic needs it. */
  --apl-step--1: calc(clamp(1.02rem, .98rem + .22vw, 1.14rem) * var(--apl-scale));
  --apl-step-0:  calc(clamp(1.08rem, 1.02rem + .3vw, 1.26rem) * var(--apl-scale));
  --apl-step-1:  calc(clamp(1.3rem,  1.16rem + .6vw, 1.7rem)  * var(--apl-scale));
  --apl-step-2:  calc(clamp(1.65rem, 1.4rem + 1.1vw, 2.35rem) * var(--apl-scale));
  --apl-step-3:  calc(clamp(2rem,    1.6rem + 1.9vw, 3.3rem)  * var(--apl-scale));
  --apl-step-4:  calc(clamp(2.5rem,  1.85rem + 3.2vw, 4.9rem) * var(--apl-scale));

  /* Space */
  --apl-gutter: clamp(1.15rem, 4vw, 2.5rem);
  --apl-section-y: clamp(4.5rem, 9vw, 8.5rem);
  --apl-max: 1180px;
  --apl-max-narrow: 780px;

  --apl-radius: 14px;
  --apl-ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- 1a. Font pairings (picked in the editor) ---------- */

/* Clear — geometric, high-clarity, holds its weight on a dark ground. Default. */
.apl[data-apl-font="clear"]{
  --apl-display:"Almarai","Segoe UI",system-ui,sans-serif;
  --apl-body:"IBM Plex Sans Arabic","Segoe UI",system-ui,sans-serif;
  --apl-label:"IBM Plex Sans Arabic","Segoe UI",system-ui,sans-serif;
  --apl-lh-display:1.42; --apl-w-display:800;
}
/* Modern — one variable family throughout, a little wider and softer. */
.apl[data-apl-font="modern"]{
  --apl-display:"Readex Pro","Segoe UI",system-ui,sans-serif;
  --apl-body:"Readex Pro","Segoe UI",system-ui,sans-serif;
  --apl-label:"Readex Pro","Segoe UI",system-ui,sans-serif;
  --apl-lh-display:1.5; --apl-w-display:600;
}
/* Simple — the most familiar Arabic web face. Maximum legibility. */
.apl[data-apl-font="simple"]{
  --apl-display:"Tajawal","Segoe UI",system-ui,sans-serif;
  --apl-body:"Tajawal","Segoe UI",system-ui,sans-serif;
  --apl-label:"Tajawal","Segoe UI",system-ui,sans-serif;
  --apl-lh-display:1.44; --apl-w-display:800;
}
/* Classic — manuscript naskh. The most characterful, and the thinnest. */
.apl[data-apl-font="classic"]{
  --apl-display:"Amiri","Scheherazade New",serif;
  --apl-body:"IBM Plex Sans Arabic","Segoe UI",system-ui,sans-serif;
  --apl-label:"IBM Plex Sans Arabic","Segoe UI",system-ui,sans-serif;
  --apl-lh-display:1.34; --apl-w-display:700;
}

.apl[data-apl-scale="small"] { --apl-scale:.94; }
.apl[data-apl-scale="medium"]{ --apl-scale:1; }
.apl[data-apl-scale="large"] { --apl-scale:1.09; }
.apl[data-apl-scale="xlarge"]{ --apl-scale:1.18; }

/* ---------- 2. Reset, scoped ---------- */
.apl,.apl *,.apl *::before,.apl *::after{ box-sizing:border-box; }
.apl :where(h1,h2,h3,h4,p,figure,figcaption,blockquote,dl,dd,ul,ol,li){ margin:0; padding:0; }
.apl :where(ul,ol){ list-style:none; }
.apl :where(img,video,svg,canvas){ display:block; max-width:100%; height:auto; }
.apl :where(button,input,textarea,select){ font:inherit; letter-spacing:inherit; }
.apl :where(button){ background:none; border:0; cursor:pointer; text-align:inherit; }
.apl :where(blockquote)::before,.apl :where(blockquote)::after{ content:none; }

/* The inheritance guard. 0,2,0, placed ahead of every component rule, so a
   theme cannot recolour or re-face anything we missed — while our own rules,
   also 0,2,0 but later in the file, still win. */
.apl.apl :where(h1,h2,h3,h4,p,span,li,a,b,strong,em,i,small,div,button,
                blockquote,figcaption,figure,ul,ol,label,time,cite){
  color:inherit;
  font-family:inherit;
  font-size:inherit;
  line-height:inherit;
  text-transform:none;
}
.apl.apl :where(a){ text-decoration:none; box-shadow:none; border:0; }
.apl.apl :where(h1,h2,h3,h4){
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  line-height:var(--apl-lh-display);
}

.apl{
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  font-weight:400;
  line-height:1.9;
  color:var(--apl-ink);
  background-color:var(--apl-void);
  direction:rtl;
  text-align:right;
  overflow-x:clip;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

.apl ::selection{ background:var(--apl-gold); color:var(--apl-void); }

.apl :focus-visible{
  outline:2px solid var(--apl-gold-bright);
  outline-offset:3px;
  border-radius:4px;
}

/* ---------- 3. Starfield ---------- */
.apl #apl-starfield{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  pointer-events:none;
}
.apl .apl-sky-wash{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(900px 620px at 78% 8%,  rgba(74,47,143,.30), transparent 66%),
    radial-gradient(760px 540px at 12% 34%, rgba(30,23,72,.42),  transparent 70%),
    radial-gradient(1000px 700px at 50% 100%, rgba(184,134,58,.10), transparent 68%);
}
.apl .apl-page{ position:relative; z-index:1; }

/* ---------- 4. Layout ---------- */
.apl .apl-wrap{
  width:100%;
  max-width:var(--apl-max);
  margin-inline:auto;
  padding-inline:var(--apl-gutter);
}
.apl .apl-wrap--narrow{ max-width:var(--apl-max-narrow); }

.apl .apl-band{ padding-block:var(--apl-section-y); position:relative; }
.apl .apl-band--tight{ padding-block:clamp(3rem,6vw,5rem); }

.apl .apl-band + .apl-band::before{
  content:"";
  position:absolute;
  inset-inline:0;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--apl-line) 22%,var(--apl-line) 78%,transparent);
}

/* ---------- 5. Typography ---------- */
.apl .apl-display{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-3);
  line-height:var(--apl-lh-display);
  letter-spacing:0;
  color:var(--apl-ink);
}
.apl h1.apl-display{ font-size:var(--apl-step-4); line-height:calc(var(--apl-lh-display) - .16); }
.apl h2.apl-display{ font-size:var(--apl-step-3); }

.apl .apl-lede{
  font-family:var(--apl-body);
  font-size:var(--apl-step-1);
  line-height:1.8;
  font-weight:400;
  color:var(--apl-ink-soft);
}

.apl .apl-eyebrow{
  font-family:var(--apl-label);
  font-size:calc(.84rem * var(--apl-scale));
  font-weight:600;
  line-height:1.6;
  word-spacing:.3em;
  color:var(--apl-gold);
  display:inline-flex;
  align-items:center;
  gap:.7em;
  margin-bottom:1.1rem;
}
.apl .apl-eyebrow::before,
.apl .apl-eyebrow::after{
  content:"";
  width:26px;
  height:1px;
  flex:none;
  background:linear-gradient(90deg,transparent,var(--apl-gold));
}
.apl .apl-eyebrow::after{ background:linear-gradient(90deg,var(--apl-gold),transparent); }

.apl .apl-section-head{ text-align:center; margin-bottom:clamp(2.5rem,5vw,4rem); }
.apl .apl-section-head .apl-lede{ margin-inline:auto; max-width:54ch; margin-top:1rem; }

.apl .apl-gold{ color:var(--apl-gold); }
.apl .apl-gold-bright{ color:var(--apl-gold-bright); }
.apl .apl-aura{ color:var(--apl-aura); }
.apl .apl-muted{
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.85;
  color:var(--apl-ink-soft);
}

.apl .apl-mark{
  position:relative;
  white-space:nowrap;
  color:var(--apl-gold-bright);
}
.apl .apl-mark::after{
  content:"";
  position:absolute;
  inset-inline:-.1em;
  bottom:.06em;
  height:.32em;
  background:linear-gradient(90deg,transparent,rgba(232,180,92,.34),transparent);
  z-index:-1;
  border-radius:2px;
}

/* ---------- 6. Buttons / CTA ---------- */
.apl .apl-cta{
  --apl-btn-bg:linear-gradient(135deg,var(--apl-gold-bright),var(--apl-gold) 46%,var(--apl-gold-deep));
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7em;
  padding:1.05em 2.3em;
  font-family:var(--apl-body);
  font-weight:700;
  font-size:var(--apl-step-0);
  line-height:1.35;
  text-decoration:none;
  color:var(--apl-on-gold);
  background:var(--apl-btn-bg);
  border:0;
  border-radius:999px;
  cursor:pointer;
  isolation:isolate;
  /* The ::after sweep parks at translateX(-120%), outside the button. Without
     clipping it sits on the page as a stray grey parallelogram. */
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,223,163,.5), 0 12px 34px -12px rgba(232,180,92,.7);
  transition:transform .35s var(--apl-ease), box-shadow .35s var(--apl-ease);
}
.apl .apl-cta:hover,
.apl .apl-cta:focus,
.apl .apl-cta:visited{ color:var(--apl-on-gold); }
.apl .apl-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 0 0 1px rgba(255,223,163,.8), 0 18px 44px -12px rgba(232,180,92,.85);
}
.apl .apl-cta:active{ transform:translateY(0); }

.apl .apl-cta::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);
  transform:translateX(-120%);
  z-index:-1;
}
.apl .apl-cta:hover::after{ animation:apl-sweep .85s var(--apl-ease); }
@keyframes apl-sweep{ to{ transform:translateX(120%); } }

.apl .apl-cta--lg{ padding:1.25em 3em; font-size:var(--apl-step-1); }

.apl .apl-cta-note{
  display:block;
  margin-top:.95rem;
  font-family:var(--apl-label);
  font-size:var(--apl-step--1);
  line-height:1.7;
  color:var(--apl-ink-faint);
}
.apl .apl-cta-block{ text-align:center; }

.apl .apl-rail{ text-align:center; padding-block:clamp(2.5rem,5vw,3.5rem); position:relative; }
.apl .apl-rail__line{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-2);
  line-height:1.55;
  color:var(--apl-ink);
  margin-bottom:1.6rem;
  max-width:26ch;
  margin-inline:auto;
}

/* ---------- 7. Astrolabe (signature element) ---------- */
.apl .apl-astrolabe{
  position:absolute;
  left:-12%;
  margin:auto;
  width:min(128%,880px);
  aspect-ratio:1;
  pointer-events:none;
  color:var(--apl-gold);
  opacity:.5;
}
.apl .apl-astrolabe circle,
.apl .apl-astrolabe line,
.apl .apl-astrolabe path{
  fill:none;
  stroke:currentColor;
  vector-effect:non-scaling-stroke;
}
.apl .apl-ring--hair{ stroke-width:1; opacity:.36; }
.apl .apl-ring--fine{ stroke-width:1; opacity:.2; }
.apl .apl-ring--bold{ stroke-width:1.4; opacity:.6; }
.apl .apl-tick{ stroke-width:1; opacity:.42; }
.apl .apl-rosette{ stroke-width:1; opacity:.26; }

.apl .apl-spin-slow{ transform-origin:50% 50%; animation:apl-spin 220s linear infinite; }
.apl .apl-spin-rev { transform-origin:50% 50%; animation:apl-spin 150s linear infinite reverse; }
.apl .apl-spin-fast{ transform-origin:50% 50%; animation:apl-spin 90s  linear infinite; }
@keyframes apl-spin{ to{ transform:rotate(360deg); } }

/* ---------- 8. Announcement ---------- */
.apl .apl-announce{
  position:relative;
  z-index:40;
  background:linear-gradient(90deg,rgba(74,47,143,.55),rgba(184,134,58,.32),rgba(74,47,143,.55));
  border-bottom:1px solid var(--apl-line);
  text-align:center;
  padding:.7rem var(--apl-gutter);
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.7;
  color:var(--apl-ink);
  backdrop-filter:blur(8px);
}
.apl .apl-announce b{ color:var(--apl-gold-bright); font-weight:700; }
.apl .apl-announce__dot{
  display:inline-block;
  width:7px; height:7px;
  border-radius:50%;
  background:var(--apl-gold-bright);
  margin-inline-end:.5em;
  box-shadow:0 0 0 0 rgba(255,223,163,.8);
  animation:apl-pulse 2.2s infinite;
  vertical-align:middle;
}
@keyframes apl-pulse{
  70%{ box-shadow:0 0 0 9px rgba(255,223,163,0); }
  100%{ box-shadow:0 0 0 0 rgba(255,223,163,0); }
}

/* ---------- 9. Nav ---------- */
.apl .apl-nav{
  position:sticky;
  top:0;
  z-index:35;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.85rem var(--apl-gutter);
  border-bottom:1px solid transparent;
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  color:var(--apl-ink);
  transition:background .4s var(--apl-ease), border-color .4s var(--apl-ease);
}
.apl .apl-nav.apl-is-stuck{
  background:rgba(5,6,15,.88);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--apl-line);
}
.apl .apl-nav__brand{
  display:flex;
  align-items:center;
  gap:.65rem;
  font-family:var(--apl-display);
  font-size:calc(1.1rem * var(--apl-scale));
  font-weight:var(--apl-w-display);
  line-height:1.4;
  color:var(--apl-ink);
}
.apl .apl-nav__glyph{ width:30px; height:30px; color:var(--apl-gold); flex:none; }
.apl .apl-nav__cta{ padding:.7em 1.6em; font-size:var(--apl-step--1); }
@media (max-width:600px){ .apl .apl-nav__brand span{ display:none; } }

/* ---------- 10. Hero ---------- */
.apl .apl-hero{
  position:relative;
  padding-block:clamp(2.5rem,6vw,5rem) clamp(3.5rem,7vw,6rem);
  text-align:center;
  overflow:hidden;
}
.apl .apl-hero__inner{ position:relative; z-index:2; }
.apl .apl-hero__title{ margin-bottom:1.35rem; color:var(--apl-ink); }
.apl .apl-hero__lede{ max-width:56ch; margin-inline:auto; }

.apl .apl-aperture{
  position:relative;
  width:min(100%,560px);
  margin:clamp(2.5rem,6vw,4rem) auto clamp(1.8rem,4vw,2.6rem);
  aspect-ratio:1;
  display:grid;
  place-items:center;
}
.apl .apl-aperture__rings{
  position:absolute;
  inset:-16%;
  color:var(--apl-gold);
  opacity:.55;
  pointer-events:none;
}
.apl .apl-aperture__rings circle,
.apl .apl-aperture__rings line{ fill:none; stroke:currentColor; vector-effect:non-scaling-stroke; }
.apl .apl-aperture__frame{
  position:relative;
  width:78%;
  aspect-ratio:1;
  border-radius:12%;
  overflow:hidden;
  background:var(--apl-deep-2);
  box-shadow:
    0 0 0 1px rgba(232,180,92,.55),
    0 0 0 9px rgba(232,180,92,.06),
    0 0 90px -10px rgba(232,180,92,.4);
}
.apl .apl-aperture__frame video,
.apl .apl-aperture__frame img{ width:100%; height:100%; object-fit:cover; }
.apl .apl-aperture__play{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  border:0;
  cursor:pointer;
  color:var(--apl-ink);
  background:radial-gradient(circle at 50% 50%,rgba(5,6,15,.15),rgba(5,6,15,.62));
  transition:opacity .4s var(--apl-ease);
}
.apl .apl-aperture__play svg{
  width:74px; height:74px;
  color:var(--apl-gold-bright);
  filter:drop-shadow(0 6px 22px rgba(0,0,0,.6));
  transition:transform .35s var(--apl-ease);
}
.apl .apl-aperture__play:hover svg{ transform:scale(1.09); }
.apl .apl-aperture__play span{
  position:absolute;
  bottom:13%;
  font-family:var(--apl-label);
  font-size:calc(.88rem * var(--apl-scale));
  font-weight:500;
  line-height:1.6;
  word-spacing:.18em;
  color:var(--apl-ink);
  text-shadow:0 2px 12px rgba(0,0,0,.85);
}
.apl .apl-aperture.apl-is-playing .apl-aperture__play{ opacity:0; pointer-events:none; }

.apl .apl-trust{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.65rem clamp(1rem,3vw,2.4rem);
  margin-top:2.2rem;
  font-family:var(--apl-label);
  font-size:calc(.9rem * var(--apl-scale));
  font-weight:500;
  line-height:1.7;
  color:var(--apl-ink-faint);
}
.apl .apl-trust li{
  display:flex;
  align-items:center;
  gap:.55em;
  font-size:inherit;
  color:var(--apl-ink-faint);
}
.apl .apl-trust li::before{ content:"✦"; color:var(--apl-gold); font-size:.85em; }

/* ---------- 11. The gap ---------- */
.apl .apl-pain__grid{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(275px,1fr));
  margin-bottom:2.8rem;
}
.apl .apl-pain__item{
  padding:1.5rem 1.6rem;
  border-radius:var(--apl-radius);
  border:1px solid var(--apl-line-soft);
  background:rgba(10,14,34,.5);
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.85;
  color:var(--apl-ink-soft);
  position:relative;
  padding-inline-start:3.2rem;
}
/* An unlit circuit: a ring that never closed. */
.apl .apl-pain__item::before{
  content:"";
  position:absolute;
  inset-inline-start:1.35rem;
  top:1.95rem;
  width:12px; height:12px;
  border-radius:50%;
  border:1px solid rgba(243,233,216,.34);
}
.apl .apl-pain__item::after{
  content:"";
  position:absolute;
  inset-inline-start:1.63rem;
  top:2.23rem;
  width:5px; height:5px;
  border-radius:50%;
  background:rgba(243,233,216,.22);
}
.apl .apl-pain__turn{
  text-align:center;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-2);
  line-height:1.6;
  max-width:32ch;
  margin-inline:auto;
  color:var(--apl-ink);
}

/* ---------- 12. Curriculum ---------- */
.apl .apl-syllabus{ display:grid; gap:0; border-top:1px solid var(--apl-line-soft); }
.apl .apl-syllabus__row{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1.4rem;
  align-items:start;
  padding:1.6rem .4rem;
  border-bottom:1px solid var(--apl-line-soft);
  transition:background .35s var(--apl-ease), padding-inline-start .35s var(--apl-ease);
}
.apl .apl-syllabus__row:hover{ background:rgba(232,180,92,.05); padding-inline-start:1rem; }
.apl .apl-syllabus__glyph{ width:44px; height:44px; flex:none; color:var(--apl-gold); opacity:.85; }
.apl .apl-syllabus__glyph circle,
.apl .apl-syllabus__glyph path,
.apl .apl-syllabus__glyph ellipse{ fill:none; stroke:currentColor; }
.apl .apl-syllabus__row:hover .apl-syllabus__glyph{ opacity:1; }
.apl .apl-syllabus__t{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-1);
  line-height:1.5;
  color:var(--apl-ink);
  margin-bottom:.35rem;
}
.apl .apl-syllabus__d{
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.85;
  color:var(--apl-ink-soft);
}
.apl .apl-syllabus__d a{ color:var(--apl-gold); }
.apl .apl-syllabus__d a:hover{ color:var(--apl-gold-bright); }

/* ---------- 13. Circuits — the astrolabe as an instrument panel ---------- */
.apl .apl-circuits__layout{
  display:grid;
  gap:clamp(2rem,5vw,3.5rem);
  grid-template-columns:1fr;
  align-items:center;
}
@media (min-width:900px){
  .apl .apl-circuits__layout{ grid-template-columns:1fr 1fr; }
  /* The list drives the dial, so it takes the reading start (right, in RTL):
     you read a circuit name, the instrument answers on the left. On narrow
     screens the dial stays first, where it works as the section hook. */
  .apl .apl-circuits__list{ order:1; }
  .apl .apl-circuits__dial{ order:2; }
}
.apl .apl-circuits__dial{
  position:relative;
  aspect-ratio:1;
  width:min(100%,460px);
  margin-inline:auto;
  color:var(--apl-gold);
}
.apl .apl-circuits__dial svg{ width:100%; height:100%; overflow:visible; }
.apl .apl-circuits__dial line{ stroke:currentColor; }
.apl .apl-dial-ring{
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  opacity:.24;
  transform-origin:50% 50%;
  transition:opacity .45s var(--apl-ease), stroke-width .45s var(--apl-ease), filter .45s var(--apl-ease);
}
.apl .apl-dial-ring.apl-is-live{
  opacity:1;
  stroke-width:2.4;
  filter:drop-shadow(0 0 12px rgba(232,180,92,.85));
}
.apl .apl-dial-node{ fill:var(--apl-gold); stroke:none; opacity:.4; transition:opacity .45s var(--apl-ease); }
.apl .apl-dial-node.apl-is-live{ opacity:1; }
.apl .apl-dial__core{
  position:absolute;
  inset:0;
  display:grid;
  /* place-items alone centres each child inside its own auto row, and the two
     rows stretch to fill the dial — which splayed the label and the index to
     opposite quarters. place-content collapses the tracks to the middle. */
  place-items:center;
  place-content:center;
  gap:.35rem;
  text-align:center;
  pointer-events:none;
}
.apl .apl-dial__core b{
  display:block;
  font-family:var(--apl-label);
  font-size:calc(.8rem * var(--apl-scale));
  font-weight:600;
  letter-spacing:.16em;
  line-height:1.5;
  color:var(--apl-gold);
}
.apl .apl-dial__core span{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-1);
  color:var(--apl-ink);
  max-width:10ch;
  line-height:1.4;
}

.apl .apl-circuits__list{ display:grid; gap:.25rem; }
.apl .apl-circuit{
  width:100%;
  text-align:start;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  align-items:baseline;
  padding:1.1rem 1.15rem;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  color:var(--apl-ink);
  cursor:pointer;
  transition:background .35s var(--apl-ease), border-color .35s var(--apl-ease);
}
.apl .apl-circuit:hover,
.apl .apl-circuit.apl-is-live{ background:rgba(232,180,92,.07); border-color:var(--apl-line); }
.apl .apl-circuit__idx{
  font-family:var(--apl-label);
  font-size:calc(.82rem * var(--apl-scale));
  font-weight:600;
  line-height:1.5;
  color:var(--apl-gold);
}
.apl .apl-circuit__name{
  display:block;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-1);
  line-height:1.5;
  color:var(--apl-ink);
  margin-bottom:.25rem;
}
.apl .apl-circuit__desc{
  display:block;
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.8;
  color:var(--apl-ink-soft);
}

/* ---------- 14. Seven weeks — the descent ---------- */
.apl .apl-weeks{ position:relative; max-width:860px; margin-inline:auto; }
.apl .apl-weeks__spine{
  position:absolute;
  inset-inline-start:19px;
  top:12px;
  bottom:12px;
  width:2px;
  background:var(--apl-line-soft);
  border-radius:2px;
  overflow:hidden;
}
.apl .apl-weeks__spine i{
  position:absolute;
  inset-inline:0;
  top:0;
  height:0%;
  display:block;
  background:linear-gradient(180deg,var(--apl-gold-bright),var(--apl-gold),var(--apl-violet));
  box-shadow:0 0 14px rgba(232,180,92,.7);
}
.apl .apl-week{ position:relative; padding-inline-start:4.2rem; padding-block:1.2rem; }
.apl .apl-week__node{
  position:absolute;
  inset-inline-start:11px;
  top:1.9rem;
  width:18px; height:18px;
  border-radius:50%;
  border:1px solid var(--apl-line);
  background:var(--apl-void);
  display:grid;
  place-items:center;
  transition:border-color .4s var(--apl-ease), box-shadow .4s var(--apl-ease);
}
.apl .apl-week__node::after{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:var(--apl-ink-faint);
  transition:background .4s var(--apl-ease), box-shadow .4s var(--apl-ease);
}
.apl .apl-week.apl-is-lit .apl-week__node{ border-color:var(--apl-gold); box-shadow:0 0 0 4px rgba(232,180,92,.1); }
.apl .apl-week.apl-is-lit .apl-week__node::after{ background:var(--apl-gold-bright); box-shadow:0 0 10px var(--apl-gold); }

.apl .apl-week__no{
  display:block;
  font-family:var(--apl-label);
  font-size:calc(.88rem * var(--apl-scale));
  font-weight:600;
  line-height:1.6;
  word-spacing:.2em;
  color:var(--apl-gold);
  margin-bottom:.4rem;
}
.apl .apl-week__t{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-2);
  line-height:1.45;
  color:var(--apl-ink);
  margin-bottom:.5rem;
}
.apl .apl-week__d{
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.9;
  color:var(--apl-ink-soft);
}
.apl .apl-week__tag{
  display:inline-block;
  margin-top:.8rem;
  font-family:var(--apl-label);
  font-size:calc(.84rem * var(--apl-scale));
  font-weight:500;
  line-height:1.6;
  word-spacing:.14em;
  color:var(--apl-aura);
  border:1px solid rgba(124,224,211,.3);
  border-radius:99px;
  padding:.3em 1.1em;
}

/* ---------- 15. Manifest ---------- */
.apl .apl-manifest{
  border:1px solid var(--apl-line);
  border-radius:var(--apl-radius);
  overflow:hidden;
  background:linear-gradient(165deg,rgba(30,23,72,.34),rgba(10,14,34,.5));
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  color:var(--apl-ink);
}
.apl .apl-manifest__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:1rem 1.4rem;
  border-bottom:1px solid var(--apl-line);
  background:rgba(232,180,92,.06);
  font-family:var(--apl-label);
  font-size:calc(.86rem * var(--apl-scale));
  font-weight:600;
  line-height:1.6;
  word-spacing:.16em;
  color:var(--apl-gold);
}
.apl .apl-manifest__row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1rem;
  align-items:center;
  padding:1.25rem 1.4rem;
  border-bottom:1px solid var(--apl-line-soft);
}
.apl .apl-manifest__row:last-child{ border-bottom:0; }
.apl .apl-manifest__check{ width:22px; height:22px; color:var(--apl-gold); flex:none; }
.apl .apl-manifest__check circle,
.apl .apl-manifest__check path{ fill:none; stroke:currentColor; }
.apl .apl-manifest__label b{
  display:block;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-1);
  line-height:1.5;
  color:var(--apl-ink);
}
.apl .apl-manifest__label span{
  display:block;
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.8;
  color:var(--apl-ink-soft);
}
.apl .apl-manifest__val{
  font-family:var(--apl-label);
  font-size:calc(.9rem * var(--apl-scale));
  line-height:1.6;
  color:var(--apl-ink-faint);
  white-space:nowrap;
}
.apl .apl-manifest__total{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:1.35rem 1.4rem;
  background:rgba(232,180,92,.09);
  border-top:1px solid var(--apl-line);
}
.apl .apl-manifest__total b{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-1);
  color:var(--apl-ink);
}
.apl .apl-manifest__total span{
  font-family:var(--apl-label);
  font-weight:600;
  font-size:var(--apl-step-1);
  color:var(--apl-gold-bright);
}
@media (max-width:620px){
  .apl .apl-manifest__row{ grid-template-columns:auto 1fr; }
  .apl .apl-manifest__val{ grid-column:2; }
}

.apl .apl-guarantee{
  display:flex;
  align-items:center;
  gap:1rem;
  max-width:600px;
  margin:clamp(2rem,4vw,2.8rem) auto 0;
  padding:1.3rem 1.5rem;
  border-radius:var(--apl-radius);
  border:1px dashed var(--apl-line);
  background:rgba(232,180,92,.05);
  text-align:start;
}
.apl .apl-guarantee svg{ width:40px; height:40px; color:var(--apl-gold); flex:none; }
.apl .apl-guarantee svg path{ fill:none; stroke:currentColor; }
.apl .apl-guarantee p{
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.85;
  color:var(--apl-ink-soft);
}
.apl .apl-guarantee b{ color:var(--apl-ink); font-weight:700; }

/* ---------- 16. Instructor ---------- */
.apl .apl-tutor{ display:grid; gap:clamp(2rem,5vw,3.5rem); align-items:center; grid-template-columns:1fr; }
@media (min-width:900px){ .apl .apl-tutor{ grid-template-columns:minmax(280px,.85fr) 1fr; } }
.apl .apl-tutor__portrait{
  position:relative;
  aspect-ratio:1;
  border-radius:var(--apl-radius);
  overflow:hidden;
  border:1px solid var(--apl-line);
  box-shadow:0 30px 80px -30px rgba(0,0,0,.9);
}
.apl .apl-tutor__portrait img{ width:100%; height:100%; object-fit:cover; }
.apl .apl-tutor__portrait::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(5,6,15,.75),transparent 45%);
}
.apl .apl-tutor__name{ position:absolute; inset-inline:1.2rem; bottom:1.1rem; z-index:2; }
.apl .apl-tutor__name b{
  display:block;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-2);
  line-height:1.35;
  color:var(--apl-ink);
}
.apl .apl-tutor__name span{
  display:block;
  font-family:var(--apl-mono);
  font-size:calc(.72rem * var(--apl-scale));
  letter-spacing:.14em;
  line-height:1.6;
  color:var(--apl-gold);
}

.apl .apl-creds{ display:grid; gap:.9rem; margin-block:1.7rem; }
.apl .apl-creds li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.9rem;
  align-items:start;
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.85;
  color:var(--apl-ink-soft);
}
.apl .apl-creds li b{ color:var(--apl-ink); font-weight:700; }
.apl .apl-creds__mark{ width:20px; height:20px; color:var(--apl-gold); margin-top:.45rem; flex:none; }
.apl .apl-creds__mark circle,
.apl .apl-creds__mark path{ fill:none; stroke:currentColor; }

.apl .apl-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  padding-block:1.6rem;
  border-block:1px solid var(--apl-line-soft);
  margin-bottom:1.7rem;
}
.apl .apl-stat b{
  display:block;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-3);
  color:var(--apl-gold-bright);
  line-height:1.15;
}
.apl .apl-stat span{
  display:block;
  font-family:var(--apl-label);
  font-size:calc(.86rem * var(--apl-scale));
  line-height:1.6;
  word-spacing:.14em;
  color:var(--apl-ink-faint);
  margin-top:.5rem;
}

/* ---------- 17. Certificates ---------- */
.apl .apl-certs{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  margin-top:clamp(2.5rem,5vw,3.5rem);
}
.apl .apl-cert{
  display:block;
  width:100%;
  padding:0;
  border:1px solid var(--apl-line-soft);
  border-radius:12px;
  overflow:hidden;
  background:rgba(10,14,34,.5);
  color:var(--apl-ink);
  cursor:zoom-in;
  text-align:start;
  transition:border-color .4s var(--apl-ease), transform .4s var(--apl-ease);
}
.apl .apl-cert:hover{ border-color:var(--apl-gold); transform:translateY(-4px); }
.apl .apl-cert img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  filter:saturate(.9) brightness(.94);
  transition:filter .4s var(--apl-ease);
}
.apl .apl-cert:hover img{ filter:saturate(1) brightness(1); }
.apl .apl-cert figcaption{ padding:.95rem 1rem 1.15rem; }
.apl .apl-cert figcaption b{
  display:block;
  font-family:var(--apl-body);
  font-size:var(--apl-step--1);
  font-weight:600;
  line-height:1.6;
  color:var(--apl-ink);
  margin-bottom:.2rem;
}
.apl .apl-cert figcaption span{
  display:block;
  font-family:var(--apl-mono);
  font-size:calc(.68rem * var(--apl-scale));
  letter-spacing:.08em;
  line-height:1.6;
  color:var(--apl-ink-faint);
}

.apl .apl-lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:var(--apl-gutter);
  background:rgba(5,6,15,.94);
  backdrop-filter:blur(10px);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s var(--apl-ease), visibility .35s;
}
.apl .apl-lightbox.apl-is-open{ opacity:1; visibility:visible; }
/* A class-level display:grid outranks the UA [hidden] rule, so restate it. */
.apl .apl-lightbox[hidden]{ display:none; }
.apl .apl-lightbox img{
  max-width:min(100%,1000px);
  max-height:86vh;
  object-fit:contain;
  border-radius:10px;
  box-shadow:0 40px 100px -20px rgba(0,0,0,.9);
}
.apl .apl-lightbox__close{
  position:absolute;
  top:1.2rem;
  inset-inline-end:1.2rem;
  width:46px; height:46px;
  border-radius:50%;
  border:1px solid var(--apl-line);
  background:rgba(10,14,34,.85);
  font-family:var(--apl-body);
  font-size:1.5rem;
  line-height:1;
  color:var(--apl-ink);
  cursor:pointer;
  display:grid;
  place-items:center;
}
.apl .apl-lightbox__close:hover{ border-color:var(--apl-gold); color:var(--apl-gold); }

/* ---------- 18. Audience fit ---------- */
.apl .apl-fit{ display:grid; gap:1.2rem; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); }
.apl .apl-fit__col{
  padding:clamp(1.5rem,3vw,2.1rem);
  border-radius:var(--apl-radius);
  border:1px solid var(--apl-line-soft);
  background:rgba(10,14,34,.5);
}
.apl .apl-fit__col--yes{ border-color:rgba(232,180,92,.32); background:rgba(232,180,92,.05); }
.apl .apl-fit__col h3{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-1);
  line-height:1.5;
  color:var(--apl-ink);
  margin-bottom:1.2rem;
}
.apl .apl-fit__col ul{ display:grid; gap:.9rem; }
.apl .apl-fit__col li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.8rem;
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.8;
  color:var(--apl-ink-soft);
}
.apl .apl-fit__icon{ width:19px; height:19px; margin-top:.45rem; flex:none; }
.apl .apl-fit__icon circle,
.apl .apl-fit__icon path{ fill:none; stroke:currentColor; }
.apl .apl-fit__col--yes .apl-fit__icon{ color:var(--apl-gold); }
.apl .apl-fit__col--no .apl-fit__icon{ color:rgba(243,233,216,.34); }

/* ---------- 19. Testimonials ---------- */
.apl .apl-voices{ display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
.apl .apl-voice{
  padding:clamp(1.5rem,3vw,1.9rem);
  border-radius:var(--apl-radius);
  border:1px solid var(--apl-line-soft);
  background:linear-gradient(160deg,rgba(30,23,72,.34),rgba(10,14,34,.5));
  display:flex;
  flex-direction:column;
  gap:1.2rem;
}
.apl .apl-voice__stars{ display:flex; gap:.2rem; color:var(--apl-gold); }
.apl .apl-voice__stars svg{ width:16px; height:16px; }
.apl .apl-voice__text{
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.95;
  color:var(--apl-ink-soft);
  flex:1;
}
.apl .apl-voice__text::before{
  content:"”";
  font-family:var(--apl-display);
  font-size:2.6rem;
  color:var(--apl-gold);
  opacity:.42;
  line-height:0;
  vertical-align:-.35em;
  margin-inline-end:.15em;
}
.apl .apl-voice__who{ display:flex; align-items:center; gap:.9rem; }
.apl .apl-voice__av{
  width:46px; height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:calc(1.15rem * var(--apl-scale));
  line-height:1;
  color:var(--apl-gold-bright);
  background:linear-gradient(140deg,rgba(74,47,143,.75),rgba(184,134,58,.42));
  border:1px solid var(--apl-line);
  flex:none;
}
.apl .apl-voice__who b{
  display:block;
  font-family:var(--apl-body);
  font-size:var(--apl-step--1);
  font-weight:600;
  line-height:1.6;
  color:var(--apl-ink);
}
.apl .apl-voice__who span{
  display:block;
  font-family:var(--apl-label);
  font-size:calc(.84rem * var(--apl-scale));
  line-height:1.6;
  color:var(--apl-ink-faint);
}

/* ---------- 20. Offer ---------- */
.apl .apl-offer{
  position:relative;
  max-width:740px;
  margin-inline:auto;
  padding:clamp(2rem,5vw,3.2rem);
  border-radius:20px;
  border:1px solid var(--apl-line);
  background:linear-gradient(165deg,rgba(30,23,72,.62),rgba(10,14,34,.78));
  box-shadow:0 40px 100px -40px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,223,163,.14);
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  color:var(--apl-ink);
  text-align:center;
  overflow:hidden;
}
.apl .apl-offer__seal{
  position:absolute;
  inset-block-start:-70px;
  inset-inline-end:-70px;
  width:220px; height:220px;
  color:var(--apl-gold);
  opacity:.16;
  pointer-events:none;
}
.apl .apl-offer__seal circle,
.apl .apl-offer__seal path{ fill:none; stroke:currentColor; }
.apl .apl-offer__price{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:.85rem;
  flex-wrap:wrap;
  margin-block:1.5rem 1.1rem;
}
.apl .apl-offer__now{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:calc(clamp(2.8rem,7vw,4.3rem) * var(--apl-scale));
  line-height:1.1;
  color:var(--apl-gold-bright);
}
.apl .apl-offer__was{
  font-family:var(--apl-label);
  font-size:var(--apl-step-1);
  line-height:1.4;
  color:var(--apl-ink-faint);
  text-decoration:line-through;
  text-decoration-thickness:2px;
}
.apl .apl-offer__cur{
  font-family:var(--apl-label);
  font-size:var(--apl-step-0);
  line-height:1.4;
  color:var(--apl-ink-soft);
}

.apl .apl-countdown{ display:flex; justify-content:center; gap:.7rem; margin-block:1.9rem; flex-wrap:wrap; }
.apl .apl-count{
  min-width:80px;
  padding:.8rem .6rem;
  border-radius:10px;
  border:1px solid var(--apl-line);
  background:rgba(5,6,15,.55);
}
.apl .apl-count b{
  display:block;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:calc(1.85rem * var(--apl-scale));
  color:var(--apl-gold-bright);
  line-height:1.15;
  font-variant-numeric:tabular-nums;
}
.apl .apl-count span{
  display:block;
  font-family:var(--apl-label);
  font-size:calc(.78rem * var(--apl-scale));
  line-height:1.6;
  color:var(--apl-ink-faint);
}

.apl .apl-seats{
  margin-top:1.7rem;
  font-family:var(--apl-label);
  font-size:calc(.9rem * var(--apl-scale));
  line-height:1.7;
  color:var(--apl-ink-faint);
}
.apl .apl-seats__bar{
  display:block;
  margin-top:.6rem;
  height:6px;
  border-radius:99px;
  background:rgba(243,233,216,.12);
  overflow:hidden;
}
.apl .apl-seats__bar i{
  display:block;
  height:100%;
  width:0%;
  border-radius:99px;
  background:linear-gradient(90deg,var(--apl-gold-deep),var(--apl-gold-bright));
}

/* ---------- 21. FAQ ---------- */
.apl .apl-faq{ max-width:800px; margin-inline:auto; border-top:1px solid var(--apl-line-soft); }
.apl .apl-faq__item{ border-bottom:1px solid var(--apl-line-soft); }
.apl .apl-faq__q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.2rem;
  padding:1.45rem .3rem;
  background:transparent;
  border:0;
  cursor:pointer;
  text-align:start;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-1);
  line-height:1.55;
  color:var(--apl-ink);
  transition:color .3s var(--apl-ease);
}
.apl .apl-faq__q:hover{ color:var(--apl-gold-bright); }
.apl .apl-faq__sign{ position:relative; width:22px; height:22px; flex:none; color:var(--apl-gold); }
.apl .apl-faq__sign::before,
.apl .apl-faq__sign::after{
  content:"";
  position:absolute;
  inset-inline-start:50%;
  top:50%;
  width:14px; height:2px;
  background:currentColor;
  transform:translate(-50%,-50%);
  transition:transform .35s var(--apl-ease), opacity .35s var(--apl-ease);
}
.apl .apl-faq__sign::after{ transform:translate(-50%,-50%) rotate(90deg); }
.apl .apl-faq__item.apl-is-open .apl-faq__sign::after{ transform:translate(-50%,-50%) rotate(0deg); opacity:0; }
.apl .apl-faq__a{ overflow:hidden; height:0; }
.apl .apl-faq__a p{
  padding:0 .3rem 1.5rem;
  font-family:var(--apl-body);
  font-size:var(--apl-step-0);
  line-height:1.95;
  color:var(--apl-ink-soft);
}

/* ---------- 22. Final call ---------- */
.apl .apl-finale{ position:relative; text-align:center; padding-block:clamp(5rem,10vw,9rem); overflow:hidden; }
.apl .apl-finale__inner{ position:relative; z-index:2; }
.apl .apl-finale__title{
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:var(--apl-step-4);
  line-height:calc(var(--apl-lh-display) - .12);
  color:var(--apl-ink);
  max-width:20ch;
  margin:0 auto 1.5rem;
}
.apl .apl-finale__lede{ max-width:52ch; margin:0 auto 2.4rem; }

/* ---------- 23. Footer ---------- */
.apl .apl-foot{
  border-top:1px solid var(--apl-line-soft);
  padding-block:2.8rem 7rem;
  font-family:var(--apl-body);
  font-size:var(--apl-step--1);
  line-height:1.8;
  color:var(--apl-ink-faint);
}
.apl .apl-foot__top{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1.2rem;
  margin-bottom:1.7rem;
}
.apl .apl-foot__links{ display:flex; flex-wrap:wrap; gap:.5rem 1.7rem; }
.apl .apl-foot__links a{ color:var(--apl-ink-faint); transition:color .3s var(--apl-ease); }
.apl .apl-foot__links a:hover{ color:var(--apl-gold); }
.apl .apl-foot__legal{
  padding-top:1.6rem;
  border-top:1px solid var(--apl-line-soft);
  font-family:var(--apl-body);
  font-size:calc(.88rem * var(--apl-scale));
  line-height:1.9;
  color:var(--apl-ink-faint);
}
@media (min-width:760px){ .apl .apl-foot{ padding-bottom:2.8rem; } }

/* ---------- 24. Sticky mobile bar ---------- */
.apl .apl-dock{
  position:fixed;
  inset-inline:0;
  bottom:0;
  z-index:45;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.7rem var(--apl-gutter);
  background:rgba(5,6,15,.94);
  backdrop-filter:blur(14px);
  border-top:1px solid var(--apl-line);
  font-family:var(--apl-body);
  color:var(--apl-ink);
  transform:translateY(110%);
}
.apl .apl-dock__price b{
  display:block;
  font-family:var(--apl-display);
  font-weight:var(--apl-w-display);
  font-size:calc(1.2rem * var(--apl-scale));
  color:var(--apl-gold-bright);
  line-height:1.25;
}
.apl .apl-dock__price span{
  display:block;
  font-family:var(--apl-label);
  font-size:calc(.78rem * var(--apl-scale));
  line-height:1.5;
  color:var(--apl-ink-faint);
}
.apl .apl-dock .apl-cta{ padding:.85em 1.8em; font-size:var(--apl-step--1); }
@media (min-width:760px){ .apl .apl-dock{ display:none; } }

/* ---------- 25. A11y ---------- */
.apl .apl-sr-only{
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.apl .apl-skip{
  position:absolute;
  inset-inline-start:50%;
  top:-60px;
  transform:translateX(-50%);
  z-index:200;
  padding:.7em 1.4em;
  background:var(--apl-gold);
  font-family:var(--apl-body);
  font-size:var(--apl-step--1);
  font-weight:600;
  color:var(--apl-on-gold);
  border-radius:0 0 8px 8px;
  transition:top .25s var(--apl-ease);
}
.apl .apl-skip:focus{ top:0; color:var(--apl-on-gold); }

/* ---------- 26. Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .apl *,.apl *::before,.apl *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .apl .apl-spin-slow,.apl .apl-spin-rev,.apl .apl-spin-fast{ animation:none !important; }
  .apl .apl-reveal{ opacity:1 !important; transform:none !important; }
}

/* ---------- 27. Responsive nudges ---------- */
@media (max-width:640px){
  .apl .apl-stats{ grid-template-columns:repeat(3,1fr); gap:.5rem; }
  .apl .apl-stat b{ font-size:var(--apl-step-2); }
  .apl .apl-syllabus__row{ grid-template-columns:1fr; gap:.85rem; }
  .apl .apl-syllabus__glyph{ width:38px; height:38px; }
  .apl .apl-week{ padding-inline-start:3.3rem; }
  .apl .apl-guarantee{ flex-direction:column; text-align:center; }
  .apl .apl-countdown{ gap:.45rem; }
  .apl .apl-count{ min-width:68px; padding:.65rem .4rem; }
  .apl .apl-count b{ font-size:calc(1.5rem * var(--apl-scale)); }
  .apl .apl-offer__price{ gap:.55rem; }
}
