/* Journey stages clip translated content, leaving no trailing cream strip. */
.journey-motion-stage{display:flow-root;overflow:clip;background:var(--soft);margin:0;padding:0}
.journey-motion-stage>section.journey{margin:0;transition:none;will-change:translate}
.journey-motion-stage + .guide-preview{margin-top:0}
.subject-cloud{transform:none;align-items:stretch}
.subject-motion-caption{flex:0 0 100%;display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px;text-align:right}
.subject-cloud .subject-motion-caption small{padding:0;line-height:1.5}
.subject-motion-toggle{width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line);border-radius:50%;background:var(--cream);color:var(--green);cursor:pointer}
.subject-motion-toggle[hidden]{display:none}
.subject-cloud .subject{animation:subject-drift 6s ease-in-out infinite paused;transform-origin:center}
.subject-cloud .subject:nth-child(2){animation-delay:-1.2s}.subject-cloud .subject:nth-child(3){animation-delay:-2.4s}.subject-cloud .subject:nth-child(4){animation-delay:-3.6s}.subject-cloud .subject:nth-child(5){animation-delay:-4.8s}
.subjects-running .subject{animation-play-state:running}
@keyframes subject-drift{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -7px;rotate:1deg}}
/* One short dash with a long gap avoids a second dot appearing at the route start. */
.tuition-packet{stroke-dasharray:1 200;animation-name:tuition-smooth-transfer;animation-fill-mode:both}
@keyframes tuition-smooth-transfer{0%{opacity:0;stroke-dashoffset:0}3%{opacity:1;stroke-dashoffset:-3}26%{opacity:1;stroke-dashoffset:-94}30%{opacity:0;stroke-dashoffset:-100}100%{opacity:0;stroke-dashoffset:-100}}
.teacher-card details .enquiry-content{overflow:hidden;display:flow-root}
.teacher-card details summary::after{content:none}
.enquiry-toggle-icon{position:relative;width:18px;height:18px;flex:0 0 18px;transition:rotate .3s ease;rotate:0deg}
.enquiry-toggle-icon::before,.enquiry-toggle-icon::after{content:'';position:absolute;background:var(--green);top:8px;left:3px;width:12px;height:2px;border-radius:2px}
.enquiry-toggle-icon::after{rotate:90deg;transition:scale .25s ease}
.enquiry-expanded .enquiry-toggle-icon{rotate:180deg}
.enquiry-expanded .enquiry-toggle-icon::after{scale:0 1}
@media(max-width:600px){.footer.compact-footer{margin-top:24px;border-top:1px solid var(--line);padding-top:20px;padding-bottom:14px}.footer.compact-footer .footer-main{gap:14px}.footer.compact-footer .footer-utilities{margin-top:12px}.subject-motion-caption{justify-content:center;text-align:center}}
@media(prefers-reduced-motion:reduce){.subject-cloud .subject{animation:none}.enquiry-toggle-icon,.enquiry-toggle-icon::after{transition:none}.tuition-packet{animation:none!important;opacity:0}.journey-motion-stage>section.journey{translate:none!important;will-change:auto}}

.journey-motion-stage + #parent-student-guide{margin-top:0}
.subject-motion-caption{justify-content:flex-end;text-align:right}

/* Shared-sized circular playback control with a six-second subject cycle. */
.subject-motion-toggle{position:relative;display:grid;place-items:center;padding:0}
.subject-motion-toggle > span{display:grid;place-items:center}
.subject-motion-toggle > span svg{display:block;width:13px;height:13px}
.subject-motion-toggle .subject-progress{position:absolute;inset:6px;width:30px;height:30px;transform:rotate(-90deg);fill:none;stroke-width:1.6;pointer-events:none}
.subject-progress-track{stroke:var(--line)}
.subject-progress-ring{stroke:var(--green);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:subject-progress-loop 6s linear infinite paused}
.subjects-running .subject-progress-ring{animation-play-state:running}
@keyframes subject-progress-loop{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.subject-progress-ring{animation:none}}

/* Single progress ring; retain a focus indicator for keyboard navigation. */
.subject-motion-toggle{border:0;background:transparent;box-shadow:none}
.subject-motion-toggle:hover,.subject-motion-toggle:active{box-shadow:none}

/* Prepare below-fold content before entry to prevent visible-to-hidden flashes. */
.reveal-waiting{opacity:0}
@media(prefers-reduced-motion:reduce){.reveal-waiting{opacity:1}}

.journey-motion-stage{background:var(--soft);overflow:clip}
.journey-motion-stage>section.journey.journey-awaiting{translate:0 64px}
@media(prefers-reduced-motion:reduce){.journey-motion-stage>section.journey.journey-awaiting{translate:none}}

/* Shared FAQ and teacher enquiry disclosure motion. */
.faq details .enquiry-content{overflow:hidden;display:flow-root}
.faq details summary::after{content:none}
.faq details summary{align-items:center}
.faq .enquiry-toggle-icon{color:var(--green)}
