/* Advertising pages only. CILT geometry, matte surfaces and purposeful motion. */
.el-premium { --ep-ease:cubic-bezier(.2,.7,.2,1); }
.el-premium .el-wrap { width:min(1320px,100%); }
.el-premium .el-section { padding-block:96px; position:relative; }
.el-premium .el-heading { margin-bottom:44px; align-items:flex-start; }
.el-premium .el-heading > div { max-width:none; }
.el-premium .el-heading h2 { max-width:850px; }
.el-premium .el-heading h2 + p { max-width:760px; line-height:1.55; }
.el-premium .el-kicker { letter-spacing:.1em; text-transform:uppercase; font-size:12px; }
.el-premium .el-kicker::before { content:""; display:inline-block; width:28px; height:2px; background:var(--el-gold); margin:0 12px 4px 0; }
.el-premium .el-hero { position:relative; padding:26px 0 0; overflow:hidden; }
.el-premium .el-breadcrumb { padding-bottom:20px; margin-bottom:36px; border-bottom:1px solid var(--el-pale); }
.el-premium .el-actions { gap:14px; margin-top:28px; }
.el-premium .el-btn { border-radius:3px; min-height:54px; transition:background .25s,color .25s,box-shadow .25s,transform .25s; }
.el-premium .el-btn:hover { background:var(--el-gold); color:var(--el-purple) !important; border-color:var(--el-gold); transform:translateY(-2px); box-shadow:0 8px 20px rgba(54,17,99,.12); }
.el-premium .el-btn-secondary:hover { background:var(--el-purple); border-color:var(--el-purple); color:var(--el-white) !important; }
.el-premium .el-btn .ep-arrow { width:18px; height:18px; flex-shrink:0; transition:transform .25s; }
.el-premium .el-btn:hover .ep-arrow { transform:translateX(3px); }
.el-network { position:absolute; inset:55px 10px 40px; overflow:hidden; z-index:-1; }
.el-network :is(svg,canvas) { width:100%; height:100%; position:absolute; inset:0; }
.el-network canvas { display:none; }
.el-network.is-rendered canvas { display:block; }
.el-network.is-rendered .el-network-fallback { visibility:hidden; }
.el-motion-toggle { position:absolute; right:30px; top:88px; z-index:3; width:44px; height:44px; border:1px solid rgba(192,165,130,.7); border-radius:50%; background:var(--el-purple); color:var(--el-white); display:grid; place-items:center; cursor:pointer; }
.el-motion-toggle svg { width:13px; height:13px; }
.el-premium .el-motion-toggle:focus-visible { outline-color:var(--el-white); }
.el-premium .el-jumpnav { border-top:1px solid var(--el-pale); background:var(--el-white); }
.el-premium .el-jumpnav .el-wrap { gap:26px; padding-block:8px; }
.el-premium .el-jumpnav a { position:relative; }
.el-premium .el-jumpnav a::after { content:""; position:absolute; bottom:4px; height:2px; left:0; width:0; background:var(--el-gold); transition:width .25s; }
.el-premium .el-jumpnav a:hover::after { width:100%; }
.el-premium .el-card { border-radius:6px; padding:32px; border-color:var(--el-pale); transition:box-shadow .35s var(--ep-ease),border-color .3s,transform .35s var(--ep-ease); }
.el-premium .el-card:hover { border-color:var(--el-gold); box-shadow:0 16px 32px rgba(54,17,99,.1); }
.el-premium .el-card:focus-within { border-color:var(--el-purple); }
.el-premium .el-card h3 { letter-spacing:-.02em; }
.el-premium .el-card-tag { text-transform:uppercase; letter-spacing:.06em; font-size:11px; }
.el-premium #formats .el-card { border-top:3px solid var(--el-gold); }
.el-premium #formats .el-card-featured { background:var(--el-purple); color:var(--el-white); border-color:var(--el-purple); padding-top:32px; }
.el-premium #formats .el-card-featured :is(h3,.el-card-tag,.el-intake) { color:var(--el-white); }
.el-premium #formats .el-card-featured .el-card-tag { color:var(--el-gold); }
.el-premium #formats .el-card-featured .el-btn { background:var(--el-gold); border-color:var(--el-gold); color:var(--el-purple) !important; }
.el-premium #formats .el-card-featured .el-btn:hover { background:var(--el-white); border-color:var(--el-white); }
.el-premium .el-note { padding:24px 28px; border-radius:0 4px 4px 0; }
.el-course-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-bottom:32px; }
.el-course-filters { display:flex; flex-wrap:wrap; gap:8px; }
.el-course-filters button { background:var(--el-white); border:1px solid var(--el-purple); color:var(--el-purple); min-height:44px; padding:12px 16px; border-radius:3px; font-size:12px; font-weight:700; text-transform:uppercase; cursor:pointer; transition:background .2s,color .2s; }
.el-course-filters button[aria-pressed="true"],.el-course-filters button:hover { background:var(--el-purple); color:var(--el-white); }
.el-course-count { font-size:13px; white-space:nowrap; }
.el-course-outline { border-bottom:1px solid var(--el-pale); margin-bottom:24px; }
.el-course-outline summary { position:relative; color:var(--el-purple); font-size:13px; font-weight:700; min-height:44px; padding:12px 26px 12px 0; cursor:pointer; list-style:none; }
.el-course-outline summary::-webkit-details-marker { display:none; }
.el-course-outline summary::after { content:"+"; position:absolute; right:0; top:8px; font-size:22px; font-weight:400; }
.el-course-outline[open] summary::after { content:"−"; }
.el-course-outline ul { font-size:14px; margin-top:8px !important; }
.el-premium .el-faq { border-top:2px solid var(--el-gold); }
.el-premium .el-faq details { border-radius:0; margin:0; border:0; border-bottom:1px solid var(--el-pale); }
.el-premium .el-faq summary { padding:24px 50px 24px 0; font-size:18px; }
.el-premium .el-faq details > div { padding:0 48px 24px 0; }
.el-premium .el-consult-grid { gap:72px; }
.el-premium .el-consult-list { border-top:1px solid var(--el-pale); padding-top:24px; }
.el-premium .el-form { border-radius:6px; border-top:3px solid var(--el-gold); box-shadow:0 16px 32px rgba(54,17,99,.09); padding:36px; }
.el-premium .el-field :is(input,select,textarea) { border-radius:3px; min-height:48px; }
.el-conversion-rail { position:fixed; bottom:0; left:0; right:0; z-index:45; background:var(--el-white); border-top:1px solid var(--el-pale); box-shadow:0 -6px 20px rgba(54,17,99,.08); }
.el-conversion-rail .el-wrap { display:flex; gap:24px; align-items:center; justify-content:space-between; padding-block:12px; }
.el-conversion-rail strong { display:block; color:var(--el-purple); font-size:15px; }
.el-conversion-rail span { display:block; font-size:12px; }
.el-conversion-rail .el-btn { min-height:44px; padding:12px 20px; font-size:13px; }
.el-premium .el-main { padding-bottom:76px; }
@media (hover:hover) and (pointer:fine) {
  /* Angles and lift are eased in JS (education-premium.js), so transform has no CSS transition. */
  .el-premium [data-tilt]:not([data-tilt="scene"]) { transform:perspective(1100px) rotateX(var(--ep-rx,0deg)) rotateY(var(--ep-ry,0deg)) translateY(var(--ep-lift,0px)); transition:box-shadow .4s var(--ep-ease),border-color .3s; }
}
.el-motion-ready .el-reveal { transition:opacity .65s var(--ep-ease),translate .65s var(--ep-ease); }
.el-motion-ready .el-reveal:not(.is-visible) { opacity:0; translate:0 18px; }
@media (max-width:1023px) {
  .el-premium .el-consult-grid { gap:36px; }
}
@media (max-width:767px) {
  .el-premium .el-wrap { padding-inline:24px; }
  .el-premium .el-section { padding-block:60px; }
  .el-premium .el-hero { padding:22px 0 0; }
  .el-premium .el-breadcrumb { margin-bottom:24px; font-size:12px; }
  .el-premium .el-heading { margin-bottom:28px; }
  .el-premium .el-card { padding:28px; }
  .el-course-filters { gap:8px; }
  .el-course-filters button { padding-inline:12px; font-size:11px; }
  .el-premium .el-faq summary { font-size:17px; }
  .el-premium .el-form { padding:28px; }
  .el-conversion-rail .el-wrap { gap:12px; padding:10px 20px calc(10px + env(safe-area-inset-bottom)); }
  .el-conversion-rail strong { font-size:12px; }
  .el-conversion-rail span { font-size:11px; }
  .el-conversion-rail .el-btn { padding-inline:14px; font-size:11px; flex-shrink:0; }
}
@media (max-width:374px) {
  .el-premium .el-wrap { padding-inline:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .el-premium *, .el-premium *::before, .el-premium *::after { animation:none !important; transition:none !important; }
  .el-premium [data-tilt],.el-premium .el-reveal { transform:none !important; translate:none !important; opacity:1 !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   v4 redesign (Claude Code, 2026-10-09). Owner-approved exceptions for these
   two advertising pages only: larger type scale than the brand table; glow is
   allowed in the hero and on card hover. Dark blocks below the hero stay matte.
   ══════════════════════════════════════════════════════════════════════════ */
.el-premium { --ep-deep:#130526; --ep-on-dark:#e9e3f1; --ep-dim:#cfc6dc; --ep-hair:rgba(192,165,130,.32); --ep-out:cubic-bezier(.16,1,.3,1); }
.el-premium .el-main h2 { font-size:40px; line-height:1.15; letter-spacing:-.025em; text-wrap:balance; }
.el-premium .el-heading h2 + p { margin-top:20px; font-size:18px; line-height:1.5; text-wrap:pretty; }
.el-premium .el-kicker { text-transform:none; letter-spacing:0; font-size:13px; }

/* ── Hero ─────────────────────────────────────────────────────────────── */
.el-premium .ep-hero { position:relative; isolation:isolate; overflow:hidden; padding:28px 0 0; color:var(--ep-on-dark);
  /* Static fallback: shown until the first WebGL frame and whenever WebGL is unavailable. */
  background:#1a0833 linear-gradient(115deg,#120526 0%,#1f0a3d 48%,#361163 100%); border-top:1px solid var(--el-gold); }
.ep-hero-bg { position:absolute; inset:0; z-index:-1; display:block; width:100%; height:100%; opacity:0; transition:opacity .9s ease; }
.ep-hero-bg.is-live { opacity:1; }
.el-premium .ep-hero .el-breadcrumb { margin-bottom:0; padding-bottom:20px; border-bottom:1px solid var(--ep-hair); color:var(--ep-dim); }
.el-premium .ep-hero .el-breadcrumb a { color:var(--el-white); }
.el-premium .ep-hero :is(a,button):focus-visible { outline-color:var(--el-gold); }
.ep-hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:56px; align-items:center; padding-block:44px 48px; }
.el-premium .ep-hero-kicker { margin-bottom:20px; color:var(--el-gold); font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.el-premium .ep-hero h1 { color:var(--el-white); font-size:56px; line-height:1.06; letter-spacing:-.03em; }
/* Each headline line sits in its own mask so it can rise into place on load. */
.ep-line { display:block; overflow:hidden; padding-bottom:.1em; margin-bottom:-.1em; }
.ep-line > span { display:block; }
.el-premium .ep-hero-original { margin-top:24px; padding-left:16px; border-left:2px solid var(--el-gold); color:var(--el-white); font-size:16px; font-weight:600; line-height:1.5; }
.el-premium .ep-hero-lead { margin-top:18px; max-width:660px; color:var(--ep-on-dark); font-size:18px; line-height:1.55; text-wrap:pretty; }
.el-premium .ep-hero-actions { margin-top:30px; gap:14px; }
.el-premium .ep-btn-gold { position:relative; overflow:hidden; background:var(--el-gold); border-color:var(--el-gold); color:var(--el-purple) !important; }
.el-premium .ep-btn-gold::after { content:""; position:absolute; inset:0; background:linear-gradient(110deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.6) 50%,rgba(255,255,255,0) 70%); translate:-120% 0; transition:translate .8s var(--ep-out); pointer-events:none; }
.el-premium .ep-btn-gold:hover { background:var(--el-white); border-color:var(--el-white); color:var(--el-purple) !important; box-shadow:0 14px 34px rgba(192,165,130,.35); }
.el-premium .ep-btn-gold:hover::after { translate:120% 0; }
.el-premium .ep-btn-ghost { background:transparent; border-color:rgba(255,255,255,.4); color:var(--el-white) !important; }
.el-premium .ep-btn-ghost:hover { background:transparent; border-color:var(--el-gold); color:var(--el-gold) !important; box-shadow:none; }
.ep-hero-offer { display:flex; flex-wrap:wrap; align-items:center; gap:20px 44px; margin-top:32px; padding-top:24px; border-top:1px solid var(--ep-hair); }
.ep-offer-price strong { display:block; color:var(--el-white); font-size:32px; line-height:1.1; letter-spacing:-.02em; white-space:nowrap; }
.ep-offer-price > span { display:block; max-width:300px; margin-top:8px; color:var(--ep-dim); font-size:13px; line-height:1.5; }
.el-premium .ep-offer-intake { display:flex; align-items:center; gap:14px; max-width:290px; color:var(--el-white); font-size:15px; font-weight:600; line-height:1.45; }
.ep-offer-intake i { flex:none; width:10px; height:10px; border-radius:50%; background:var(--el-gold); }
.ep-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--ep-hair); }
.ep-fact { padding:26px 28px 30px 0; }
.ep-fact + .ep-fact { padding-left:28px; border-left:1px solid var(--ep-hair); }
.ep-fact strong { display:block; margin-bottom:6px; color:var(--el-white); font-size:20px; line-height:1.3; }
.ep-fact span { display:block; max-width:240px; color:var(--ep-dim); font-size:13px; line-height:1.5; }

/* ── 3D credential ────────────────────────────────────────────────────── */
.ep-stage { position:relative; display:grid; place-items:center; min-width:0; height:540px; perspective:1500px; }
/* Halo behind the object: part of the hero glow the owner allowed. */
.ep-stage::before { content:""; position:absolute; inset:6% -4%; z-index:-1; background:radial-gradient(closest-side,rgba(163,120,230,.5),rgba(192,165,130,.2) 55%,rgba(192,165,130,0) 78%); filter:blur(34px); pointer-events:none; }
.ep-tilt { position:relative; width:min(100%,400px); aspect-ratio:400 / 484; transform-style:preserve-3d;
  transform:rotateX(calc(7deg + var(--ep-rx,0deg))) rotateY(calc(-16deg + var(--ep-ry,0deg))); }
.ep-cred-ghost { position:absolute; inset:0; border:1px solid rgba(192,165,130,.4); border-radius:18px; transform:translate3d(-34px,26px,-90px) rotate(-7deg); }
.ep-credential { position:absolute; inset:0; padding:34px; border:1px solid rgba(192,165,130,.6); border-radius:18px; color:var(--el-white);
  background:linear-gradient(155deg,#2c1057 0%,#1c0938 52%,#130526 100%); box-shadow:0 44px 90px rgba(6,1,16,.6); transform-style:preserve-3d; }
.ep-credential::before { content:""; position:absolute; inset:14px; border:1px solid rgba(192,165,130,.34); border-radius:10px; transform:translateZ(8px); pointer-events:none; }
.el-premium .ep-cred-globe { inset:84px 24px 192px; z-index:auto; overflow:visible; transform:translateZ(26px); opacity:.9; }
.ep-cred-head { position:relative; display:flex; align-items:center; gap:14px; transform:translateZ(46px); }
.ep-cred-head img { flex:none; width:46px; height:46px; object-fit:contain; }
.ep-cred-head span { max-width:210px; font-size:11px; font-weight:700; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; }
.ep-cred-title { position:absolute; left:34px; right:34px; bottom:108px; transform:translateZ(64px); }
.ep-cred-title > span { display:block; margin-bottom:10px; color:var(--el-gold); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.el-premium .ep-cred-title p { color:var(--el-white); font-size:31px; font-weight:700; line-height:1.1; letter-spacing:-.01em; }
.ep-cred-title em { display:block; margin-top:8px; color:var(--ep-on-dark); font-size:15px; font-style:normal; }
.ep-cred-foot { position:absolute; left:34px; right:34px; bottom:30px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding-top:18px; border-top:1px solid rgba(192,165,130,.34); transform:translateZ(40px); }
.ep-cred-foot span { color:var(--ep-dim); font-size:12px; line-height:1.5; }
.ep-cred-foot strong { color:var(--el-gold); font-size:30px; line-height:1; letter-spacing:-.02em; }
/* Foil sheen: its position follows the pointer through --ep-sheen. */
.ep-cred-sheen { position:absolute; inset:0; border-radius:inherit; background:linear-gradient(105deg,rgba(255,255,255,0) 36%,rgba(255,255,255,.2) 47%,rgba(192,165,130,.26) 53%,rgba(255,255,255,0) 64%) var(--ep-sheen,120%) 0 / 260% 100% no-repeat; mix-blend-mode:screen; transform:translateZ(2px); pointer-events:none; }
.ep-cred-seal { position:absolute; top:104px; right:-34px; display:grid; place-content:center; justify-items:center; width:112px; height:112px; border-radius:50%; background:var(--el-gold); color:var(--el-purple); box-shadow:0 22px 36px rgba(6,1,16,.55); transform:translateZ(110px); }
.ep-cred-seal::before { content:""; position:absolute; inset:7px; border:1px dashed rgba(54,17,99,.55); border-radius:50%; }
.ep-cred-seal span { font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.ep-cred-seal b { font-size:44px; line-height:1; letter-spacing:-.03em; }
.el-premium .ep-stage .el-motion-toggle { top:auto; right:0; bottom:-6px; width:40px; height:40px; background:transparent; border-color:rgba(255,255,255,.4); }

/* ── Cards: 3D tilt + gold light that follows the pointer ─────────────── */
.el-premium .ep-card { padding:36px; border:1px solid #e6e1ee; border-radius:14px; background:var(--el-white); transform-style:preserve-3d; }
.el-premium .ep-card:hover, .el-premium .ep-card:focus-within { border-color:#e6e1ee; box-shadow:0 26px 52px rgba(54,17,99,.14),0 0 44px rgba(192,165,130,.2); }
.el-premium [data-glow-grid] > .ep-card { display:grid; grid-template-rows:subgrid; grid-row:span 5; row-gap:0; align-content:start; }
.el-premium [data-glow-grid] > .ep-card > :is(h3,p,ul,.el-card-meta) { min-width:0; }
/* ::before = soft light inside the card, ::after = lit segment of the border. */
.ep-card::before, .ep-card::after { content:""; position:absolute; inset:-1px; border-radius:inherit; opacity:var(--glow,0); transition:opacity .45s ease; pointer-events:none; }
.ep-card::before { background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(192,165,130,.16),rgba(192,165,130,0) 62%); }
.ep-card::after { padding:1px; background:radial-gradient(300px circle at var(--mx,50%) var(--my,0%),#C0A582,rgba(192,165,130,0) 72%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.ep-card:focus-within { --glow:1; }
.ep-card-icon { display:grid; place-items:center; width:60px; height:60px; margin-bottom:28px; border-radius:12px; background:var(--el-purple); color:var(--el-gold); transition:background-color .35s,color .35s,transform .45s var(--ep-out); }
.el-premium .ep-card-icon .el-icon { width:30px; height:30px; margin:0; color:inherit; }
.ep-card:hover .ep-card-icon { background:var(--el-gold); color:var(--el-purple); }
.el-premium .ep-card h3 { letter-spacing:-.02em; }
.el-premium .ep-card > p { line-height:1.6; }
/* Depth layers lift only while the card is hovered, so text at rest keeps one left edge. */
.el-premium .ep-card :is(.el-card-meta,.el-card-tag,.ep-module-code,.el-btn) { transition:transform .45s var(--ep-out),background .25s,color .25s,box-shadow .25s; }
.el-premium .ep-card:hover .ep-card-icon { transform:translateZ(34px); }
.el-premium .ep-card:hover :is(.el-card-meta,.el-card-tag,.ep-module-code,.el-btn) { transform:translateZ(22px); }

/* ── Load and scroll motion ───────────────────────────────────────────── */
@media (prefers-reduced-motion:no-preference) {
  .ep-hero .ep-line > span { animation:ep-rise 1.1s var(--ep-out) both; }
  .ep-hero .ep-line:nth-child(2) > span { animation-delay:.09s; }
  .ep-hero .ep-line:nth-child(3) > span { animation-delay:.18s; }
  .ep-hero-kicker, .ep-hero-original, .ep-hero-lead, .ep-hero-actions, .ep-hero-offer, .ep-facts { animation:ep-fade-up .9s var(--ep-out) both; }
  .ep-hero-original { animation-delay:.3s; }
  .ep-hero-lead { animation-delay:.38s; }
  .ep-hero-actions { animation-delay:.46s; }
  .ep-hero-offer { animation-delay:.56s; }
  .ep-facts { animation-delay:.7s; }
  .ep-stage { animation:ep-stage-in 1.3s var(--ep-out) .1s both; }
  .ep-offer-intake i { animation:ep-pulse 2.6s ease-out infinite; }
  .el-motion-ready [data-glow-grid] > * { transition:opacity .8s var(--ep-out) calc(var(--i,0) * 90ms),translate .8s var(--ep-out) calc(var(--i,0) * 90ms),box-shadow .4s var(--ep-ease),border-color .3s; }
  .el-motion-ready [data-glow-grid].el-reveal:not(.is-visible) { opacity:1; translate:none; }
  .el-motion-ready [data-glow-grid].el-reveal:not(.is-visible) > * { opacity:0; translate:0 34px; }
}
@media (prefers-reduced-motion:no-preference) and (min-width:768px) {
  .ep-tilt { animation:ep-turn-in 1.7s var(--ep-out) both,ep-float 8s ease-in-out 1.7s infinite; }
  .ep-stage.is-paused .ep-tilt { animation-play-state:paused; }
}
@keyframes ep-rise { from { translate:0 112%; } }
@keyframes ep-fade-up { from { opacity:0; translate:0 18px; } }
@keyframes ep-stage-in { from { opacity:0; scale:.92; } }
@keyframes ep-turn-in { from { rotate:y -38deg; } to { rotate:y 0deg; } }
@keyframes ep-float { 50% { translate:0 -12px; } }
@keyframes ep-pulse { 0% { box-shadow:0 0 0 0 rgba(192,165,130,.65); } 70%,100% { box-shadow:0 0 0 12px rgba(192,165,130,0); } }

@media (max-width:1359px) {
  .el-premium .ep-hero h1 { font-size:46px; }
  .el-premium .el-main h2 { font-size:36px; }
  .ep-hero-grid { gap:40px; padding-block:48px 56px; }
  .ep-stage { height:480px; }
  .ep-tilt { width:min(100%,350px); }
  .el-premium .ep-cred-globe { inset:90px 18px 176px; }
  .ep-cred-seal { right:-22px; width:96px; height:96px; }
  .ep-cred-seal b { font-size:38px; }
  .el-premium .ep-cred-title p { font-size:27px; }
}
@media (max-width:1099px) {
  .el-premium .ep-hero h1 { font-size:40px; }
}
@media (max-width:1023px) {
  .el-premium .ep-hero h1 { font-size:46px; }
  .ep-hero-grid { grid-template-columns:1fr; gap:24px; padding-block:40px 32px; }
  .ep-stage { height:520px; }
  .ep-tilt { width:min(100%,400px); }
  .ep-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ep-fact:nth-child(3) { padding-left:0; border-left:0; }
  .ep-fact:nth-child(n+3) { border-top:1px solid var(--ep-hair); }
}
@media (max-width:767px) {
  .el-premium .ep-hero { padding-top:22px; }
  /* Phone: keep the crumb trail on one line; the page name is the headline below. */
  .el-premium .ep-hero .el-breadcrumb > :nth-last-child(-n+2) { display:none; }
  .el-premium .ep-hero-kicker { font-size:12px; letter-spacing:.08em; margin-bottom:16px; }
  .ep-hero-grid { padding-top:28px; }
  .el-premium .ep-hero h1 { font-size:34px; line-height:1.12; }
  .el-premium .el-main h2 { font-size:28px; line-height:1.2; }
  .ep-line, .ep-line > span { display:inline; overflow:visible; }
  .el-premium .ep-hero-lead { font-size:17px; }
  .el-premium .ep-hero-actions .el-btn { width:100%; }
  .ep-hero-offer { display:block; margin-top:32px; }
  .el-premium .ep-offer-intake { max-width:none; margin-top:20px; }
  .ep-stage { height:auto; padding:8px 26px 36px 10px; perspective:1200px; }
  .ep-stage::before { inset:0 -10%; }
  .ep-tilt { width:min(100%,340px); transform:rotateX(5deg) rotateY(-11deg); }
  .ep-credential { padding:26px; }
  .el-premium .ep-cred-globe { inset:84px 14px 96px; }
  .ep-cred-title { left:26px; right:26px; bottom:104px; }
  .el-premium .ep-cred-title p { font-size:26px; }
  .ep-cred-foot { left:26px; right:26px; bottom:24px; }
  .ep-cred-foot strong { font-size:26px; }
  .ep-cred-seal { top:96px; right:-18px; width:84px; height:84px; }
  .ep-cred-seal b { font-size:32px; }
  .ep-fact { padding:20px 14px 22px 0; }
  .ep-fact + .ep-fact { padding-left:14px; }
  .ep-fact:nth-child(3) { padding-left:0; }
  .ep-fact strong { font-size:17px; }
  .el-premium .ep-card { padding:28px; }
}

/* ══ Stage 2: diploma sections below «Возможности» ═══════════════════════
   Dark blocks here are matte (no glow). Light surfaces use #e6e1ee hairlines. */
.el-premium { --ep-line:#e6e1ee; --ep-sticky:156px; interpolate-size:allow-keywords; }
.el-premium .el-main:has(> .ep-consult) { padding-bottom:0; }
.el-premium [data-reveal] { min-width:0; }


/* ── Dark matte sections ──────────────────────────────────────────────── */
.el-premium .ep-dark { position:relative; isolation:isolate; overflow:hidden; background:var(--ep-deep); color:var(--ep-on-dark); }
.el-premium .ep-dark > .el-wrap { position:relative; z-index:1; }
.el-premium .ep-dark :is(h2,h3,h4) { color:var(--el-white); }
.el-premium .ep-dark .el-kicker { color:var(--el-gold); }
.el-premium .ep-dark a { color:var(--el-white); }
.el-premium .ep-dark :is(a,button,summary):focus-visible { outline-color:var(--el-gold); }
/* White cards inside a dark section keep the light-surface colours. */
.el-premium .ep-dark :is(.el-form,.ep-resume) :is(h3,h4,a) { color:var(--el-purple); }
.el-premium .ep-dark :is(.el-form,.ep-resume) :is(a,button,input,select,textarea):focus-visible { outline-color:var(--el-purple); }
.ep-routes-canvas { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; pointer-events:none; }

/* ── International block ──────────────────────────────────────────────── */
.ep-intl-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:72px; align-items:start; }
.el-premium .ep-intl h2 { margin-bottom:24px; }
.el-premium .ep-lead { max-width:600px; font-size:18px; line-height:1.55; text-wrap:pretty; }
.ep-counters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; margin-top:44px; }
.ep-counters > div { padding-top:22px; border-top:1px solid var(--el-gold); }
.ep-counters strong { display:block; color:var(--el-white); font-size:56px; line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ep-counters small { font-size:22px; font-weight:700; letter-spacing:-.01em; }
.ep-counters strong + span { display:block; margin-top:12px; color:var(--ep-dim); font-size:13px; line-height:1.5; }
.el-premium .ep-sources { display:flex; flex-wrap:wrap; gap:0 32px; margin-top:28px; font-size:13px; }
.ep-sources a { display:inline-flex; align-items:center; min-height:44px; text-decoration-color:var(--el-gold); }
.ep-resume { padding:40px; border-radius:14px; background:var(--el-white); color:var(--el-text); box-shadow:0 30px 60px rgba(6,1,16,.45); }
.el-premium .ep-resume h3 { margin-bottom:16px; letter-spacing:-.02em; }
.ep-resume p { line-height:1.6; }
.ep-cv { display:grid; gap:6px; margin-top:26px; padding:20px 22px; border-left:3px solid var(--el-gold); border-radius:0 10px 10px 0; background:var(--el-pale); }
.ep-cv span { color:var(--el-text); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.ep-cv b { color:var(--el-purple); font-size:18px; line-height:1.3; letter-spacing:-.01em; }
.ep-cv i { color:var(--el-text); font-size:13px; font-style:normal; font-weight:600; }
.el-premium .ep-resume .el-example { margin-top:26px; padding-top:26px; border-top:1px solid var(--ep-line); }
.el-premium .ep-resume .el-example h4 { margin-bottom:10px; font-size:18px; font-weight:700; }
.el-premium .ep-resume .el-microcopy { margin-top:20px !important; }

/* ── Sub-block inside a section: heading + three points in a row, no boxes ── */
.ep-sub { margin-top:72px; padding-top:56px; border-top:1px solid #d5cfdf; scroll-margin-top:132px; }
.el-premium .ep-dark .ep-sub { border-top-color:var(--ep-hair); }
.ep-sub-head { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; }
.el-premium .ep-sub-head h3 { font-size:28px; line-height:1.2; letter-spacing:-.02em; text-wrap:balance; }
.el-premium .ep-sub-head p { margin-top:14px; max-width:760px; font-size:18px; line-height:1.5; text-wrap:pretty; }
.ep-sub-head > a { flex:none; display:inline-flex; align-items:center; min-height:44px; font-weight:700; }
.ep-points { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 40px; margin-top:40px; }
.ep-points > article { display:grid; grid-template-rows:subgrid; grid-row:span 2; padding-top:24px; border-top:2px solid var(--el-gold); }
.el-premium .ep-points :is(h3,h4) { margin-bottom:12px; font-size:20px; font-weight:700; letter-spacing:-.01em; }
.ep-points p { line-height:1.6; }
.ep-note-dark { margin-top:44px; padding:24px 28px; border:1px solid var(--ep-hair); border-left:3px solid var(--el-gold); border-radius:0 10px 10px 0; background:#1b0a35; }
.ep-note-dark p { line-height:1.6; }
.ep-note-dark strong { color:var(--el-white); }

/* ── Programme: 2×2 module cards ──────────────────────────────────────── */
.ep-modules { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.el-premium .ep-modules > .ep-card { grid-row:span 4; padding:40px; }
.ep-module-code { display:flex; align-items:center; gap:14px; margin-bottom:28px; color:var(--el-text); font-size:13px; font-weight:600; }
.ep-module-code b { padding:8px 12px; border-radius:6px; background:var(--el-purple); color:var(--el-gold); font-size:13px; line-height:1; letter-spacing:.06em; transition:background-color .35s,color .35s; }
.ep-card:hover .ep-module-code b { background:var(--el-gold); color:var(--el-purple); }
.el-premium .ep-modules h3 { margin-bottom:14px; }
.el-premium .ep-module-en { margin-top:28px; padding-top:18px; border-top:1px solid var(--ep-line); color:var(--el-purple); font-size:13px; font-weight:600; line-height:1.4; }

/* ── Result: sticky copy, list with a highlighted row ─────────────────── */
.ep-result { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:88px; align-items:start; }
.ep-result-copy { position:sticky; top:var(--ep-sticky); }
.el-premium .ep-result-copy h2 { margin-bottom:24px; }
.ep-result-copy > p { max-width:520px; font-size:18px; line-height:1.55; text-wrap:pretty; }
.ep-result-list { border-top:1px solid var(--ep-line); }
.ep-result-item { position:relative; padding:34px 32px 34px 36px; border-bottom:1px solid var(--ep-line); transition:background-color .35s; }
.ep-result-item::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--el-gold); transform-origin:top; scale:1 0; transition:scale .45s var(--ep-out); }
.ep-result-item:hover, .ep-result-item:focus-within { background:rgba(54,17,99,.035); }
.ep-result-item:hover::before, .ep-result-item:focus-within::before { scale:1 1; }
.el-premium .ep-result-item h3 { margin-bottom:10px; font-size:22px; letter-spacing:-.02em; }
.ep-result-item p { line-height:1.6; }
.el-premium .ep-result-item .el-source { margin-top:14px !important; font-size:15px; font-weight:700; }

/* ── Formats and price ────────────────────────────────────────────────── */
.ep-price { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); margin-bottom:28px; border:1px solid var(--ep-line); border-radius:14px; background:var(--el-white); box-shadow:0 14px 34px rgba(54,17,99,.06); }
.ep-price-main { padding:34px 40px; }
.el-premium .ep-price-label { color:var(--el-purple); font-size:13px; font-weight:700; }
.el-premium .ep-price-value { margin-top:10px; color:var(--el-purple); font-size:48px; font-weight:700; line-height:1.05; letter-spacing:-.03em; }
.el-premium .ep-price-note { margin-top:12px; }
.el-premium .ep-price-intake { display:flex; align-items:center; gap:16px; margin:0; padding:34px 40px; border-left:1px solid var(--ep-line); color:var(--el-purple); font-size:20px; font-weight:700; line-height:1.4; }
.ep-price-intake i { flex:none; width:12px; height:12px; border-radius:50%; background:var(--el-gold); }
.el-premium .ep-formats > .ep-card { grid-row:span 6; }
.el-premium #formats .ep-card { border-top:1px solid var(--ep-line); }
.el-premium #formats .ep-card :is(h3,.el-format-desc) { min-height:0; }
.el-premium #formats .ep-card .el-card-tag { margin-bottom:18px; font-size:12px; letter-spacing:.08em; }
.el-premium #formats .ep-card ul { margin-top:24px; padding-top:24px; border-top:1px solid var(--ep-line); }
.el-premium #formats .ep-card .el-intake { margin-top:12px !important; }
.el-premium #formats .ep-card .el-btn { margin-top:28px; }
/* Flagship: same size and position in the grid, set apart by colour only. */
.el-premium #formats .el-card-featured { padding-top:36px; border-color:var(--el-purple); background:var(--el-purple); color:var(--ep-on-dark); box-shadow:0 26px 52px rgba(54,17,99,.26); }
.el-premium #formats .el-card-featured:is(:hover,:focus-within) { border-color:var(--el-purple); box-shadow:0 30px 60px rgba(54,17,99,.34),0 0 44px rgba(192,165,130,.26); }
.el-premium #formats .el-card-featured ul { border-top-color:var(--ep-hair); }
.el-premium #formats .el-card-featured :is(a,button):focus-visible { outline-color:var(--el-gold); }

/* ── Admission steps: the line draws itself between the numbered nodes ── */
.ep-steps { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 32px; margin:0; padding:0; list-style:none; counter-reset:ep-step; }
/* From the centre of the first node to the centre of the last one. */
.ep-steps::before { content:""; position:absolute; top:27px; left:28px; width:calc(75% + 24px); height:2px; background:var(--el-gold); transform-origin:left; }
.ep-steps > li { position:relative; display:grid; grid-template-rows:subgrid; grid-row:span 3; counter-increment:ep-step; }
.ep-steps > li::before { content:counter(ep-step); position:relative; display:grid; place-items:center; width:56px; height:56px; margin-bottom:28px; border:2px solid var(--el-gold); border-radius:50%; background:var(--el-purple); color:var(--el-white); font-size:20px; font-weight:700; line-height:1; }
.ep-steps > li:nth-child(2) { --i:1; } .ep-steps > li:nth-child(3) { --i:2; } .ep-steps > li:nth-child(4) { --i:3; }
.el-premium .ep-steps h3 { margin-bottom:12px; font-size:22px; letter-spacing:-.02em; }
.ep-steps p { max-width:270px; line-height:1.6; }

/* ── FAQ and the short-course strip ───────────────────────────────────── */
.ep-faq-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.7fr); gap:72px; align-items:start; }
.ep-faq-head { position:sticky; top:var(--ep-sticky); }
.el-premium .ep-faq { display:grid; gap:12px; border:0; }
.el-premium .ep-faq details { border:1px solid var(--ep-line); border-radius:12px; background:var(--el-white); transition:border-color .3s,box-shadow .3s; }
.el-premium .ep-faq details:hover { border-color:var(--el-gold); }
.el-premium .ep-faq details[open] { border-color:var(--el-gold); box-shadow:0 14px 30px rgba(54,17,99,.08); }
.el-premium .ep-faq summary { padding:24px 84px 24px 28px; border-radius:12px; font-size:18px; }
.el-premium .ep-faq summary:focus-visible { outline-offset:-3px; }
/* Plus sign drawn with two bars; it turns into a cross when the answer is open. */
.el-premium .ep-faq summary::after, .el-premium .ep-faq details[open] summary::after { content:""; top:50%; right:24px; width:36px; height:36px; margin-top:-18px; border:1px solid var(--ep-line); border-radius:50%; color:var(--el-purple);
  background:linear-gradient(currentColor 0 0) center / 14px 2px no-repeat,linear-gradient(currentColor 0 0) center / 2px 14px no-repeat; transition:rotate .4s var(--ep-out),background-color .3s,border-color .3s; }
.el-premium .ep-faq details[open] summary::after { rotate:45deg; border-color:var(--el-gold); background-color:var(--el-gold); }
.el-premium .ep-faq details > div { max-width:none; padding:0 84px 26px 28px; line-height:1.6; }
/* Smooth open/close where the browser can animate to auto height; instant elsewhere. */
.ep-faq details::details-content { block-size:0; overflow:hidden; transition:block-size .45s var(--ep-out),content-visibility .45s allow-discrete; }
.ep-faq details[open]::details-content { block-size:auto; }
.ep-strip { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.7fr); gap:28px 72px; align-items:center; margin-top:72px; padding:36px 40px 28px; border:1px solid var(--ep-line); border-radius:14px; background:var(--el-white); }
.el-premium .ep-strip h3 { font-size:24px; letter-spacing:-.02em; text-wrap:balance; }
.ep-strip-copy p { margin-top:12px; line-height:1.6; }
.ep-strip-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.ep-strip-links a { display:flex; align-items:center; justify-content:space-between; gap:12px; height:100%; min-height:76px; padding:16px 20px; border:1px solid var(--ep-line); border-radius:10px; color:var(--el-purple); font-size:15px; font-weight:700; line-height:1.3; text-decoration:none; transition:background-color .3s,border-color .3s,color .3s; }
.ep-strip-links a:hover { border-color:var(--el-purple); background:var(--el-purple); color:var(--el-white); }
.ep-strip-links svg { flex:none; width:18px; height:18px; transition:translate .3s var(--ep-out); }
.ep-strip-links a:hover svg { translate:4px 0; color:var(--el-gold); }
.ep-strip-foot { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:12px 40px; padding-top:20px; border-top:1px solid var(--ep-line); }
.el-premium .ep-strip-foot .el-microcopy { margin:0 !important; max-width:760px; }
.ep-strip-foot > a { flex:none; display:inline-flex; align-items:center; min-height:44px; font-weight:700; }

/* ── Consultation: white raised form on the dark closing block ────────── */
.el-premium .ep-consult { padding-block:104px; }
.el-premium .ep-consult .el-consult-copy > p { max-width:520px; line-height:1.55; }
.el-premium .ep-consult .el-consult-list { margin:32px 0; padding-top:28px; border-top:1px solid var(--ep-hair); }
.el-premium .ep-consult .el-consult-list li { color:var(--el-white); font-size:16px; }
.el-premium .ep-consult .el-contact-links a { text-decoration-color:var(--el-gold); }
/* Price and intake restated next to the form; matte here, so the hero pulse is off. */
.ep-consult-offer { display:flex; flex-wrap:wrap; align-items:center; gap:20px 44px; margin-top:36px; padding-top:28px; border-top:1px solid var(--ep-hair); }
.ep-consult-offer .ep-offer-intake i { animation:none; }
.el-premium .ep-consult .el-form { padding:40px; border:0; border-top:3px solid var(--el-gold); border-radius:14px; color:var(--el-text); box-shadow:0 34px 70px rgba(6,1,16,.5); }
.el-premium .ep-consult .el-field :is(input,select,textarea) { border-color:#b9b2c4; transition:border-color .2s,box-shadow .2s; }
.el-premium .ep-consult .el-field :is(input,select,textarea):focus { border-color:var(--el-purple); box-shadow:0 0 0 3px rgba(54,17,99,.14); }

/* ── Scroll motion for the blocks above ───────────────────────────────── */
@media (prefers-reduced-motion:no-preference) {
  .el-motion-ready .ep-steps::before { transition:scale 1.5s var(--ep-out) .15s; }
  .el-motion-ready .ep-steps > li { transition:opacity .7s var(--ep-out) calc(var(--i,0) * .3s + .15s),translate .7s var(--ep-out) calc(var(--i,0) * .3s + .15s); }
  .el-motion-ready .ep-steps.el-reveal:not(.is-visible) { opacity:1; translate:none; }
  .el-motion-ready .ep-steps.el-reveal:not(.is-visible)::before { scale:0 1; }
  .el-motion-ready .ep-steps.el-reveal:not(.is-visible) > li { opacity:0; translate:0 20px; }
}

@media (max-width:1199px) {
  .ep-intl-grid { gap:48px; }
  .ep-result { gap:56px; }
  .ep-faq-grid, .ep-strip { column-gap:48px; }
  .ep-counters strong { font-size:48px; }
  .ep-resume { padding:32px; }
  .el-premium .ep-modules > .ep-card { padding:32px; }
  .ep-price-main, .el-premium .ep-price-intake { padding:28px 32px; }
  .el-premium .ep-price-value { font-size:42px; }
  .ep-strip-links a { padding-inline:16px; }
}
@media (max-width:1023px) {
  .ep-intl-grid, .ep-result, .ep-faq-grid, .ep-strip { grid-template-columns:1fr; gap:36px; }
  .ep-result-copy, .ep-faq-head { position:static; }
  .ep-sub { margin-top:56px; padding-top:44px; }
  .ep-points { grid-template-columns:1fr; gap:28px; margin-top:32px; }
  .ep-points > article { display:block; grid-row:auto; }
  .el-premium .ep-formats { grid-template-columns:1fr; }
  .el-premium .ep-consult { padding-block:80px; }
  /* Steps turn into a vertical line: each step draws its own connector. */
  .ep-steps { grid-template-columns:1fr; gap:0; }
  .ep-steps::before { content:none; }
  .ep-steps > li { grid-template-columns:56px minmax(0,1fr); grid-template-rows:auto auto; grid-row:auto; column-gap:24px; padding-bottom:32px; }
  .ep-steps > li:last-child { padding-bottom:0; }
  .ep-steps > li::before { grid-row:1 / span 2; margin-bottom:0; }
  .ep-steps > li:not(:last-child)::after { content:""; position:absolute; top:56px; bottom:0; left:27px; width:2px; background:var(--el-gold); }
  .el-premium .ep-steps h3 { align-self:end; margin:6px 0 8px; }
  .ep-steps p { max-width:none; }
}
@media (max-width:767px) {
  /* Phone: the routes would run straight through the text column. */
  .ep-routes-canvas { display:none; }
  .el-conversion-rail span { white-space:nowrap; }
  .ep-consult-offer { display:block; }
  .ep-counters { gap:20px; margin-top:32px; }
  .ep-counters strong { font-size:40px; }
  .ep-counters small { font-size:17px; }
  .ep-resume { padding:28px 24px; }
  .ep-cv b { font-size:16px; }
  .ep-sub-head { display:block; }
  .ep-sub-head > a { margin-top:12px; }
  .el-premium .ep-sub-head h3 { font-size:24px; }
  .el-premium .ep-sub-head p { font-size:17px; }
  .ep-note-dark { margin-top:32px; padding:22px 20px; }
  .ep-modules { grid-template-columns:1fr; }
  .el-premium .ep-modules > .ep-card { padding:28px; }
  .ep-result-item { padding:26px 16px 26px 22px; }
  .ep-price { grid-template-columns:1fr; }
  .ep-price-main, .el-premium .ep-price-intake { padding:24px; }
  .el-premium .ep-price-intake { border-left:0; border-top:1px solid var(--ep-line); font-size:17px; }
  .el-premium .ep-price-value { font-size:36px; }
  .el-premium .ep-faq summary { padding:20px 68px 20px 20px; font-size:17px; }
  .el-premium .ep-faq summary::after, .el-premium .ep-faq details[open] summary::after { right:16px; }
  .el-premium .ep-faq details > div { padding:0 20px 22px; }
  .ep-strip { margin-top:48px; padding:28px 24px 20px; }
  .ep-strip-links { grid-template-columns:1fr; }
  .ep-strip-links a { min-height:56px; }
  .ep-strip-foot { display:block; }
  .el-premium .ep-consult { padding-block:60px; }
  .el-premium .ep-consult .el-form { padding:28px 24px; }
}

/* ══ Stage 3: online-intensives.html ═════════════════════════════════════ */
.el-premium .ep-hero-note { color:var(--ep-dim); font-size:13px; line-height:1.5; }
.el-premium .ep-hero-note a { color:var(--el-white); text-decoration-color:var(--el-gold); }
.el-premium .el-heading + .ep-points { margin-top:0; }
.ep-points a { font-weight:700; }
.el-premium .ep-steps + .el-note { margin-top:48px; }
/* Matte blocks: the gold button keeps its colour change but loses the shine and the halo. */
.el-premium .ep-dark .ep-btn-gold::after { content:none; }
.el-premium .ep-dark .ep-btn-gold:hover { box-shadow:none; }

/* ── Hero deck: eight topic cards stacked in depth, each peeks out as a tab ── */
.ep-deck-stage { height:560px; }
.ep-deck { position:relative; width:min(100%,400px); height:516px; margin:0; padding:0; list-style:none; transform-style:preserve-3d;
  transform:rotateX(calc(9deg + var(--ep-rx,0deg))) rotateY(calc(-17deg + var(--ep-ry,0deg))); }
/* --o is the place in the stack: 0 is the front card, 7 the farthest. */
.ep-deck > li { position:absolute; inset:auto 0 0; height:236px; transform:translate3d(0,calc(var(--o,0) * -40px),calc(var(--o,0) * -38px)); opacity:calc(1 - var(--o,0) * .035); transition:transform .9s var(--ep-out),opacity .6s ease; }
/* Cards sit behind the list own plane in 3D, so the list must not take the pointer. */
.ep-deck { pointer-events:none; }
.ep-deck > li { pointer-events:auto; }
.ep-deck > li.is-leaving { transform:translate3d(0,64px,70px); opacity:0; transition-duration:.45s; pointer-events:none; }
.ep-deck > li.is-entering { opacity:0; transition:none; }
.ep-deck a { display:grid; grid-template-rows:auto auto 1fr auto; height:100%; padding:10px 24px 22px; border:1px solid rgba(192,165,130,.55); border-radius:16px; background:linear-gradient(155deg,#2c1057 0%,#1c0938 52%,#130526 100%); text-decoration:none; box-shadow:0 -12px 30px rgba(6,1,16,.4); transition:border-color .3s; }
.el-premium .ep-deck a { color:var(--el-white); }
.ep-deck a:hover, .ep-deck a:focus-visible { border-color:var(--el-gold); }
.ep-deck b { overflow:hidden; font-size:17px; line-height:22px; letter-spacing:-.01em; white-space:nowrap; text-overflow:ellipsis; }
.ep-deck span { margin-top:26px; color:var(--el-gold); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.ep-deck i { margin-top:12px; color:var(--ep-on-dark); font-size:15px; font-style:normal; line-height:1.55; }
.ep-deck em { display:flex; align-items:center; gap:10px; color:var(--el-white); font-size:13px; font-style:normal; font-weight:700; }
.ep-deck em svg { width:16px; height:16px; color:var(--el-gold); transition:translate .3s var(--ep-out); }
.ep-deck a:hover em svg { translate:4px 0; }
.el-premium .ep-deck-stage .el-motion-toggle { right:6px; bottom:-10px; }

/* ── Catalogue: 4×2, one header style, rows shared through subgrid ────── */
.ep-courses { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.el-premium .ep-courses > .ep-course { grid-row:span 7; padding:0; scroll-margin-top:148px; }
.ep-course-art { display:grid; place-items:center; height:150px; border-radius:13px 13px 0 0; background:var(--el-purple); overflow:hidden; }
.ep-course-art svg { width:auto; height:126px; transition:translate .6s var(--ep-out),scale .6s var(--ep-out); }
.ep-course:hover .ep-course-art svg { translate:-6px 0; scale:1.06; }
.ep-course-body { display:grid; grid-template-rows:subgrid; grid-row:span 6; min-width:0; padding:24px 24px 26px; }
.ep-course-tag { margin-bottom:12px; color:var(--el-purple); font-size:12px; font-weight:700; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; }
.el-premium .ep-course h3 { margin-bottom:12px; font-size:20px; line-height:1.25; }
.el-premium .ep-course .el-card-meta { margin-top:18px; padding-top:16px; border-top-color:var(--ep-line); line-height:1.45; }
.el-premium .ep-course .el-course-outline { margin:14px 0 22px; border-top:1px solid var(--ep-line); border-bottom-color:var(--ep-line); }
.el-premium .ep-course .el-course-outline ul { margin:0 0 14px !important; }
.el-premium .ep-course .el-btn { align-self:end; width:100%; margin-top:0; padding-inline:14px; font-size:13px; }
.el-premium .el-course-filters button { border-radius:999px; border-color:var(--ep-line); padding-inline:18px; }
.el-premium .el-course-filters button[aria-pressed="true"], .el-premium .el-course-filters button:hover { border-color:var(--el-purple); }
/* Filtering re-flows the grid as a view transition where the browser supports it. */
::view-transition-group(*) { animation-duration:.45s; animation-timing-function:cubic-bezier(.16,1,.3,1); }

/* ── Bridge to the diploma ────────────────────────────────────────────── */
.ep-next-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:72px; align-items:center; }
.el-premium .ep-next-copy h2 { margin-bottom:24px; }
.ep-next-copy .ep-lead + p { margin-top:18px; max-width:600px; line-height:1.6; }
.el-premium .ep-next-copy .el-actions { margin-top:36px; }
.ep-stage-sm { height:400px; }
.ep-stage-sm .ep-tilt { zoom:.72; }
.el-premium .ep-dark .ep-stage::before { content:none; }

@media (prefers-reduced-motion:no-preference) and (min-width:768px) {
  .ep-deck { animation:ep-turn-in 1.7s var(--ep-out) both; }
}
@media (max-width:1359px) {
  .ep-deck-stage { height:520px; }
  .ep-deck { width:min(100%,350px); height:486px; }
  .ep-deck > li { height:226px; transform:translate3d(0,calc(var(--o,0) * -37px),calc(var(--o,0) * -36px)); }
  .ep-deck a { padding:9px 20px 20px; }
  .ep-deck b { font-size:16px; line-height:20px; }
  .ep-deck i { font-size:14px; }
}
@media (max-width:1199px) {
  .ep-courses { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ep-next-grid { gap:48px; }
  .ep-stage-sm .ep-tilt { zoom:.66; }
}
@media (max-width:1023px) {
  .ep-deck-stage { height:560px; }
  .ep-deck { width:min(100%,400px); height:516px; }
  .ep-deck > li { height:236px; transform:translate3d(0,calc(var(--o,0) * -40px),calc(var(--o,0) * -38px)); }
  .ep-next-grid { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:767px) {
  /* Phone: a flat list of the eight topics, each a full-size tap target. */
  .ep-deck-stage { height:auto; padding:8px 0 28px; perspective:none; }
  .ep-deck-stage::before { content:none; }
  .ep-deck { display:grid; gap:8px; width:100%; height:auto; transform:none; }
  .ep-deck > li { position:static; height:auto; transform:none; opacity:1; }
  .ep-deck a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:12px 16px; border-radius:10px; box-shadow:none; }
  .ep-deck b { font-size:15px; }
  .ep-deck :is(span,i) { display:none; }
  .ep-deck em { font-size:0; gap:0; }
  .ep-courses { grid-template-columns:1fr; }
  .ep-stage-sm { display:none; }
}
