/* Booking and portal presentation. Colours and fonts are inherited from site.css. */
body.application-page { background: var(--ivory); color: var(--charcoal); font: 16px/1.6 var(--sans); }
.application-page :is(.booking-header,.admin-header,.student-header) { position: sticky; top: 0; z-index: 30; background: var(--ivory); color: var(--charcoal); border-bottom: 1px solid var(--stone); }
.application-page :is(.booking-nav,.admin-top,.student-nav) { width: min(1320px,calc(100% - 80px)); height: 96px; gap: 24px; }
.application-page .brand { gap: 14px; letter-spacing: normal; color: var(--charcoal); flex-shrink: 0; }
.application-page .brand-image img { width: 80px; height: 80px; padding: 0; object-fit: contain; }
.application-page .brand-copy strong { font: 600 29px/1 var(--serif); letter-spacing: -.035em; }
.application-page .brand-copy small { display: block; margin-top: 7px; color: #80613a; font: 600 10px/1.4 var(--sans); letter-spacing: .17em; }
.application-page .brand-context { border-left: 1px solid var(--stone); padding-left: 18px; margin-left: 8px; color: var(--muted); font: 500 12px/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
.application-page :is(.header-link,.admin-mode,.student-nav-actions) { color: var(--charcoal); font: 600 12px/1.5 var(--sans); letter-spacing: .07em; }
.application-page :is(.header-link,.student-nav-actions a,.student-nav-actions button):hover { color: #80613a; }
.application-page .header-link { background: none; border: 0; padding: 10px 0; }
.application-page .mode-pill { border-color: var(--stone); color: var(--muted); }
.application-page :is(.booking-main,.admin-wrap,.student-main) { width: min(1240px,calc(100% - 80px)); padding-top: 72px; padding-bottom: 96px; }
.application-page :is(h1,h2,h3) { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; }
.application-page :is(.booking-intro h1,.admin-heading h1,.student-hero h1,.student-login-card h1,.login-heading,#successTitle) { font: 500 clamp(52px,6vw,84px)/1 var(--serif); letter-spacing: -.045em; }
.application-page h1 em { font-family: var(--serif); color: #80613a; letter-spacing: -.04em; }
.application-page :is(.eyebrow,.student-kicker) { color: #80613a; font: 600 12px/1.5 var(--sans); letter-spacing: .14em; }
.application-page :is(.eyebrow,.student-kicker)::before { display: none; }
.application-page :is(.booking-intro p:not(.eyebrow),.admin-heading>p,.student-hero>p,.student-login-card>p:not(.student-kicker):not(.student-message),.login-description) { font: 400 17px/1.75 var(--sans); color: var(--muted); }
.application-page .booking-intro { margin-bottom: 42px; }
.application-page .booking-layout { gap: 32px; }
.application-page :is(.booking-card,.admin-card,.student-login-card,.student-section,.metric,.student-metric) { background: var(--cream); border-color: var(--stone); box-shadow: none; }
.application-page :is(.demo-banner,.admin-notice) { background: #eeeae1; border: 0; color: #50564e; font-size: 14px; line-height: 1.65; padding: 18px; }
.application-page .demo-banner strong { font-size: 12px; color: var(--charcoal); }
.application-page .demo-banner a { text-decoration: underline; text-underline-offset: 3px; }
.application-page .step { padding: 30px 0; }
.application-page :is(.step h2,.card-heading h2,.student-section-heading h2) { font-size: 29px; line-height: 1.2; letter-spacing: -.035em; }
.application-page .step-number { color: #80613a; font-size: 22px; }
.application-page :is(.option,.history-card,.day-card) { background: var(--ivory); border-color: var(--stone); box-shadow: none; }
.application-page .option { transition: border-color .2s,background-color .2s; }
.application-page .option:hover { transform: none; border-color: #80613a; }
.application-page .option.selected { background: #eee9df; border-color: #80613a; box-shadow: inset 0 0 0 1px #80613a; }
.application-page .option .option-mark { color: #80613a; }
.application-page .option strong { font-size: 16px; letter-spacing: -.02em; }
.application-page .option small { font-size: 13px; }
.application-page :is(.field label,.student-field label) { color: #50564e; font: 600 12px/1.5 var(--sans); letter-spacing: .07em; }
.application-page :is(.field input,.field select,.field textarea,.student-field input,.promo-row input,.status-select) { color: var(--charcoal); background: #fffefa; border: 1px solid #b9b6ad; border-radius: 0; min-height: 48px; font: 400 16px/1.5 var(--sans); padding: 12px 13px; min-width: 0; }
.application-page :is(.field input,.field select,.field textarea,.student-field input,.promo-row input):focus { border-color: #80613a; box-shadow: none; outline: 2px solid #80613a; outline-offset: 2px; }
.application-page :is(button,a,input,select,textarea):focus-visible { outline: 2px solid #80613a; outline-offset: 4px; }
.application-page :is(.helper,.terms,.submit-note,.promo-status,.footer-note,.admin-footer,.student-footnote,.student-message) { font: 400 13px/1.65 var(--sans); color: var(--muted); letter-spacing: 0; }
.application-page :is(.primary-button,.dark-button,.student-login-button,.promo-row button) { background: var(--charcoal); color: var(--ivory); border: 1px solid var(--charcoal); font: 600 12px/1.5 var(--sans); letter-spacing: .07em; min-height: 48px; transition: background-color .2s,color .2s; }
.application-page :is(.primary-button,.dark-button,.student-login-button,.promo-row button):hover { background: #384235; border-color: #384235; color: #fff; transform: none; }
.application-page .primary-button { padding: 16px 19px; }
.application-page button:disabled { opacity: .6; cursor: not-allowed; }
.application-page .outline-button { font-size: 12px; border-color: #969a91; min-height: 48px; }
.application-page .promo-row input { width: 100%; }
.application-page .promo-row button { padding: 10px 18px; }
.application-page .slot { font-size: 14px; min-height: 48px; }
.application-page .slot:is(:hover,.selected) { background: var(--charcoal); border-color: var(--charcoal); color: var(--ivory); }
.application-page .summary-card { top: 120px; background: var(--charcoal); box-shadow: none; border: 0; }
.application-page .summary-card h2 { font: 600 13px/1.5 var(--sans); color: #d9bd90; }
.application-page .summary-line { font-size: 14px; }
.application-page :is(.summary-line span:first-child,.summary-total small,.summary-note) { color: #c7cbc1; }
.application-page .summary-total small { font-size: 12px; }
.application-page .summary-total strong { font-size: 36px; letter-spacing: -.04em; }
.application-page .summary-note { font: 400 15px/1.7 var(--sans); }
.application-page .terms input { width: 18px; height: 18px; flex-shrink: 0; }
.application-page .admin-tabs button { font-size: 12px; min-height: 48px; }
.application-page .admin-tabs button.active { background: var(--charcoal); color: var(--ivory); }
.application-page :is(.metric small,.student-metric small,.data-table th) { color: #62675f; font-size: 12px; letter-spacing: .07em; }
.application-page :is(.metric strong,.student-metric strong) { font: 500 42px/1.2 var(--serif); letter-spacing: -.02em; }
.application-page .metric em { font-family: var(--serif); color: #80613a; font-size: 18px; }
.application-page :is(.card-heading small,.student-section-heading small) { color: var(--muted); font-size: 13px; }
.application-page .data-table td { font-size: 14px; }
.application-page .data-table td small { color: var(--muted); font-size: 12px; }
.application-page .status-select { font-size: 13px; }
.application-page .table-action { color: #80613a; font-size: 12px; padding: 10px 0; }
.application-page :is(.code-pill,.day-slot,.day-card header small) { font-size: 12px; }
.application-page :is(.empty-row,.day-card header small,.history-card .time) { color: var(--muted); }
.application-page .day-card.today { border-color: #80613a; box-shadow: inset 0 3px #80613a; }
.application-page .student-login-card { margin: 0 auto; padding: 40px; }
.application-page .student-message { min-height: 24px; margin-bottom: 0; }
.application-page .student-message:not(:empty) { color: #a3392d; }
.application-page .student-message.success { color: #3f6043; }
.application-page .history-date { color: #80613a; font-size: 12px; letter-spacing: .07em; }
.application-page .history-card h3 { font-size: 28px; }
.application-page .history-card .time { font-size: 14px; }
.application-page .history-status { font-size: 12px; }
.application-page .feedback-label { font-size: 12px; color: #80613a; letter-spacing: .07em; }
.application-page .feedback-block p { font: 400 16px/1.75 var(--sans); }
.application-page .student-empty { font: 400 16px/1.7 var(--sans); }
.application-page .confirmation { background: var(--charcoal); padding: clamp(24px,5vw,64px); }
.application-page .confirmation h1 em { color: #d9bd90; }
.application-page .confirmation p { font: 400 17px/1.75 var(--sans); }
.application-page .confirmation .primary-button { border-color: #d9bd90; }
.application-page .confirmation .eyebrow { color: #d9bd90; }
.application-page .login-heading { margin-top: 20px; }
.application-page .login-description { margin: 22px 0 30px; }
.admin-enquiry { padding-block: 24px; border-top: 1px solid var(--stone); }
.admin-enquiry .card-heading { margin-bottom: 10px; }
.admin-enquiry h3 { font-size: 30px; }
.admin-enquiry > p { color: var(--muted); font-size: 15px; line-height: 1.7; overflow-wrap: anywhere; }
.admin-enquiry .enquiry-body { margin-top: 16px; color: var(--charcoal); white-space: pre-line; font-size: 16px; }
.admin-enquiry a { color: #705433; text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:1000px) {
  .application-page .brand-context { display: none; }
  .application-page .summary-card { position: static; }
}
@media(max-width:650px) {
  .application-page :is(.booking-nav,.admin-top,.student-nav,.booking-main,.admin-wrap,.student-main) { width: calc(100% - 36px); }
  .application-page :is(.booking-nav,.admin-top,.student-nav) { height: 80px; gap: 14px; }
  .application-page .brand { gap: 9px; }
  .application-page .brand-image img { width: 62px; height: 62px; }
  .application-page .brand-copy strong { font-size: 23px; }
  .application-page .brand-copy small { display: none; }
  .application-page :is(.header-link,.admin-mode,.student-nav-actions) { font-size: 11px; letter-spacing: .03em; }
  .application-page .mode-pill { display: none; }
  .application-page .admin-mode { gap: 12px; }
  .application-page :is(.booking-main,.admin-wrap,.student-main) { padding-top: 40px; padding-bottom: 64px; }
  .application-page .student-login-card { padding: 28px 22px; }
  .application-page :is(.card-heading,.student-section-heading) { flex-wrap: wrap; gap: 8px; }
  .application-page :is(.metric small,.student-metric small) { font-size: 11px; }
  .application-page .metric strong { font-size: 34px; }
  .application-page .date-row { grid-template-columns: 1fr; }
  .application-page .step h2 { font-size: 26px; }
  .application-page .booking-card { padding: 24px 18px; }
  .application-page .submit-note { margin-top: 14px; }
}
@media(prefers-reduced-motion:reduce) {
  .application-page *, .application-page *::before, .application-page *::after { transition: none !important; scroll-behavior: auto !important; }
}
