/* Booking presentation only: prices, descriptions and intake links come from the existing model. */
.booking-page { padding: 42px 24px 56px; background: #f6f7f5; color: #3f5c59; font-family: var(--font-sans); }
.booking-wrap { max-width: 1180px; margin: auto; }
.booking-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.booking-heading h1 { font-size: clamp(44px, 5vw, 64px); line-height: 1.25; margin: 0 0 8px; }
.booking-heading p { font-size: 15px; line-height: 1.7; margin: 0; }
.booking-outline-link { display: inline-flex; gap: 18px; align-items: center; border: 1px solid #3f5c59; border-radius: 999px; padding: 13px 20px; font-size: 14px; font-weight: 600; white-space: nowrap; background: white; }
.booking-outline-link:hover { background: #f0f2e9; }
.booking-guidance { display: grid; grid-template-columns: 1fr 1fr; background: #fff; border: 1px solid #dfe4df; border-radius: 12px; padding: 24px 28px; gap: 28px; margin-bottom: 34px; }
.booking-guidance > div + div { border-left: 1px solid #dfe4df; padding-left: 28px; }
.booking-guidance h2 { font-size: 16px; font-weight: 700; margin-bottom: 7px; }
.booking-guidance p { font-size: 14px; line-height: 1.8; color: #293c3a; margin: 0; }
.booking-options-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 18px; }
.booking-options-heading h2 { font-size: 21px; font-weight: 700; }
.booking-options-heading span { font-size: 12px; }
.booking-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.booking-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid #dfe4df; border-top: 4px solid #a9ad19; border-radius: 12px; background: white; overflow: hidden; box-shadow: 0 4px 16px #3f5c5906; }
.booking-card-main { padding: 26px 26px 22px; }
.booking-card h3 { font-size: 20px; font-weight: 700; line-height: 1.55; margin: 0; min-height: 93px; overflow-wrap: anywhere; }
.booking-price { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 20px 0; padding: 15px 0; border-top: 1px solid #e6e9e4; border-bottom: 1px solid #e6e9e4; }
.booking-price > span { font-size: 13px; font-weight: 600; }
.booking-price strong { color: #3f5c59; font-size: 30px; line-height: 1.3; font-weight: 700; font-variant-numeric: tabular-nums; }
.booking-description { font-size: 15px; line-height: 1.85; color: #293c3a; white-space: pre-line; overflow-wrap: anywhere; margin: 0; }
.booking-card-action { margin-top: auto; padding: 0 26px 26px; }
.booking-card-action a { display: flex; justify-content: space-between; align-items: center; gap: 16px; background: #3f5c59; color: white; padding: 14px 20px; border-radius: 8px; min-height: 50px; font-size: 14px; font-weight: 600; }
.booking-card-action a:hover { box-shadow: 0 0 0 3px #c3c5a7; }
.booking-page :focus-visible { outline: 3px solid #3f5c59; outline-offset: 4px; }
.booking-help { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 24px; margin-top: 32px; border-left: 3px solid #a9ad19; }
.booking-help h2 { font-size: 17px; font-weight: 700; margin: 0 0 7px; }
.booking-help p { max-width: 760px; font-size: 14px; line-height: 1.8; margin: 0; }
.booking-help a, .booking-empty a { font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; white-space: nowrap; padding: 10px 0; }
.booking-empty { background: white; border: 1px solid #dfe4df; border-radius: 12px; padding: 36px 24px; text-align: center; }
.booking-empty h2 { font-size: 21px; font-weight: 700; margin-bottom: 12px; }
.booking-empty p { max-width: 550px; margin: 0 auto 20px; font-size: 15px; line-height: 1.8; }
@media (max-width: 1000px) { .booking-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
    .booking-page { padding: 28px 16px 36px; }
    .booking-heading { display: block; margin-bottom: 24px; }
    .booking-heading h1 { font-size: 46px; }
    .booking-heading p { font-size: 14px; }
    .booking-outline-link { margin-top: 18px; }
    .booking-guidance { grid-template-columns: 1fr; padding: 20px; gap: 18px; margin-bottom: 28px; }
    .booking-guidance > div + div { border-left: 0; padding-left: 0; padding-top: 18px; border-top: 1px solid #dfe4df; }
    .booking-options-heading { flex-direction: column; gap: 6px; }
    .booking-cards { grid-template-columns: 1fr; gap: 20px; }
    .booking-card-main { padding: 22px; }
    .booking-card h3 { min-height: 0; }
    .booking-card-action { padding: 0 22px 22px; }
    .booking-help { flex-direction: column; align-items: start; padding: 18px; gap: 10px; }
}
