:root { --booking-ink:#171717; --booking-muted:#6f6d69; --booking-line:#dedbd5; --booking-paper:#f7f5f1; }
.booking-shell { background:var(--booking-paper); color:var(--booking-ink); }
.booking-intro { min-height:450px; display:grid; place-items:center; padding:110px 24px 80px; color:#fff; text-align:center; background:linear-gradient(rgba(0,0,0,.54),rgba(0,0,0,.62)),url('Images/Desktop/Weddings/Max%20and%20Taylor/25-2M2A4878.jpg') center 46%/cover; }
.booking-intro-inner { max-width:800px; }
.booking-intro[hidden],.booking-catalog[hidden] { display:none; }
.booking-intro .eyebrow { color:rgba(255,255,255,.72); }
.booking-intro h1 { margin:10px 0 16px; font:500 clamp(3rem,7vw,5.8rem)/.98 'Bodoni Moda',serif; }
.booking-intro p:not(.eyebrow) { max-width:680px; margin:0 auto; color:rgba(255,255,255,.86); line-height:1.8; }
.booking-progress { display:grid; grid-template-columns:repeat(5,1fr); max-width:720px; margin:42px auto 0; padding:0; list-style:none; }
.booking-progress li { position:relative; display:grid; justify-items:center; gap:8px; color:rgba(255,255,255,.58); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.booking-progress li::before { content:""; position:absolute; top:14px; left:-50%; right:50%; height:1px; background:rgba(255,255,255,.3); }
.booking-progress li:first-child::before { display:none; }
.booking-progress span { position:relative; z-index:1; width:30px; height:30px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; background:rgba(0,0,0,.26); }
.booking-progress .is-active { color:#fff; }
.booking-progress .is-active span { color:#111; background:#fff; border-color:#fff; }

.booking-catalog { padding:90px clamp(20px,5vw,72px) 110px; }
.booking-section-head { max-width:680px; margin:0 auto 34px; text-align:center; }
.booking-section-head h2 { margin:8px 0 0; font:500 clamp(2.2rem,5vw,4.1rem)/1.08 'Bodoni Moda',serif; }
.booking-filters { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 auto 40px; }
.booking-filter { border:1px solid var(--booking-line); border-radius:999px; padding:11px 18px; background:#fff; color:var(--booking-ink); font:600 .68rem/1 'Montserrat',sans-serif; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.booking-filter:hover,.booking-filter:focus-visible,.booking-filter.active { color:#fff; background:#171717; border-color:#171717; }
.booking-filter-note { display:none; }
.booking-grid { max-width:1220px; margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.booking-card { min-width:0; overflow:hidden; background:#fff; border:1px solid var(--booking-line); transition:transform .25s ease,box-shadow .25s ease; }
.booking-card:hover { transform:translateY(-5px); box-shadow:0 18px 50px rgba(18,18,18,.1); }
.booking-card[hidden] { display:none; }
.booking-card img { width:100%; height:240px; display:block; object-fit:cover; }
.booking-card img.booking-card-image-vector { object-fit:cover; background:#e9e5de; }
.booking-card-body { padding:24px; }
.summary-code { margin:0 0 8px; color:#8a867f; font-size:.65rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.booking-card h3 { margin:0 0 10px; font:500 1.65rem/1.15 'Bodoni Moda',serif; }
.booking-card-body > p:not(.summary-code) { min-height:68px; margin:0; color:var(--booking-muted); font-size:.86rem; line-height:1.65; }
.booking-card-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:20px 0; padding-top:16px; border-top:1px solid #ece9e4; color:var(--booking-muted); font-size:.76rem; }
.booking-card-meta strong { color:var(--booking-ink); font-size:.92rem; }
.booking-card .btn { width:100%; }

.booking-scheduler { background:var(--booking-paper); padding-bottom:90px; }
.booking-scheduler[hidden] { display:none; }
.scheduler-hero { position:relative; min-height:430px; display:flex; align-items:flex-end; background-position:center; background-size:cover; color:#fff; }
.scheduler-hero-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.72)); }
.scheduler-hero.scheduler-hero-vector { background-color:#45413d; background-position:center; }
.scheduler-hero.scheduler-hero-vector .scheduler-hero-shade { background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.78)); }
.scheduler-hero.scheduler-hero-vector .scheduler-hero-copy { text-shadow:0 2px 22px rgba(0,0,0,.34); }
.scheduler-back { position:absolute; top:28px; left:clamp(20px,5vw,72px); z-index:2; border:1px solid rgba(255,255,255,.6); padding:11px 15px; background:rgba(0,0,0,.25); color:#fff; font:600 .7rem 'Montserrat',sans-serif; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; backdrop-filter:blur(8px); }
.scheduler-back:hover,.scheduler-back:focus-visible { background:#fff; color:#171717; }
.scheduler-hero-copy { position:relative; z-index:1; max-width:780px; padding:70px clamp(20px,7vw,110px); }
.scheduler-hero-copy .eyebrow { color:rgba(255,255,255,.7); }
.scheduler-hero-copy h1 { margin:8px 0 12px; font:500 clamp(2.8rem,6vw,5.2rem)/1 'Bodoni Moda',serif; }
.scheduler-hero-copy > p:last-child { max-width:650px; margin:0; color:rgba(255,255,255,.86); line-height:1.7; }
.scheduler-layout { max-width:1280px; margin:-36px auto 0; padding:0 clamp(18px,4vw,56px); position:relative; z-index:3; display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr); gap:28px; align-items:start; }
.scheduler-main,.package-summary { background:#fff; border:1px solid var(--booking-line); box-shadow:0 20px 60px rgba(22,22,22,.09); }
.scheduler-main { padding:clamp(26px,4vw,52px); }
.scheduler-heading h2 { margin:6px 0 10px; font:500 clamp(2.1rem,4vw,3.4rem)/1.1 'Bodoni Moda',serif; }
.scheduler-heading > p:last-child { max-width:660px; margin:0 0 32px; color:var(--booking-muted); line-height:1.7; }
.calendar-wrap { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr); gap:24px; }
.calendar-panel,.time-panel { border:1px solid var(--booking-line); padding:22px; }
.calendar-header { display:grid; grid-template-columns:42px 1fr 42px; align-items:center; margin-bottom:18px; text-align:center; }
.calendar-header button { width:38px; height:38px; border:1px solid var(--booking-line); background:#fff; font-size:1.4rem; cursor:pointer; }
.calendar-header button:disabled { opacity:.3; cursor:not-allowed; }
.calendar-header strong { font:600 .82rem 'Montserrat',sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.calendar-days,.calendar-dates { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; text-align:center; }
.calendar-days { margin-bottom:8px; color:#96918a; font-size:.65rem; text-transform:uppercase; }
.calendar-date,.calendar-blank { aspect-ratio:1; }
.calendar-date { border:1px solid transparent; background:#fff; color:#252525; font:500 .75rem 'Montserrat',sans-serif; cursor:pointer; }
.calendar-date:hover:not(:disabled),.calendar-date:focus-visible { border-color:#171717; }
.calendar-date.selected { background:#171717; color:#fff; }
.calendar-date:disabled { color:#c7c3bd; background:#f7f6f3; cursor:not-allowed; }
.time-panel h3 { margin:0 0 6px; font:500 1.35rem 'Bodoni Moda',serif; }
.time-panel > p { margin:0 0 22px; color:var(--booking-muted); font-size:.75rem; }
.time-options,.time-group { display:grid; gap:14px; }
.time-group-label { color:#8a867f; font-size:.65rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.time-group-options { display:grid; gap:8px; }
.time-option { width:100%; border:1px solid var(--booking-line); padding:12px 10px; background:#fff; color:#171717; font:600 .72rem 'Montserrat',sans-serif; cursor:pointer; }
.time-option:hover,.time-option:focus-visible,.time-option.selected { background:#171717; border-color:#171717; color:#fff; }
.time-placeholder { color:var(--booking-muted); font-size:.82rem; line-height:1.6; }
.package-summary { position:sticky; top:92px; padding:32px; }
.package-summary h2 { margin:0 0 24px; font:500 2rem/1.1 'Bodoni Moda',serif; }
.summary-meta { margin:0 0 26px; }
.summary-meta div { display:grid; grid-template-columns:82px 1fr; gap:10px; padding:10px 0; border-top:1px solid #ece9e4; }
.summary-meta dt { color:#8a867f; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.summary-meta dd { margin:0; color:#343434; font-size:.8rem; line-height:1.5; }
.package-summary h3 { margin:0 0 9px; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; }
.package-summary ul { margin:0; padding:0 0 0 18px; color:var(--booking-muted); font-size:.78rem; line-height:1.65; }
.summary-retainer { margin:22px 0; padding:15px; background:#f2f0eb; color:#4a4741; font-size:.75rem; line-height:1.55; }
.summary-selection { min-height:63px; margin-bottom:14px; padding:14px; border:1px solid var(--booking-line); color:var(--booking-muted); font-size:.78rem; line-height:1.6; }
.scheduler-continue { width:100%; }
.scheduler-continue:disabled { opacity:.42; cursor:not-allowed; }
.summary-contact { display:block; margin-top:15px; color:#5f5b55; font-size:.72rem; text-align:center; }
.no-script { margin:0; padding:20px; background:#fff2c8; text-align:center; }

@media (max-width:1020px) {
  .booking-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .scheduler-layout { grid-template-columns:1fr; }
  .package-summary { position:static; }
}
@media (max-width:760px) {
  .booking-intro { min-height:500px; padding-top:100px; }
  .booking-progress { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .booking-progress li { font-size:0; }
  .booking-progress li::before { left:-50%; }
  .booking-catalog { padding:64px 16px 80px; }
  .booking-filters { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; margin-right:-16px; margin-bottom:14px; padding-right:16px; scroll-snap-type:x proximity; scrollbar-width:none; }
  .booking-filters::-webkit-scrollbar { display:none; }
  .booking-filter { flex:0 0 auto; scroll-snap-align:start; }
  .booking-filter-note { display:block; margin:0 0 30px; color:var(--booking-muted); font-size:.63rem; font-weight:700; letter-spacing:.08em; text-align:right; text-transform:uppercase; }
  .booking-grid { grid-template-columns:1fr; }
  .booking-card img { height:230px; }
  .booking-card-body > p:not(.summary-code) { min-height:0; }
  .scheduler-hero { min-height:390px; }
  .scheduler-hero.scheduler-hero-vector { background-size:auto 125%; background-position:center 14%; }
  .scheduler-hero-copy { padding:90px 22px 52px; }
  .scheduler-layout { margin:-18px auto 0; padding:0 12px; }
  .scheduler-main { padding:28px 16px; }
  .calendar-wrap { grid-template-columns:1fr; }
  .calendar-panel,.time-panel { padding:15px; }
  .package-summary { padding:25px 20px; }
}
@media (prefers-reduced-motion:reduce) { .booking-card { transition:none; } }
