:root { --booking-ink: #172033; --booking-soft: #5f6470; --booking-line: rgba(79,55,37,.14); --booking-orange: #ef5a17; }
.booking-page { min-width: 320px; background: #f7f3ed; color: var(--booking-ink); font-family: "DM Sans", system-ui, sans-serif; }
.booking-header, .booking-hero, .booking-details, .booking-faq, .booking-footer { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.booking-header { display: flex; min-height: 92px; align-items: center; justify-content: space-between; }
.booking-brand img { width: 174px; filter: sepia(1) saturate(7) hue-rotate(342deg) brightness(.92) contrast(1.05); }
.booking-home, .booking-details a { color: var(--booking-ink); font-size: .79rem; font-weight: 800; text-decoration: none; }
.booking-home:hover, .booking-details a:hover { color: var(--booking-orange); }
.booking-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .75fr); gap: 100px; align-items: center; min-height: calc(100vh - 92px); padding: 72px 0 98px; }
.booking-copy { max-width: 650px; }
.booking-eyebrow { color: var(--booking-orange); font-size: .68rem; font-weight: 800; letter-spacing: .15em; }
.booking-copy h1, .booking-details h2, .booking-faq h2 { margin: 22px 0 0; font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.06em; }
.booking-copy h1 { max-width: 650px; font-size: clamp(3.8rem, 7.2vw, 6.6rem); line-height: .9; }
.booking-copy h1 em { color: var(--booking-orange); font-style: normal; }
.booking-copy > p { max-width: 570px; margin: 30px 0 0; color: var(--booking-soft); font-size: 1.03rem; line-height: 1.8; }
.booking-proof { display: grid; gap: 13px; margin: 36px 0 0; padding: 0; list-style: none; color: var(--booking-soft); font-size: .82rem; }
.booking-proof li { display: flex; align-items: center; gap: 12px; }
.booking-proof span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: rgba(239,90,23,.1); color: var(--booking-orange); font-size: .58rem; font-weight: 800; }
.booking-card { border: 1px solid var(--booking-line); border-radius: 25px; padding: 34px; background: #fffdf9; box-shadow: 0 28px 75px rgba(84,49,24,.11); }
.booking-card-top { display: flex; align-items: center; gap: 8px; color: #8d837a; font-size: .63rem; font-weight: 800; letter-spacing: .1em; }
.booking-status { width: 8px; height: 8px; border-radius: 50%; background: #2f9c72; box-shadow: 0 0 0 4px rgba(47,156,114,.1); }
.booking-card h2 { margin: 26px 0 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.15rem, 4vw, 3.1rem); font-weight: 500; line-height: .98; letter-spacing: -.05em; }
.booking-card p { margin: 18px 0 0; color: var(--booking-soft); font-size: .88rem; line-height: 1.7; }
.booking-cta { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 18px; margin-top: 27px; border-radius: 13px; padding: 0 19px; background: var(--booking-orange); color: white; font-size: .83rem; font-weight: 800; text-decoration: none; box-shadow: 0 15px 30px rgba(239,90,23,.2); transition: transform 170ms ease, background 170ms ease; }
.booking-cta:hover { transform: translateY(-2px); background: #cf430b; }
.booking-cta span { font-size: 1.15rem; }
.booking-card .booking-note { margin-top: 13px; color: #8d837a; font-size: .67rem; text-align: center; }
.booking-details { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; border-block: 1px solid var(--booking-line); padding: 75px 0; }
.booking-details h2, .booking-faq h2 { font-size: clamp(2.45rem, 5vw, 4.3rem); line-height: .97; }
.booking-details-copy { padding-top: 8px; }
.booking-details-copy p { margin: 0; color: var(--booking-soft); line-height: 1.8; }
.booking-details-copy a { display: inline-flex; gap: 9px; margin-top: 24px; color: var(--booking-orange); }
.booking-faq { padding: 90px 0; }
.faq-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 45px; }
.faq-grid article { border: 1px solid var(--booking-line); border-radius: 18px; padding: 23px; background: rgba(255,253,249,.7); }
.faq-grid h3 { margin: 0; font-size: .94rem; }
.faq-grid p { margin: 11px 0 0; color: var(--booking-soft); font-size: .79rem; line-height: 1.68; }
.booking-footer { display: flex; flex-wrap: wrap; gap: 14px 24px; border-top: 1px solid var(--booking-line); padding: 28px 0 42px; color: #8d837a; font-size: .7rem; }
.booking-footer a { color: inherit; text-decoration: none; }.booking-footer a:hover { color: var(--booking-orange); }
@media (max-width: 820px) { .booking-hero { grid-template-columns: 1fr; gap: 48px; min-height: auto; padding-top: 56px; }.booking-card { max-width: 560px; }.booking-details { grid-template-columns: 1fr; gap: 28px; }.faq-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .booking-header, .booking-hero, .booking-details, .booking-faq, .booking-footer { width: min(100% - 30px, 1120px); }.booking-header { min-height: 75px; }.booking-brand img { width: 138px; }.booking-home { font-size: .69rem; }.booking-hero { padding: 45px 0 62px; }.booking-copy h1 { font-size: clamp(3.35rem, 16vw, 4.8rem); }.booking-card { padding: 25px; }.booking-details { padding: 58px 0; }.booking-faq { padding: 64px 0; } }
@media (prefers-reduced-motion: reduce) { .booking-cta { transition: none; } }
