:root {
  --dc-navy: #071733;
  --dc-blue-dark: #032f78;
  --dc-blue: #075fc4;
  --dc-blue-light: #218fdc;
  --dc-text: #172033;
  --dc-muted: #667085;
  --dc-border: #dce6f2;
  --dc-soft: #f4f8fd;
  --dc-white: #fff;
  --dc-danger: #b42318;
  --dc-success: #067647;
}

* { box-sizing: border-box; }

html { min-height: 100%; background: #eef4fb; }

body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 8% 0%, rgba(33, 143, 220, .17), transparent 31rem),
    radial-gradient(circle at 96% 18%, rgba(7, 95, 196, .12), transparent 30rem),
    #eef4fb;
  color: var(--dc-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button, input, select { font: inherit; }

.dc-booking-shell {
  width: min(1220px, calc(100% - 36px));
  margin: 22px auto 48px;
}

.dc-booking-hero {
  position: relative;
  overflow: hidden;
  min-height: 330px;
  padding: 44px 38px;
  border-radius: 30px;
  background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue), var(--dc-blue-light));
  box-shadow: 0 24px 60px rgba(3, 47, 120, .23);
  color: #fff;
  text-align: center;
}

.dc-hero-glow {
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
  filter: blur(3px);
}

.dc-hero-glow-a {
  top: -170px;
  right: -90px;
  width: 460px;
  height: 460px;
  background: rgba(255, 255, 255, .11);
}

.dc-hero-glow-b {
  bottom: -220px;
  left: -100px;
  width: 420px;
  height: 420px;
  background: rgba(0, 210, 255, .15);
}

.dc-public-logo {
  position: relative;
  z-index: 1;
  display: block;
  width: auto;
  max-width: min(260px, 72vw);
  max-height: 92px;
  margin: 0 auto 18px;
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, .18));
}

.dc-eyebrow,
.dc-summary-label,
.dc-card-heading span,
.dc-section-title span {
  color: #bde5ff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .13em;
}

.dc-booking-hero h1 {
  position: relative;
  z-index: 1;
  margin: 10px 0;
  font-size: clamp(36px, 5vw, 60px);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.dc-booking-hero > p {
  position: relative;
  z-index: 1;
  max-width: 700px;
  margin: 0 auto;
  color: rgba(255, 255, 255, .87);
  font-size: 17px;
  line-height: 1.65;
}

.dc-trust-row {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 24px;
}

.dc-trust-row span {
  padding: 8px 13px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  backdrop-filter: blur(8px);
}

.dc-process-jump {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  margin: 14px auto 0;
  padding: 10px 14px;
  border: 1px solid rgba(7, 133, 116, .3);
  border-radius: 14px;
  background: linear-gradient(135deg, #07594e 0%, #078f7b 52%, #19c9ad 100%);
  box-shadow: 0 10px 24px rgba(5, 91, 78, .16);
  color: #fff;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.dc-process-jump:hover {
  transform: translateY(-1px);
  box-shadow: 0 13px 28px rgba(5, 91, 78, .2);
  filter: saturate(1.05);
  color: #fff;
  text-decoration: none;
}

.dc-process-jump:focus-visible {
  outline: 3px solid rgba(25, 201, 173, .3);
  outline-offset: 3px;
}

.dc-process-jump-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .16);
  font-size: 15px;
}

.dc-process-jump > span:nth-child(2) { min-width: 0; }
.dc-process-jump strong { display: block; font-size: 13px; line-height: 1.25; }
.dc-process-jump small { display: block; margin-top: 1px; color: rgba(255, 255, 255, .8); font-size: 10px; line-height: 1.35; }
.dc-process-jump b { margin-left: auto; font-size: 11px; white-space: nowrap; }

.dc-alert,
.dc-inline-error {
  margin: 18px 0 0;
  padding: 14px 16px;
  border-radius: 14px;
  font-weight: 750;
}

.dc-alert-success { border: 1px solid #abefc6; background: #ecfdf3; color: var(--dc-success); }
.dc-alert-error,
.dc-inline-error { border: 1px solid #fecdca; background: #fef3f2; color: var(--dc-danger); }

.dc-service-catalog {
  margin-top: 22px;
  padding: 28px;
  border: 1px solid rgba(210, 224, 240, .95);
  border-radius: 24px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 16px 42px rgba(15, 46, 83, .08);
}

.dc-catalog-heading span {
  color: var(--dc-blue);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .13em;
}

.dc-catalog-heading h2 {
  margin: 5px 0;
  color: var(--dc-navy);
  font-size: clamp(27px, 4vw, 38px);
  letter-spacing: -.035em;
}

.dc-catalog-heading p { margin: 0; color: var(--dc-muted); }

.dc-catalog-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-top: 22px;
}

.dc-catalog-column {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: 18px;
  border: 1px solid;
  border-radius: 21px;
}

.dc-catalog-column::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  content: "";
}

.dc-catalog-column--treatments {
  border-color: #bddbf5;
  background: linear-gradient(145deg, #eaf5ff 0%, #f9fcff 48%, #edf7ff 100%);
}

.dc-catalog-column--treatments::before {
  background: linear-gradient(90deg, #043f98, #0878ee, #2ab4df);
}

.dc-catalog-column--packages {
  border-color: #dfcdf5;
  background: linear-gradient(145deg, #f4edff 0%, #fffaf1 52%, #f1eaff 100%);
}

.dc-catalog-column--packages::before {
  background: linear-gradient(90deg, #55319b, #8a55d5, #d79832);
}

.dc-catalog-column-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 3px 2px 14px;
  border-bottom: 1px solid rgba(91, 126, 165, .16);
}

.dc-catalog-column-heading span {
  color: var(--dc-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
}

.dc-catalog-column--packages .dc-catalog-column-heading span {
  color: #6840a8;
}

.dc-catalog-column-heading h3 {
  margin: 4px 0 0;
  color: var(--dc-navy);
  font-size: 21px;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.dc-catalog-column-heading b {
  flex: 0 0 auto;
  margin-top: 2px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .72);
  color: #53647d;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.dc-service-group { margin-top: 17px; }

.dc-service-group > h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 9px;
  color: var(--dc-navy);
  font-size: 14px;
  line-height: 1.3;
}

.dc-service-group-icon,
.dc-service-card-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 9px;
  background: linear-gradient(145deg, #e0f3ff, #eef8ff);
  color: var(--dc-blue);
}

.dc-service-group-icon { width: 28px; height: 28px; }
.dc-service-card-icon { width: 25px; height: 25px; border-radius: 8px; }
.dc-service-group-icon svg { width: 17px; height: 17px; }
.dc-service-card-icon svg { width: 15px; height: 15px; }
.dc-service-group-icon svg,
.dc-service-card-icon svg,
.dc-choose-service svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.dc-catalog-column--packages .dc-service-group > h4 { display: none; }

.dc-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.dc-catalog-column--packages .dc-service-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dc-service-card {
  display: flex;
  flex-direction: column;
  min-height: 136px;
  padding: 11px;
  border: 1px solid #d8e4f1;
  border-radius: 15px;
  background: linear-gradient(145deg, #fff, #f3f9ff);
  transition: border-color .18s, box-shadow .18s, transform .18s;
}

.dc-catalog-column--packages .dc-service-card {
  border-color: #e1d5ef;
  background: linear-gradient(145deg, #fffdf9, #f7f1ff);
}

.dc-service-card:hover,
.dc-service-card.is-selected {
  border-color: var(--dc-blue);
  box-shadow: 0 12px 28px rgba(3, 47, 120, .12);
  transform: translateY(-2px);
}

.dc-service-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.dc-service-card-title {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: 8px;
}

.dc-service-card h5 {
  margin: 0;
  color: var(--dc-navy);
  font-size: 12px;
  line-height: 1.32;
}

.dc-service-card-top strong {
  flex: 0 0 auto;
  color: var(--dc-blue);
  font-size: 13px;
}

.dc-catalog-column--packages .dc-service-card-top strong { color: #6f43ad; }

.dc-service-card p {
  display: -webkit-box;
  overflow: hidden;
  margin: 7px 0 9px;
  color: var(--dc-muted);
  font-size: 10.5px;
  line-height: 1.38;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.dc-choose-service {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  min-height: 35px;
  margin-top: auto;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 10px;
  background: linear-gradient(135deg, #063f91 0%, #0877d1 58%, #249fdf 100%);
  box-shadow: 0 8px 17px rgba(7, 95, 196, .2);
  color: #fff;
  font-size: 10.5px;
  font-weight: 900;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.dc-choose-service svg { width: 15px; height: 15px; }
.dc-choose-service:hover { transform: translateY(-1px); box-shadow: 0 11px 21px rgba(7, 95, 196, .26); filter: brightness(1.06); }
.dc-choose-service:focus-visible { outline: 3px solid rgba(33, 143, 220, .24); outline-offset: 2px; }

.dc-catalog-column--packages .dc-choose-service {
  background: linear-gradient(135deg, #063f91 0%, #0877d1 58%, #249fdf 100%);
  color: #fff;
}

.dc-service-card.is-selected .dc-choose-service {
  background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue));
  color: #fff;
}

.dc-catalog-column--packages .dc-service-card.is-selected {
  border-color: #7950b6;
  box-shadow: 0 12px 28px rgba(94, 49, 155, .14);
}

.dc-catalog-column--packages .dc-service-card.is-selected .dc-choose-service {
  background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue), var(--dc-blue-light));
}

.dc-booking-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  width: min(100%, 980px);
  margin: 22px auto 0;
}

.dc-card {
  border: 1px solid rgba(210, 224, 240, .95);
  border-radius: 24px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 16px 42px rgba(15, 46, 83, .08);
}

.dc-form-card { padding: 28px; }

.dc-booking-paths {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 22px;
  padding: 6px;
  border: 1px solid #dbe8f6;
  border-radius: 20px;
  background: #f4f8fd;
}

.dc-booking-path {
  display: grid;
  gap: 4px;
  min-height: 112px;
  padding: 17px 18px;
  border: 1px solid transparent;
  border-radius: 15px;
  background: transparent;
  color: var(--dc-navy);
  text-align: left;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dc-booking-path:hover { transform: translateY(-1px); background: #fff; }
.dc-booking-path span { color: var(--dc-blue); font-size: 10px; font-weight: 900; letter-spacing: .11em; }
.dc-booking-path strong { font-size: 18px; line-height: 1.25; }
.dc-booking-path small { color: var(--dc-muted); font-size: 12px; line-height: 1.45; }
.dc-booking-path.is-active {
  border-color: #86c8ff;
  background: #fff;
  box-shadow: 0 9px 25px rgba(9, 102, 190, .12), 0 0 0 3px rgba(21, 145, 224, .08);
}

.dc-package-finder {
  margin-bottom: 22px;
  padding: 22px;
  border: 1px solid #9ed3ff;
  border-radius: 20px;
  background: linear-gradient(145deg, #f8fcff, #eef7ff);
}
.dc-package-finder[hidden] { display: none; }
.dc-package-finder-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }
.dc-package-finder-heading span { color: var(--dc-blue); font-size: 10px; font-weight: 900; letter-spacing: .11em; }
.dc-package-finder-heading h3 { margin: 5px 0 0; color: var(--dc-navy); font-size: 22px; }
.dc-package-finder-heading p { max-width: 430px; margin: 0; color: var(--dc-muted); font-size: 13px; line-height: 1.5; }
.dc-package-search-row { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr) 190px; gap: 12px; align-items: end; margin-top: 17px; }
.dc-package-search-row--email { grid-template-columns: minmax(0, 1fr) 220px; }
.dc-package-search-row .dc-field { margin: 0; }
.dc-package-search-row .dc-package-find { height: 50px; min-height: 50px; margin: 0; }
.dc-gift-card-search-row {
  grid-template-areas:
    "code email action"
    "help help help";
  row-gap: 9px;
}
.dc-gift-card-code-field { grid-area: code; }
.dc-gift-card-email-field { grid-area: email; }
.dc-gift-card-search-row .dc-package-find { grid-area: action; }
.dc-gift-card-help {
  grid-area: help;
  display: block;
  margin: 0;
  color: var(--dc-muted);
  font-size: 12px;
  line-height: 1.45;
}
.dc-package-finder .dc-package-options { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); gap: 15px; }
.dc-package-finder .dc-package-options[hidden] { display: none; }
.dc-package-finder .dc-package-options-head { padding: 14px; border-radius: 15px; background: rgba(255,255,255,.72); }
.dc-package-finder #dc-package-option-list { display: grid; gap: 12px; }
.dc-package-result-group { padding: 13px; border: 1px solid #cfe2f5; border-radius: 16px; background: #fff; }
.dc-package-result-group>header { display: grid; gap: 3px; margin-bottom: 10px; }
.dc-package-result-group>header span { color: var(--dc-blue); font-size: 10px; font-weight: 900; letter-spacing: .1em; }
.dc-package-result-group>header strong { color: var(--dc-navy); font-size: 16px; }
.dc-package-result-group>header small { color: var(--dc-muted); font-size: 12px; }
.dc-package-result-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.dc-package-finder .dc-package-option { margin: 0; min-height: 116px; align-content: center; }
.dc-package-finder .dc-package-clear { grid-column: 1 / -1; justify-self: start; }
.dc-gift-card-finder { border-color: #e8c776; background: linear-gradient(145deg, #fffdf7, #fff8e8); }
.dc-gift-card-finder .dc-package-finder-heading span { color: #9a6500; }
.dc-form-card > .dc-package-options { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); gap: 15px; margin: 0 0 22px; }
.dc-form-card > .dc-package-options[hidden] { display: none; }
.dc-form-card > .dc-package-options #dc-package-option-list { display: grid; gap: 12px; }
.dc-form-card > .dc-package-options .dc-package-clear { grid-column: 1 / -1; justify-self: start; }

.dc-card-heading,
.dc-section-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.dc-card-heading { margin-bottom: 24px; }

.dc-card-heading span,
.dc-section-title span,
.dc-summary-label { color: var(--dc-blue); }

.dc-card-heading h2,
.dc-section-title h3,
.dc-summary-card h2,
.dc-hours-card h2 {
  margin: 5px 0 0;
  color: var(--dc-navy);
  letter-spacing: -.025em;
}

.dc-card-heading h2 { font-size: 29px; }
.dc-section-title h3 { font-size: 20px; }

.dc-step-badge,
.dc-selected-time {
  flex: 0 0 auto;
  padding: 9px 12px;
  border-radius: 999px;
  background: #eaf3ff;
  color: var(--dc-blue);
  font-size: 12px;
  font-weight: 900;
}

.dc-booking-form { display: grid; gap: 18px; }
.dc-two-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.dc-resource-field {
  padding: 15px;
  border: 1px solid #cfe1f6;
  border-radius: 16px;
  background: linear-gradient(145deg, #f8fbff, #eef6ff);
}
.dc-resource-field[hidden],
.dc-process-panel[hidden],
.dc-process-step[hidden] { display: none !important; }
.dc-field { min-width: 0; }

.dc-field label {
  display: block;
  margin-bottom: 7px;
  color: #26344d;
  font-size: 13px;
  font-weight: 850;
}

.dc-field label em { color: #d92d20; font-style: normal; }

.dc-field input,
.dc-field select {
  display: block;
  width: 100%;
  height: 50px;
  border: 1px solid #cfdbea;
  border-radius: 13px;
  outline: 0;
  background: #fff;
  color: var(--dc-text);
  padding: 0 14px;
  transition: border-color .18s, box-shadow .18s;
}

.dc-field input:focus,
.dc-field select:focus {
  border-color: var(--dc-blue);
  box-shadow: 0 0 0 4px rgba(7, 95, 196, .11);
}

.dc-field small {
  display: block;
  margin-top: 7px;
  color: var(--dc-muted);
  font-size: 12px;
  line-height: 1.45;
}

.dc-patient-lookup {
  display: none;
  margin-top: 9px;
  padding: 10px 12px;
  border: 1px solid #cfdbea;
  border-radius: 11px;
  background: #f7faff;
  color: #475467;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.45;
}

.dc-patient-lookup.is-visible { display: block; }
.dc-patient-lookup.is-loading { border-color: #b8d2ef; color: var(--dc-blue-dark); }
.dc-patient-lookup.is-success { border-color: #a6d8c8; background: #ecfdf5; color: #087052; }
.dc-patient-lookup.is-info { border-color: #b8d2ef; background: #eff6ff; color: #174ea6; }
.dc-patient-lookup.is-warning { border-color: #fed7aa; background: #fff7ed; color: #9a3412; }

.dc-cash-test-public {
  padding: 15px 17px;
  border: 2px solid #f59e0b;
  border-radius: 16px;
  background: linear-gradient(135deg, #fff8e8, #fff3c7);
  color: #7a4100;
  box-shadow: 0 10px 24px rgba(180, 83, 9, .1);
}
.dc-cash-test-public strong { display: block; font-size: 12px; font-weight: 950; letter-spacing: .1em; }
.dc-cash-test-public p { margin: 5px 0 0; font-size: 11.5px; font-weight: 700; line-height: 1.55; }

.dc-booking-policy {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 15px;
  border: 1px solid #b9d8fb;
  border-radius: 16px;
  background: linear-gradient(145deg, #edf6ff, #f9fcff);
}

.dc-policy-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 11px;
  background: var(--dc-blue);
  color: #fff;
  font-weight: 950;
}

.dc-booking-policy strong { color: var(--dc-navy); font-size: 13px; }
.dc-booking-policy p { margin: 5px 0 0; color: #526079; font-size: 11.5px; line-height: 1.55; }

.dc-date-section {
  margin-top: 3px;
  padding: 20px;
  border: 1px solid #d6e4f3;
  border-radius: 19px;
  background: linear-gradient(145deg, #f7faff, #fff);
}

.dc-date-section .dc-field { margin-top: 18px; }

.dc-calendar-selection {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 15px;
  border: 1px solid #d4e3f3;
  border-radius: 16px;
  background: #fff;
}

.dc-calendar-selection strong { display: block; color: var(--dc-navy); }
.dc-calendar-selection span { display: block; margin-top: 4px; color: var(--dc-muted); font-size: 12px; }

.dc-open-calendar,
.dc-calendar-use {
  flex: 0 0 auto;
  min-height: 46px;
  padding: 0 18px;
  border: 0;
  border-radius: 13px;
  background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue-light));
  box-shadow: 0 10px 22px rgba(7, 95, 196, .2);
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}

.dc-slot-status {
  margin: 15px 0 10px;
  color: var(--dc-muted);
  font-size: 13px;
  font-weight: 750;
}

.dc-slot-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.dc-slot {
  min-height: 46px;
  border: 1px solid #b8d2ef;
  border-radius: 12px;
  background: #fff;
  color: var(--dc-blue-dark);
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
  transition: transform .15s, background .15s, border-color .15s, color .15s;
}

.dc-slot:hover {
  transform: translateY(-1px);
  border-color: var(--dc-blue);
  background: #edf5ff;
}

.dc-slot.is-active {
  border-color: var(--dc-blue);
  background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue-light));
  box-shadow: 0 9px 20px rgba(7, 95, 196, .22);
  color: #fff;
}

.dc-calendar-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  padding: 18px;
}

.dc-calendar-modal.is-open { display: flex; align-items: center; justify-content: center; }
.dc-calendar-backdrop { position: absolute; inset: 0; background: rgba(7, 23, 51, .7); backdrop-filter: blur(7px); }
.dc-calendar-open { overflow: hidden; }

.dc-calendar-dialog {
  position: relative;
  width: min(900px, 100%);
  max-height: calc(100vh - 36px);
  overflow: auto;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 35px 100px rgba(0, 0, 0, .32);
}

.dc-calendar-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--dc-border);
  background: linear-gradient(135deg, #f7faff, #eaf3ff);
}

.dc-calendar-head span,
.dc-calendar-times-head span { color: var(--dc-blue); font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.dc-calendar-head h2 { margin: 4px 0; color: var(--dc-navy); font-size: 27px; letter-spacing: -.03em; }
.dc-calendar-head p { margin: 0; color: var(--dc-muted); }
.dc-calendar-close { width: 42px; height: 42px; border: 1px solid var(--dc-border); border-radius: 50%; background: #fff; color: #526079; font-size: 28px; line-height: 1; cursor: pointer; }

.dc-calendar-picker { padding: 20px 24px 0; }
.dc-week-navigation { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 14px; }
.dc-week-navigation > button { width: 44px; height: 44px; border: 1px solid #cfe0fa; border-radius: 50%; background: #f5f9ff; color: var(--dc-blue); font-size: 28px; cursor: pointer; }
.dc-week-navigation > button:disabled { opacity: .35; cursor: not-allowed; }
.dc-week-navigation > div { text-align: center; }
.dc-week-navigation strong { display: block; color: var(--dc-navy); font-size: 21px; }
.dc-week-navigation span { display: block; color: var(--dc-muted); font-size: 12px; }

.dc-day-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.dc-day-card { min-height: 68px; border: 1px solid #d9e4f3; border-radius: 15px; background: #fff; color: var(--dc-navy); cursor: pointer; }
.dc-day-card span { display: block; color: #7a879c; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.dc-day-card strong { display: block; margin-top: 2px; font-size: 21px; }
.dc-day-card:hover { border-color: var(--dc-blue); background: #f4f8ff; }
.dc-day-card.is-active { border-color: var(--dc-blue); background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue-light)); color: #fff; }
.dc-day-card.is-active span { color: #fff; }
.dc-day-card.is-disabled { opacity: .35; cursor: not-allowed; }

.dc-calendar-picker > label { display: block; margin: 14px 0 7px; color: #526079; font-size: 12px; font-weight: 850; }
.dc-calendar-picker > input { width: 100%; height: 48px; padding: 0 14px; border: 1px solid #d8e2f0; border-radius: 13px; }
.dc-calendar-times { margin: 18px 24px; padding: 0 15px 15px; border: 1px solid var(--dc-border); border-radius: 18px; }
.dc-calendar-times-head { display: flex; justify-content: space-between; gap: 12px; margin: 0 -15px; padding: 13px 15px; border-bottom: 1px solid var(--dc-border); background: #f8faff; }
.dc-calendar-times-head strong { color: var(--dc-navy); font-size: 13px; text-align: right; }
.dc-calendar-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 15px 24px; border-top: 1px solid var(--dc-border); }
.dc-calendar-cancel { min-height: 46px; padding: 0 18px; border: 1px solid #d6e0ed; border-radius: 13px; background: #fff; color: #46546b; font-weight: 900; cursor: pointer; }
.dc-calendar-use:disabled { opacity: .42; cursor: not-allowed; box-shadow: none; }

.dc-payment-ready {
  display: grid;
  gap: 14px;
  padding: 17px;
  border: 1px solid #d7e8fb;
  border-radius: 20px;
  background: linear-gradient(145deg, #fbfdff, #f3f8ff);
  opacity: .72;
  transition: border-color .2s, box-shadow .2s, opacity .2s;
}

.dc-payment-ready.is-ready {
  border-color: #afd2ff;
  box-shadow: 0 14px 34px rgba(7, 95, 196, .1);
  opacity: 1;
}

.dc-payment-ready-head {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #075f43;
  font-size: 14px;
}

.dc-ready-check {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #e7f8ef;
  color: #07865e;
  font-weight: 950;
}

.dc-payment-ready-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.dc-payment-ready-grid > div {
  min-width: 0;
  padding: 14px;
  border: 1px solid #dce6f2;
  border-radius: 15px;
  background: #fff;
}

.dc-payment-ready-grid small {
  display: block;
  margin-bottom: 7px;
  color: #58708e;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .09em;
}

.dc-payment-ready-grid strong {
  display: block;
  overflow-wrap: anywhere;
  color: var(--dc-navy);
  font-size: 13px;
  line-height: 1.45;
  text-align: right;
}

.dc-payment-ready-grid .dc-ready-total {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-color: #acd0ff;
  background: #f3f8ff;
}

.dc-payment-ready-grid .dc-ready-total small { margin: 0; }
.dc-payment-ready-grid .dc-ready-total strong { color: var(--dc-blue); font-size: 24px; }

.dc-secure-note {
  margin: 0;
  color: var(--dc-muted);
  font-size: 12px;
  line-height: 1.5;
}

.dc-payment-ready .dc-submit { width: 100%; }
.dc-lock { margin-right: 5px; font-size: 12px; }

.dc-submit {
  min-height: 54px;
  border: 0;
  border-radius: 15px;
  background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue), var(--dc-blue-light));
  box-shadow: 0 13px 26px rgba(7, 95, 196, .24);
  color: #fff;
  cursor: pointer;
  font-size: 15px;
  font-weight: 900;
}

.dc-submit:hover:not(:disabled) { filter: brightness(1.06); }
.dc-submit:disabled { cursor: not-allowed; opacity: .45; box-shadow: none; }

body.dc-booking-is-loading { overflow: hidden; }

.dc-booking-loader {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, visibility .2s ease;
}

.dc-booking-loader.is-visible {
  visibility: visible;
  opacity: 1;
  pointer-events: all;
}

.dc-booking-loader-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 21, 48, .72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.dc-booking-loader-card {
  position: relative;
  width: min(440px, 100%);
  padding: 34px 30px 28px;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .28);
  color: #071733;
  text-align: center;
}

.dc-booking-loader-spinner {
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border: 6px solid #d9eaff;
  border-top-color: #075fc4;
  border-right-color: #218fdc;
  border-radius: 50%;
  animation: dc-booking-spin .8s linear infinite;
}

.dc-booking-loader-card > span {
  display: block;
  margin-bottom: 8px;
  color: #075fc4;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.dc-booking-loader-card > strong {
  display: block;
  font-size: 24px;
  line-height: 1.25;
}

.dc-booking-loader-card p {
  margin: 10px auto 18px;
  color: #667085;
  line-height: 1.55;
}

.dc-booking-loader-progress {
  height: 8px;
  overflow: hidden;
  margin-bottom: 14px;
  border-radius: 999px;
  background: #e8f1fb;
}

.dc-booking-loader-progress i {
  display: block;
  width: 38%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #075fc4, #59b8ed);
  animation: dc-booking-progress 1.25s ease-in-out infinite;
}

.dc-booking-loader-card small { color: #7b8798; font-weight: 700; }

@keyframes dc-booking-spin { to { transform: rotate(360deg); } }
@keyframes dc-booking-progress {
  0% { transform: translateX(-115%); }
  100% { transform: translateX(300%); }
}

.dc-submit-note {
  margin: -7px 0 0;
  color: var(--dc-muted);
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
}

.dc-sidebar { display: block; }
.dc-sidebar-card { overflow: hidden; }
.dc-sidebar-section { padding: 23px; }
.dc-sidebar-section + .dc-sidebar-section {
  border-top: 1px solid #dfe8f3;
  background: linear-gradient(180deg, #fbfdff, #f7faff);
}

.dc-summary-card h2,
.dc-hours-card h2 { margin-bottom: 18px; font-size: 22px; }

.dc-summary-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid #e7edf5;
}

.dc-summary-row span { color: var(--dc-muted); font-size: 13px; }
.dc-summary-row strong { max-width: 62%; color: var(--dc-navy); font-size: 13px; text-align: right; }

.dc-summary-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 16px;
  padding: 15px;
  border-radius: 15px;
  background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue-light));
  color: #fff;
}

.dc-summary-total span { font-size: 13px; font-weight: 800; }
.dc-summary-total strong { font-size: 21px; }
.dc-summary-total b { font-weight: 900; }

.dc-summary-policy {
  margin: 12px 0 0;
  padding: 11px;
  border: 1px solid #cfe0f5;
  border-radius: 12px;
  background: #f5f9ff;
  color: #53647d;
  font-size: 10.5px;
  line-height: 1.5;
}

.dc-hours-list { display: grid; gap: 0; }

.dc-hours-list > div {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid #edf1f6;
  font-size: 12px;
}

.dc-hours-list span { color: var(--dc-muted); }
.dc-hours-list strong { color: var(--dc-navy); text-align: right; }

.dc-business-detail {
  margin: 16px 0 0;
  padding: 13px;
  border-radius: 13px;
  background: var(--dc-soft);
  color: var(--dc-muted);
  font-size: 12px;
  line-height: 1.55;
}

.dc-business-detail strong {
  display: block;
  margin-bottom: 4px;
  color: var(--dc-navy);
}

.dc-empty-state {
  padding: 28px;
  border: 1px dashed #b9cee5;
  border-radius: 18px;
  background: var(--dc-soft);
  text-align: center;
}

.dc-empty-state strong { color: var(--dc-navy); font-size: 17px; }
.dc-empty-state p { margin: 7px 0 0; color: var(--dc-muted); }

.dc-process {
  scroll-margin-top: 18px;
  margin-top: 22px;
  overflow: hidden;
  border: 1px solid rgba(210, 224, 240, .95);
  border-radius: 28px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 18px 50px rgba(15, 46, 83, .1);
}

.dc-process-heading {
  padding: 34px 28px;
  background: linear-gradient(135deg, #eaf5ff, #f8fbff 48%, #edf7ff);
  text-align: center;
}

.dc-process-heading > span { color: var(--dc-blue); font-size: 10px; font-weight: 950; letter-spacing: .15em; }
.dc-process-heading h2 { margin: 7px 0 8px; color: var(--dc-navy); font-size: clamp(27px, 4vw, 39px); letter-spacing: -.035em; }
.dc-process-heading p { max-width: 760px; margin: 0 auto; color: var(--dc-muted); font-size: 14px; line-height: 1.6; }

.dc-process-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  padding: 22px 28px 12px;
}

.dc-process-tab {
  min-height: 48px;
  padding: 0 16px;
  border: 2px solid #8dbbea;
  border-radius: 15px;
  background: #f4f9ff;
  color: #071733;
  cursor: pointer;
  font-size: 13px;
  font-weight: 950;
  line-height: 1.25;
  transition: transform .18s, border-color .18s, background .18s, color .18s;
}

.dc-process-tab:hover { transform: translateY(-1px); border-color: var(--dc-blue); background: #e9f4ff; color: #032f78; }
.dc-process-tab.is-active { border-color: var(--dc-blue); background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue-light)); color: #fff; box-shadow: 0 10px 22px rgba(7, 95, 196, .22); }

.dc-process-panels { padding: 0 28px; }
.dc-process-panel { min-width: 0; }
.dc-process-service-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 0 10px;
  border-bottom: 1px solid #e7edf5;
}
.dc-process-service-head span { color: var(--dc-blue); font-size: 9px; font-weight: 950; letter-spacing: .13em; }
.dc-process-service-head h3 { margin: 5px 0 0; color: var(--dc-navy); font-size: 24px; }
.dc-process-service-head > strong { flex: 0 0 auto; padding: 9px 13px; border-radius: 999px; background: #eaf4ff; color: var(--dc-blue-dark); font-size: 12px; }
.dc-process-intro { margin: 14px 0 0; color: var(--dc-muted); font-size: 13px; line-height: 1.6; }

.dc-process-step {
  display: grid;
  grid-template-columns: minmax(280px, .92fr) minmax(0, 1.08fr);
  gap: 32px;
  align-items: center;
  padding: 32px 0;
  border-bottom: 1px solid #e7edf5;
}
.dc-process-step:last-child { border-bottom: 0; }

.dc-process-step--reverse .dc-process-image { order: 2; }
.dc-process-step--reverse .dc-process-copy { order: 1; }

.dc-process-image {
  overflow: hidden;
  min-height: 260px;
  border-radius: 22px;
  background: #e9f1fa;
  box-shadow: 0 15px 34px rgba(7, 23, 51, .12);
}

.dc-process-image img { display: block; width: 100%; height: 100%; min-height: 260px; max-height: 360px; object-fit: cover; }

.dc-process-copy { min-width: 0; }
.dc-process-number { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--dc-blue-dark), var(--dc-blue-light)); color: #fff; font-size: 14px; font-weight: 950; box-shadow: 0 10px 22px rgba(7, 95, 196, .2); }
.dc-process-copy h3 { margin: 12px 0 8px; color: var(--dc-navy); font-size: 24px; letter-spacing: -.025em; }
.dc-process-copy p { margin: 8px 0 0; color: #526079; font-size: 13.5px; line-height: 1.65; }
.dc-process-copy p strong { color: var(--dc-navy); }

.dc-process-benefits {
  margin: 4px 0 28px;
  padding: 24px;
  border: 1px solid #cfe8dc;
  border-radius: 22px;
  background: linear-gradient(135deg, #f3fbf7, #edf9f5);
}

.dc-process-benefits header > span { color: #167153; font-size: 9px; font-weight: 950; letter-spacing: .14em; }
.dc-process-benefits header h3 { margin: 6px 0 18px; color: var(--dc-navy); font-size: clamp(20px, 2.6vw, 27px); letter-spacing: -.025em; }
.dc-benefits-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.dc-benefit-item { display: flex; align-items: center; gap: 11px; min-height: 58px; padding: 12px 14px; border: 1px solid #d8ebe2; border-radius: 15px; background: rgba(255, 255, 255, .92); color: #173b31; }
.dc-benefit-check { display: grid; place-items: center; flex: 0 0 29px; width: 29px; height: 29px; border-radius: 50%; background: linear-gradient(135deg, #0d7554, #31a27c); color: #fff; font-size: 14px; font-weight: 950; box-shadow: 0 7px 16px rgba(13, 117, 84, .18); }
.dc-benefit-item strong { font-size: 12.5px; line-height: 1.4; }
.dc-benefits-note { margin: 14px 2px 0; color: #60746d; font-size: 10.5px; line-height: 1.5; }

.dc-chromotherapy {
  margin-top: 22px;
  padding: 22px;
  border: 1px solid #dce5f3;
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(244, 248, 255, .96));
  box-shadow: 0 16px 34px rgba(36, 61, 98, .08);
}
.dc-chromotherapy-head { margin-bottom: 17px; }
.dc-chromotherapy-head > span { color: #6b4dd6; font-size: 9px; font-weight: 950; letter-spacing: .14em; }
.dc-chromotherapy-head h3 { margin: 6px 0 7px; color: var(--dc-navy); font-size: clamp(19px, 2.4vw, 25px); letter-spacing: -.025em; }
.dc-chromotherapy-head p { max-width: 760px; margin: 0; color: #5d6980; font-size: 12px; line-height: 1.6; }
.dc-chromotherapy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.dc-light-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-width: 0;
  min-height: 77px;
  padding: 11px 12px;
  border: 1px solid #e1e7f0;
  border-radius: 16px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 7px 17px rgba(38, 55, 84, .055);
}
.dc-light-orb {
  display: block;
  width: 46px;
  height: 46px;
  border: 4px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(14, 31, 59, .1), 0 8px 18px rgba(29, 43, 67, .2), inset 0 7px 10px rgba(255, 255, 255, .3);
}
.dc-light-card strong { display: block; color: #18263d; font-size: 12px; line-height: 1.25; }
.dc-light-card small { display: block; margin-top: 4px; color: #69758a; font-size: 10px; line-height: 1.35; }
.dc-light--red { background: linear-gradient(145deg, #ff8b86, #d6082f 72%); }
.dc-light--strong-green { background: linear-gradient(145deg, #24ca7d, #00663d 72%); }
.dc-light--strong-blue { background: linear-gradient(145deg, #3b9cff, #123fa6 72%); }
.dc-light--orange { background: linear-gradient(145deg, #ffbe57, #f05a00 72%); }
.dc-light--green { background: linear-gradient(145deg, #9ae6a4, #35a360 72%); }
.dc-light--blue { background: linear-gradient(145deg, #88d5ff, #3575da 72%); }
.dc-light--strong-yellow { background: linear-gradient(145deg, #ffe25e, #f1a900 72%); }
.dc-light--strong-indigo { background: linear-gradient(145deg, #7775e6, #30277b 72%); }
.dc-light--strong-pink { background: linear-gradient(145deg, #ff89bd, #c9196c 72%); }
.dc-light--yellow { background: linear-gradient(145deg, #fff39a, #e0b800 72%); }
.dc-light--indigo { background: linear-gradient(145deg, #8d87ef, #493ea7 72%); }
.dc-light--violet { background: linear-gradient(145deg, #c276f0, #7228ae 72%); }
.dc-chromotherapy-note { margin: 13px 1px 0; padding: 11px 13px; border-radius: 13px; background: #f2f0ff; color: #5d5680; font-size: 10.5px; line-height: 1.5; }
.dc-chromotherapy-note + .dc-chromotherapy-note { margin-top: 8px; background: #f7f8fb; color: #687285; }

.dc-process-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 28px 28px;
  padding: 17px 20px;
  border-radius: 17px;
  background: linear-gradient(135deg, #071733, #075fc4);
  color: #fff;
}

.dc-process-footer a { padding: 9px 13px; border-radius: 999px; background: rgba(255, 255, 255, .14); color: #fff; font-size: 12px; font-weight: 900; text-decoration: none; white-space: nowrap; }

@media (max-width: 980px) {
  .dc-catalog-columns { grid-template-columns: 1fr; }
  .dc-catalog-column--packages .dc-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dc-booking-layout { grid-template-columns: 1fr; }
  .dc-process-step { grid-template-columns: minmax(240px, .9fr) minmax(0, 1.1fr); gap: 22px; }
}

@media (max-width: 700px) {
  .dc-booking-shell { width: min(100% - 18px, 1220px); margin: 9px auto 28px; }
  .dc-booking-hero { min-height: 0; padding: 30px 18px; border-radius: 22px; }
  .dc-booking-hero h1 { font-size: 36px; }
  .dc-booking-hero > p { font-size: 15px; }
  .dc-public-logo { max-width: 210px; max-height: 78px; }
  .dc-form-card { padding: 19px; border-radius: 20px; }
  .dc-booking-paths { grid-template-columns: 1fr; }
  .dc-booking-path { min-height: 0; }
  .dc-package-finder { padding: 17px; }
  .dc-package-finder-heading { display: block; }
  .dc-package-finder-heading p { margin-top: 8px; }
  .dc-package-search-row { grid-template-columns: 1fr; }
  .dc-gift-card-search-row {
    grid-template-areas:
      "code"
      "help"
      "email"
      "action";
  }
  .dc-package-finder .dc-package-options { grid-template-columns: 1fr; }
  .dc-form-card > .dc-package-options { grid-template-columns: 1fr; }
  .dc-package-result-options { grid-template-columns: 1fr; }
  .dc-sidebar-card { border-radius: 20px; }
  .dc-sidebar-section { padding: 19px; }
  .dc-service-catalog { padding: 22px 16px; }
  .dc-catalog-column { padding: 15px; }
  .dc-service-grid { grid-template-columns: 1fr; }
  .dc-catalog-column--packages .dc-service-grid { grid-template-columns: 1fr; }
  .dc-service-card { min-height: 0; }
  .dc-process-jump { align-items: flex-start; }
  .dc-process-jump b { display: none; }
  .dc-card-heading,
  .dc-section-title { display: block; }
  .dc-step-badge,
  .dc-selected-time { display: inline-flex; margin-top: 10px; }
  .dc-two-fields,
  .dc-payment-ready-grid { grid-template-columns: 1fr; }
  .dc-date-section { padding: 15px; }
  .dc-slot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dc-calendar-selection { display: grid; }
  .dc-open-calendar { width: 100%; }
  .dc-calendar-modal { padding: 0; }
  .dc-calendar-dialog { width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; }
  .dc-calendar-head,
  .dc-calendar-picker,
  .dc-calendar-foot { padding-left: 14px; padding-right: 14px; }
  .dc-calendar-times { margin-left: 14px; margin-right: 14px; }
  .dc-day-strip { gap: 4px; }
  .dc-day-card { min-height: 58px; border-radius: 11px; }
  .dc-day-card strong { font-size: 18px; }
  .dc-calendar-foot { position: sticky; bottom: 0; background: #fff; }
  .dc-calendar-cancel,
  .dc-calendar-use { flex: 1; min-width: 0; }
  .dc-process-heading { padding: 27px 18px; }
  .dc-process-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 18px; }
  .dc-process-panels { padding: 0 18px; }
  .dc-process-service-head { align-items: flex-start; }
  .dc-process-service-head h3 { font-size: 20px; }
  .dc-process-step { grid-template-columns: 1fr; gap: 18px; padding: 24px 0; }
  .dc-process-step--reverse .dc-process-image,
  .dc-process-step--reverse .dc-process-copy { order: initial; }
  .dc-process-image,
  .dc-process-image img { min-height: 220px; }
  .dc-process-copy h3 { font-size: 21px; }
  .dc-process-benefits { padding: 18px; }
  .dc-benefits-grid { grid-template-columns: 1fr; }
  .dc-chromotherapy { padding: 17px; }
  .dc-chromotherapy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dc-process-footer { display: grid; margin: 0 18px 18px; text-align: center; }
  .dc-process-footer a { display: block; }
}

@media (max-width: 390px) {
  .dc-slot-grid { grid-template-columns: 1fr; }
  .dc-trust-row { display: grid; grid-template-columns: 1fr; }
  .dc-process-tabs { grid-template-columns: 1fr; }
  .dc-chromotherapy-grid { grid-template-columns: 1fr; }
  .dc-light-card { min-height: 72px; }
}

.dc-package-options{margin:18px 0;padding:18px;border:1px solid #9ed3ff;border-radius:18px;background:linear-gradient(145deg,#f5fbff,#eef7ff)}.dc-package-options[hidden]{display:none}.dc-package-options-head span{display:block;color:#0878dd;font-size:11px;font-weight:900;letter-spacing:.11em}.dc-package-options-head strong{display:block;color:var(--dc-navy);font-size:18px;margin-top:4px}.dc-package-options-head p{margin:4px 0 12px;color:var(--dc-muted)}.dc-package-option{display:grid;width:100%;text-align:left;border:1px solid #d7e6f7;background:#fff;border-radius:14px;padding:12px 14px;margin-top:9px;cursor:pointer;color:var(--dc-navy)}.dc-package-option span{font-size:11px;color:var(--dc-blue);font-weight:800;text-transform:uppercase}.dc-package-option strong{font-size:15px;margin:3px 0}.dc-package-option small{color:var(--dc-muted)}.dc-package-option.is-selected{border-color:#148ee4;box-shadow:0 0 0 3px rgba(20,142,228,.13);background:#f5fbff}.dc-package-clear{margin-top:12px;border:0;background:transparent;color:#526b86;text-decoration:underline;cursor:pointer}

/* A2P 10DLC appointment and service messaging consent. The checkbox is
   intentionally separate, optional, and unchecked by default. */
.dc-sms-optin{margin:17px 0;padding:15px 16px 12px;border:1px solid #cde8d8;border-radius:16px;background:linear-gradient(145deg,#f5fcf8,#ecf9f1);box-shadow:0 8px 22px rgba(26,113,76,.06)}
.dc-sms-optin-choice{display:grid;grid-template-columns:20px 22px minmax(0,1fr);gap:9px;align-items:start;cursor:pointer;color:#173f31}
.dc-sms-optin-choice>input{width:18px;height:18px;margin:2px 0 0;accent-color:#168153;cursor:pointer}
.dc-sms-optin-icon{display:grid;place-items:center;width:18px;height:18px;margin-top:2px;border:1.5px solid #2f9b68;border-radius:50%;color:#168153;font-size:11px;font-weight:950;line-height:1}
.dc-sms-optin-choice strong{display:block;color:#12452f;font-size:13.5px;line-height:1.35}
.dc-sms-optin-choice small{display:block;margin-top:5px;color:#476457;font-size:10.5px;line-height:1.48;font-weight:600}
.dc-sms-optin-choice small b{color:#173f31}
.dc-sms-optin-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:11px 0 0 50px;padding-top:10px;border-top:1px solid #d7ebdf;font-size:10.5px}
.dc-sms-optin-footer a{color:#0a7045;font-weight:850;text-decoration:none}
.dc-sms-optin-footer a:hover{text-decoration:underline}
.dc-sms-optin-footer>span{display:flex;align-items:center;gap:7px}
.dc-sms-optin-footer i{color:#7ba58f;font-style:normal}

/* Public legal documents used by the website opt-in and A2P review. */
.dc-legal-body{background:radial-gradient(circle at 8% 0%,rgba(33,143,220,.15),transparent 28rem),#eef4fb}
.dc-legal-shell{width:min(960px,calc(100% - 28px));margin:18px auto 42px}
.dc-legal-header{padding:34px 28px;border-radius:26px 26px 0 0;background:linear-gradient(135deg,#032f78,#075fc4,#218fdc);color:#fff;text-align:center;box-shadow:0 20px 50px rgba(3,47,120,.18)}
.dc-legal-brand{display:inline-block}
.dc-legal-brand img{display:block;max-width:min(240px,70vw);max-height:82px;margin:0 auto 16px;object-fit:contain;filter:drop-shadow(0 7px 15px rgba(0,0,0,.18))}
.dc-legal-header>span{font-size:10px;font-weight:950;letter-spacing:.14em;color:#c9eaff}
.dc-legal-header h1{margin:8px 0 5px;font-size:clamp(32px,5vw,48px);letter-spacing:-.04em}
.dc-legal-header p{margin:0;color:rgba(255,255,255,.8);font-size:12px}
.dc-legal-nav{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:13px;background:#fff;border:1px solid #dce6f2;border-top:0}
.dc-legal-nav a{padding:9px 14px;border-radius:999px;color:#36516f;background:#f2f6fb;text-decoration:none;font-size:11px;font-weight:900}
.dc-legal-nav a.is-active{background:#075fc4;color:#fff}
.dc-legal-card{padding:clamp(23px,5vw,48px);border:1px solid #dce6f2;border-top:0;border-radius:0 0 26px 26px;background:#fff;box-shadow:0 20px 50px rgba(28,50,82,.1)}
.dc-legal-lead{margin:0 0 27px;padding:18px 20px;border-left:4px solid #218fdc;border-radius:0 14px 14px 0;background:#f1f7fe;color:#2d4662;font-size:14px;line-height:1.7;font-weight:650}
.dc-legal-card section{padding:18px 0;border-top:1px solid #e5edf6}
.dc-legal-card section:first-of-type{border-top:0}
.dc-legal-card h2{margin:0 0 9px;color:#071733;font-size:19px;letter-spacing:-.02em}
.dc-legal-card p{margin:6px 0;color:#4e5f72;font-size:13px;line-height:1.75}
.dc-legal-card a{color:#075fc4;font-weight:800}
.dc-legal-highlight{margin:12px 0;padding:19px!important;border:1px solid #cbe7d7!important;border-radius:16px;background:#f0fbf5}
.dc-legal-highlight h2{color:#14543a}
.dc-legal-highlight p{color:#355f4d}
.dc-legal-footer{display:grid;gap:6px;padding:20px;text-align:center;color:#53687f;font-size:11px}
.dc-legal-footer strong{color:#071733;font-size:13px}
.dc-legal-footer div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:5px}
.dc-legal-footer a{color:#075fc4;font-weight:850;text-decoration:none}

@media(max-width:600px){.dc-sms-optin-footer{display:grid;margin-left:0}.dc-sms-optin-footer>span{flex-wrap:wrap}.dc-legal-shell{width:min(100% - 16px,960px);margin:8px auto 28px}.dc-legal-header{padding:28px 18px}.dc-legal-card{padding:22px 18px}.dc-legal-nav{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.dc-legal-nav a{white-space:nowrap}}
.dc-recurring-access-card{background:linear-gradient(145deg,#f8fcff,#eef7ff)}.dc-recurring-access-card>p{margin:8px 0 15px;color:var(--dc-muted);font-size:13px;line-height:1.5}.dc-recurring-access-card>label{display:block;margin-bottom:6px;color:var(--dc-navy);font-size:12px;font-weight:850}.dc-recurring-access-card>input{width:100%;height:46px;padding:0 13px;border:1px solid #cbdced;border-radius:13px;background:#fff;color:var(--dc-navy);font:inherit}.dc-recurring-access-card>input:focus{outline:0;border-color:#168ee2;box-shadow:0 0 0 3px rgba(22,142,226,.12)}.dc-package-find{width:100%;min-height:46px;margin-top:10px;border:0;border-radius:13px;background:linear-gradient(135deg,#063b8f,#1596df);color:#fff;font-weight:900;cursor:pointer}.dc-package-sidebar-status{display:none;margin-top:10px;padding:10px 12px;border-radius:12px;font-size:12px;line-height:1.4}.dc-package-sidebar-status.is-visible{display:block}.dc-package-sidebar-status.is-loading,.dc-package-sidebar-status.is-info{background:#eef6ff;color:#24547e}.dc-package-sidebar-status.is-success{background:#eafaf1;color:#08753d}.dc-package-sidebar-status.is-warning{background:#fff4e8;color:#9a4d08}.dc-recurring-access-card .dc-package-options{margin-bottom:0;padding:12px}.dc-recurring-access-card .dc-package-options-head strong{font-size:15px}.dc-recurring-access-card .dc-package-option{padding:10px 11px}.dc-recurring-access-card .dc-package-option strong{font-size:13px}
.dc-review-modal{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:clamp(12px,3vw,32px)}.dc-review-modal.is-open{display:flex}.dc-review-backdrop{position:absolute;inset:0;border:0;background:rgba(5,24,49,.64);backdrop-filter:blur(8px)}.dc-review-panel{position:relative;width:min(560px,100%);max-height:calc(100dvh - 24px);overflow:auto;background:#fff;border-radius:26px;padding:clamp(20px,4vw,32px);box-shadow:0 34px 90px rgba(0,20,50,.35);overscroll-behavior:contain}.dc-review-panel>header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:12px}.dc-review-panel h2{margin:4px 0 0;color:var(--dc-navy)}.dc-review-close{width:38px;height:38px;border:1px solid #dbe7f5;border-radius:50%;background:#f5f9fd;color:var(--dc-navy);font-size:25px;line-height:1;cursor:pointer}.dc-summary-package{display:grid;gap:3px;margin:10px 0 14px;padding:13px 15px;border-radius:14px;background:#eafaf1;border:1px solid #9be4bc;color:#08753d}.dc-summary-package[hidden]{display:none}.dc-summary-package span{font-size:13px}.dc-review-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin-top:18px}.dc-review-edit{border:1px solid #cbdced;border-radius:14px;background:#fff;color:var(--dc-navy);font-weight:800;padding:0 18px;cursor:pointer}.dc-review-actions .dc-submit{margin:0}.dc-modal-open{overflow:hidden}
@media(max-width:600px){.dc-review-modal{padding:0;align-items:flex-end}.dc-review-panel{width:100%;max-height:92dvh;border-radius:24px 24px 0 0;padding:20px 18px}.dc-review-actions{grid-template-columns:1fr}.dc-review-edit{min-height:46px}.dc-summary-row strong{max-width:58%}}
