/* IGians editorial refinement. Shared tokens and core responsive rules live in main.css. */
:root { --motion-fast:240ms; --motion-medium:420ms; --motion-reveal:700ms; }
.header { transition:background var(--motion-medium),box-shadow var(--motion-medium); }
.header.scrolled { background:#fafaf8ed; box-shadow:0 1px 0 #5b45651c; backdrop-filter:blur(10px); }
body.menu-open .header { backdrop-filter:none; }
.desktop-nav { position:relative; }
.desktop-nav a { color:#575161; transition:color var(--motion-fast); }
.desktop-nav a:hover,.desktop-nav a[aria-current] { color:var(--color-navy); }
.desktop-nav.nav-enhanced a:after { display:none; }
.desktop-nav.no-active .nav-indicator { opacity:0; }
.nav-indicator { position:absolute; height:2px; background:var(--color-secondary); bottom:6px; left:0; width:var(--nav-width,32px); transform:translateX(var(--nav-left,0px)); transition:width var(--motion-medium),transform var(--motion-medium); pointer-events:none; }
.btn { min-height:54px; gap:22px; border-radius:8px; }
.btn .icon,.text-link .icon { transition:transform var(--motion-fast); }
.btn:hover .icon,.text-link:hover .icon { transform:translateX(5px); }
.btn:active { transform:translateY(1px); }
a:focus-visible,button:focus-visible { outline:2px solid var(--color-secondary); outline-offset:5px; }
.dark a:focus-visible,.final-cta a:focus-visible { outline-color:#bda1ff; }

/* The hero is a mathematical plate, not an app preview or stock photograph. */
.hero-layout { gap:36px; }
.hero-study { height:555px; overflow:visible; padding:0; }
.study-registration { position:absolute; top:12px; left:46px; right:2px; display:flex; justify-content:space-between; font-size:9px; letter-spacing:1.5px; color:#6d5c77; }
.brand-construction { width:112%; max-width:none; height:490px; position:absolute; left:-24px; top:25px; overflow:visible; }
.study-equation { font-family:'STIX Two Math',serif; font-size:208px; letter-spacing:-10px; }
.study-annotation { font-family:'STIX Two Math',serif; font-size:31px; }
.study-axis { font-family:'STIX Two Math',serif; font-size:19px; }
.study-signature { position:absolute; left:24px; right:0; bottom:-3px; display:flex; align-items:flex-end; gap:26px; padding-top:20px; border-top:1px solid #b9a9d044; }
.study-signature img { width:60px; height:auto; align-self:center; }
.study-signature p { font-size:16px; line-height:1.35; font-weight:500; letter-spacing:-.4px; }
.study-signature p span { color:var(--color-secondary); }
.study-edition { margin-left:auto; font-size:8px; line-height:1.9; letter-spacing:1px; color:#6d5c77; }
.hero-support .icon { color:var(--color-secondary); }
@media(prefers-reduced-motion:no-preference) {
  .study-curve { stroke-dasharray:1; animation:line-draw var(--motion-reveal) 150ms ease-out backwards; }
  @keyframes line-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
}

/* Three ideas connected by one measured rule. */
.statement { padding-block:31px; }
.statement-inner { gap:24px; }
.statement-connector { flex:1; min-width:22px; max-width:95px; height:1px; position:relative; background:#cfc0e5; }
.statement-connector:before { content:''; position:absolute; inset:0; background:var(--color-secondary); transform:scaleX(0); transform-origin:left; transition:transform 650ms ease; }
.statement-connector:after { content:''; position:absolute; right:0; top:-3px; width:6px; height:6px; border-top:1px solid #9675c1; border-right:1px solid #9675c1; transform:rotate(45deg); }
.progression-strip.is-visible .statement-connector:before { transform:scaleX(1); }
.progression-strip.is-visible .statement-connector:nth-of-type(4):before { transition-delay:200ms; }

/* An uneven, connected progression. Stages remain open on the page. */
.why .section-top { align-items:center; margin-bottom:44px; }
.why h2 { font-size:clamp(34px,3.4vw,49px); }
.learning-journey { --journey-progress:1; display:grid; grid-template-columns:repeat(4,1fr); position:relative; padding:28px 0 18px; gap:28px; }
.journey-line { position:absolute; top:27px; left:20px; width:calc(100% - 40px); height:210px; overflow:visible; fill:none; }
.journey-track { stroke:#e0d6ed; stroke-width:1.2px; }
.journey-ink { stroke:var(--color-secondary); stroke-width:1.5px; stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--journey-progress)); transition:stroke-dashoffset 500ms ease; }
.journey-stage { position:relative; padding-top:14px; min-width:0; }
.journey-stage:nth-of-type(2) { padding-top:121px; }
.journey-stage:nth-of-type(3) { padding-top:46px; }
.journey-stage:nth-of-type(4) { padding-top:145px; }
.journey-node { width:43px; height:43px; display:grid; place-items:center; border:1px solid #d0c2e0; border-radius:50%; font-size:11px; background:var(--color-light); position:relative; z-index:1; box-shadow:0 0 0 8px var(--color-light); color:#6d5c77; transition:background 400ms,color 400ms,border 400ms; }
.journey-stage.is-reached .journey-node { background:#eee6fb; border-color:#a583d7; color:#713abf; }
.journey-stage.is-current .journey-node { color:white; background:var(--color-secondary); border-color:var(--color-secondary); }
.journey-motif { margin:26px 0 22px; height:76px; width:165px; color:#6d5c77; transition:color 400ms; }
.journey-stage.is-current .journey-motif,.journey-stage.is-current h3 { color:var(--color-secondary); }
.journey-stage h3 { font-size:23px; margin-bottom:12px; transition:color 400ms; }
.journey-stage p { font-size:12px; color:var(--color-muted); line-height:1.95; }
.journey-motif.math { display:flex; flex-direction:column; justify-content:center; font-size:20px; line-height:1.5; }
.journey-motif.math i { width:115px; height:1px; background:currentColor; opacity:.35; margin:3px 0; }
.question-motif { display:flex; flex-direction:column; gap:9px; justify-content:center; }
.question-motif span { font-size:9px; display:flex; gap:12px; align-items:center; }
.question-motif i { display:block; height:1px; width:100px; background:currentColor; opacity:.5; }
.question-motif span:nth-child(2) i { width:82px; }
.correction-motif { display:flex; align-items:center; gap:14px; flex-wrap:wrap; align-content:center; }
.correction-motif>.math { font-size:22px; }
.correction-motif small { font-size:7px; letter-spacing:1px; width:100%; }
.path-footer { margin-top:33px; }
.awarding-body { display:block; color:#af94e2; font-size:12px; margin-bottom:5px; }
.course-name { font-size:21px; max-width:400px; }
.specification-label { position:relative; font-size:9px; letter-spacing:1.6px; color:#afa2ca; text-transform:uppercase; margin-top:-12px; }
.course-visual-top { letter-spacing:1.3px; }
@media(prefers-reduced-motion:no-preference) { .course-visual.is-visible .course-curve { stroke-dasharray:1; animation:line-draw 800ms ease-out; } }

/* Three real mathematical examples, clearly presented as illustrative documents. */
.experience-layout { gap:80px; }
.material-stack { height:610px; background:#f2eff6; overflow:visible; border-radius:0; isolation:isolate; }
.material-stack:before { display:none; }
.stack-ruling { position:absolute; inset:20px -18px; border-top:1px solid #d5c8e1; border-bottom:1px solid #d5c8e1; }
.stack-ruling:after { content:''; position:absolute; left:45%; top:-35px; bottom:-35px; border-left:1px solid #dfd4e8; }
.learning-document { position:absolute; width:76%; height:450px; background:#fff; border:1px solid #e5dfee; border-radius:3px; box-shadow:0 14px 28px #2314320c; padding:28px; transition:transform 420ms,box-shadow 420ms,border-color 420ms; }
.notes-document { left:5%; top:30px; transform:rotate(-7deg); z-index:1; }
.practice-document { left:12%; top:57px; transform:rotate(1deg); z-index:2; }
.exam-document { left:19%; top:89px; transform:rotate(7deg); z-index:3; }
.learning-document.is-active { z-index:4; transform:rotate(-3deg) translateY(-4px); border-color:#c7b3e3; box-shadow:0 20px 35px #23143212; }
.document-meta { display:flex; justify-content:space-between; align-items:center; gap:15px; font-size:8px; letter-spacing:.8px; color:#6d5c77; border-bottom:1px solid #e6deec; padding-bottom:18px; }
.document-meta img { width:74px; }
.learning-document h3 { margin-top:20px; font-size:24px; letter-spacing:-.9px; }
.learning-document>p:not(.document-note) { margin-top:14px; font-size:11px; color:#836d98; }
.document-equation { font-size:32px; margin-top:17px; line-height:1.6; }
.factor-construction { display:flex; gap:18px; font-size:20px; color:#6d5c77; margin-top:5px; }
.document-note { font-size:10px; line-height:1.85; color:#7b7185; margin-top:16px; }
.document-result { font-size:23px; margin-top:18px; padding-top:14px; border-top:1px solid #b99ddc; color:#743fc4; }
.document-questions { padding-left:24px; font-size:25px; line-height:2; margin:18px 0 8px; }
.document-questions li::marker { color:#a493b5; font-size:12px; }
.working-lines { height:33px; background:repeating-linear-gradient(transparent,transparent 15px,#ebe5f0 15px,#ebe5f0 16px); }
.exam-working { color:#877297; font-size:20px; line-height:1.8; margin-top:12px; }
.exam-document .document-note { display:flex; align-items:center; gap:7px; }
.exam-document .icon { width:14px; height:14px; }
.stack-caption { position:absolute; bottom:9px; left:0; right:0; text-align:center; color:#6d5c77; font-size:8px; letter-spacing:1.1px; }
.experience-list.learning-controls { margin-top:26px; }
.learning-controls li { padding:0; display:block; }
.learning-control { display:grid; grid-template-columns:25px 1fr 20px; gap:14px; padding:23px 0; background:none; text-align:left; width:100%; }
.control-index { color:#6d5c77; font-size:10px; padding-top:3px; }
.learning-control strong { font-size:16px; font-weight:500; display:block; line-height:1.6; }
.control-description { display:block; font-size:12px; color:var(--color-muted); margin-top:5px; line-height:1.85; }
.learning-control>.icon { margin-top:4px; width:17px; opacity:0; transform:translateX(-5px); transition:opacity 250ms,transform 250ms; }
.learning-control[aria-pressed=true] strong,.learning-control[aria-pressed=true] .control-index { color:var(--color-secondary); }
.learning-control[aria-pressed=true]>.icon { opacity:1; transform:translateX(0); }

/* Instructor: a named editorial spread with a reserved, honest portrait slot. */
.instructor { padding-bottom:0; }
.instructor-layout { display:grid; grid-template-columns:1fr 1fr; gap:32px 85px; }
.instructor-intro { grid-column:1/-1; }
.instructor-intro h2 { font-size:clamp(36px,4.1vw,59px); max-width:820px; }
.instructor-portrait-slot { width:100%; max-width:460px; aspect-ratio:4/5; position:relative; overflow:hidden; isolation:isolate; }
.instructor-construction { position:absolute; inset:0; z-index:1; width:100%; height:100%; }
.instructor-lettering { position:absolute; z-index:2; left:35px; top:38%; right:0; font-size:clamp(52px,6vw,86px); font-weight:500; line-height:.97; letter-spacing:-5px; color:#302539; }
.instructor-lettering>span { display:block; }
.instructor-lettering>span:last-child { padding-left:47px; }
.name-period { color:var(--color-secondary); }
.portrait-caption { position:absolute; z-index:2; bottom:26px; left:25px; right:25px; display:flex; justify-content:space-between; font-size:8px; letter-spacing:1px; color:#6b557c; }
.instructor-portrait { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; }
.instructor-portrait-slot:has(.instructor-portrait[src$=".webp"]) .instructor-lettering { top:auto; bottom:72px; left:22px; font-size:clamp(29px,3vw,42px); letter-spacing:-2px; line-height:1; }
.instructor-portrait-slot:has(.instructor-portrait[src$=".webp"]) .instructor-lettering>span:last-child { padding-left:17px; }
.instructor-profile { border:0; padding:25px 0; align-self:center; }
.instructor-name { font-size:29px; }
.instructor-role { font-size:12px; margin-top:7px; }
.instructor-bio { font-size:14px; max-width:440px; }
.credentials { display:flex; gap:28px; margin-top:26px; padding-top:22px; border-top:1px solid #d6cbe1; max-width:440px; }
.credentials span { display:flex; flex-direction:column; align-items:flex-start; gap:1px; font-size:10px; }
.credentials b { font-size:29px; font-weight:500; color:var(--color-secondary); }
.contextual-reservation { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #d4c7df; margin-top:27px; padding:25px 0; }
.contextual-reservation p { font-size:13px; color:#6b557c; }
.contextual-reservation .text-link { color:#633aa1; font-size:12px; }

/* Materials are a single reference system, never six product cards. */
.materials .section-top { margin-bottom:60px; }
.materials-showcase { display:grid; grid-template-columns:.85fr 1.15fr; gap:95px; align-items:center; }
.materials-dossier { position:relative; height:490px; }
.dossier-back { position:absolute; left:9%; top:12px; width:76%; height:400px; padding:29px; background:#ebe4f4; transform:rotate(-9deg); border:1px solid #ded3e8; color:#8e76a7; }
.dossier-back>span { font-size:8px; letter-spacing:1.1px; }
.dossier-back .math { font-size:30px; margin-top:25px; }
.dossier-sheet { position:absolute; left:17%; top:58px; width:77%; min-height:396px; transform:rotate(4deg); background:white; padding:28px; box-shadow:0 16px 27px #2f12390c; border:1px solid #e1dae7; }
.dossier-heading { display:flex; align-items:center; justify-content:space-between; font-size:8px; color:#8d7c9b; letter-spacing:1px; line-height:1.7; }
.dossier-heading img { width:64px; }
.dossier-title { font-size:32px; line-height:1.2; letter-spacing:-1.5px; padding:30px 0 26px; }
.dossier-index { display:flex; align-items:center; gap:6px; font-size:6px; color:#6d5c77; letter-spacing:.6px; }
.dossier-index i { flex:1; height:1px; background:#d6c4e9; }
.dossier-sheet svg { width:100%; height:125px; margin:15px 0; }
.dossier-sheet>p { font-size:6px; color:#6d5c77; letter-spacing:.7px; }
.materials .material-list { display:block; }
.materials .material-item { display:grid; grid-template-columns:22px 1fr auto; gap:16px; padding:21px 0; align-items:center; }
.materials .material-item h3 { font-size:17px; }
.materials .material-item p { font-size:11px; margin-top:5px; }
.materials .material-item>span { padding-top:0; }
.materials .material-item .material-purpose { font-size:7px; letter-spacing:1px; color:#6d5c77; }
.materials .material-item:last-child { border-bottom:1px solid #d9d8e1; }
.materials-note { margin-top:32px; text-align:right; font-size:10px; }

.session-panel { background:#eae1f7; border-radius:4px; border-top:2px solid #b798df; grid-template-columns:1.3fr .7fr; }
.session-panel:before { content:''; position:absolute; width:1px; height:calc(100% - 80px); right:34%; top:40px; background:#ccb5e440; pointer-events:none; }
.session-progression { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; position:relative; list-style:none; padding:28px 0 0; margin:27px 0 0; border-top:1px solid #c8b3de; }
.session-progression:before,.session-progression:after { content:''; position:absolute; top:50px; left:4%; right:4%; height:1px; background:#bea5d9; pointer-events:none; }
.session-progression:after { background:linear-gradient(90deg,#0077ff,#7a38ff); transform:scaleX(0); transform-origin:left; transition:transform 900ms ease; }
.session-progression.is-visible:after { transform:scaleX(1); }
.session-progression li { position:relative; z-index:1; display:flex; align-items:center; gap:13px; color:#614e75; font-size:12px; background:#eae1f7; width:max-content; max-width:100%; padding-right:10px; }
.session-progression li:last-child { justify-self:end; padding-right:0; padding-left:10px; }
.session-progression li:nth-child(2) { justify-self:center; padding-left:10px; }
.session-step { display:grid; place-items:center; width:43px; height:43px; flex:none; border:1px solid #a884ca; border-radius:50%; background:#eae1f7; color:#6336aa; font-size:11px; font-weight:600; transition:background 500ms,color 500ms,border-color 500ms; }
.session-progression.is-visible .session-step { border-color:#7045bb; color:#fff; background:#7045bb; }
.session-action { padding-top:48px; }
.session-action small { max-width:250px; font-size:10px; line-height:1.8; }
.social-grid { grid-template-columns:1.35fr 1fr 1fr; gap:27px; align-items:start; }
.social-card:nth-child(2) { margin-top:64px; }
.social-card:nth-child(3) { margin-top:116px; }
.social-card .social-image { border-radius:5px; transition:transform 350ms,box-shadow 350ms; }
.social-image:hover { transform:translateY(-5px); box-shadow:0 12px 26px #121c3612; }
.social-image:hover img { transform:scale(1.018); }
.social-image:hover .image-arrow .icon { transform:translate(2px,-2px) rotate(-45deg); }
.image-arrow .icon { transition:transform 250ms; }
.social-caption { align-items:start; flex-direction:column; gap:3px; }
.social-card:hover .social-caption>span:first-child { color:var(--color-secondary); }
.social-caption>span:first-child { transition:color 250ms; }

/* Accessible intrinsic-height accordion; closed answers are inert and aria-hidden. */
.faq-item { transition:background 350ms,border-color 350ms; }
.faq-item.is-open { background:#f0eaf8; border-top-color:#c1a6e2; }
.faq-trigger { min-height:82px; padding:24px 18px; font-size:14px; }
.faq-item.is-open .faq-trigger { font-weight:500; color:#6635aa; }
.faq-trigger .plus { border:0; width:28px; height:28px; transition:transform 300ms; }
.plus:before,.plus:after { width:12px; top:13px; left:8px; }
.faq-trigger[aria-expanded=true] .plus { background:none; transform:rotate(45deg); }
.faq-trigger[aria-expanded=true] .plus:after { transform:rotate(90deg); }
.faq-answer { padding:0; }
.faq-answer-inner { padding:0 48px 25px 18px; }
.faq-answer.faq-enhanced { display:grid; grid-template-rows:0fr; visibility:hidden; transition:grid-template-rows 350ms,visibility 350ms; }
.faq-enhanced .faq-answer-inner { overflow:hidden; min-height:0; padding:0 48px 0 18px; opacity:0; transition:padding 350ms,opacity 250ms; }
.faq-enhanced[aria-hidden=false] { grid-template-rows:1fr; visibility:visible; }
.faq-enhanced[aria-hidden=false] .faq-answer-inner { padding-bottom:25px; opacity:1; }
.final-cta:before,.final-cta:after { display:none; }
.final-construction { position:absolute; inset:0; width:100%; height:100%; color:#a889e3; opacity:.1; pointer-events:none; }
.footer-group h3 { font-size:10px; color:#776883; margin-bottom:18px; }
.footer-group a { transition:color 240ms; text-decoration-color:transparent; text-underline-offset:5px; }
.footer-group a:hover { color:#6735a7; text-decoration-thickness:1px; }
.footer-bottom { padding-top:25px; }
.whatsapp-label { transform:translateX(5px); transition:opacity 240ms,transform 240ms; padding:7px 13px; }
.whatsapp:hover .whatsapp-label,.whatsapp:focus-visible .whatsapp-label { transform:translateX(0); }

@media(max-width:1100px) {
  .hero-study { height:505px; }
  .brand-construction { height:430px; left:-19px; }
  .study-registration { left:28px; }
  .study-signature { left:12px; }
  .study-signature img { width:51px; }
  .study-signature p { font-size:14px; }
  .study-edition { font-size:7px; }
  .journey-stage h3 { font-size:21px; }
  .journey-stage p { font-size:11px; }
  .learning-journey { gap:18px; }
  .experience-layout { gap:50px; }
  .learning-document { padding:23px; width:79%; }
  .learning-document h3 { font-size:22px; }
  .document-equation { font-size:28px; }
  .factor-construction { font-size:17px; gap:13px; }
  .learning-control strong { font-size:14px; }
  .learning-control { grid-template-columns:22px 1fr 15px; gap:10px; }
  .instructor-layout { gap:30px 55px; }
  .materials-showcase { gap:48px; }
  .dossier-sheet { padding:24px; width:82%; left:12%; }
  .dossier-title { font-size:29px; }
  .materials .material-item { gap:12px; }
  .materials .material-item h3 { font-size:15px; }
  .material-purpose { display:none; }
  .social-grid { gap:20px; }
}
@media(max-width:900px) {
  .hero-layout { gap:10px; }
  .hero-study { height:425px; }
  .brand-construction { height:340px; top:30px; left:-13px; }
  .study-registration { font-size:7px; left:18px; }
  .study-signature { gap:17px; bottom:0; left:12px; }
  .study-signature p { font-size:12px; }
  .study-edition { display:none; }
  .statement-inner { gap:15px; }
  .statement-connector { min-width:14px; }
  .journey-stage h3 { font-size:19px; }
  .journey-motif { width:140px; }
  .journey-motif.math { font-size:18px; }
  .journey-stage p br { display:none; }
  .course-name { font-size:18px; }
  .experience-layout { grid-template-columns:1fr; gap:45px; }
  .experience-copy { grid-row:1; }
  .learning-controls { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .learning-control { grid-template-columns:1fr; position:relative; }
  .learning-control>.icon { position:absolute; right:0; top:21px; }
  .learning-control strong { font-size:14px; }
  .control-description { font-size:11px; }
  .material-stack { max-width:520px; width:100%; margin:auto; }
  .learning-document { width:76%; padding:28px; }
  .learning-document h3 { font-size:24px; }
  .document-equation { font-size:32px; }
  .factor-construction { font-size:20px; gap:20px; }
  .instructor-layout { gap:30px; }
  .instructor-lettering { left:12px; font-size:56px; letter-spacing:-3px; }
  .instructor-lettering>span:last-child { padding-left:27px; }
  .portrait-caption { flex-direction:column; font-size:7px; }
  .instructor-name { font-size:23px; }
  .credentials { flex-direction:row; gap:22px; }
  .credentials span { font-size:8px; }
  .materials-showcase { grid-template-columns:.85fr 1.15fr; gap:25px; }
  .materials-dossier { height:420px; }
  .dossier-back { height:345px; left:0; }
  .dossier-sheet { min-height:350px; padding:21px; left:6%; width:92%; }
  .dossier-title { font-size:26px; }
  .dossier-heading img { width:47px; }
  .dossier-heading { font-size:6px; }
  .dossier-sheet svg { height:100px; }
  .dossier-index { font-size:5px; gap:3px; }
  .materials .material-item { grid-template-columns:18px 1fr; padding-block:19px; }
  .materials .material-item p { font-size:10px; }
  .session-panel { grid-template-columns:1fr; }
  .session-action { padding-top:0; }
  .session-progression { gap:7px; }
  .session-progression li { font-size:10px; gap:6px; }
  .session-panel:before { right:22px; }
}
@media(max-width:700px) {
  .hero-layout { gap:24px; }
  .hero-study { height:370px; max-width:450px; margin:10px auto 0; }
  .brand-construction { width:108%; height:313px; top:14px; left:-9px; }
  .study-registration { top:0; left:9px; right:7px; font-size:7px; }
  .study-signature { left:9px; bottom:0; right:7px; padding-top:12px; gap:19px; }
  .study-signature p { font-size:12px; }
  .study-signature img { width:46px; }
  .study-edition { display:block; font-size:6px; }
  .hero-bottom { margin-top:29px; }
  .statement-inner { display:grid; grid-template-columns:1fr; gap:9px; justify-items:start; font-size:17px; padding-left:18px; border-left:1px solid #c7afdF; }
  .statement-inner>span:not(.statement-connector) { position:relative; }
  .statement-inner>span:not(.statement-connector):before { content:''; position:absolute; width:5px; height:5px; border-radius:50%; left:-21px; top:13px; background:#a18abc; }
  .statement-inner>.last { width:auto; text-align:left; }
  .statement-inner>.last:before { background:var(--color-secondary)!important; }
  .statement-connector { display:none; }
  .why .section-top { margin-bottom:41px; }
  .why h2 { font-size:34px; }
  .learning-journey { display:block; padding:0 0 0 3px; }
  .journey-line { display:none; }
  .learning-journey:before,.learning-journey:after { content:''; position:absolute; left:24px; top:21px; bottom:130px; width:1px; background:#ddd1e8; }
  .learning-journey:after { background:var(--color-secondary); transform:scaleY(var(--journey-progress)); transform-origin:top; transition:transform 500ms; }
  .journey-stage,.journey-stage:nth-of-type(n) { padding:0 0 37px 70px; }
  .journey-stage:last-child { padding-bottom:0; }
  .journey-node { position:absolute; left:0; top:0; }
  .journey-motif { margin:0 0 12px; height:63px; width:145px; }
  .journey-stage h3 { font-size:24px; margin-bottom:8px; }
  .journey-stage p { font-size:13px; line-height:1.8; max-width:250px; }
  .journey-stage p br { display:block; }
  .journey-motif.math { font-size:20px; }
  .path-footer { font-size:9px; line-height:1.8; }
  .course-name { font-size:20px; }
  .awarding-body { font-size:12px; }
  .specification-label { margin-top:-7px; }
  .course-code { margin-top:0; }
  .course-visual-top { font-size:8px; letter-spacing:.7px; }
  .course-visual-top span:last-child { font-size:7px; }
  .learning-controls { display:block; margin-top:22px; }
  .learning-control { grid-template-columns:22px 1fr 17px; gap:12px; padding:20px 0; }
  .learning-control>.icon { position:static; margin-top:4px; }
  .learning-control strong { font-size:14px; }
  .control-description { font-size:12px; }
  .material-stack { height:585px; margin-top:9px; }
  .learning-document { width:85%; height:450px; padding:23px; }
  .notes-document { left:0; top:26px; }
  .practice-document { left:7%; top:50px; }
  .exam-document { left:13%; top:75px; }
  .learning-document h3 { font-size:22px; margin-top:18px; }
  .document-meta { font-size:6px; gap:8px; }
  .document-meta img { width:59px; }
  .document-equation { font-size:27px; margin-top:12px; }
  .factor-construction { font-size:18px; gap:12px; }
  .document-note { font-size:10px; margin-top:12px; }
  .document-result { font-size:22px; margin-top:14px; }
  .exam-working { font-size:18px; }
  .document-questions { font-size:23px; }
  .stack-caption { font-size:7px; bottom:7px; }
  .instructor-layout { grid-template-columns:1fr; gap:24px; }
  .instructor-intro h2 { font-size:35px; }
  .instructor-portrait-slot { width:min(100%,430px); }
  .instructor-lettering { font-size:66px; top:38%; left:19px; letter-spacing:-4px; }
  .instructor-lettering>span:last-child { padding-left:35px; }
  .portrait-caption { flex-direction:row; font-size:6px; gap:10px; }
  .instructor-profile { padding-top:13px; }
  .instructor-name { font-size:26px; }
  .instructor-bio { font-size:14px; }
  .credentials span { font-size:9px; }
  .credentials { gap:29px; }
  .contextual-reservation { flex-direction:column; align-items:flex-start; gap:4px; margin-top:6px; padding:22px 0; }
  .contextual-reservation p { font-size:13px; }
  .materials .section-top { margin-bottom:36px; }
  .materials-showcase { grid-template-columns:1fr; gap:28px; }
  .materials-dossier { height:431px; max-width:350px; width:100%; margin:auto; }
  .dossier-back { width:77%; left:6%; height:347px; }
  .dossier-sheet { left:15%; width:80%; padding:24px; min-height:350px; top:43px; }
  .dossier-heading { font-size:7px; }
  .dossier-heading img { width:57px; }
  .dossier-title { font-size:28px; }
  .dossier-index { font-size:5px; }
  .materials .material-item { grid-template-columns:20px 1fr auto; padding:20px 0; gap:12px; }
  .materials .material-item h3 { font-size:16px; }
  .materials .material-item p { font-size:12px; }
  .materials .material-item .material-purpose { display:block; font-size:6px; }
  .materials-note { text-align:left; font-size:10px; }
  .session-panel { padding:35px 26px; }
  .session-panel h2 { font-size:34px; }
  .session-action small { font-size:10px; }
  .session-progression { display:block; margin-top:22px; padding-top:20px; }
  .session-progression:before,.session-progression:after { left:20px; top:39px; right:auto; width:1px; height:calc(100% - 70px); }
  .session-progression:after { transform:scaleY(0); transform-origin:top; }
  .session-progression.is-visible:after { transform:scaleY(1); }
  .session-progression li,.session-progression li:nth-child(2),.session-progression li:last-child { justify-self:auto; padding:0; margin:0 0 13px; font-size:12px; }
  .social-grid { grid-template-columns:1fr 1fr; gap:28px 15px; }
  .social-card:first-child { grid-column:1/-1; }
  .social-card:first-child .social-image { aspect-ratio:4/5; }
  .social-card:first-child img { height:auto; aspect-ratio:4/5; object-fit:contain; }
  .social-card:nth-child(2) { margin-top:0; }
  .social-card:nth-child(3) { margin-top:36px; }
  .social-caption { gap:4px; }
  .faq-trigger { font-size:13px; padding:23px 12px; min-height:84px; }
  .faq-enhanced .faq-answer-inner { padding-left:12px; padding-right:25px; }
  .faq-answer { font-size:13px; }
  .final-construction { width:160%; left:-30%; opacity:.075; }
  .footer-group a { min-height:44px; }
  .whatsapp { right:12px; bottom:14px; width:44px; height:44px; }
  .whatsapp-label { display:none; }
}
@media(max-width:375px) {
  .hero-study { height:340px; }
  .brand-construction { height:285px; }
  .study-signature { gap:14px; }
  .study-edition { font-size:5.5px; }
  .study-signature img { width:43px; }
  .why h2 { font-size:31px; }
  .journey-stage,.journey-stage:nth-of-type(n) { padding-left:62px; }
  .journey-stage p { font-size:12px; }
  .material-stack { height:585px; }
  .learning-document { padding:20px; }
  .learning-document h3 { font-size:21px; }
  .document-equation { font-size:25px; }
  .factor-construction { font-size:17px; }
  .instructor-lettering { font-size:61px; }
  .materials .material-item .material-purpose { display:none; }
  .session-panel h2 { font-size:31px; }
}
@media(prefers-reduced-motion:reduce) {
  .journey-ink { stroke-dashoffset:0; }
  .learning-journey:after { transform:scaleY(1); }
  .statement-connector:before { transform:scaleX(1); }
  .session-progression:after { transform:scaleX(1); }
  *,*:before,*:after { transition:none!important; animation:none!important; }
}
