.booking-intro { overflow:hidden; }
.booking-hero { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr); gap:56px; align-items:center; padding:24px 0 48px; }
.booking-hero h1 { max-width:760px; margin-bottom:18px; font-size:clamp(2.25rem,5vw,4.35rem); line-height:1.02; letter-spacing:-.045em; }
.booking-hero__lede { max-width:730px; margin-bottom:26px; color:var(--color-text-muted); font-size:clamp(1rem,2vw,1.14rem); line-height:1.7; }
.booking-actions,.booking-final__actions { display:flex; flex-wrap:wrap; gap:12px; }
.booking-hero__proof { display:flex; flex-wrap:wrap; gap:10px 22px; margin:24px 0 0; padding:0; list-style:none; color:var(--color-text-muted); font-size:14px; font-weight:650; }
.booking-hero__proof li { display:flex; gap:7px; align-items:center; }
.booking-hero__proof [data-icon] { color:var(--color-primary); }

.booking-nav { position:sticky; z-index:20; top:var(--header-height,72px); border-block:1px solid rgba(16,50,47,.09); background:rgba(255,255,255,.92); backdrop-filter:blur(18px); }
.booking-nav__inner { display:flex; gap:6px; overflow-x:auto; padding-block:10px; scrollbar-width:none; }
.booking-nav__inner::-webkit-scrollbar { display:none; }
.booking-nav a { flex:0 0 auto; padding:9px 15px; border-radius:999px; color:var(--color-text-muted); font-size:14px; font-weight:750; text-decoration:none; transition:.2s ease; }
.booking-nav a:hover,.booking-nav a.is-active { color:var(--color-primary); background:var(--color-primary-light); }
.booking-anchor { scroll-margin-top:145px; }

.booking-timeline { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; max-width:1040px; margin:0 auto; }
.booking-step { position:relative; display:grid; grid-template-columns:54px 1fr; gap:18px; padding:26px; border:1px solid rgba(16,50,47,.08); border-radius:22px; background:#fff; box-shadow:0 12px 34px rgba(19,52,48,.06); }
.booking-step__num { display:grid; place-items:center; width:50px; height:50px; border-radius:16px; color:#fff; background:linear-gradient(145deg,var(--color-primary),#0b8d84); font-size:20px; font-weight:850; box-shadow:0 9px 22px rgba(0,107,102,.2); }
.booking-step__body h3 { margin:3px 0 8px; font-size:1.16rem; }
.booking-step__body p { margin:0; color:var(--color-text-muted); line-height:1.65; }
.booking-step__time { color:var(--color-primary); font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }

#payment .advantage-card,#cancellation .advantage-card { height:100%; border:1px solid rgba(16,50,47,.08); border-radius:22px; box-shadow:0 12px 32px rgba(19,52,48,.055); }
.booking-security { display:flex; gap:18px; align-items:flex-start; margin-top:28px; padding:24px 26px; border:1px solid rgba(0,107,102,.14); border-radius:20px; background:linear-gradient(135deg,var(--color-primary-light),#fff); }
.booking-security__icon { flex-shrink:0; color:var(--color-primary); }
.booking-security b { display:block; margin-bottom:5px; }
.booking-security span { color:var(--color-text-muted); font-size:14px; line-height:1.6; }
.booking-documents { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:64px; align-items:start; }
.booking-documents .check-list { margin:0; padding:28px; border:1px solid rgba(16,50,47,.08); border-radius:24px; background:#fff; box-shadow:0 16px 40px rgba(19,52,48,.06); }
.booking-two-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.booking-card-note { margin-top:14px; padding-top:14px; border-top:1px solid rgba(16,50,47,.08); color:var(--color-text-muted); font-size:14px; }
.booking-checklist .warning-card { border-radius:20px; background:#fff; }
.booking-final .container { max-width:880px!important; padding-block:12px; text-align:center; }
.booking-final .section-head { margin-bottom:24px; }
.booking-final__actions { justify-content:center; }
.booking-mobile-cta { display:none; }

@media (max-width:900px) {
  .booking-hero,.booking-documents { grid-template-columns:1fr; gap:30px; }
  .booking-hero [data-registry-block] { max-width:560px; }
  .booking-timeline { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .booking-hero { padding-bottom:30px; }
  .booking-hero h1 { font-size:clamp(2.15rem,11vw,3rem); }
  .booking-actions .btn,.booking-final__actions .btn { width:100%; }
  .booking-nav { top:64px; }
  .booking-step { grid-template-columns:42px 1fr; gap:14px; padding:20px; border-radius:18px; }
  .booking-step__num { width:42px; height:42px; border-radius:13px; font-size:17px; }
  .booking-two-cards { grid-template-columns:1fr; }
  .booking-security { padding:20px; }
  .booking-documents .check-list { padding:22px; }
  .booking-mobile-cta { position:fixed; z-index:45; right:14px; bottom:14px; left:14px; display:flex; justify-content:center; gap:12px; padding:15px 20px; border-radius:16px; color:#fff; background:var(--color-primary); box-shadow:0 12px 30px rgba(0,70,66,.28); font-weight:800; text-decoration:none; }
  body { padding-bottom:72px; }
}
