/* School rosters, spatial inquiry topics, and compact mid-page consultation. */
#schedule .calendar-toolbar, #schedule .section-foot { justify-content:flex-end; }
.honors-section .feature-heading { align-items:center; margin-bottom:38px; min-height:260px; }
.honors-cheer { display:flex; align-items:center; justify-content:end; gap:14px; align-self:stretch; max-width:420px; }
.honors-cheer p { font-size:18px!important; line-height:1.8; transform:rotate(-5deg); color:#efbbdb!important; white-space:nowrap; }
.honors-cheer img, .honors-cheer .teacher-trophy-video { height:290px; width:210px; object-fit:contain; filter:drop-shadow(0 0 24px #ff168d22); }
.honors-carousel { position:relative; }
.honors-track { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:none; scroll-behavior:auto; scrollbar-width:none; padding:20px 4px 24px; scroll-padding-inline:4px; touch-action:pan-x pan-y; }
.honors-track::-webkit-scrollbar { display:none; }
.honor-group-card { flex:0 0 calc((100% - 48px)/2.5); min-width:0; scroll-snap-align:start; background:#111019eb; border:1px solid #6c5970; border-radius:15px; padding:30px 28px 24px; display:flex; flex-direction:column; }
.honor-group-card:first-child { border-color:#ff42a2; box-shadow:0 0 16px #ff168d40,inset 0 0 18px #ff168d12; }
.school-label { font-size:13px; color:#c8b7ce; line-height:1.65; }
.honor-group-card h3 { font-size:29px; font-weight:800; letter-spacing:-.04em; line-height:1.4; margin-top:12px; }
.group-achievement { font-size:clamp(38px,4vw,60px); font-weight:880; letter-spacing:-.055em; line-height:1.3; color:#ff309c!important; margin:16px 0 24px; }
.group-achievement { display:flex; align-items:center; gap:14px; }
.group-achievement>span { min-width:0; overflow-wrap:anywhere; }
.honor-achievement-area { display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,38%); align-items:center; gap:12px; min-height:170px; margin:0 0 20px; }
.honor-achievement-area .group-achievement { margin:0; }
.honor-award-art { display:flex; justify-content:center; align-items:center; height:170px; }
.honor-award-art .honor-icon { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 6px 14px #fbb74626); }
.honor-achievement-area:has(.honor-award-art:empty) { grid-template-columns:1fr; min-height:120px; }
.honor-award-art:empty { display:none; }
.roster-heading { display:flex; justify-content:space-between; border-top:1px solid #70556e; padding:18px 0 8px; color:#baaec4; font-size:13px; }
.honor-roster { list-style:none; padding:0; margin:0; }
.honor-roster-window { height:232px; overflow-y:auto; overflow-x:hidden; overscroll-behavior-y:contain; scrollbar-width:thin; scrollbar-color:#85627e transparent; touch-action:pan-y; scroll-behavior:auto; }
.honor-roster-window:focus-visible { outline:2px solid #ff8ec6; outline-offset:4px; border-radius:4px; }
.honor-roster-window .honor-roster li { min-height:58px; box-sizing:border-box; }
.honor-roster li { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 0; border-bottom:1px solid #ffffff12; font-size:19px; }
.honor-roster li>span { overflow-wrap:anywhere; min-width:0; }
.honor-roster strong { color:#ffd2e9; font-size:18px; font-weight:650; text-align:right; overflow-wrap:anywhere; }
.honor-detail { margin-top:auto; padding:24px 0 0; text-align:left; color:#ff9bcf; border:0; background:none; font-size:14px; }
.detail-roster { margin-block:24px; }
.detail-roster li { border-color:#e5dbe6; color:#17131b; }
.detail-roster strong { color:#c30062; }
.carousel-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:8; display:grid; place-items:center; width:52px; height:52px; min-height:52px; border-radius:50%; border:1px solid #a58fa9; background:#17131feF; color:#fff; font-size:25px; cursor:pointer; box-shadow:0 6px 20px #0003; }
.carousel-arrow:hover { background:#db006c; border-color:#ff3199; }
.carousel-arrow:disabled { cursor:default; opacity:.35; }
.carousel-arrow-left { left:-26px; }
.carousel-arrow-right { right:-26px; }
.honors-controls { display:flex; align-items:center; justify-content:center; gap:24px; margin-top:15px; color:#c6bccc; font-size:13px; }
.motion-toggle { color:#ded1e2; background:none; border:1px solid #726576; border-radius:5px; padding:7px 13px; font-size:12px; }
.review-carousel { position:relative; max-width:1320px; margin:0 auto; padding:0 40px; }
.review-carousel .review-stage { margin-top:30px; }
.review-carousel .carousel-arrow-left { left:20px; }
.review-carousel .carousel-arrow-right { right:20px; }
.reviews-heading em { color:#ff168d; }
.review-card { transition:transform 1200ms cubic-bezier(.22,.68,0,1),opacity 1200ms ease,background 1200ms; }
.inquiry-main-heading h2 br { display:none; }
.inquiry-main-heading h2 em { margin-left:.15em; }
.inquiry-layout { grid-template-columns:.40fr .60fr; gap:38px; align-items:center; }
.keyword-panel { border:0; padding:0; position:relative; min-width:0; }
.keyword-cloud { height:570px; width:100%; max-width:none; margin:0; perspective:750px; perspective-origin:50% 50%; transform-style:preserve-3d; isolation:auto; }
.keyword-cloud .spatial-word { animation:none; right:auto; min-height:36px; display:block; line-height:1.2; white-space:nowrap; font-weight:780; letter-spacing:-.055em; transform-origin:center; text-shadow:1px 2px 0 #28101c12,0 9px 18px #1d0e1d12; will-change:transform,opacity; }
.keyword-cloud .spatial-word:nth-child(3n+1) { color:#ed0078; font-weight:880; }
.keyword-cloud .spatial-word:nth-child(3n+2) { color:#19131f; }
.keyword-cloud .spatial-word:nth-child(3n) { color:#6a5775; font-weight:650; }
.keyword-motion { display:block; margin:12px auto 0; border:0; background:none; color:#70697a; font-size:12px; min-height:36px; padding:6px 12px; }
.inquiry-row { grid-template-columns:minmax(0,1fr) 68px 88px; gap:12px; padding-inline:18px; }
.home-page .contact-section.contact-line { min-height:0; padding:34px 0; background:#ff168d; }
.contact-line .contact-inner { display:grid; grid-template-columns:1.25fr 1fr auto; gap:34px; align-items:center; }
.contact-line .contact-inner h2 { font-size:clamp(25px,2.5vw,36px)!important; letter-spacing:-.05em; }
.contact-line .banner-message>p { margin-top:10px; font-size:16px; font-weight:550; }
.contact-line .location-tabs { margin:0 0 10px; gap:8px; }
.contact-line .location-tabs button,.contact-line .location-tabs button.active { min-height:36px; padding:5px 15px; font-size:14px; }
.contact-line #location-title { font-size:15px; margin-top:0; }
.contact-line #location-address { font-size:12px; margin-top:3px; max-width:300px; }
.contact-line .banner-action { min-width:190px; }
.contact-line #phone { display:block; font-size:19px; }
.contact-line #phone-note { font-size:11px; }
.contact-line #contact-button { border:0; background:#15121c; color:white; padding:16px 24px; border-radius:7px; font-size:17px; min-height:54px; text-align:center; width:100%; }
.admin-keyword-preview { display:flex; flex-wrap:wrap; gap:8px; }
.admin-keyword-preview span { background:#ffe1ef; color:#b20058; padding:6px 12px; border-radius:20px; font-size:14px; }
@media(max-width:1100px) {
  .honor-group-card { flex-basis:calc((100% - 36px)/2.15); padding:25px 24px; }
  .honors-cheer img, .honors-cheer .teacher-trophy-video { width:170px; height:250px; }
  .honors-cheer p { font-size:15px!important; }
  .inquiry-layout { grid-template-columns:.38fr .62fr; gap:24px; }
  .contact-line .contact-inner { gap:24px; grid-template-columns:1.1fr 1fr auto; }
  .contact-line .banner-action { min-width:160px; }
  .contact-line #contact-button { font-size:15px; padding-inline:15px; }
}
@media(max-width:900px) {
  .honors-section .feature-heading { gap:12px; }
  .honors-cheer { max-width:180px; }
  .honors-cheer p { display:none; }
  .honor-group-card { flex-basis:calc((100% - 24px)/1.65); }
  .inquiry-layout { grid-template-columns:1fr; gap:28px; }
  .keyword-cloud { max-width:500px; height:500px; margin:auto; }
  .contact-line .contact-inner { grid-template-columns:1fr auto; gap:18px 28px; }
  .contact-line .banner-message { grid-column:1; }
  .contact-line .banner-location { grid-column:1; }
  .contact-line .banner-action { grid-column:2; grid-row:1/3; }
}
@media(max-width:650px) {
  .honors-section .feature-heading { min-height:200px; margin-bottom:20px; }
  .honors-section .feature-heading h2 { font-size:32px; }
  .honors-cheer { max-width:115px; }
  .honors-cheer img, .honors-cheer .teacher-trophy-video { height:200px; width:125px; }
  .honors-track { gap:16px; padding-inline:6px; scroll-padding-inline:6px; }
  .honor-group-card { flex-basis:calc(100% - 30px); padding:27px 24px; }
  .honor-group-card h3 { font-size:27px; }
  .group-achievement { font-size:48px; }
  .honor-roster li { font-size:18px; }
  .carousel-arrow { width:42px; height:42px; min-height:42px; font-size:22px; }
  .carousel-arrow-left { left:-10px; }
  .carousel-arrow-right { right:-10px; }
  .review-carousel { padding:0 17px; }
  .review-carousel .carousel-arrow-left { left:5px; }
  .review-carousel .carousel-arrow-right { right:5px; }
  .review-carousel .review-card { max-width:calc(100vw - 60px); }
  .review-carousel .review-stage { height:370px; }
  .inquiry-main-heading h2 { font-size:33px!important; }
  .inquiry-main-heading h2 br { display:block; }
  .inquiry-main-heading h2 em { margin:0; }
  .keyword-cloud { height:560px; max-width:380px; }
  .inquiry-row { grid-template-columns:minmax(0,1fr) 75px; }
  .home-page .contact-section.contact-line { padding:28px 0; }
  .contact-line .contact-inner { display:grid; grid-template-columns:1fr; gap:18px; }
  .contact-line .banner-location,.contact-line .banner-message,.contact-line .banner-action { grid-column:1; grid-row:auto; }
  .contact-line .contact-inner h2 { font-size:28px!important; }
  .contact-line .banner-message>p { font-size:14px; margin-top:7px; }
  .contact-line .banner-location { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; }
  .contact-line .location-tabs { margin:0; flex-direction:column; gap:5px; }
  .contact-line .location-tabs button { min-height:32px; padding:4px 12px; font-size:12px; }
  .contact-line #contact-button { min-height:48px; font-size:16px; padding:12px 18px; }
}
@media(prefers-reduced-motion:reduce) {
  .review-card { transition:none; }
  .keyword-cloud .spatial-word { will-change:auto; }
}
/* Full-width honors stage with compact dot pagination. */
.honors-carousel { width:calc(100vw - 80px); margin-left:calc(50% - 50vw + 40px); }
.honors-carousel .honor-group-card { flex-basis:clamp(340px,28vw,460px); }
.honors-controls { gap:4px; margin-top:12px; }
.honor-dot { display:grid; place-items:center; width:32px; height:36px; padding:0; background:transparent; border:0; cursor:pointer; }
.honor-dot span { width:7px; height:7px; border-radius:20px; background:#8e7c98; transition:width .3s,background .3s; }
.honor-dot[aria-current="true"] span { width:24px; background:#ff168d; box-shadow:0 0 12px #ff168d66; }
.honor-dot:focus-visible { outline:2px solid #ff8ec6; outline-offset:0; border-radius:8px; }
@media(max-width:650px) {
 .honors-carousel { width:calc(100vw - 32px); margin-left:calc(50% - 50vw + 16px); }
 .honors-carousel .honor-group-card { flex-basis:calc(100% - 30px); }
 .honor-dot { width:28px; }
}
.review-controls { gap:4px; }
.review-controls .honor-dot { min-width:32px; width:32px; height:36px; border:0; padding:0; background:transparent; }
.review-controls .honor-dot:hover { background:transparent; }
/* Icon-only hero playback control. */
.film-controls #motion-toggle { display:grid; place-items:center; width:44px; height:44px; padding:0; border-radius:50%; }
.motion-icon { display:block; width:14px; height:17px; border-left:5px solid currentColor; border-right:5px solid currentColor; }
#motion-toggle[data-paused="true"] .motion-icon { width:0; height:0; border:0; border-top:9px solid transparent; border-bottom:9px solid transparent; border-left:14px solid currentColor; margin-left:3px; }
.keyword-cloud .spatial-word { will-change:transform,opacity,filter; }
.teacher-explain-video { pointer-events:none; }
