.scinet-booking-page {
  --booking-black: #0b0b0b;
  --booking-red: var(--scinet-ci-red, #be1622);
  padding-block: clamp(2.5rem, 6vw, 5rem);
}

/* The site's floating sales CTA must not cover booking form controls or receipts. */
body:has(.scinet-booking-page) .sidebar-cta {
  display: none;
}

.scinet-booking-page > h1 {
  margin: 0 0 1rem;
  padding: 0;
  color: var(--booking-black);
  font-family: var(--scinet-display-font, 'Ailerons', 'Open Sans Condensed', sans-serif);
  font-size: clamp(2.8rem, 6vw, 5.5rem);
  font-weight: 400;
  letter-spacing: .01em;
  line-height: .98;
  text-align: left;
}

.scinet-booking-page > p {
  max-width: 58ch;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  line-height: 1.55;
}

.scinet-booking-page__notice {
  border: 1px solid #d7d7d7;
  border-radius: .75rem;
  margin-block: 2rem;
  padding: 1.25rem;
}

.scinet-booking-page .scinet-booking {
  --sb-accent: var(--booking-red);
  --sb-on-accent: #fff;
  --sb-panel: #fff;
  --sb-border: #bcbcbc;
  --sb-radius: 0;
  --sb-max-width: 1060px;
  margin-inline: 0;
}

.scinet-booking-page .scinet-booking__header {
  border-top: 5px solid var(--booking-red);
  border-bottom-color: var(--booking-black);
  padding-block: clamp(1.5rem, 3vw, 2.5rem);
}

.scinet-booking-page .scinet-booking__header h2 {
  max-width: 22ch;
  color: var(--booking-black);
  font-family: var(--scinet-display-font, 'Ailerons', 'Open Sans Condensed', sans-serif);
  font-size: clamp(2rem, 4vw, 3.7rem);
  font-weight: 400;
  letter-spacing: .01em;
  text-align: left;
}

.scinet-booking-page .scinet-booking__step {
  border-bottom-color: #bcbcbc;
}

.scinet-booking-page .scinet-booking__number {
  border-radius: 0;
}

.scinet-booking-page .scinet-booking__type-card,
.scinet-booking-page .scinet-booking__type-details,
.scinet-booking-page .scinet-booking__fields input:not([type='checkbox']),
.scinet-booking-page .scinet-booking__fields select {
  border-radius: 0;
}

.scinet-booking-page .scinet-booking__calendar {
  --sb-border: #666;
  --sb-muted: #d0d0d0;
  position: relative;
  max-width: 720px;
  padding: clamp(1rem, 3vw, 1.75rem);
  border: 0;
  border-top: 5px solid var(--booking-red);
  border-radius: 0;
  background: var(--booking-black);
  box-shadow: 0 18px 36px rgb(0 0 0 / 14%);
  color: #fff;
}

.scinet-booking-page .scinet-booking__calendar-header {
  border-bottom-color: #666;
}

.scinet-booking-page .scinet-booking__calendar-header h3 {
  color: #fff;
  font-family: var(--scinet-display-font, 'Ailerons', 'Open Sans Condensed', sans-serif);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 400;
}

.scinet-booking-page .scinet-booking__calendar-nav {
  border-color: #888;
  border-radius: 0;
  color: #fff;
}

.scinet-booking-page .scinet-booking__calendar-nav:hover,
.scinet-booking-page .scinet-booking__calendar-nav:focus-visible {
  border-color: #fff;
  background: var(--booking-red);
  box-shadow: none;
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.scinet-booking-page .scinet-booking__calendar-day {
  border-radius: 0;
  color: #bdbdbd;
}

.scinet-booking-page .scinet-booking__calendar-day.is-available {
  border-color: #666;
  background: #202020;
  color: #fff;
}

.scinet-booking-page .scinet-booking__calendar-day.is-available:hover,
.scinet-booking-page .scinet-booking__calendar-day.is-available:focus-visible {
  border-color: #fff;
  background: #333;
  box-shadow: none;
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.scinet-booking-page .scinet-booking__calendar-day.is-selected,
.scinet-booking-page .scinet-booking__calendar-day.is-selected:hover,
.scinet-booking-page .scinet-booking__calendar-day.is-selected:focus-visible {
  border-color: var(--booking-red);
  background: var(--booking-red);
  color: #fff;
}

.scinet-booking-page .scinet-booking__calendar-day.is-today::before {
  border-color: #fff;
  border-radius: 0;
}

.scinet-booking-page .scinet-booking__calendar-status,
.scinet-booking-page .scinet-booking__calendar-legend,
.scinet-booking-page .scinet-booking__calendar-weekdays span {
  color: #d0d0d0;
}

.scinet-booking-page .scinet-booking__selection {
  border-left-width: 5px;
  border-left-color: var(--booking-red);
}

.scinet-booking-page .scinet-booking__slot {
  min-width: 5.5rem;
  min-height: 3.2rem;
  border: 2px solid var(--booking-black);
  border-radius: 0;
  background: #fff;
  color: var(--booking-black);
  font-variant-numeric: tabular-nums;
  letter-spacing: .04em;
}

.scinet-booking-page .scinet-booking__slot:hover,
.scinet-booking-page .scinet-booking__slot:focus-visible {
  border-color: var(--booking-red);
  box-shadow: none;
  outline: 2px solid var(--booking-red);
  outline-offset: 2px;
}

.scinet-booking-page .scinet-booking__slot.is-selected,
.scinet-booking-page .scinet-booking__slot.is-selected:hover,
.scinet-booking-page .scinet-booking__slot.is-selected:focus-visible {
  border-color: var(--booking-red);
  background: var(--booking-red);
  color: #fff;
}

.scinet-booking-page .scinet-booking__submit,
.scinet-booking-page .scinet-booking__secondary {
  border-radius: 0;
}

.scinet-booking-page .scinet-booking-turnstile {
  min-width: 0;
  margin: .5rem 0;
  padding: 1rem 0;
  border: 0;
  border-top: 1px solid #bcbcbc;
}

.scinet-booking-page .scinet-booking-turnstile legend {
  padding: 0;
  font: inherit;
  font-weight: 700;
}

.scinet-booking-page .scinet-booking-turnstile p {
  margin: .25rem 0 .5rem;
}

.scinet-booking-page .scinet-booking-turnstile iframe {
  max-width: 100%;
}

.scinet-booking-page .scinet-booking-turnstile [data-scinet-booking-turnstile-status] {
  min-height: 1.4em;
}

.scinet-booking-page .scinet-booking-turnstile [data-state='error'] {
  color: #9d1120;
}

.scinet-booking-confirmed__eyebrow {
  margin: 0 0 .7rem;
  color: var(--booking-red);
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.scinet-booking-confirmed__intro {
  margin-bottom: 2rem;
}

.scinet-booking-confirmed__card {
  max-width: 760px;
  margin: 2rem 0;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  border-top: 5px solid var(--booking-red);
  background: #fff;
  box-shadow: 0 12px 32px rgb(0 0 0 / 12%);
}

.scinet-booking-confirmed__card h2 {
  margin: 0 0 1.5rem;
  color: var(--booking-black);
  font-family: var(--scinet-display-font, 'Ailerons', 'Open Sans Condensed', sans-serif);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.scinet-booking-confirmed__card dl {
  margin: 0 0 1.5rem;
}

.scinet-booking-confirmed__card dl > div {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) 2fr;
  gap: .5rem 1rem;
  padding: .8rem 0;
  border-bottom: 1px solid #d7d7d7;
}

.scinet-booking-confirmed__card dt {
  color: #555;
  font-weight: 700;
}

.scinet-booking-confirmed__card dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.scinet-booking-confirmed__download {
  min-height: 3rem;
  margin: 1rem 0;
  padding: .7rem 1.25rem;
  border: 2px solid var(--booking-red);
  border-radius: 0;
  background: var(--booking-red);
  color: #fff;
  cursor: pointer;
  font-weight: 700;
}

.scinet-booking-confirmed__download:hover,
.scinet-booking-confirmed__download:focus-visible {
  background: var(--booking-black);
  border-color: var(--booking-black);
  outline: 2px solid var(--booking-red);
  outline-offset: 3px;
}

.scinet-booking-confirmed__hint,
.scinet-booking-confirmed__notice {
  color: #444;
  line-height: 1.55;
}

@media (max-width: 600px) {
  .scinet-booking-confirmed__card dl > div {
    grid-template-columns: 1fr;
  }

  .scinet-booking-page .scinet-booking__calendar {
    padding: .75rem;
  }

  .scinet-booking-page .scinet-booking__calendar-nav {
    width: 2.4rem;
    height: 2.4rem;
  }

  .scinet-booking-page .scinet-booking__slot {
    flex: 1 1 5.5rem;
  }
}

/* scinet consultation: the same dark introduction and clear form surface as contact. */
.scinet-booking-page--consultation {
  max-width: 1320px;
  padding-block: clamp(1rem, 3vw, 3rem) clamp(3rem, 5vw, 5rem);
}
.scinet-booking-page__layout {
  display: grid;
  grid-template-columns: minmax(17rem, .8fr) minmax(0, 1.5fr);
  align-items: start;
  gap: clamp(1.5rem, 3vw, 3rem);
}
.scinet-booking-intro {
  position: relative;
  padding: clamp(1.4rem, 3vw, 2.5rem);
  border-top: 3px solid var(--booking-red);
  background: var(--booking-black);
  color: #fff;
}
.scinet-booking-intro::after {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  height: 0;
  border-top: 1.4rem solid transparent;
  border-right: 1.4rem solid #fff;
  content: '';
  pointer-events: none;
}
.scinet-booking-intro h1 {
  margin: 1rem 0 1.3rem;
  padding: 0;
  color: #fff;
  font-family: var(--scinet-display-font, 'Ailerons', sans-serif);
  font-size: clamp(2rem, 2.8vw, 3rem);
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
  overflow-wrap: break-word;
}
.scinet-booking-intro p { margin: 0 0 1.3rem; line-height: 1.55; }
.scinet-booking-intro .scinet-booking-intro__eyebrow {
  color: var(--scinet-ci-red-on-dark, #ff4d59);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.scinet-booking-intro__facts { margin: 1.5rem 0; padding: 0; list-style: none; }
.scinet-booking-intro__facts li { border-top: 1px solid #444; padding: .85rem 0; }
.scinet-booking-intro__facts strong,
.scinet-booking-intro__person strong { display: block; font-size: 1.05rem; }
.scinet-booking-intro__facts span,
.scinet-booking-intro__person span { display: block; color: #ccc; font-size: .88rem; }
.scinet-booking-intro .scinet-booking-intro__person { margin-top: 1.8rem; }
.scinet-booking-intro .scinet-booking-intro__contact { margin-bottom: 0; color: #ccc; font-size: .88rem; }
.scinet-booking-intro a { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.scinet-booking-intro a:hover { color: var(--scinet-ci-red-on-dark, #ff4d59); }
.scinet-booking-intro a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.scinet-booking-page__flow { min-width: 0; }
.scinet-booking-page__flow .scinet-booking { max-width: none; margin: 0; }
.scinet-booking-page__flow .scinet-booking__header {
  border-top: 0;
  border-bottom: 1px solid #d9d9d9;
  padding: .4rem 0 1.5rem;
}
.scinet-booking-page__flow .scinet-booking__header h2 {
  max-width: none;
  margin: .5rem 0 .75rem;
  padding: 0;
  font-size: clamp(1.65rem, 2.4vw, 2.5rem);
  line-height: 1.2;
}
.scinet-booking-page .scinet-booking__eyebrow { color: var(--booking-red) !important; }
.scinet-booking-page .scinet-booking__header > p:not(.scinet-booking__eyebrow) { color: #555; line-height: 1.5; }
.scinet-booking-page .scinet-booking__step { gap: 1rem; padding-block: 1.5rem; border-color: #d9d9d9; }
.scinet-booking-page .scinet-booking__fields > label,
.scinet-booking-page .scinet-booking__fields > legend { font-size: 1.05rem; }
.scinet-booking-page .scinet-booking__type-cards { gap: .8rem; }
.scinet-booking-page .scinet-booking__type-card {
  border: 1px solid #c7c7c7;
  box-shadow: none;
  transform: none;
}
/* No decorative initial-letter panels when a service has no actual image. */
.scinet-booking-page .scinet-booking__type-card-media:not(:has(img)) { display: none; }
.scinet-booking-page .scinet-booking__type-card-media:has(img) { aspect-ratio: 16 / 7; }
.scinet-booking-page .scinet-booking__type-card-content { padding: 1.25rem; gap: .6rem; }
.scinet-booking-page .scinet-booking__type-card-content::before {
  display: block;
  width: 2rem;
  height: 2px;
  margin-bottom: .2rem;
  background: var(--booking-red);
  content: '';
}
.scinet-booking-page .scinet-booking__type-card-content strong { font-size: 1.18rem; line-height: 1.3; }
.scinet-booking-page .scinet-booking__type-card-content small { color: #555; font-size: .9rem; font-weight: 300; }
.scinet-booking-page .scinet-booking__type-card:hover { border-color: var(--booking-red); background: #fafafa; }
.scinet-booking-page .scinet-booking__type-card.is-selected { border-color: var(--booking-red); box-shadow: inset 0 0 0 1px var(--booking-red); background: #fff8f8; }
.scinet-booking-page .scinet-booking__type-card:focus-visible { outline: 2px solid var(--booking-black); outline-offset: 3px; }
.scinet-booking-page .scinet-booking__type-details { border: 0; border-left: 2px solid var(--booking-red); background: #f7f7f7; }
.scinet-booking-page .scinet-booking__fields input:not([type='checkbox']),
.scinet-booking-page .scinet-booking__fields select { border-color: #aaa; background: #fff; }
.scinet-booking-page .scinet-booking__calendar { box-shadow: none; }
.scinet-booking-page .scinet-booking__slot { min-height: 2.8rem; border-width: 1px; }
.scinet-booking-page .scinet-booking__submit,
.scinet-booking-page .scinet-booking-confirmed__download,
.scinet-booking-page .btn-primary { background: var(--booking-black); border-color: var(--booking-black); color: #fff; }
.scinet-booking-page .scinet-booking__submit:hover,
.scinet-booking-page .scinet-booking-confirmed__download:hover,
.scinet-booking-page .btn-primary:hover { background: var(--booking-red); border-color: var(--booking-red); filter: none; }
.scinet-booking-page .scinet-booking__secondary,
.scinet-booking-page .btn-outline-secondary { border: 1px solid #666; color: var(--booking-black); }
.scinet-booking-page .btn { border-radius: 0; padding: .7rem 1.1rem; font: inherit; font-weight: 700; }
.scinet-booking-page .btn:focus-visible { outline: 2px solid var(--booking-red); outline-offset: 3px; }
.scinet-booking-page .scinet-booking__consent { font-size: .95rem !important; }
.scinet-booking-page .scinet-booking__consent input { flex: 0 0 1rem; width: 1rem; height: 1rem; }
.scinet-booking-page__notice { border-radius: 0; border-left: 3px solid var(--booking-red); }
.scinet-booking-confirmed__card,
.scinet-booking-page > .card { border: 1px solid #d9d9d9; border-top: 3px solid var(--booking-red); border-radius: 0; box-shadow: none; }
.scinet-booking-page > .card h2 { text-align: left; }
.scinet-booking-confirmed__card dd,
.scinet-booking__selection { overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .scinet-booking-page__layout { grid-template-columns: minmax(0, 1fr); }
  .scinet-booking-intro__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  .scinet-booking-intro .scinet-booking-intro__person { margin-top: 1rem; }
}
@media (max-width: 600px) {
  .scinet-booking-page--consultation { padding-top: 0; }
  .scinet-booking-intro { padding: 1.3rem; }
  .scinet-booking-intro h1 { font-size: 2rem; }
  .scinet-booking-intro__facts { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: 1rem 0; padding-block: .75rem; border-block: 1px solid #444; }
  .scinet-booking-intro__facts li { padding: 0; border: 0; }
  .scinet-booking-intro__facts strong { font-size: .95rem; }
  .scinet-booking-intro__facts span { display: none; }
  .scinet-booking-intro .scinet-booking-intro__person { margin: .75rem 0; }
  .scinet-booking-intro .scinet-booking-intro__person span { font-size: .8rem; }
  .scinet-booking-page__flow .scinet-booking__header { padding-top: .5rem; }
  .scinet-booking-page .scinet-booking__type-card-content { padding: 1rem; }
  .scinet-booking-page .scinet-booking__step { gap: .75rem; }
  .scinet-booking-page .scinet-booking__calendar { padding: .65rem; }
  .scinet-booking-page .scinet-booking__calendar-day { min-height: 2.15rem; }
}
