
.booking-page{padding:3.5rem 0 4.5rem;background:linear-gradient(180deg,#faf7f2 0%,#fff 32%,#f8fafc 100%)}
.booking-shell{max-width:1348px;margin:0 auto;padding:0 1.5rem}
.booking-hero{max-width:900px;margin:0 0 1.75rem}
.booking-eyebrow{margin:0 0 .65rem;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#64748b}
.booking-title{margin:0 0 .9rem;font-size:clamp(2rem,4vw,3.2rem);line-height:1.04;color:#0f172a}
.booking-intro{margin:0;max-width:52rem;color:#475569;line-height:1.8;font-size:1rem}
.booking-alert{border-radius:22px;padding:1rem 1.1rem 1rem 1.15rem;margin:0 0 1.25rem;border:1px solid rgba(148,163,184,.22);box-shadow:0 20px 50px rgba(15,23,42,.06)}
.booking-alert strong{display:block;margin:0 0 .35rem;color:#0f172a}
.booking-alert p,.booking-alert ul{margin:0;color:#334155;line-height:1.7}
.booking-alert ul{padding-left:1.1rem}
.booking-alert--success{background:linear-gradient(135deg,rgba(236,253,245,.96),rgba(255,255,255,.96));border-color:rgba(16,185,129,.2)}
.booking-alert--error{background:linear-gradient(135deg,rgba(254,242,242,.98),rgba(255,255,255,.96));border-color:rgba(239,68,68,.18)}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.82fr);gap:1.25rem;align-items:start}
.booking-main,.booking-side{display:grid;gap:1.1rem}
.booking-card{background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:28px;padding:1.25rem 1.25rem 1.35rem;box-shadow:0 24px 60px rgba(15,23,42,.06)}
.booking-card--sticky{position:sticky;top:1.2rem}
.booking-card__head{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.booking-card__head p{margin:0;color:#64748b;line-height:1.6;font-size:.93rem}
.booking-card__step{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#94a3b8}
.booking-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem}
.booking-type-card{display:flex;flex-direction:column;gap:.85rem;cursor:pointer;padding:1rem;border-radius:22px;border:1px solid rgba(148,163,184,.24);background:linear-gradient(135deg,#fff,#f8fafc);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.booking-type-card:hover{transform:translateY(-2px);border-color:rgba(15,23,42,.18);box-shadow:0 20px 40px rgba(15,23,42,.08)}
.booking-type-card.is-active{border-color:#0f172a;background:linear-gradient(135deg,rgba(15,23,42,.98),rgba(30,41,59,.98));box-shadow:0 26px 60px rgba(15,23,42,.16)}
.booking-type-card.is-active strong,.booking-type-card.is-active .booking-type-card__desc,.booking-type-card.is-active .booking-type-card__meta,.booking-type-card.is-active .booking-type-card__top span{color:#fff}
.booking-type-card__top,.booking-type-card__meta{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.booking-type-card__top strong{font-size:1rem;color:#0f172a}
.booking-type-card__top span,.booking-type-card__meta{font-size:.88rem;color:#64748b}
.booking-type-card__desc{color:#334155;line-height:1.7;font-size:.94rem}
.booking-calendar{display:grid;gap:1rem}.booking-calendar__legend{display:flex;gap:.55rem;flex-wrap:wrap}.booking-calendar__legend-item{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:999px;font-size:.76rem;font-weight:700;background:#f8fafc;color:#334155}.booking-calendar__legend-item::before{content:"";width:.55rem;height:.55rem;border-radius:999px;background:#cbd5e1}.booking-calendar__legend-item.is-free::before{background:#22c55e}.booking-calendar__legend-item.is-selected::before{background:#f59e0b}.booking-calendar__legend-item.is-busy::before{background:#ef4444}.booking-calendar__section{display:grid;gap:.6rem}.booking-calendar__section-title{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.booking-calendar__days{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.7rem}.booking-calendar__day{display:grid;gap:.2rem;padding:.8rem .85rem;border:1px solid rgba(148,163,184,.22);border-radius:20px;background:#fff;text-align:left;cursor:pointer;transition:all .16s ease}.booking-calendar__day:hover{transform:translateY(-1px);border-color:rgba(15,23,42,.18)}.booking-calendar__day.is-free .booking-calendar__day-state{color:#16a34a}.booking-calendar__day.is-busy{opacity:.7;cursor:not-allowed;background:#fef2f2}.booking-calendar__day.is-busy .booking-calendar__day-state{color:#dc2626}.booking-calendar__day.is-muted{opacity:.72;background:#f8fafc}.booking-calendar__day.is-active{border-color:#f59e0b;background:#fff7ed;box-shadow:0 18px 40px rgba(249,115,22,.12)}.booking-calendar__day-weekday{font-size:.75rem;color:#64748b}.booking-calendar__day-date{font-size:1rem;font-weight:800;color:#0f172a}.booking-calendar__day-state{font-size:.74rem;font-weight:700}.booking-slot-card{align-items:flex-start}.booking-slot-card__time{font-size:1.02rem;font-weight:800}.booking-slot-card__weekday{font-size:.8rem}.booking-slot-card__date{display:none}
.booking-slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem}
.booking-slot-card{width:100%;text-align:left;border:1px solid rgba(148,163,184,.22);background:#f8fafc;border-radius:20px;padding:.9rem .95rem;display:flex;flex-direction:column;gap:.32rem;cursor:pointer;transition:all .16s ease}
.booking-slot-card:hover{transform:translateY(-1px);border-color:rgba(15,23,42,.18);background:#fff}
.booking-slot-card.is-active{background:#0f172a;border-color:#0f172a;box-shadow:0 22px 50px rgba(15,23,42,.16)}
.booking-slot-card.is-active span{color:#fff}
.booking-slot-card__date{font-weight:700;color:#0f172a}.booking-slot-card__time{font-size:1rem;color:#0f172a}.booking-slot-card__weekday{font-size:.84rem;color:#64748b}
.booking-empty-slots{padding:1rem 1.05rem;border-radius:18px;background:#f8fafc;color:#475569;line-height:1.7}
.booking-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.95rem}
.booking-field{display:flex;flex-direction:column;gap:.45rem}.booking-field--full{grid-column:1/-1}
.booking-field label{font-weight:600;color:#0f172a;font-size:.95rem}
.booking-field input,.booking-field textarea{width:100%;border:1px solid rgba(148,163,184,.26);border-radius:16px;padding:.82rem .95rem;font:inherit;color:#0f172a;background:#fff;box-sizing:border-box}
.booking-field input:focus,.booking-field textarea:focus{outline:none;border-color:rgba(15,23,42,.35);box-shadow:0 0 0 4px rgba(15,23,42,.06)}
.booking-field textarea{resize:vertical;min-height:140px}
.booking-field__hint{margin:0;font-size:.86rem;color:#64748b;line-height:1.6}
.booking-check{display:flex;gap:.7rem;align-items:flex-start;margin-top:1rem;color:#334155;line-height:1.65}.booking-check input{margin-top:.2rem}
.booking-check a{color:#0f172a;text-underline-offset:3px}
.booking-submit-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.2rem}
.booking-submit{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:#0f172a;color:#fff;padding:.92rem 1.35rem;font-weight:700;cursor:pointer;box-shadow:0 20px 40px rgba(15,23,42,.14)}
.booking-submit:hover{background:#111827}.booking-submit-note{color:#64748b;font-size:.9rem;line-height:1.6}
.booking-estimate{display:grid;gap:.9rem}.booking-estimate__slot{display:grid;gap:.28rem;padding:.95rem 1rem;border-radius:20px;background:#f8fafc}.booking-estimate__slot span{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:#94a3b8}.booking-estimate__slot strong{color:#0f172a;line-height:1.5}
.booking-estimate__rows{display:grid;gap:.55rem}.booking-estimate__row,.booking-estimate__total,.booking-estimate__deposit{display:flex;align-items:center;justify-content:space-between;gap:.85rem}.booking-estimate__row span{color:#475569}.booking-estimate__row strong,.booking-estimate__deposit strong{color:#0f172a}.booking-estimate__total{padding-top:.8rem;border-top:1px solid rgba(148,163,184,.18)}.booking-estimate__total span{font-weight:700;color:#0f172a}.booking-estimate__total strong{font-size:1.3rem;color:#0f172a}
.booking-side__box{margin-top:1.15rem;padding:1rem 1.05rem;border-radius:20px;background:linear-gradient(135deg,#fff7ed,#fff)}.booking-side__box strong{display:block;margin:0 0 .35rem;color:#0f172a}.booking-side__box p{margin:0;color:#475569;line-height:1.7}.booking-side__notes{margin-top:.8rem!important}
@media (max-width: 1080px){.booking-layout{grid-template-columns:1fr}.booking-card--sticky{position:static}}
@media (max-width: 720px){.booking-page{padding:2.4rem 0 3rem}.booking-shell{padding:0 1rem}.booking-card{padding:1rem}.booking-form-grid{grid-template-columns:1fr}.booking-type-grid,.booking-slot-grid,.booking-calendar__days{grid-template-columns:1fr}.booking-submit{width:100%}.booking-submit-row{align-items:stretch}}


/* Windows 11 premium pass for booking */
.booking-page{
  background:
    radial-gradient(circle at top left, rgba(125,211,252,.32), transparent 28%),
    radial-gradient(circle at top right, rgba(251,191,36,.14), transparent 24%),
    linear-gradient(180deg,#f8fbff 0%,#f4f8fd 48%,#eef4fb 100%);
}
.booking-shell{max-width:1400px}
.booking-hero{
  position:relative;
  overflow:hidden;
  padding:1.6rem 1.75rem 1.7rem;
  border-radius:34px;
  border:1px solid rgba(255,255,255,.72);
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(247,250,255,.92));
  box-shadow:0 24px 70px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
}
.booking-hero::before{
  content:"";
  position:absolute;
  inset:-30% auto auto 55%;
  width:280px;
  height:280px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(186,230,253,.7), rgba(186,230,253,0));
  pointer-events:none;
}
.booking-hero::after{
  content:"";
  position:absolute;
  inset:auto auto -64px -48px;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(251,191,36,.16), rgba(251,191,36,0));
  pointer-events:none;
}
.booking-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.4rem .78rem;
  border-radius:999px;
  border:1px solid rgba(191,219,254,.88);
  background:rgba(255,255,255,.72);
  color:#4b5563;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86);
}
.booking-title{letter-spacing:-.04em; max-width:16ch}
.booking-intro{max-width:58rem; font-size:1.03rem; line-height:1.85}
.booking-layout{gap:1.45rem; margin-top:1.35rem}
.booking-main,.booking-side{gap:1.25rem}
.booking-card{
  border-radius:30px;
  border:1px solid rgba(255,255,255,.7);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(246,250,255,.98));
  box-shadow:0 22px 65px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.88);
  backdrop-filter:blur(16px);
}
.booking-card__step{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.42rem .78rem;
  border-radius:999px;
  background:linear-gradient(180deg,#ffffff,#f7fbff);
  border:1px solid rgba(191,219,254,.95);
  box-shadow:0 10px 24px rgba(59,130,246,.06);
}
.booking-card__head p{max-width:56rem}
.booking-type-card,
.booking-calendar__day,
.booking-slot-card,
.booking-empty-slots,
.booking-estimate__slot,
.booking-side__box{
  border-radius:24px;
}
.booking-type-card{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(244,248,255,.98));
  border-color:rgba(191,219,254,.88);
  box-shadow:0 16px 32px rgba(15,23,42,.04);
}
.booking-type-card:hover,
.booking-calendar__day:hover,
.booking-slot-card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 44px rgba(15,23,42,.1);
}
.booking-type-card.is-active{
  border-color:rgba(96,165,250,.95);
  background:linear-gradient(180deg,rgba(239,246,255,.98),rgba(255,255,255,.98));
  box-shadow:0 24px 54px rgba(96,165,250,.18), inset 0 1px 0 rgba(255,255,255,.9);
}
.booking-type-card.is-active strong,
.booking-type-card.is-active .booking-type-card__desc,
.booking-type-card.is-active .booking-type-card__meta,
.booking-type-card.is-active .booking-type-card__top span{color:#0f172a}
.booking-calendar__legend{gap:.7rem}
.booking-calendar__legend-item{
  padding:.42rem .78rem;
  border:1px solid rgba(203,213,225,.9);
  background:linear-gradient(180deg,#fff,#f8fbff);
  box-shadow:0 12px 24px rgba(15,23,42,.04);
}
.booking-calendar__day,
.booking-slot-card{
  border-color:rgba(191,219,254,.82);
  background:linear-gradient(180deg,#fff,#f7fbff);
}
.booking-calendar__day.is-active,
.booking-slot-card.is-active{
  border-color:rgba(96,165,250,.96);
  background:linear-gradient(180deg,rgba(239,246,255,.98),rgba(255,255,255,.98));
  box-shadow:0 22px 50px rgba(96,165,250,.16);
}
.booking-slot-card.is-active span,
.booking-calendar__day.is-active .booking-calendar__day-date,
.booking-calendar__day.is-active .booking-calendar__day-weekday,
.booking-calendar__day.is-active .booking-calendar__day-state{color:#0f172a}
.booking-field label{font-weight:700; letter-spacing:-.01em}
.booking-field input,
.booking-field textarea{
  border-radius:18px;
  border-color:rgba(203,213,225,.95);
  background:linear-gradient(180deg,#ffffff,#fbfdff);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
}
.booking-field input:focus,
.booking-field textarea:focus{
  border-color:rgba(96,165,250,.95);
  box-shadow:0 0 0 4px rgba(186,230,253,.44), 0 14px 34px rgba(59,130,246,.08);
}
.booking-check{
  padding:.88rem 1rem;
  border-radius:20px;
  border:1px solid rgba(226,232,240,.96);
  background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(248,250,252,.94));
}
.booking-check a{font-weight:700}
.booking-submit-row{
  padding-top:.35rem;
  align-items:center;
}
.booking-submit{
  min-width:240px;
  min-height:50px;
  border:1px solid rgba(191,219,254,.95);
  background:linear-gradient(180deg,rgba(240,249,255,.98),rgba(219,234,254,.98));
  color:#0f172a;
  box-shadow:0 18px 40px rgba(56,189,248,.12), inset 0 1px 0 rgba(255,255,255,.9);
}
.booking-submit:hover{
  transform:translateY(-2px);
  background:linear-gradient(180deg,rgba(224,242,254,.99),rgba(186,230,253,.99));
  box-shadow:0 22px 48px rgba(56,189,248,.18), inset 0 1px 0 rgba(255,255,255,.92);
}
.booking-submit-note{max-width:30rem}
.booking-estimate__slot,
.booking-side__box{
  border:1px solid rgba(226,232,240,.94);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,250,255,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.booking-estimate__total{
  margin-top:.25rem;
  padding:.95rem 1rem 0;
  border-top:1px solid rgba(226,232,240,.98);
}
.booking-estimate__total strong{font-size:1.38rem}
.booking-alert{
  border-radius:26px;
  backdrop-filter:blur(14px);
}
@media (max-width:1080px){
  .booking-hero{padding:1.35rem 1.2rem 1.4rem}
}
@media (max-width:720px){
  .booking-title{max-width:none}
  .booking-submit{width:100%; min-width:0}
  .booking-check{padding:.8rem .9rem}
}
