/* Booking shortcuts and price summaries shared by all five languages. */
.booking-refresh .hero { min-height: 0; }
.booking-refresh .hero-content { min-height: 0; padding-top: 42px; padding-bottom: 36px; }
.booking-refresh .hero h1 { font-size: 46px; letter-spacing: 0; max-width: 960px; }
.booking-refresh .hero-copy { max-width: 760px; }
.booking-refresh .hero-availability-card { display: block; background: rgba(255,255,255,.96); color: var(--ink); max-width: 960px; padding: 20px; border-radius: 8px; }
.booking-refresh .hero-availability-card h2 { font: inherit; font-size: 24px; font-weight: 800; margin: 0 0 12px; }
.booking-refresh .hero-availability-card p { color: var(--muted); font-size: 14px; margin: 12px 0 0; }
.availability-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.availability-actions .btn { white-space: normal; text-align: center; min-height: 48px; }
.hero-review-link { display: inline-block; margin-top: 14px; font-size: 15px; text-decoration: underline; text-underline-offset: 3px; }
.booking-refresh .hero-choice-row { margin-top: 20px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.booking-refresh .hero-facts { margin-top: 20px; }
.booking-refresh .hero-choice-card { min-width: 0; min-height: 56px; padding: 15px; justify-content: center; background: #123241; color: white; }
.booking-refresh .hero-choice-card span { display: none; }
.booking-total, .verified-reviews, .course-summary { margin-top: 28px; margin-bottom: 28px; }
.booking-total h2, .verified-reviews h2, .course-summary h2, .quick-enquiry h2 { font-size: 26px; line-height: 1.3; letter-spacing: 0; margin: 0 0 12px; }
.booking-total table, .course-summary table { width: 100%; border-collapse: collapse; background: white; table-layout: fixed; }
.booking-total th, .booking-total td, .course-summary th, .course-summary td { padding: 14px; text-align: left; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.booking-total thead { background: var(--ink); color: white; }
.booking-total td:last-child { font-weight: 800; color: var(--blue-dark); }
.booking-total .total-note { font-size: 14px; color: var(--muted); }
.verified-reviews { border-top: 1px solid var(--line); padding-top: 24px; }
.review-summary-line { display: flex; gap: 12px 24px; flex-wrap: wrap; align-items: baseline; }
.review-summary-line strong { font-size: 28px; }
.review-summary-line small { color: var(--muted); }
.verified-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 20px; }
.verified-review-grid blockquote { margin: 0; border-left: 3px solid var(--aqua); padding-left: 16px; }
.verified-review-grid p { margin: 0 0 10px; }
.verified-review-grid cite { font-style: normal; font-size: 14px; color: var(--muted); }
.verified-reviews > p { font-size: 14px; color: var(--muted); }
.verified-reviews a { text-decoration: underline; text-underline-offset: 3px; }
.booking-details { margin-top: 28px; margin-bottom: 28px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.booking-details > summary { cursor: pointer; padding: 18px 0; font-weight: 700; }
.booking-details .shell { width: 100%; }
.quick-enquiry { background: var(--mist); padding: 36px 0; scroll-margin-top: 120px; }
.enquiry-fields { display: grid; grid-template-columns: 1fr .65fr 1.5fr; gap: 16px; margin: 20px 0; }
.enquiry-fields label { display: grid; gap: 6px; font-weight: 700; min-width: 0; }
.enquiry-fields input, .enquiry-fields select { box-sizing: border-box; width: 100%; min-width: 0; min-height: 48px; padding: 10px; font: inherit; color: var(--ink); background: white; border: 1px solid #789ba9; border-radius: 4px; }
.enquiry-note { font-size: 14px; color: var(--muted); }
.course-summary th { width: 29%; background: var(--mist); }
.course-summary .btn { margin-top: 18px; }
.booking-refresh :where(input,select,button,a,summary):focus-visible { outline: 3px solid #04799c; outline-offset: 4px; }
.booking-refresh .btn { max-width: 100%; white-space: normal; overflow-wrap: anywhere; text-align: center; }
@media (min-width: 721px) {
 .booking-refresh .nav { grid-template-columns: 1fr auto; gap: 8px 24px; padding: 12px 0; }
 .booking-refresh .nav-toggle { display: none; }
 .booking-refresh .nav-menu { grid-row: 2; grid-column: 1 / -1; display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 6px 20px; border-top: 1px solid var(--line); padding-top: 8px; }
 .booking-refresh .nav-cta { display: flex; grid-row: 1; grid-column: 2; }
}
@media (max-width: 700px) {
 .booking-refresh .hero-content { padding-top: 30px; padding-bottom: 24px; }
 .booking-refresh .hero h1 { font-size: 36px; }
 .booking-refresh .hero-availability-card { padding: 16px; }
 .availability-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
 .availability-actions a:last-child { grid-column: 1 / -1; }
 .availability-actions .btn { width: 100%; padding: 12px 8px; min-height: 52px; font-size: 14px; line-height: 1.4; }
 .booking-refresh .hero-choice-row { gap: 8px; }
 .booking-refresh .hero-choice-card { padding: 10px; }
 .booking-refresh .hero-choice-card strong { font-size: 15px; overflow-wrap: anywhere; }
 .booking-total table { font-size: 14px; }
 .booking-total th, .booking-total td { padding: 10px 6px; }
 .booking-total th:first-child { width: 29%; }
 .verified-review-grid, .enquiry-fields { grid-template-columns: 1fr; }
 .course-summary th, .course-summary td { padding: 12px 9px; font-size: 15px; }
 .course-summary th { width: 32%; }
 .booking-total h2, .verified-reviews h2, .course-summary h2, .quick-enquiry h2 { font-size: 23px; }
}
