/* The season's first appointments are visible before the introductory hero. */
.today-trials { background: var(--lime); color: var(--forest-deep); scroll-margin-top: 110px; }
.today-layout { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.6fr); gap: 48px; padding-top: 38px; padding-bottom: 28px; }
.today-kicker { font-size: 14px; font-weight: 750; letter-spacing: .06em; }
.today-heading h2 { font-family: var(--display); font-size: clamp(60px,6vw,88px); line-height: 1.04; margin: 13px 0 15px; letter-spacing: -.025em; }
.today-date { font-size: 20px; font-weight: 750; line-height: 1.45; text-transform: capitalize; }
.today-intro { font-size: 16px; line-height: 1.5; margin-top: 8px; }
.today-programme { align-self: center; min-width: 0; }
.today-lessons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.today-lesson { background: var(--forest); color: var(--cream); padding: 24px; display: flex; flex-direction: column; min-width: 0; }
.today-time { font-size: clamp(22px,2vw,28px); line-height: 1.3; font-weight: 750; color: var(--lime); font-variant-numeric: tabular-nums; }
.today-lesson h3 { font-family: var(--display); font-size: clamp(28px,2.9vw,40px); line-height: 1.2; margin-top: 14px; }
.today-teacher { font-size: 16px; line-height: 1.5; margin: 6px 0 20px; }
.today-cta { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid #ffffff50; min-height: 48px; padding-top: 15px; font-size: 16px; font-weight: 650; margin-top: auto; }
.today-cta span { font-size: 24px; color: var(--lime); }
.today-cta:hover { color: var(--lime); }
.today-venue { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 20px; font-size: 16px; line-height: 1.5; }
.today-venue p span { display: block; font-size: 14px; }
.today-venue a { text-decoration: underline; text-underline-offset: 4px; min-height: 44px; display: inline-flex; align-items: center; gap: 9px; }
.today-note { font-size: 14px; line-height: 1.5; margin-top: 10px; }
.today-week { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid #092b2240; padding-top: 14px; padding-bottom: 16px; font-size: 14px; line-height: 1.5; }
.today-week strong { margin-left: 12px; }
.today-week a { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; text-decoration: underline; text-underline-offset: 4px; }
.today-trials a:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
@media (max-width: 1000px) {
 .today-layout { gap: 24px; grid-template-columns: minmax(0,.7fr) minmax(0,1.5fr); }
 .today-lesson { padding: 20px; }
 .today-venue { flex-wrap: wrap; gap: 4px 16px; }
}
@media (max-width: 700px) {
 .today-layout { grid-template-columns: 1fr; gap: 20px; padding-top: 26px; padding-bottom: 20px; }
 .today-heading h2 { font-size: clamp(40px,10.5vw,64px); margin: 9px 0; }
 .today-heading h2 br { display: none; }
 .today-date { font-size: 18px; }
 .today-lessons { gap: 10px; }
 .today-lesson { padding: 16px; }
 .today-time { font-size: 20px; }
 .today-lesson h3 { font-size: 28px; margin-top: 10px; }
 .today-teacher { font-size: 14px; margin-bottom: 12px; }
 .today-cta { font-size: 14px; gap: 4px; }
 .today-week { flex-wrap: wrap; gap: 2px 16px; }
 .today-week strong { margin-left: 5px; }
}
@media (max-width: 380px) {
 .today-lessons { grid-template-columns: 1fr; }
 .today-heading h2 { font-size: 40px; }
}
.season-alerts { background: var(--forest-deep); padding-top: 22px; padding-bottom: 10px; scroll-margin-top: 110px; }
.season-alert-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 16px; }
.season-announcement { min-width: 0; padding: 27px 30px; color: var(--forest); }
.season-open { background: var(--lime); }
.season-country { background: var(--cream); display: flex; flex-direction: column; justify-content: center; border-top: 4px solid var(--lime); padding-top: 23px; }
.season-kicker { display: block; font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; }
.season-title { font-family: var(--display); font-size: clamp(42px,4.2vw,60px); line-height: 1.08; margin: 9px 0 0; }
.season-dates { font-size: clamp(19px,1.8vw,24px); font-weight: 700; line-height: 1.4; margin-top: 9px; }
.season-dates time { white-space: nowrap; }
.season-summary { font-size: 15px; line-height: 1.6; margin-top: 10px; max-width: 440px; }
.season-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 18px; }
.season-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 46px; padding: 11px 17px; background: var(--forest); color: var(--cream); font-size: 14px; font-weight: 600; line-height: 1.3; }
.season-cta span { font-size: 23px; font-weight: 400; line-height: 1; }
.season-cta:hover { background: #1d4939; }
.season-schedule { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.country-alert-date { display: block; font-family: var(--display); font-size: clamp(32px,3.2vw,43px); line-height: 1.1; margin-top: 12px; }
.country-alert-name { font-size: 18px; line-height: 1.4; font-weight: 700; margin-top: 11px; }
.country-alert-detail { font-size: 14px; line-height: 1.6; margin-top: 6px; }
.country-alert-note { font-size: 12px; line-height: 1.5; margin-top: 12px; }
.season-country .season-cta { align-self: flex-start; margin-top: 17px; }
.season-announcement a:focus-visible { outline: 3px solid var(--forest); outline-offset: 4px; }
@media (max-width: 1000px) {
 .season-announcement { padding: 23px; }
 .season-country { padding-top: 19px; }
 .season-alert-grid { grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 12px; }
 .season-title { font-size: 44px; }
 .season-dates { font-size: 19px; }
 .country-alert-date { font-size: 33px; }
}
@media (max-width: 650px) {
 .season-alerts { padding-top: 14px; padding-bottom: 6px; scroll-margin-top: 88px; }
 .season-alert-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
 .season-announcement { padding: 20px; }
 .season-kicker { font-size: 11px; letter-spacing: .06em; }
 .season-title { font-size: 43px; margin-top: 7px; }
 .season-dates { font-size: 18px; margin-top: 7px; }
 .season-summary { font-size: 14px; margin-top: 8px; }
 .season-actions { gap: 10px 16px; margin-top: 14px; }
 .season-cta { font-size: 13px; gap: 12px; padding: 10px 13px; }
 .season-schedule { font-size: 13px; }
 .season-country { padding-top: 16px; }
 .country-alert-date { font-size: 32px; margin-top: 8px; }
 .country-alert-name { font-size: 17px; margin-top: 8px; }
 .country-alert-detail { font-size: 14px; margin-top: 4px; }
 .country-alert-note { margin-top: 9px; }
 .season-country .season-cta { margin-top: 12px; }
}

@media (max-width: 360px) {
 .season-announcement { padding: 18px; }
 .season-country { padding-top: 14px; }
 .season-title { font-size: 39px; }
 .season-summary { font-size: 13px; }
 .season-actions { gap: 8px; }
 .season-cta { font-size: 12px; padding: 10px 11px; gap: 8px; }
 .season-schedule { font-size: 12px; }
}

/* Direct community access is visible before the day's trials. */
.community-spotlight{background:var(--forest-deep);color:var(--cream);border-bottom:1px solid #ffffff28;scroll-margin-top:110px}
.community-spotlight-inner{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.6fr);align-items:center;gap:28px;padding-top:24px;padding-bottom:24px}
.community-spotlight-heading>p{font-size:12px;letter-spacing:.1em;font-weight:700;color:var(--lime);margin-bottom:10px}
.community-spotlight-heading h2{font-size:32px;line-height:1.13;letter-spacing:-.015em}
.community-spotlight-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.community-shortcut{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:16px 20px;border:1px solid #9fb894;background:#164336;transition:background .15s ease}
.community-shortcut strong{font-size:19px;line-height:1.3;color:var(--lime)}
.community-shortcut>span:not(.sr-only){font-size:14px;line-height:1.45;color:#e3eee0}
.community-shortcut b{margin-top:auto;padding-top:7px;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.community-shortcut-nights{background:transparent;border-color:#ffffff50}
.community-shortcut-nights strong{color:var(--cream)}
.community-shortcut:hover{background:#245842}
.community-shortcut:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.desktop-nav .nav-community,.mobile-menu .nav-community{color:var(--lime);font-weight:700}
.desktop-nav .nav-community{text-decoration:underline;text-underline-offset:6px}
@media(max-width:1000px){.community-spotlight-inner{grid-template-columns:minmax(170px,.7fr) minmax(0,1.6fr);gap:20px}.community-spotlight-heading h2{font-size:28px}.community-shortcut{padding:15px}}
@media(max-width:700px){.community-spotlight{scroll-margin-top:90px}.community-spotlight-inner{grid-template-columns:1fr;gap:15px;padding-top:20px;padding-bottom:20px}.community-spotlight-heading>p{margin-bottom:6px}.community-spotlight-heading h2{font-size:26px}.community-spotlight-heading h2 br{display:none}.community-spotlight-links{gap:10px}.community-shortcut{padding:13px;gap:8px}.community-shortcut strong{font-size:16px}.community-shortcut b{font-size:14px;padding-top:3px}}
@media(max-width:580px){.mobile-bottom{display:grid;grid-template-columns:.7fr 1fr 1fr;gap:8px}.mobile-bottom>a,.mobile-bottom>[data-trial-link]{justify-content:center;font-size:14px;padding:10px 6px;line-height:1.25}.mobile-bottom>.mobile-community-link{color:var(--lime);font-weight:700;text-decoration:underline;text-underline-offset:4px}}

.community-shortcut .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Staff entrance remains easy to find in desktop and mobile menus. */
.desktop-nav .nav-management{border:1px solid #8bd5a2;border-radius:7px;padding:9px 12px;color:#bdf4ce;white-space:nowrap}
.desktop-nav .nav-management:hover{background:#99edb7;color:#062719}
.mobile-menu .nav-management{color:#a6ecc0;border-top:1px solid #53745d;margin-top:8px}
.mobile-menu .nav-management span{font-size:14px;letter-spacing:.04em}
@media(min-width:981px) and (max-width:1200px){.desktop-nav{gap:12px}.desktop-nav a{font-size:13px}.site-header{gap:16px}}

@media(min-width:361px) and (max-width:480px){.today-lessons{grid-template-columns:repeat(2,minmax(0,1fr))}.today-layout{gap:16px}.today-lesson{padding:16px 13px}.today-cta{font-size:14px;line-height:1.4}.today-note{font-size:14px}.today-time{font-size:16px}}

/* Compact course launch and a touch-friendly weekly timetable. */
.lady-launch{background:var(--forest-deep);color:var(--cream);border-bottom:1px solid #ffffff28}
.lady-launch-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;padding-bottom:22px}
.lady-launch-date{font-size:16px;line-height:1.5;font-weight:700;color:var(--lime)}
.lady-launch h2{font-size:clamp(30px,3.3vw,42px);line-height:1.2;margin-top:5px;letter-spacing:-.015em}
.lady-launch h2 span{display:inline-block;margin-left:8px;font-family:var(--sans);font-size:18px;letter-spacing:0;color:var(--lime)}
.lady-launch-actions{display:flex;flex-wrap:wrap;gap:12px}
.lady-launch-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 18px;border:1px solid #a3b68a;font-size:16px;font-weight:600}
.lady-launch-actions a:last-child{background:var(--lime);border-color:var(--lime);color:var(--forest)}
.lady-launch-actions a:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.weekly-timetable{margin:28px 0 0;border:1px solid var(--line);background:#fffaf044;scroll-margin-top:112px}
.weekly-timetable>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px;padding:20px 24px;font-size:22px;font-weight:700;line-height:1.3;color:var(--forest);list-style:none;cursor:pointer}
.weekly-timetable>summary::-webkit-details-marker{display:none}
.weekly-timetable>summary small{display:block;font-size:14px;line-height:1.5;font-weight:400;margin-top:5px;color:var(--muted)}
.timetable-toggle{flex-shrink:0;font-size:30px;font-weight:400}
.weekly-timetable[open] .timetable-toggle{transform:rotate(45deg)}
.weekly-timetable-content{padding:0 24px 24px}
.weekly-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.weekly-day{min-width:0;border-top:2px solid var(--forest);padding-top:16px}
.weekly-day h3{font-size:27px;line-height:1.2;letter-spacing:-.01em}
.weekly-day ul{list-style:none;padding:0;margin:12px 0 0}
.weekly-day li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px;line-height:1.4}
.weekly-day strong{display:block;font-weight:700;overflow-wrap:anywhere}
.weekly-day small{display:block;margin-top:4px;font-size:14px;line-height:1.5;color:var(--muted)}
.weekly-time{font-weight:700;font-variant-numeric:tabular-nums}
.weekly-timetable-venue{font-size:16px;line-height:1.5;margin-top:22px}
.weekly-timetable-note{font-size:14px;line-height:1.5;margin-top:8px;color:var(--muted)}
@media(min-width:981px){.desktop-nav{gap:clamp(12px,1.6vw,22px)}}
@media(max-width:700px){.lady-launch-inner{flex-direction:column;align-items:flex-start;gap:15px}.lady-launch-actions{width:100%;gap:10px}.lady-launch-actions a{flex:1;min-width:0;padding:10px 12px;font-size:14px}.lady-launch h2 span{margin-left:5px;font-size:16px}.weekly-timetable{scroll-margin-top:92px}.weekly-timetable>summary{padding:18px 16px;font-size:21px}.weekly-timetable-content{padding:0 16px 20px}.weekly-days{grid-template-columns:minmax(0,1fr);gap:20px}.weekly-day li{grid-template-columns:110px minmax(0,1fr);gap:10px}.weekly-timetable-venue{font-size:15px}}
@media(max-width:360px){.lady-launch h2 span{display:block;margin:5px 0 0}.weekly-day li{grid-template-columns:minmax(0,1fr);gap:5px}}

.weekly-timetable>summary>span:first-child{font-size:inherit;font-weight:inherit;transform:none}

.lady-launch-slot{font-size:16px;line-height:1.5;margin-top:8px}.weekly-day .weekly-start{font-weight:700;color:var(--forest)}

.course-slot .slot-time{white-space:normal;overflow-wrap:anywhere}

.footer-socials{display:flex;flex-direction:column;gap:4px;min-width:0}
.footer-socials a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;font-size:14px;line-height:1.5}
.footer-socials strong{font-weight:600;color:var(--lime);overflow-wrap:anywhere}
.footer-socials a:hover strong{text-decoration:underline;text-underline-offset:4px}
.footer-socials a:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
@media(max-width:580px){.footer-socials{grid-column:1/-1;padding-top:12px;border-top:1px solid #ffffff2a}}
