:root {
  --ink: #f4f7f8;
  --card: #ffffff;
  --card2: #f4f7f8;
  --cyan: #00aeef;
  --red: #eb2227;
  --mute: #60727d;
  --border: #dce5e9;
}

body {
  background: #f4f7f8;
  color: #15252e;
  font-family: Inter, Manrope, system-ui, sans-serif;
}

body::before { display: none; }

.booking-utility { background: #00aeef; color: #fff; font-size: .76rem; font-weight: 700; }
.booking-nav-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.booking-utility .booking-nav-shell { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.booking-utility .booking-nav-shell div { display: flex; gap: 24px; }
.booking-utility a { color: #fff; text-decoration: none; }
.booking-site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.98); border-bottom: 1px solid #dce5e9; box-shadow: 0 5px 22px rgba(15,49,64,.05); }
.booking-nav-row { height: 88px; display: flex; align-items: center; gap: 24px; }
.booking-brand { width: 202px; flex: 0 0 auto; }
.booking-brand img { display: block; width: 100%; height: 67px; object-fit: contain; object-position: left center; }
.booking-primary-nav { margin-left: auto; display: flex; align-items: center; gap: 2px; }
.booking-primary-nav > a { color: #233740; text-decoration: none; font-size: .82rem; font-weight: 750; padding: 31px 8px; white-space: nowrap; }
.booking-primary-nav > a:hover { color: #007eae; }
.booking-primary-nav .booking-nav-cta { margin-left: 7px; padding: 12px 18px; border-radius: 999px; background: #eb2227; color: #fff; box-shadow: 0 10px 25px rgba(235,34,39,.2); }
.booking-primary-nav .booking-nav-cta:hover { color: #fff; background: #cb151a; }
.booking-menu-toggle { display: none; margin-left: auto; width: 46px; height: 46px; border: 1px solid #dce5e9; border-radius: 12px; background: #fff; align-items: center; justify-content: center; cursor: pointer; }
.booking-menu-toggle span, .booking-menu-toggle span::before, .booking-menu-toggle span::after { content: ""; display: block; width: 21px; height: 2px; background: #15252e; position: relative; transition: transform .2s ease, top .2s ease; }
.booking-menu-toggle span::before { position: absolute; top: -7px; }
.booking-menu-toggle span::after { position: absolute; top: 7px; }
.booking-menu-toggle[aria-expanded="true"] span { background: transparent; }
.booking-menu-toggle[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg); }
.booking-menu-toggle[aria-expanded="true"] span::after { top: 0; transform: rotate(-45deg); }

.booking-hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #003d59 0%, #006f99 58%, #00aeef 145%);
  color: #fff;
  padding: 86px 0 82px;
}
.booking-hero::after {
  content: "";
  position: absolute;
  width: 440px;
  height: 440px;
  right: -150px;
  top: -250px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  box-shadow: 0 0 0 56px rgba(255,255,255,.025), 0 0 0 112px rgba(255,255,255,.02);
}
.booking-hero-inner { position: relative; z-index: 1; width: min(1020px, calc(100% - 48px)); margin-inline: auto; }
.booking-hero h1 { max-width: 820px; margin: 0 0 18px; color: #fff; font-size: clamp(2.55rem, 5vw, 4.7rem); line-height: 1.02; letter-spacing: -.045em; }
.booking-hero p { max-width: 680px; margin: 0; color: rgba(255,255,255,.82); font-size: 1.08rem; line-height: 1.7; }

.wrap { padding-top: 64px; }
.grad {
  background: linear-gradient(135deg, #007eae, #00aeef);
  -webkit-background-clip: text;
  background-clip: text;
}

.panel, .form-wrap {
  background: #fff;
  border-color: #dce5e9;
  box-shadow: 0 16px 42px rgba(17, 58, 76, .08);
}

.panel-label, .slots-label, label { color: #60727d; }
.cal-btn { border-color: #dce5e9; color: #60727d; }
.cal-month, .expect-text strong, .bs-label { color: #15252e; }
.cal-day { color: #233740; }
.cal-day.unavailable { color: #bdc8cd; }
.cal-day.sunday-cell { color: rgba(235, 34, 39, .38); }
.cal-hdr.sunday, .sunday-note { color: rgba(235, 34, 39, .62); }
.expect-text span, .prompt, .bs-sub, .form-note { color: #60727d; }

.slot {
  background: #f4f7f8;
  border-color: #dce5e9;
  color: #233740;
}
.slot small { color: #60727d; }
.slot:hover:not(:disabled), .slot.selected { background: #e7f8ff; }

.booking-summary { background: #e7f8ff; border-color: #bceafb; }
.field {
  background: #f8fafb;
  border-color: #dce5e9;
  color: #15252e;
}
.field::placeholder { color: #9dafb7; }
.field:focus { background: #fff; }
select.field option { background: #fff; color: #15252e; }
.topic-helper { min-height: 19px; margin: -8px 0 15px; color: #007eae; font-size: .75rem; font-weight: 700; }
.btn-book { background: #eb2227; box-shadow: 0 8px 24px rgba(235, 34, 39, .2); }
.btn-book:hover { box-shadow: 0 12px 30px rgba(235, 34, 39, .3); }

@media (max-width: 760px) {
  .booking-nav-shell { width: min(100% - 28px, 1180px); }
  .booking-utility .booking-nav-shell { justify-content: flex-end; }
  .booking-utility .booking-nav-shell > span { display: none; }
  .booking-utility .booking-nav-shell div { gap: 17px; }
  .booking-nav-row { height: 78px; }
  .booking-brand { width: 178px; }
  .booking-brand img { height: 62px; }
  .wrap { padding: 48px 14px 64px; }
  .booking-hero { padding: 66px 0 62px; }
  .booking-hero-inner { width: min(100% - 28px, 1020px); }
  .booking-hero h1 { font-size: clamp(2.45rem, 12vw, 3.5rem); }
  .booking-hero p { font-size: .98rem; }
  .panel, .form-wrap { padding: 21px; border-radius: 16px; }
}

@media (max-width: 1080px) {
  body.booking-menu-open { overflow: hidden; }
  .booking-menu-toggle { display: flex; }
  .booking-primary-nav { display: none; position: fixed; inset: 126px 0 0; margin: 0; padding: 20px 24px 36px; overflow-y: auto; background: #fff; }
  .booking-primary-nav.is-open { display: block; }
  .booking-primary-nav > a { display: block; width: 100%; padding: 15px 5px; border-bottom: 1px solid #dce5e9; font-size: .95rem; }
  .booking-primary-nav .booking-nav-cta { margin: 20px 0 0; padding: 14px 18px; border-bottom: 0; text-align: center; }
}

@media (max-width: 760px) {
  .booking-primary-nav { inset: 116px 0 0; }
}
