@charset "UTF-8";
:root {
  --red:#b70d2b; --red-dark:#920c24; --ink:#222321; --paper:#f8f7f3;
  --muted:#646660; --line:#dddcd5; --max:1320px; --gutter:clamp(24px,5vw,88px);
  --section-space:56px;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:110px}
body {margin:0;background:var(--paper);color:var(--ink);font:18px/1.75 "Microsoft YaHei","PingFang SC","Noto Sans SC",Arial,sans-serif;-webkit-font-smoothing:antialiased}
body.modal-open {overflow:hidden}
button,input,select,textarea {font:inherit}
button,a {touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button {cursor:pointer;color:inherit;border:0}
a {color:inherit;text-decoration:none}
img {display:block;width:100%;height:auto}
figure,p,h1,h2,h3 {margin:0}
[hidden] {display:none!important}
::selection {color:white;background:var(--red)}
:focus-visible {outline:3px solid #cc8235;outline-offset:5px}
.skip-link {position:fixed;top:-90px;left:20px;z-index:200;background:white;padding:16px}
.skip-link:focus {top:15px}
.red {color:var(--red)}
.section-wrap {width:100%;max-width:calc(var(--max) + 2 * var(--gutter));padding:var(--section-space) var(--gutter);margin:auto}
.eyebrow {display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--red);font-size:15px;line-height:1.6;font-weight:700;letter-spacing:1px}
h2 {font-size:clamp(36px,3.8vw,56px);font-weight:850;letter-spacing:-1.7px;line-height:1.3}
.section-heading {margin-bottom:32px}
.section-heading>.eyebrow {margin-bottom:16px}
.heading-row {display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.section-intro {font-size:18px;line-height:1.9;color:var(--muted);max-width:440px}
.fine-print,.program-note {font-size:15px;line-height:1.85;color:var(--muted)}
.button {display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:56px;padding:15px 25px;background:var(--red);color:white;font-size:17px;font-weight:700;border-radius:3px;transition:background .2s,transform .2s}
.button:hover {background:var(--red-dark);transform:translateY(-2px)}
.button span {font-size:24px;font-weight:400;line-height:1}
.button.small {min-height:46px;padding:11px 19px;font-size:16px;gap:25px}
.button.full {width:100%}
.plain-link,.text-link {display:inline-flex;align-items:center;justify-content:space-between;gap:22px;font-size:17px;font-weight:700;border-bottom:1px solid currentColor;padding:0 0 6px;background:transparent}
.plain-link {color:var(--red)}
.plain-link span,.text-link span {transition:transform .2s}
.plain-link:hover span,.text-link:hover span {transform:translate(3px,-2px)}
.live-dot {display:inline-block;width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--red)}
.reveal {opacity:1}
.js-motion .reveal {opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.js-motion .reveal.visible {opacity:1;transform:none}

/* Quiet, legible navigation. */
.site-header {height:90px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--gutter);background:#f8f7f3f5;border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.brand {display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand img {width:48px;height:48px}
.brand strong {display:block;font-size:23px;line-height:1.3;font-weight:900;letter-spacing:1px}
.brand small {display:block;margin-top:3px;font-size:11px;font-weight:800;letter-spacing:1.5px;line-height:1.6}
.site-header nav {display:flex;align-items:center;gap:30px;font-size:16px;font-weight:700}
.site-header nav a {padding:14px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.site-header nav a:hover {color:var(--red);border-color:var(--red)}
.header-actions {display:flex;align-items:center;gap:16px}
.menu-toggle {display:none;width:44px;height:44px;padding:10px;background:transparent}
.menu-toggle span {display:block;width:24px;height:2px;background:var(--ink);margin:6px 0;transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child {transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child {transform:translateY(-4px) rotate(-45deg)}

/* Actual photography keeps its natural portrait framing. */
.intro-band {display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--red);color:white;padding:20px var(--gutter)}
.intro-band p {font-size:23px;letter-spacing:.4px}
.intro-band p strong {font-weight:750}
.intro-band>div {display:flex;align-items:center;gap:24px;font-size:17px}
.intro-band i {width:3px;height:3px;background:#ffffff80;border-radius:50%}
.intro-band>a {width:40px;height:40px;border:1px solid #ffffff70;border-radius:50%;display:grid;place-items:center}

/* Three complementary training directions. */
.course-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.course-card {padding:24px 32px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.course-card:first-child {padding-left:0}
.course-card:last-child {padding-right:0}
.course-card+.course-card {border-left:1px solid var(--line)}
.course-top {display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:18px;color:var(--red)}
.course-top>span {font-size:16px;font-weight:700}
.course-top svg {width:64px;height:64px}
.course-kicker {font-size:15px;color:var(--muted);margin-bottom:4px}
.course-card h3 {font-size:29px;letter-spacing:-.5px;font-weight:800;margin-bottom:15px}
.course-card>p:not(.course-kicker) {font-size:17px;line-height:1.9;color:var(--muted)}
.course-points {display:flex;flex-wrap:wrap;gap:7px 15px;padding:0;margin:18px 0 22px;list-style:none;font-size:15px}
.course-points li:before {content:"";display:inline-block;width:4px;height:4px;margin:0 7px 3px 0;background:var(--red)}
.course-card .plain-link {margin-top:auto;font-size:16px}
.program-note {margin-top:16px}

/* Native horizontal scrolling with progressive carousel controls. */
.moments {background:#edece5}
.photo-hint {font-size:15px;color:var(--muted);margin-top:13px}
.wall-toolbar {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.wall-toolbar>p {display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600}
.wall-controls {display:flex;gap:10px;align-items:center}
.round-button {display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid #bbbbb2;background:transparent;font-size:23px;transition:background .2s,color .2s}
.round-button:hover {background:var(--ink);border-color:var(--ink);color:white}
.rotation-toggle {padding:8px 12px;min-height:44px;background:transparent;font-size:15px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #babbb2;margin-right:10px}
.photo-track {display:flex;gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 3px 15px;margin:0 -3px;scroll-padding-inline:3px}
.photo-track::-webkit-scrollbar {display:none}
.photo-card {flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start}
.photo-card button {display:block;width:100%;text-align:left;background:transparent;padding:0;border-radius:2px}
.wall-image {position:relative;aspect-ratio:3/4;overflow:hidden;background:#d9ddd2}
.wall-image img {height:100%;width:100%;object-fit:cover;transition:transform .5s}
.photo-card button:hover img {transform:scale(1.035)}
.wall-image:after {content:"";position:absolute;inset:65% 0 0;pointer-events:none;background:linear-gradient(transparent,#0005)}
.photo-number {position:absolute;bottom:16px;left:18px;font-size:14px;font-weight:600;color:white;z-index:1;letter-spacing:1px}
.photo-open {position:absolute;right:14px;top:14px;width:37px;height:37px;display:grid;place-items:center;background:#ffffffed;border-radius:50%;font-size:22px}
.photo-card h3 {font-size:20px;font-weight:700;margin:17px 0 4px;line-height:1.6}
.photo-card p {font-size:15px;color:var(--muted)}
.wall-bottom {display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:20px}
.wall-dots {display:flex;gap:10px;align-items:center}
.wall-dot {display:grid;place-items:center;width:34px;height:34px;background:transparent;padding:0}
.wall-dot:after {content:"";display:block;width:7px;height:7px;background:#bbbcb3;border-radius:50%;transition:width .25s,background .25s}
.wall-dot[aria-current=true]:after {width:28px;border-radius:5px;background:var(--red)}
#wall-position {font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}
.gallery-foot {margin-top:16px;border-top:1px solid #d5d5cb;padding-top:12px;color:var(--muted);font-size:14px}
.photo-fallback {display:flex;gap:20px}.photo-fallback img {width:calc(50% - 10px);object-fit:cover}
.photo-empty {padding:40px 0;color:var(--muted)}
.photo-unavailable {position:absolute;inset:0;display:grid;place-items:center;padding:20px}
.wall-controls button:disabled {opacity:.45;cursor:default}

.classroom {display:grid;grid-template-columns:.95fr 1fr;gap:9%;align-items:center}
.classroom-photo {position:relative;min-width:0}
.classroom-photo>img {aspect-ratio:4/5;object-fit:cover;object-position:50% 70%}
.classroom-photo figcaption {padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:16px}
.classroom-photo figcaption span:last-child {font-size:14px;color:var(--muted)}
.classroom-copy h2 {margin:18px 0}
.learning-points {margin:20px 0 22px}
.learning-points>div {display:flex;gap:17px;border-top:1px solid var(--line);padding:16px 0}
.learning-points>div>span {font-size:14px;color:var(--red);padding-top:5px}
.learning-points h3 {font-size:20px;margin-bottom:5px}
.learning-points p {font-size:16px;line-height:1.8;color:var(--muted)}

.badminton-section {background:#e8ece5}
.badminton {display:grid;grid-template-columns:1fr 1.8fr;grid-template-areas:"copy photo";gap:clamp(24px,3.5vw,56px);align-items:center}
.badminton-copy {grid-area:copy;min-width:0}
.badminton-copy h2 {margin:18px 0;font-size:clamp(35px,3.3vw,50px)}
.badminton-topics {display:flex;flex-wrap:wrap;gap:12px 18px;margin:18px 0 22px;font-size:16px}
.badminton-topics span {border-bottom:1px solid #c1c8bb;padding-bottom:6px}
.badminton-copy .fine-print {margin-top:18px}
.badminton-gallery {grid-area:photo;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
.badminton-art {min-width:0;position:relative;overflow:hidden}
.badminton-art img {height:440px;object-fit:cover;object-position:50% 64%}
.badminton-detail img {object-position:54% 50%}
.badminton-art figcaption {position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:16px;color:white;background:#21362fe8;padding:17px 18px}
.badminton-art figcaption span {font-size:14px;color:#e0e9e1}
.badminton-photo-credit {grid-column:1/-1;font-size:14px;line-height:1.5;color:var(--muted)}

.venue-summary {display:grid;grid-template-columns:1fr 1.2fr .95fr;gap:clamp(24px,3vw,48px);align-items:center}
.venue-summary>* {min-width:0}
.venue-summary>.section-intro {justify-self:end}
.venue-media {display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:28px}
.venue-intro--mobile {display:none}
.venue-image,.venue-map {display:block;width:100%;position:relative;padding:0;background:#e3e5d9;min-width:0;overflow:hidden;text-align:left}
.venue-image img,.venue-map img {aspect-ratio:1584/993;object-fit:cover;object-position:50% 42%}
.venue-map img {object-fit:contain;background:#252c28}
.venue-image>span,.venue-map>span {padding:14px 18px;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px}
.venue-image b,.venue-map b {font-size:25px;font-weight:400;color:var(--red)}
.venue-location {min-width:0;scroll-margin-top:20px}

.social-section {border-top:1px solid var(--line)}
.social-card {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:36px;padding:36px 40px;background:#f0eee7;border:1px solid #d8b8bc;border-radius:12px}
.social-copy {min-width:0}
.social-copy h2 {font-size:clamp(34px,3.5vw,48px);margin:10px 0 14px}
.social-intro {font-size:20px;line-height:1.8;color:var(--muted)}
.social-features {display:flex;flex-wrap:wrap;gap:12px 30px;list-style:none;padding:0;margin:22px 0 26px}
.social-features li {display:flex;gap:10px;align-items:baseline;font-size:17px;line-height:1.7;color:var(--muted)}
.social-features li:before {content:"";width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--red)}
.social-actions {display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.social-actions .button {flex-shrink:0}
.social-actions p {font-size:15px;line-height:1.8;color:var(--muted)}
.social-events {display:grid;grid-template-columns:1fr;gap:16px;min-width:0}
.social-event {display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:18px;padding:20px;min-width:0;background:#fff;border:1px solid var(--line);border-radius:14px}
.social-event>img {width:104px;height:112px;object-fit:cover;object-position:50% 60%;border-radius:5px}
.social-event--camp>img {object-position:50% 68%}
.social-event--family>img {object-position:50% 55%}
.social-event-copy {min-width:0}
.social-event-meta {display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;font-size:14px;line-height:1.6;color:#757983;margin-bottom:10px}
.event-status {display:inline-block;padding:3px 9px;border-radius:20px;font-size:13px;white-space:nowrap}
.event-status--open {background:#e9f4ee;color:#237b55}
.event-status--soon {background:#fbf2e3;color:#a36a17}
.event-status--ended {background:#eeebe5;color:#77766f}
.social-event h3 {font-size:20px;line-height:1.5;font-weight:700;margin-bottom:9px}
.social-event-description {font-size:15px;line-height:1.8;color:#73757b}
.visit-title h2 {margin:18px 0}
.visit-title .button {margin-top:22px}
.venue-location>span {display:block;font-size:15px;color:var(--muted);margin-bottom:8px}
.venue-location h3 {font-size:22px;line-height:1.6;margin-bottom:6px}
.venue-location p {font-size:17px;line-height:1.9}
.map-link {display:inline-block;font-size:16px;color:var(--red);text-decoration:underline;text-underline-offset:5px;margin-top:15px}
.site-footer {padding:52px var(--gutter) 24px;background:#15171d;color:#b9bac0}
.footer-inner {max-width:var(--max);margin:auto}
.footer-grid {display:grid;grid-template-columns:1.4fr .7fr 1.15fr .75fr;gap:clamp(24px,3vw,48px);padding-bottom:40px}
.footer-grid>* {min-width:0}
.footer-brand {color:#fff;width:max-content;max-width:100%}
.footer-brand img {width:56px;height:56px}
.footer-brand strong {font-size:26px}
.footer-brand small {font-size:11px}
.footer-about>p {font-size:16px;line-height:1.9;margin:24px 0}
.footer-appointment {display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;padding:10px 18px;border:1px solid #eb4762;border-radius:8px;background:transparent;color:#ff7188;font-weight:700;font-size:16px;transition:background .2s,color .2s}
.footer-appointment:hover {background:var(--red);border-color:var(--red);color:#fff}
.footer-grid h2 {font-size:18px;line-height:1.6;letter-spacing:2px;color:#e1b369;font-weight:700;margin:2px 0 24px}
.footer-nav ul,.footer-contact-list {list-style:none;padding:0;margin:0}
.footer-nav li+li {margin-top:12px}
.footer-nav a {display:inline-block;font-size:16px;line-height:1.8;padding:2px 0}
.site-footer a:hover,.footer-consult:hover,.footer-wechat-copy:hover {color:#fff}
.footer-contact-list {display:grid;gap:18px;font-size:16px;line-height:1.75}
.footer-contact-list li {display:flex;align-items:flex-start;gap:12px;min-width:0}
.footer-contact-list li>svg {width:20px;height:20px;flex:0 0 20px;margin-top:4px;fill:none;stroke:#f05a70;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.footer-contact-list li>div {min-width:0;overflow-wrap:anywhere}
.footer-address {font-size:14px;line-height:1.8;margin-top:5px;color:#9699a2}
.footer-consult,.footer-wechat-copy {background:transparent;padding:0;text-align:left;font:inherit;overflow-wrap:anywhere}
.footer-hours>div>p {font-size:16px;line-height:1.8;white-space:pre-line}
.footer-wechat {margin-top:24px;width:148px;max-width:100%}
.footer-qr-frame {aspect-ratio:1;padding:10px;border-radius:10px;background:#fff;color:#737780;display:grid;place-items:center}
.footer-qr-frame img {width:100%;height:100%;object-fit:contain}
.footer-qr-pending {display:grid;justify-items:center;gap:12px;font-size:12px;text-align:center}
.footer-qr-pending svg {width:38px;height:38px;color:#858a94}
.footer-wechat figcaption {margin-top:10px;font-size:15px;line-height:1.6;text-align:center;color:#c7c8ce}
.footer-bottom {border-top:1px solid #30333c;display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:22px;font-size:14px;color:#9699a2}
.footer-legal {display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px}
.back-top {display:grid;place-items:center;border:1px solid #3a3e48;border-radius:8px;width:44px;height:44px;font-size:25px;flex-shrink:0}
.mobile-cta {display:none}

/* Existing lead form and lightbox contracts. */
dialog {border:0;padding:40px;width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:var(--paper);color:var(--ink);border-radius:5px}
dialog::backdrop {background:#101512b8;backdrop-filter:blur(7px)}
.dialog-close {position:absolute;top:12px;right:12px;width:44px;height:44px;font-size:30px;line-height:1;background:transparent;z-index:3}
.consult-brand {display:flex;align-items:center;gap:18px;margin-bottom:25px}
.consult-brand img {width:52px;height:52px}
.consult-brand span {font:italic 800 26px/1 Arial,sans-serif}
.consult-brand~h2 {font-size:34px;margin:12px 0}
#consult-interest {font-size:16px;color:var(--muted)}
.contact-qr {width:180px;max-width:100%;margin:15px auto}
.contact-phone {display:block;font-size:26px;font-weight:700;color:var(--red);margin:12px 0}
.copy-contact {padding:10px 15px;border:1px solid var(--line);background:transparent;font-size:16px}
.image-dialog {padding:0;width:min(900px,calc(100% - 28px));color:white;background:#1a211c}
.image-dialog.is-map {width:min(1280px,calc(100% - 28px))}
.image-dialog.is-map #lightbox-image {height:72dvh;object-fit:contain}
.lightbox-original {display:inline-flex;margin-top:14px;padding:5px 0;color:#fff;border-bottom:1px solid #ffffff70;font-size:15px}
.image-dialog .dialog-close {color:white;background:#111b;border:1px solid #ffffff60;border-radius:50%}
#lightbox-image {width:100%;height:min(70dvh,750px);object-fit:contain;background:#111}
.lightbox-caption {padding:22px 28px}
.lightbox-caption h2 {font-size:23px;letter-spacing:0}
.lightbox-caption p {font-size:16px;color:#c4cbbf;margin-top:10px;line-height:1.8}
.toast {position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);z-index:150;max-width:90vw;padding:12px 20px;background:#151919;color:white;text-align:center;font-size:16px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.show {opacity:1;transform:translate(-50%,0)}


@media(max-width:1100px) {
  .site-header {gap:18px}
  .site-header nav {gap:18px}
  .brand strong {font-size:21px}
  .brand small {font-size:10px}
  .site-header .button {padding:11px 14px;gap:15px}
  .intro-band p {font-size:20px}
  .intro-band>div {gap:15px;font-size:16px}
  .course-card {padding:22px 25px}
  .photo-track {gap:20px}
  .photo-card {flex-basis:calc((100% - 40px)/3)}
  .photo-card h3 {font-size:18px}
  .classroom {gap:6%}
}
@media(max-width:1000px) {
  .social-card {grid-template-columns:1fr;gap:28px}
  .social-events {gap:16px}
  .social-event {gap:12px;padding:16px}
  .social-event h3 {font-size:18px}
  .footer-grid {grid-template-columns:1.15fr 1fr;gap:32px 44px}
  .footer-about>p {margin:18px 0}
  .footer-bottom {flex-wrap:wrap}
  .badminton {grid-template-columns:1fr 1.6fr;gap:24px}
  .badminton-gallery {gap:12px}
}
@media(max-width:850px) {
  :root {--gutter:30px;--section-space:44px}
  .site-header {height:76px}
  .site-header nav {display:none;position:absolute;top:76px;left:0;right:0;padding:15px var(--gutter) 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 20px 25px #0001}
  .site-header nav.open {display:flex;flex-direction:column;align-items:stretch;gap:0}
  .menu-toggle {display:block}
  .desktop-break {display:none}
  .intro-band {padding-top:18px;padding-bottom:18px;flex-wrap:wrap;gap:12px}
  .intro-band p {flex:1 1 60%;font-size:20px}
  .intro-band>div {order:3;width:100%;font-size:15px}
  .intro-band>a {width:34px;height:34px}
  h2 {font-size:38px}
  .heading-row {gap:30px}
  .section-intro {font-size:16px}
  .course-card {padding:20px 18px}
  .course-card h3 {font-size:25px}
  .course-card>p:not(.course-kicker) {font-size:16px}
  .course-points {gap:6px 12px;font-size:14px}
  .course-top svg {width:52px;height:52px}
  .photo-card {flex-basis:calc((100% - 20px)/2.2)}
  .classroom {gap:6%;align-items:start}
  .classroom-photo>img {aspect-ratio:3/4}
  .classroom-photo figcaption {display:block;font-size:15px}
  .classroom-photo figcaption>span {display:block}
  .classroom-copy h2 {font-size:33px}
  .learning-points {margin:20px 0}
  .learning-points>div {padding:15px 0;gap:12px}
  .learning-points h3 {font-size:18px}
  .badminton-copy h2 {font-size:34px}
  .badminton-art img {height:400px}
  .venue-summary {grid-template-columns:1fr 1.2fr;gap:22px 28px}
  .venue-summary>.section-intro {grid-column:1/-1;justify-self:start;max-width:none}
  .social-card {padding:28px}
  .visit-title h2 {font-size:37px}
  .venue-location h3 {font-size:19px}
}
@media(max-width:600px) {
  :root {--gutter:22px;--section-space:36px}
  body {font-size:16px}
  html {scroll-padding-top:90px}
  .site-header {height:72px;padding:0 20px;gap:12px}
  .site-header .header-actions>.button {display:none}
  .site-header nav {top:72px;font-size:17px}
  .brand img {width:43px;height:43px}
  .brand strong {font-size:21px}
  .brand small {font-size:10px}
  .brand {gap:10px}
  .section-heading {margin-bottom:24px}
  .section-heading>.eyebrow {margin-bottom:14px}
  .eyebrow {font-size:14px;letter-spacing:.5px}
  h2 {font-size:35px;letter-spacing:-1px;line-height:1.35}
  .heading-row {display:block}
  .heading-row .section-intro {margin-top:20px}
  .intro-band {padding-top:18px;padding-bottom:18px}
  .intro-band p {font-size:18px}
  .intro-band>div {font-size:15px;gap:19px}
  .intro-band>a {width:32px;height:32px}
  .course-grid {display:block}
  .course-card,.course-card:first-child,.course-card:last-child {padding:20px 0 22px}
  .course-card+.course-card {border-left:0;border-top:1px solid var(--line)}
  .course-top {margin-bottom:12px}
  .course-top svg {width:48px;height:48px}
  .course-card h3 {font-size:28px}
  .course-card>p:not(.course-kicker) {font-size:17px}
  .course-points {font-size:15px;margin:16px 0 20px}
  .program-note {font-size:15px}
  .wall-toolbar {align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:17px}
  .wall-toolbar>p {font-size:15px}
  .wall-controls {width:100%}
  .rotation-toggle {margin-right:auto;font-size:15px;padding-left:0}
  .photo-track {gap:16px}
  .photo-card {flex-basis:81%}
  .photo-card h3 {font-size:19px;margin-top:16px}
  .photo-card p {font-size:15px}
  .wall-bottom {margin-top:8px}
  .wall-dots {gap:4px}
  .gallery-foot {font-size:14px;margin-top:14px}
  .classroom {grid-template-columns:1fr;gap:24px}
  .classroom-photo>img {aspect-ratio:4/4.3;object-position:50% 78%}
  .classroom-photo figcaption {display:flex;flex-wrap:wrap}
  .classroom-copy h2 {font-size:35px}
  .learning-points h3 {font-size:20px}
  .badminton {grid-template-columns:1fr;grid-template-areas:"copy" "photo";gap:24px}
  .badminton-copy h2 {font-size:35px}
  .badminton-topics {font-size:15px}
  .badminton-art img {height:280px}
  .badminton-art figcaption {font-size:15px;padding:12px 10px;gap:4px}
  .venue-summary {grid-template-columns:1fr;gap:20px}
  .venue-media {grid-template-columns:1fr;gap:20px}
  .venue-summary>.venue-intro--desktop {display:none}
  .venue-intro--mobile {display:block;max-width:none}
  .venue-image img {aspect-ratio:4/3}
  .venue-image>span,.venue-map>span {padding:12px 16px;font-size:15px}
  .image-dialog.is-map #lightbox-image {height:auto;max-height:70dvh;aspect-ratio:1584/993}
  .social-card {padding:24px 20px}
  .social-events {grid-template-columns:1fr;gap:14px}
  .social-event {display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;padding:14px}
  .social-event>img {width:72px;height:100px}
  .social-event-meta {flex-direction:row;flex-wrap:wrap;align-items:center;font-size:13px;gap:6px 8px}
  .social-event h3 {font-size:18px;min-height:0}
  .social-event-description {font-size:14px;line-height:1.75}
  .social-copy h2 {font-size:34px}
  .social-intro {font-size:18px}
  .social-features {display:grid;gap:10px;margin:18px 0 22px}
  .social-features li {font-size:16px}
  .social-actions {gap:14px}
  .visit-title h2 {font-size:37px}
  .venue-location h3 {font-size:21px}
  .site-footer {padding:34px var(--gutter) 112px}
  .footer-grid {grid-template-columns:.8fr 1.2fr;gap:30px 24px;padding-bottom:26px}
  .footer-about {grid-column:1/-1}
  .footer-about>p {font-size:15px;margin:18px 0}
  .footer-grid h2 {font-size:17px;margin-bottom:17px}
  .footer-contact-list {font-size:15px;gap:14px}
  .footer-contact-list li {gap:8px}
  .footer-contact-list li>svg {width:18px;height:18px;flex-basis:18px}
  .footer-nav a {font-size:15px}
  .footer-nav li+li {margin-top:10px}
  .footer-hours {grid-column:1/-1;display:grid;grid-template-columns:1fr 136px;gap:24px;align-items:start;border-top:1px solid #30333c;padding-top:26px}
  .footer-hours>div>p {font-size:15px}
  .footer-wechat {width:136px;margin-top:0}
  .footer-bottom {display:grid;grid-template-columns:1fr 44px;font-size:12px;gap:14px 10px;padding-top:20px}
  .footer-bottom>p {grid-column:1/-1}
  .footer-legal {gap:6px 18px}
  .mobile-cta {display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#f8f7f3f5;border-top:1px solid var(--line);backdrop-filter:blur(14px)}
  .mobile-cta>span {font-size:14px;font-weight:700;line-height:1.5}
  .mobile-cta small {display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px}
  .mobile-cta .button {font-size:15px;padding:11px 15px;min-height:44px;white-space:nowrap}
  dialog {padding:30px 24px}
  .image-dialog {padding:0}
  .lightbox-caption {padding:20px}
  .lightbox-caption h2 {font-size:21px}
  .lightbox-caption p {font-size:15px}
  .toast {bottom:95px}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*:before,*:after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js-motion .reveal {opacity:1;transform:none}
}

/* A single continuous arena image, with the game kept clear of the headline. */
.hero {position:relative;isolation:isolate;overflow:hidden;background:#101215;color:#fff}
.hero-inner {position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;min-height:clamp(680px,calc(100svh - 90px),960px);max-width:1800px;margin:auto;padding:clamp(60px,7vh,100px) var(--gutter) 30px;pointer-events:none}
.hero-inner a,.hero-inner button,.hero-badge {pointer-events:auto}
.hero-copy {width:max-content;max-width:100%}
.hero .eyebrow {color:#fff;font-size:17px;letter-spacing:1.2px}
.hero .live-dot {width:9px;height:9px;background:#f53652;box-shadow:0 0 0 6px #f5365220}
.hero-location {margin-left:12px;color:#e2e0da;font-size:14px;letter-spacing:2px}
.hero h1 {width:max-content;max-width:100%;font-size:clamp(62px,5.5vw,100px);line-height:1.19;letter-spacing:-3px;font-weight:900;margin:28px 0 24px;white-space:nowrap;text-shadow:0 2px 26px #0003}
.hero-title-text>span {color:#ff3755}
.hero h1.is-art-ready {width:clamp(420px,38vw,650px);margin:20px 0 24px;line-height:0}
.hero-title-art {width:100%;height:auto}
.hero h1.is-art-ready>.hero-title-text {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hero-manifesto {font-size:20px;line-height:1.9;color:#f0eeea;text-shadow:0 1px 12px #0008}
.hero-actions {display:flex;align-items:center;flex-wrap:wrap;gap:26px;margin-top:30px}
.hero-actions .button {min-height:58px;background:#c5092f;font-size:18px;padding:16px 26px}
.hero-actions .button:hover {background:#e4123c}
.hero-actions .text-link {font-size:17px;border-color:#ffffff80}
.hero-visual {position:absolute;inset:0;margin:0;z-index:0}
.hero-photo {position:absolute;inset:0;background:#101215}
/* Preserve the scoreboard and both ends of the court on wide/short windows.
   The dark left space becomes the headline backdrop instead of cropping the photo. */
.hero-photo>img,.hero-photo>video {width:100%;height:100%;object-fit:contain;object-position:100% 50%;filter:brightness(1.25)}
.hero-photo>img {position:absolute;top:0;right:0;width:auto;max-width:100%;mask-image:linear-gradient(90deg,transparent,#000 22%)}
.hero-photo>video {position:absolute;inset:0}
.hero-photo:after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0a0c10d9 0%,#0a0c108c 21%,#0a0c1026 44%,transparent 65%),linear-gradient(0deg,#080a0ef0 0%,transparent 22%,transparent 85%,#080a0e33 100%);pointer-events:none}
.video-toggle {position:absolute;top:24px;right:24px;z-index:3;background:#111c;color:white;padding:10px 15px;font-size:16px;border:1px solid #ffffff80}
.hero-credit {position:absolute;right:var(--gutter);bottom:92px;z-index:1;color:#efeee9;font-size:14px;line-height:1.6;text-shadow:0 1px 8px #000}
.hero-bottom {display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #ffffff40;padding-top:22px;margin-top:72px;font-size:16px;color:#fff}
.hero-bottom p {display:flex;align-items:center;gap:12px}
.hero-ball {color:#ff3755;font-size:25px;line-height:1}
.hero-signature {font-size:17px;font-weight:800;font-style:italic;letter-spacing:3px}
.hero-bottom>a {display:flex;gap:24px;align-items:center}
.hero-bottom>a>span {font-size:23px}
@media(max-width:1100px) {
  .hero-inner {min-height:740px;padding-top:58px}
  .hero h1 {font-size:68px}
  .hero-manifesto {font-size:18px}
  .hero-signature {display:none}
  .hero-credit {bottom:90px}
}
@media(max-width:850px) {
  .hero-inner {min-height:760px;padding-top:46px}
  .hero h1 {font-size:62px}
  .hero h1.is-art-ready {width:430px}
  .hero-photo>img,.hero-photo>video {object-position:57% 50%}
  .hero-copy {width:100%}
  .hero-credit {font-size:13px}
}
@media(min-width:601px) and (max-width:850px) {
  .hero-photo>img {top:50%;width:100%;height:auto;transform:translateY(-50%);mask-image:linear-gradient(180deg,transparent,#000 14%,#000 84%,transparent)}
}
/* On phones, preserve the whole court instead of cropping it into a portrait. */
@media(max-width:600px) {
  .hero-inner {min-height:0;padding:32px var(--gutter) 20px}
  .hero .eyebrow {font-size:15px;gap:10px;letter-spacing:.4px}
  .hero-location {font-size:12px;letter-spacing:1.5px;margin-left:auto}
  .hero h1 {font-size:clamp(45px,11.7vw,67px);letter-spacing:-1.8px;line-height:1.2;margin:24px 0 20px}
  .hero h1.is-art-ready {width:min(100%,440px);margin:24px 0 20px}
  .hero-manifesto {font-size:17px;line-height:1.8}
  .hero-actions {gap:21px;margin-top:25px}
  .hero-actions .button {min-height:52px;padding:13px 19px;font-size:16px;gap:23px}
  .hero-actions .text-link {font-size:15px;gap:11px}
  .hero-visual {top:auto;height:auto;aspect-ratio:3 / 2;bottom:58px}
  .hero-photo>img,.hero-photo>video {object-fit:cover;object-position:50% 50%;filter:brightness(1.4)}
  .hero-photo>img {width:100%;mask-image:none}
  /* Fade only the outer edge; keep the overhead scoreboard fully visible. */
  .hero-photo:after {background:linear-gradient(180deg,#101215 0%,transparent 4%,transparent 72%,#101215 100%)}
  .hero-credit {right:var(--gutter);bottom:13px;font-size:12px}
  .hero-bottom {margin-top:calc(100vw * .48 + 48px);padding-top:15px;gap:10px;font-size:14px}
  .hero-bottom>a {font-size:0;gap:0}
  .hero-bottom>a>span {font-size:22px}
  .hero-ball {font-size:22px}
  .video-toggle {top:45px;right:20px;font-size:14px}
}

/* Portraits stay lightweight until the visitor chooses a three-dimensional view. */
.moments-feature {display:grid;grid-template-columns:.9fr 1.25fr;gap:clamp(32px,5vw,80px);align-items:center;margin-bottom:32px}
.moments-copy>.eyebrow {margin-bottom:16px}
.moments-copy .section-intro {margin-top:20px}
.moments-copy .photo-hint {font-size:16px;margin-top:18px}
.student-cards {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.student-card {display:block;min-width:0;text-align:left;padding:0;background:transparent;border-radius:4px}
.student-image {display:block;position:relative;overflow:hidden;aspect-ratio:1;background:#d4d4d5;border-radius:4px}
.student-image img {width:100%;height:100%;object-fit:contain;transition:transform .35s}
.student-card:hover img {transform:scale(1.035)}
.student-orbit {position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:46px;height:46px;background:#f8f7f3ee;border-radius:50%;font-size:16px;font-weight:750;border:1px solid #fff}
.student-caption {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.student-caption strong {font-size:20px}
.student-caption>span {font-size:15px;color:var(--red);white-space:nowrap}
.student-dialog {width:min(880px,calc(100% - 32px));padding:28px 30px 22px;overflow:auto}
.student-dialog-head {padding-right:42px}
.student-dialog-head .eyebrow {font-size:13px;margin-bottom:5px}
.student-dialog h2 {font-size:26px;line-height:1.4;letter-spacing:0}
.student-switch {display:flex;gap:8px;margin-top:18px}
.student-switch button {min-height:42px;padding:7px 16px;background:transparent;border:1px solid #d1d0c8;border-radius:30px;font-size:16px}
.student-switch button[aria-pressed=true] {background:var(--ink);border-color:var(--ink);color:white}
.student-stage {position:relative;height:clamp(260px,54dvh,520px);margin-top:14px;overflow:hidden;border-radius:4px;background:radial-gradient(ellipse,#fff,#eeece6 75%)}
.student-stage model-viewer {position:absolute;inset:0;width:100%;height:100%;--poster-color:transparent;opacity:0}
.student-poster {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .2s}
.student-stage.is-ready model-viewer {opacity:1}
.student-stage.is-ready .student-poster {opacity:0;pointer-events:none}
.student-stage[aria-busy=true]:after {content:"";position:absolute;left:calc(50% - 15px);top:calc(50% - 15px);width:30px;height:30px;border:3px solid #fff9;border-top-color:var(--red);border-radius:50%;animation:student-spin .8s linear infinite;pointer-events:none}
.student-viewer-bottom {display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:14px}
.student-status {font-size:15px;color:var(--muted)}
.student-tools {display:flex;gap:10px;flex-wrap:wrap}
.student-tools button,.student-retry {min-height:44px;padding:8px 13px;border:1px solid #cecec6;background:transparent;border-radius:3px;font-size:15px}
.student-tools button:disabled {opacity:.4;cursor:default}
.student-retry {color:var(--red);margin-top:10px}
@keyframes student-spin {to {transform:rotate(360deg)}}
@media(max-width:1000px) {
  .moments-feature {grid-template-columns:1fr;gap:24px}
  .moments-copy {max-width:none}
  .student-cards {max-width:720px;width:100%}
}
@media(max-width:600px) {
  .moments-feature {margin-bottom:24px;row-gap:20px}
  .student-cards {gap:12px}
  .student-caption {display:block;margin-top:10px}
  .student-caption strong {display:block;font-size:18px}
  .student-caption>span {display:block;font-size:14px;margin-top:2px}
  .student-orbit {right:8px;bottom:8px;width:36px;height:36px;font-size:14px}
  .student-dialog {width:calc(100% - 20px);padding:20px 16px 18px;max-height:calc(100dvh - 20px)}
  .student-dialog h2 {font-size:21px}
  .student-stage {height:clamp(220px,48dvh,460px)}
  .student-viewer-bottom {justify-content:center;text-align:center;gap:8px}
}
@media(prefers-reduced-motion:reduce) {
  .student-image img,.student-poster {transition:none}
  .student-stage[aria-busy=true]:after {animation:none}
}

/* Weekly schedule: the sample status remains visible until a real timetable is supplied. */
.schedule-section {background:#f0eee7;border-top:1px solid var(--line)}
.schedule-layout {display:grid;grid-template-columns:minmax(0,1fr) clamp(270px,24vw,320px);grid-template-areas:"overview invitation" "panel panel" "footer footer";gap:22px clamp(28px,4vw,64px);align-items:start}
.schedule-overview {grid-area:overview;min-width:0}
.schedule-invitation {grid-area:invitation;min-width:0;padding-left:24px;border-left:1px solid #d6d3c8}
.schedule-invitation .eyebrow {letter-spacing:.4px}
.schedule-invitation h2 {font-size:clamp(32px,2.7vw,40px);letter-spacing:-1px;margin:12px 0}
.schedule-invitation .section-intro {font-size:18px;line-height:1.8}
.schedule-invitation .button {margin-top:18px;gap:20px;padding:14px 20px}
.schedule-heading {margin-bottom:22px}
.schedule-title-row {display:flex;align-items:center;flex-wrap:wrap;gap:16px clamp(28px,5vw,72px);margin-bottom:12px}
.schedule-heading .eyebrow {margin-bottom:12px}
.schedule-heading h2 {font-size:clamp(32px,3vw,44px);margin:0}
.schedule-heading .section-intro {max-width:none}
.schedule-all {display:inline-flex;align-items:center;gap:22px;flex-shrink:0;background:#fff;border:1px solid #d6d3c8;border-radius:6px;padding:12px 20px;min-height:48px;font-size:17px;font-weight:600}
.schedule-all:hover,.schedule-all[aria-pressed=true] {color:var(--red);border-color:var(--red)}
.schedule-notice {display:flex;align-items:center;gap:12px;margin-bottom:20px;color:var(--muted);font-size:16px;line-height:1.6}
.schedule-notice>span {flex-shrink:0;padding:3px 9px;border:1px solid #d0c5ae;border-radius:4px;color:#705b31;font-size:14px;font-weight:700}
.schedule-days {display:flex;gap:10px;flex-wrap:wrap}
.schedule-day {padding:10px 24px;min-height:48px;border:1px solid #d6d3c8;background:#fff;border-radius:28px;font-size:18px;transition:background .2s,color .2s}
.schedule-day:hover {border-color:var(--red);color:var(--red)}
.schedule-day[aria-pressed=true] {background:var(--red);border-color:var(--red);color:#fff}
.schedule-selection {font-size:15px;color:var(--muted);margin:16px 0 0;min-height:26px}
.schedule-panel {grid-area:panel;min-width:0;border:1px solid #dedbd2;background:#fff;border-radius:10px;overflow:hidden}
.schedule-list {margin:0;padding:0;list-style:none}
.schedule-row {display:grid;grid-template-columns:155px 108px minmax(0,1fr) 120px 110px;gap:22px;align-items:center;padding:21px 26px;min-height:88px}
.schedule-row+.schedule-row {border-top:1px solid #e6e3db}
.schedule-time {font-size:18px;color:#62655f;font-variant-numeric:tabular-nums;white-space:nowrap}
.schedule-sport {display:inline-flex;gap:7px;align-items:center;justify-self:start;border-radius:4px;padding:4px 10px;font-size:15px;color:#ac1730;background:#f9e9ed;white-space:nowrap}
.schedule-sport svg {width:17px;height:17px;flex-shrink:0}
.schedule-sport.is-badminton {color:#27677a;background:#e8f1f3}
.schedule-course {font-size:20px;line-height:1.5;font-weight:600;min-width:0}
.schedule-coach,.schedule-availability {font-size:16px;color:var(--muted)}
.schedule-availability {display:flex;align-items:center;gap:8px;justify-self:end;white-space:nowrap}
.schedule-availability:before {content:"";width:7px;height:7px;border-radius:50%;background:#a99e88}
.schedule-group+.schedule-group {border-top:1px solid #dedbd2}
.schedule-group h3 {font-size:17px;padding:12px 26px;background:#f7f6f1;color:var(--red)}
.schedule-empty {padding:30px 26px;font-size:17px;color:var(--muted)}
.schedule-footer {grid-area:footer;display:flex;justify-content:space-between;gap:20px;align-items:center}
.schedule-footer p {font-size:15px;color:var(--muted)}
.schedule-footer .plain-link {font-size:16px;flex-shrink:0}
@media(max-width:1100px) {
  .schedule-title-row {column-gap:24px}
  .schedule-day {padding-inline:18px}
  .schedule-row {grid-template-columns:140px 100px minmax(0,1fr) 105px;gap:14px;padding:18px 22px}
  .schedule-coach {grid-column:3;grid-row:2;font-size:15px}
  .schedule-availability {grid-column:4;grid-row:1/3}
  .schedule-time,.schedule-sport {grid-row:1/3}
  .schedule-course {grid-column:3;grid-row:1;font-size:19px}
}
@media(max-width:850px) {
  .schedule-layout {grid-template-columns:minmax(0,1fr);grid-template-areas:"overview" "panel" "invitation" "footer"}
  .schedule-invitation {display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:center;border-left:0;border-top:1px solid #d6d3c8;padding:20px 0 0}
  .schedule-invitation .eyebrow,.schedule-invitation h2,.schedule-invitation .section-intro {grid-column:1}
  .schedule-invitation .button {grid-column:2;grid-row:2/4;margin-top:0}
}
@media(max-width:600px) {
  .schedule-invitation {display:block}
  .schedule-invitation .button {margin-top:18px}
  .schedule-heading {margin-bottom:18px}
  .schedule-title-row {gap:12px 22px}
  .schedule-heading h2 {font-size:32px}
  .schedule-all {font-size:16px;padding:9px 15px;min-height:44px}
  .schedule-notice {align-items:flex-start;font-size:15px;gap:9px;margin-bottom:16px}
  .schedule-days {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .schedule-day {padding:8px 5px;font-size:16px;min-height:44px}
  .schedule-row {grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:17px 18px;min-height:0}
  .schedule-time {grid-column:1;grid-row:1;font-size:17px}
  .schedule-sport {grid-column:2;grid-row:1;justify-self:end;font-size:14px;padding:3px 7px}
  .schedule-course {grid-column:1/-1;grid-row:2;font-size:19px;margin-top:3px}
  .schedule-coach {grid-column:1;grid-row:3;font-size:15px}
  .schedule-availability {grid-column:2;grid-row:3;font-size:14px}
  .schedule-footer {align-items:flex-start;flex-direction:column;gap:12px}
  .schedule-group h3 {padding:10px 18px}
  .schedule-empty {padding:24px 18px;font-size:16px}
}

/* Activity cards link to full, independently addressable detail pages. */
.social-event {transition:border-color .2s,box-shadow .2s}
.social-event:hover {border-color:var(--red);box-shadow:0 6px 20px #58222a0c}
.social-event:hover h3 {color:var(--red)}
.social-event-more {display:inline-flex;align-items:center;gap:12px;margin-top:9px;font-size:14px;line-height:1.5;font-weight:700;color:var(--red)}
.event-back {font-size:15px;font-weight:700;color:var(--red);padding:10px 0}
.event-detail>.eyebrow {margin-bottom:24px}
.event-detail-layout {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:start}
.event-detail-photo {position:sticky;top:122px;overflow:hidden;border-radius:10px;background:#e7e8df}
.event-detail-photo img {width:100%;max-height:650px;aspect-ratio:4/5;object-fit:cover;object-position:50% 55%}
.event-detail-photo--camp img {object-position:50% 65%}
.event-detail-photo figcaption {padding:12px 18px;font-size:14px;color:var(--muted)}
.event-detail-content {min-width:0}
.event-detail-meta {display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:15px;color:var(--muted)}
.event-detail h1 {font-size:clamp(30px,3.5vw,48px);line-height:1.35;letter-spacing:-1px;margin:16px 0 18px}
.event-detail-intro {font-size:18px;line-height:1.9;color:var(--muted)}
.event-facts {display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;margin:26px 0;padding:22px 24px;background:#f0eee7;border:1px solid var(--line);border-radius:8px}
.event-facts dt {font-size:14px;color:var(--muted);margin-bottom:5px}
.event-facts dd {margin:0;font-size:16px;line-height:1.7;font-weight:700}
.event-detail-summary {font-size:18px;line-height:1.85;font-weight:700}
.event-detail-sections {display:grid;gap:22px;margin:26px 0}
.event-detail-sections h2 {font-size:21px;line-height:1.5;letter-spacing:0;margin-bottom:7px}
.event-detail-sections p {font-size:16px;line-height:1.9;color:var(--muted)}
.event-detail-action {border-top:1px solid var(--line);padding-top:24px}
.event-detail-action>p {margin-top:14px;font-size:14px;line-height:1.8;color:var(--muted)}
.event-related {border-top:1px solid var(--line);margin-top:40px;padding-top:28px}
.event-related h2 {font-size:22px;letter-spacing:0;margin-bottom:18px}
.event-related>div {display:grid;grid-template-columns:1fr 1fr;gap:18px}
.event-related a {display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:17px;font-weight:700}
.event-related a:hover {border-color:var(--red);color:var(--red)}
.event-footer {display:flex;justify-content:space-between;gap:20px;padding:24px var(--gutter);font-size:14px;background:#15171d;color:#d0d0cf}
@media(max-width:850px) {
  .event-detail-layout {grid-template-columns:1fr}
  .event-detail-photo {position:static}
  .event-detail-photo img {aspect-ratio:16/9;max-height:360px}
}
@media(max-width:600px) {
  .event-page .site-header {height:76px;gap:12px}
  .event-page .brand img {width:38px;height:38px}
  .event-page .brand strong {font-size:19px}
  .event-page .brand small {font-size:9px;letter-spacing:1px}
  .event-back {font-size:13px;white-space:nowrap}
  .event-detail>.eyebrow {margin-bottom:18px;font-size:13px}
  .event-detail h1 {font-size:30px}
  .event-facts {gap:18px;padding:18px}
  .event-facts dd {font-size:15px}
  .event-related>div {grid-template-columns:1fr}
  .event-related a {font-size:16px;padding:16px 18px}
  .event-detail-action .button {width:100%}
  .event-footer {font-size:13px}
}

/* Independently addressable introductions for the three training stages. */
.course-stage-nav {display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.course-stage-nav a {display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:8px 19px;border-radius:3px;font-size:15px;font-weight:700;background:#fff}
.course-stage-nav a span {font-size:12px;color:var(--muted)}
.course-stage-nav a[aria-current=page] {background:var(--red);color:#fff;border-color:var(--red)}
.course-stage-nav a[aria-current=page] span {color:#ffffffb8}
.course-stage-nav a:hover {border-color:var(--red)}
.course-hero {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center}
.course-hero-copy {min-width:0}
.course-hero h1 {font-size:clamp(38px,4.4vw,60px);line-height:1.25;letter-spacing:-1.5px;margin:12px 0 20px}
.course-tagline {font-size:clamp(20px,2vw,25px);line-height:1.6;font-weight:750;margin-bottom:14px}
.course-lead {font-size:17px;line-height:1.95;color:var(--muted);max-width:620px}
.course-tags {display:flex;flex-wrap:wrap;gap:8px 18px;padding:0;list-style:none;margin:20px 0 26px;font-size:14px}
.course-tags li {padding-bottom:4px;border-bottom:1px solid #b70d2b45}
.course-hero-photo {overflow:hidden;background:#e8e9df;border-radius:5px}
.course-hero-photo img {width:100%;aspect-ratio:1/1;max-height:480px;object-fit:cover;object-position:50% 67%}
.course-hero-photo--advanced img {object-position:50% 68%}
.course-hero-photo figcaption {padding:9px 16px;font-size:13px;color:var(--muted)}
.course-outline {display:flex;flex-wrap:wrap;gap:12px 30px;border-block:1px solid var(--line);padding:17px 0;margin:32px 0 0;font-size:15px;font-weight:700}
.course-outline a:hover {color:var(--red)}
.course-block {padding:36px 0;scroll-margin-top:105px}
.course-block+.course-block {border-top:1px solid var(--line)}
.course-block h2,.course-contact h2,.course-related h2 {font-size:clamp(23px,2.4vw,30px);line-height:1.5;letter-spacing:-.4px}
.course-block .eyebrow {font-size:13px;margin-bottom:10px}
.course-block p:not(.eyebrow),.course-focus dd {font-size:16px;line-height:1.95;color:var(--muted)}
.course-block-heading {margin-bottom:22px}
.course-block-heading>p:last-child:not(.eyebrow) {margin-top:10px}
.course-fit {display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:40px;align-items:center}
.course-fit h2 {margin-bottom:14px}
.course-focus {padding:22px 24px;margin:0;background:#f0eee7;border-left:3px solid var(--red)}
.course-focus>div+div {border-top:1px solid var(--line);margin-top:18px;padding-top:18px}
.course-focus dt {font-weight:750;font-size:15px;margin-bottom:5px}
.course-focus dd {margin:0}
.course-learning-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.course-learning-grid article {border-top:3px solid var(--red);padding:18px 0 0}
.course-module-number {font-size:14px;color:var(--red);font-weight:700}
.course-learning-grid h3 {font-size:21px;line-height:1.5;margin:10px 0}
.course-learning-grid .course-example {font-size:14px;margin-top:17px;padding-top:12px;border-top:1px solid var(--line)}
.course-flow {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:0;margin:0;list-style:none}
.course-flow li {padding:18px 20px;background:#f0eee7}
.course-flow li>span {display:inline-flex;color:var(--red);font-size:14px;font-weight:750;margin-bottom:9px}
.course-flow h3 {font-size:18px;line-height:1.6;margin-bottom:7px}
.course-block .course-flow p {font-size:15px}
.course-progress {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}
.course-progress h2 {max-width:600px}
.course-next {margin-top:16px}
.course-progress ul {padding:0;margin:0;list-style:none}
.course-progress li {position:relative;padding:13px 0 13px 23px;font-size:16px;line-height:1.8;border-bottom:1px solid var(--line)}
.course-progress li:before {content:"";width:6px;height:6px;position:absolute;left:0;top:24px;background:var(--red);border-radius:50%}
.course-questions details {border-bottom:1px solid var(--line)}
.course-questions summary {padding:17px 0;cursor:pointer;font-size:17px;font-weight:700}
.course-questions details[open] summary {color:var(--red)}
.course-questions details p {max-width:980px;padding:0 0 19px 20px}
.course-contact {display:flex;align-items:center;justify-content:space-between;gap:32px;background:#222922;color:#fff;padding:28px 32px;margin:8px 0 34px;border-radius:5px}
.course-contact>div {max-width:740px}
.course-contact .eyebrow {font-size:13px;color:#eea7b3;margin-bottom:8px}
.course-contact p:not(.eyebrow) {font-size:15px;line-height:1.9;color:#d4d7cf;margin-top:10px}
.course-contact .button {flex-shrink:0}
.course-related h2 {font-size:23px;margin-bottom:17px}
.course-related>div {display:grid;grid-template-columns:1fr 1fr;gap:24px}
.course-related a {display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line);padding:20px 24px;background:#fff;border-radius:4px}
.course-related small {display:block;font-size:12px;color:var(--red)}
.course-related strong {display:block;font-size:21px;line-height:1.5;margin:4px 0}
.course-related a>span>span {display:block;font-size:14px;line-height:1.7;color:var(--muted)}
.course-related b {font-size:25px;font-weight:400;color:var(--red)}
.course-related a:hover {border-color:var(--red)}
@media(max-width:950px) {
  .course-hero {gap:30px}
  .course-fit,.course-progress {gap:28px}
  .course-flow {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .course-contact {align-items:flex-start;flex-direction:column;gap:20px}
}
@media(max-width:700px) {
  .course-page .site-header {height:76px;gap:12px}
  .course-page .brand img {width:38px;height:38px}
  .course-page .brand strong {font-size:19px}
  .course-page .brand small {font-size:9px;letter-spacing:1px}
  .course-page .event-back {font-size:13px;white-space:nowrap}
  .course-detail {padding-top:24px}
  .course-stage-nav {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:25px}
  .course-stage-nav a {justify-content:center;gap:5px;padding:9px 4px;font-size:13px}
  .course-stage-nav a span {font-size:10px}
  .course-hero,.course-fit,.course-progress {grid-template-columns:1fr;gap:23px}
  .course-hero h1 {font-size:40px;margin-bottom:14px}
  .course-lead {font-size:16px}
  .course-tags {margin:17px 0 23px}
  .course-hero-photo img {aspect-ratio:4/3;max-height:330px}
  .course-outline {gap:10px 22px;margin-top:25px;font-size:14px;padding:14px 0}
  .course-block {padding:28px 0;scroll-margin-top:94px}
  .course-learning-grid {grid-template-columns:1fr;gap:22px}
  .course-learning-grid article {padding-top:14px}
  .course-learning-grid h3 {margin:7px 0}
  .course-learning-grid .course-example {margin-top:12px}
  .course-flow {gap:12px}
  .course-flow li {padding:15px 16px}
  .course-flow h3 {font-size:17px}
  .course-contact {padding:22px;margin-bottom:28px}
  .course-contact .button {width:100%}
  .course-related>div {grid-template-columns:1fr;gap:12px}
  .course-related a {padding:16px 20px}
}

/* Keep the schedule compact until the visitor opens its details. */
.schedule-section.is-collapsed .schedule-layout {grid-template-areas:"overview invitation"}
.schedule-section.is-collapsed :is(.schedule-notice,.schedule-days,.schedule-selection,.schedule-panel,.schedule-footer,#schedule-all) {display:none}
.schedule-toggle[aria-expanded=true] {color:var(--red);border-color:var(--red)}
@media(max-width:850px) {
  .schedule-section.is-collapsed .schedule-layout {grid-template-areas:"overview" "invitation"}
}

.schedule-today {font-size:12px;margin-left:5px;white-space:nowrap}
@media(max-width:600px) {.schedule-today {display:block;font-size:11px;line-height:1.3;margin-left:0}.schedule-day {white-space:nowrap}}
