.booking-student{width:min(440px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:26px;border:1px solid var(--border,rgba(255,255,255,.13));border-radius:24px;background:var(--bg-card,#202020);color:var(--text,#f3f0eb);box-shadow:0 24px 80px #0008}
.booking-student::backdrop{background:#0006;backdrop-filter:blur(10px)}
.booking-student>form>header{display:flex;justify-content:space-between;align-items:center;color:var(--muted,#aaa);font-size:12px;letter-spacing:.08em}
.booking-student>form>header button{background:transparent;border:0;color:inherit;font-size:24px;padding:0 8px}
.booking-student h2{font-size:24px;margin:12px 0 22px}
.booking-student label{display:grid;gap:8px;margin:14px 0;font-size:13px}
.booking-student input,.booking-student select{box-sizing:border-box;width:100%;min-height:46px;border:1px solid var(--border,#555);border-radius:12px;background:var(--bg,#171717);color:inherit;padding:10px 12px;font:inherit;font-size:16px}
.booking-student__age{display:flex;align-items:center;gap:12px}.booking-student__age input{width:100%}
.booking-student p{font-size:12px;line-height:1.65;color:var(--muted,#aaa)}.booking-student__error{color:var(--accent,#ff8629)!important}
.booking-student .btn{width:100%;min-height:48px;margin-top:10px}
.booking-auth-summary{grid-column:1/-1;display:grid;gap:6px;padding:4px 0 16px;border-bottom:1px solid var(--border,#555);overflow-wrap:anywhere}
.booking-auth-summary small{color:var(--muted,#aaa)}.booking-auth-summary button{justify-self:start;border:0;background:none;color:var(--accent,#ff8629);padding:8px 0;font:inherit;font-size:12px}
.trial-saved{padding:12px 0;border-bottom:1px solid var(--border,#555);margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.trial-saved small{display:block;color:var(--muted,#aaa);margin-top:5px}.trial-saved button{border:0;background:none;color:var(--accent,#ff8629);white-space:nowrap}
.trial-optional{margin:16px 0}.trial-optional>summary{font-size:13px;cursor:pointer;color:var(--muted,#aaa);padding:8px 0}.trial-optional .trial-extra{margin-top:12px}
.trial-student-basics .trial-choice-options{grid-template-columns:repeat(2,minmax(0,1fr))}.trial-student-basics input[type=number]{max-width:130px}
.qb-child-add{border:0;background:transparent;color:var(--accent,#ff8629);font:inherit;font-size:12px;padding:10px 0;text-align:left}

.advisor__ageform{display:grid!important;grid-template-columns:1fr!important;gap:10px}.advisor__ageform label{font-size:12px;color:var(--muted,#aaa)}.advisor__ageform input,.advisor__ageform select{width:100%;min-width:0;min-height:44px;padding:8px 12px;font:inherit;font-size:16px;background:var(--bg-card,#222);color:var(--text,#fff);border:1px solid var(--border,#555);border-radius:10px}.advisor__ageform button{margin-top:6px}

.advisor__ageform .liquid-select__trigger { margin:0; min-height:46px; font-size:16px; }
.booking-student .liquid-select__trigger,.trial-attendee .liquid-select__trigger { min-height:46px; font-size:16px; }

/* Two clear pulses, followed by a steady error outline until corrected. */
:is(#advisor,.booking-student) [aria-invalid="true"],
#trial-sheet .trial-field [aria-invalid="true"] { border-color:var(--danger,#ff6269); }
:is(#trial-sheet,#advisor,.booking-student) :is(input,select,textarea,.tldp-month__trigger).tl-field-alert:not([type="radio"]),
#trial-sheet .trial-choice-options input.tl-field-alert + span,
:is(#trial-sheet,#advisor,.booking-student) .liquid-select:has(.tl-field-alert) .liquid-select__trigger {
  animation: booking-field-alert 560ms ease-in-out 2;
}
@keyframes booking-field-alert {
  0%,100% { border-color:var(--danger,#ff3045); }
  50% { border-color:color-mix(in srgb,var(--danger,#ff3045) 40%,transparent); }
}
@media (prefers-reduced-motion:reduce) {
  :is(#trial-sheet,#advisor,.booking-student) .tl-field-alert,
  #trial-sheet .trial-choice-options input.tl-field-alert + span,
  :is(#trial-sheet,#advisor,.booking-student) .liquid-select:has(.tl-field-alert) .liquid-select__trigger { animation:none; }
}

:is(#trial-sheet,#advisor,.booking-student) { --danger:#ff3045; }
:is(#trial-sheet,#advisor,.booking-student) :is(input,select,textarea):focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
:is(#trial-sheet,#advisor,.booking-student) :is(input,select,textarea)[aria-invalid="true"]:focus { outline:none; border-color:var(--danger); }
:is(#trial-sheet,#advisor,.booking-student) input[type="month"]::-webkit-datetime-edit-year-field:focus,
:is(#trial-sheet,#advisor,.booking-student) input[type="month"]::-webkit-datetime-edit-month-field:focus { background:var(--orange-soft); color:var(--ink); }
:is(#trial-sheet,#advisor,.booking-student) input[type="month"][aria-invalid="true"]::-webkit-datetime-edit-year-field:focus,
:is(#trial-sheet,#advisor,.booking-student) input[type="month"][aria-invalid="true"]::-webkit-datetime-edit-month-field:focus { background:transparent; color:var(--ink); }

:is(#trial-sheet,#advisor,.booking-student) .tldp-month__trigger[aria-invalid="true"] { border-color:var(--danger); }
:is(#trial-sheet,#advisor,.booking-student) .tldp-month__trigger[aria-invalid="true"]:focus { outline:none; }
/* Error and keyboard focus share one border; never stack an outer ring on it. */
:is(#trial-sheet,#advisor,.booking-student) [aria-invalid="true"],
#trial-sheet .trial-choice-options input[aria-invalid="true"] + span,
:is(#trial-sheet,#advisor,.booking-student) .liquid-select:has([aria-invalid="true"]) .liquid-select__trigger {
  outline:none!important; box-shadow:none!important; border-color:var(--danger);
}
.advisor__ageform .tldp-month__trigger { margin:0; }

/* Consultation timetable: one aligned, tappable row per real class. */
.advisor__sessions { display:grid; }
.advisor__session { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:15px 0; border:0; border-bottom:1px solid var(--glass-border); background:transparent; color:var(--ink); font:inherit; text-align:left; cursor:pointer; }
.advisor__session > span { display:grid; gap:5px; min-width:0; }
.advisor__session strong { font-size:14px; line-height:1.5; }
.advisor__session small { color:var(--ink-dim); font-size:11px; line-height:1.5; }
.advisor__session em { flex:none; color:var(--accent-text); font-size:11px; font-style:normal; }
.advisor__session:hover:not(:disabled), .advisor__session:focus-visible { background:var(--orange-soft); }
.advisor__session:focus-visible { outline:2px solid var(--orange); outline-offset:2px; border-radius:8px; }
.advisor__session:disabled { opacity:.45; cursor:default; }
.advisor__more { width:100%; border:0; padding:14px; background:transparent; color:var(--accent-text); font:inherit; font-size:12px; cursor:pointer; }
.advisor__times-note { margin:3px 0 10px; color:var(--ink-dim); font-size:12px; line-height:1.7; }
.advisor__card { margin-top:14px; }

.advisor__route-label { color:var(--accent-text); font-size:11px; font-weight:700; margin-bottom:6px; }

/* Reuse the site's calendar cells without another floating card or shadow. */
.advisor__calendar { --dp-accent:var(--orange); padding:12px 0 8px; border-bottom:1px solid var(--glass-border); }
.advisor__calendar .tldp__head { margin-bottom:14px; }
.advisor__calendar .tldp__nav { width:36px; height:36px; }
.advisor__calendar .tldp__nav:disabled { opacity:.25; cursor:default; }
.advisor__calendar .tldp__grid { gap:4px; }
.advisor__calendar .tldp__d { min-height:40px; max-height:44px; aspect-ratio:auto; }
.advisor__calendar .tldp__d.is-full:not(.is-sel) { color:var(--ink-faint); }
.advisor__calendar button:focus-visible { outline:2px solid var(--accent-text); outline-offset:2px; }
.advisor__calendar-note { color:var(--ink-faint); font-size:11px; margin:10px 0 0; text-align:center; }
.advisor__day-title { font-size:12px; font-weight:600; color:var(--ink-dim); margin:16px 0 0; }

.advisor__paths { gap:10px; padding:8px 0 12px; }
.advisor__path { min-height:244px; padding:12px 5px; border-radius:12px; }
.advisor__path--short { color:var(--ink-dim); }
.advisor__path--long { color:var(--accent-text); background:radial-gradient(ellipse at 50% 34%,color-mix(in srgb,var(--orange) 12%,transparent),transparent 67%); }
.advisor__path--long .booking-entry__tag { opacity:.9; }
.advisor__path .booking-entry__icon { width:68px; height:68px; margin:20px 0; transition:transform 260ms; }
.advisor__path strong { font-size:21px; letter-spacing:.02em; }
.advisor__path small { color:var(--ink-dim); font-size:11px; line-height:1.8; text-wrap:balance; }
.advisor__path .booking-entry__go { font-size:10px; }
.advisor__path .booking-entry__go svg { width:18px; height:18px; }
.advisor__path .booking-entry__go { min-height:36px; padding:9px 6px; box-sizing:border-box; }
.advisor__path--long .booking-entry__go { max-width:148px; border-radius:99px; background:linear-gradient(135deg,var(--orange-hi),var(--orange)); color:var(--on-accent); font-weight:650; opacity:1; }
.advisor__paths .booking-entry__divider { background:linear-gradient(transparent,var(--glass-border),transparent); }
.advisor__result-nav { display:flex; align-items:center; justify-content:space-between; margin:-8px 0 10px; }
.advisor__result-nav button { margin:0; min-height:36px; }
.advisor__schedule { list-style:none; margin:12px 0 4px; padding:0; }
.advisor__schedule li { display:grid; grid-template-columns:44px 1fr; gap:12px; padding:9px 0; border-bottom:1px solid var(--glass-border); color:var(--ink-dim); font-size:12px; }
.advisor__schedule li:last-child { border:0; }
.advisor__schedule time { font-variant-numeric:tabular-nums; color:var(--ink); }
#advisor button { transition:scale 180ms,background 220ms,color 180ms,opacity 200ms; }
#advisor button:active:not(:disabled) { scale:.97; }
#advisor button:focus-visible { outline:2px solid var(--accent-text); outline-offset:3px; }
.advisor__opt.is-chosen { border-color:var(--accent-text); background:var(--orange-soft); }
.advisor__opt.is-muted { opacity:.4; }
#advisor-body > :is(.advisor__q,.advisor__opts,.advisor__paths,.advisor__card,.advisor__result-head) { animation:advisor-answer-in 280ms cubic-bezier(.22,1,.36,1) both; }
@keyframes advisor-answer-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@media (hover:hover) { .advisor__path:hover .booking-entry__icon { transform:translateY(-4px) rotate(-4deg); } }
@media (prefers-reduced-motion:reduce) { #advisor button,#advisor .booking-entry__icon { transition:none; transform:none; translate:none; scale:1; } #advisor-body > * { animation:none!important; } }

/* Fixed order: introduction above timetable, expanding from 7:3 to 3:7. */
.advisor__course { margin:14px 0 0; }
.advisor__split { display:grid; grid-template-rows:minmax(0,7fr) minmax(0,3fr); gap:10px; height:clamp(300px,calc(100dvh - 365px),460px); isolation:isolate; }
.advisor__split.is-times-focused { grid-template-rows:minmax(0,3fr) minmax(0,7fr); }
.advisor__pane { position:relative; min-height:0; box-sizing:border-box; overflow:hidden; border:1px solid var(--glass-border); border-radius:16px; background:rgba(var(--surface-rgb),.035); opacity:.42; transition:opacity 360ms; }
.advisor__pane.is-active { z-index:2; opacity:1; background:rgba(var(--surface-rgb),.055); }
.advisor__pane[data-adv-pane="intro"] { opacity:1; }
.advisor__pane-content { height:100%; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--glass-border) transparent; padding:14px 16px; box-sizing:border-box; }
.advisor__pane:not(.is-active) .advisor__pane-content { overflow:hidden; pointer-events:none; mask-image:linear-gradient(#000 50%,transparent 95%); }
.advisor__pane-head { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--accent-text); font-size:10px; font-weight:650; letter-spacing:.04em; margin-bottom:12px; }
.advisor__pane[data-adv-pane="times"]:not(.is-active) .advisor__pane-content > .advisor__note { display:none; }
.advisor__pane-head span:last-child { color:var(--ink-faint); font-variant-numeric:tabular-nums; }
.advisor__pane h5 { font-size:16px; line-height:1.6; margin:0 0 4px; color:var(--ink); }
.advisor__pane-head h5 { font-size:14px; margin:0; }
.advisor__pane h5:focus { outline:none; }
.advisor__course-location { color:var(--ink-dim); font-size:11px; margin:0; }
#advisor .advisor__pane-activate { position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:center; width:100%; padding:0 12px 12px; border:0; border-radius:inherit; background:transparent; color:var(--ink); font:inherit; font-size:11px; cursor:pointer; }
#advisor .advisor__pane-activate[hidden] { display:none; }
#advisor .advisor__pane-activate:active { scale:1; }
.advisor__pane:has(.advisor__pane-activate:focus-visible) { opacity:1; outline:2px solid var(--accent-text); outline-offset:2px; }
#advisor .advisor__pane-activate:focus-visible { outline:none; }
.advisor__intro-copy { margin:16px 0; }
.advisor__intro-copy p { color:var(--ink-dim); font-size:13px; line-height:1.85; margin:0 0 12px; }
.advisor__facts { display:flex; flex-wrap:wrap; gap:6px 14px; list-style:none; padding:12px 0; margin:12px 0; border-block:1px solid var(--glass-border); }
.advisor__facts li { color:var(--ink); font-size:11px; line-height:1.8; }
.advisor__course-notes { margin:12px 0; color:var(--ink-dim); font-size:12px; line-height:1.8; }
.advisor__course-notes summary { cursor:pointer; }
.advisor__course-notes ul { padding-left:18px; margin:10px 0; }
.advisor__class-times { margin:10px 0 0; }
.advisor__class-time { display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:center; gap:10px; padding:11px 0; width:100%; border:0; border-bottom:1px solid var(--glass-border); background:none; color:var(--ink); font:inherit; text-align:left; }
.advisor__class-time:last-child { border-bottom:0; }
button.advisor__class-time { cursor:pointer; }
button.advisor__class-time:hover { background:var(--orange-soft); }
.advisor__class-time time { font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; }
.advisor__class-time small { display:block; margin-top:3px; font-size:10px; line-height:1.6; color:var(--ink-dim); }
.advisor__class-day { font-size:12px; color:var(--ink-dim); }
.advisor__class-arrow { color:var(--accent-text); }
.advisor__course-contact { width:100%; gap:8px; margin-top:14px; font-size:13px; }
.advisor__course-contact svg { width:19px; height:19px; flex:none; }
.advisor__q:focus { outline:none; }
@media (min-width:721px) { .advisor__split { height:340px; } }
@media (prefers-reduced-motion:reduce) { .advisor__pane { transition:none; } }
