body.public-theme {
  --booking-primary: var(--brand-primary, #322882);
  --booking-primary-hover: var(--booking-primary);
  --booking-accent: var(--brand-accent, #e7f6ff);
  --booking-surface: #fff;
  --booking-background: #f7f9fc;
  --booking-text: #25243b;
  --booking-muted: #626477;
  --booking-border: #e2e3ec;
  --booking-success: #237341;
  --booking-danger: #b42332;
  --booking-footer-background: var(--booking-primary);
  --booking-footer-text: #fff;
  --booking-footer-border: rgb(255 255 255 / 25%);
  --booking-radius: 20px;
  --booking-font-body: inherit;
  --booking-font-heading: inherit;
  --color-success: var(--booking-success);
  background: var(--booking-background);
  color: var(--booking-text);
  font-family: var(--booking-font-body);
  font-size: 16px;
  line-height: 1.65;
}

body.public-theme .main-wrapper { background: var(--booking-background); }
body.public-theme .page-wrapper { background: var(--booking-background); }
body.public-theme .container,
body.public-theme .content > .container-fluid { max-width: 1200px; }
body.public-theme .page-wrapper .content { padding: clamp(1.5rem, 4vw, 3.5rem) 0; }
body.public-theme h1,
body.public-theme h2,
body.public-theme h3,
body.public-theme h4,
body.public-theme h5,
body.public-theme h6 {
  color: var(--booking-primary);
  font-family: var(--booking-font-heading);
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: break-word;
}
body.public-theme h1 { font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -0.035em; }
body.public-theme h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); letter-spacing: -0.025em; }
body.public-theme a { color: var(--booking-primary); }
body.public-theme a:hover { color: var(--booking-primary-hover); }
body.public-theme .text-primary { color: var(--booking-primary) !important; }
body.public-theme .text-secondary,
body.public-theme .text-muted { color: var(--booking-muted) !important; }
body.public-theme .text-success { color: var(--booking-success) !important; }
body.public-theme .text-danger,
body.public-theme .invalid-feedback,
body.public-theme .errorlist { color: var(--booking-danger) !important; }

body.public-theme .header,
body.public-theme .header-nav { background: var(--booking-surface); border-color: var(--booking-border); }
body.public-theme .header { box-shadow: 0 2px 12px rgb(34 30 74 / 4%); }
body.public-theme .header-nav { max-width: 1240px; margin: auto; }
body.public-theme .main-nav > li > a { color: var(--booking-text); font-weight: 500; }
body.public-theme .main-nav > li > a:hover,
body.public-theme .main-nav > li.offer-nav-item--active > a { color: var(--booking-primary); }
body.public-theme .main-nav > li.offer-nav-item--active > a::after { background: var(--booking-accent); height: 3px; border-radius: 4px; }
body.public-theme .bar-icon span { background: var(--booking-primary); }
body.public-theme .header-navbar-rht li a.header-login { border-color: var(--booking-primary); border-radius: 999px; color: var(--booking-primary); text-transform: none; }
body.public-theme .header-navbar-rht li a.header-login:hover,
body.public-theme .header-navbar-rht li a.header-login:focus { background: var(--booking-primary); border-color: var(--booking-primary); color: #fff; }

body.public-theme .btn {
  border-radius: 999px;
  font-family: var(--booking-font-body);
  font-weight: 600;
  line-height: 1.5;
  padding: 0.65rem 1.5rem;
  white-space: normal;
}
body.public-theme .btn-sm { font-size: 0.875rem; padding: 0.4rem 1rem; }
body.public-theme .btn-circle { padding: 0; border-radius: 50%; width: 32px; height: 32px; min-width: 32px; min-height: 32px; display: inline-flex; align-items: center; justify-content: center; }
body.public-theme .btn-primary {
  background: var(--booking-primary);
  border-color: var(--booking-primary);
  color: #fff;
}
body.public-theme .btn-primary:hover,
body.public-theme .btn-primary:focus,
body.public-theme .btn-primary:not(:disabled):not(.disabled):active {
  background: var(--booking-primary-hover);
  border-color: var(--booking-primary-hover);
  color: #fff;
}
body.public-theme .btn-outline-primary,
body.public-theme .btn-outline-secondary,
body.public-theme .btn-secondary {
  background: var(--booking-surface);
  border-color: var(--booking-primary);
  color: var(--booking-primary);
}
body.public-theme .btn-outline-primary:hover,
body.public-theme .btn-outline-secondary:hover,
body.public-theme .btn-secondary:hover {
  background: var(--booking-primary);
  border-color: var(--booking-primary);
  color: #fff;
}
body.public-theme .btn-success { background: var(--booking-success); border-color: var(--booking-success); color: #fff; }
body.public-theme .btn-success:hover { background: #195932; border-color: #195932; color: #fff; }
body.public-theme .btn-outline-danger { color: var(--booking-danger); border-color: var(--booking-danger); }
body.public-theme .btn-outline-danger:hover { background: var(--booking-danger); color: #fff; }
body.public-theme .btn:disabled,
body.public-theme .btn.disabled { opacity: 0.55; }
body.public-theme a:focus-visible,
body.public-theme button:focus-visible,
body.public-theme input:focus-visible,
body.public-theme select:focus-visible,
body.public-theme textarea:focus-visible { outline: 3px solid var(--booking-primary); outline-offset: 3px; }

body.public-theme .card,
body.public-theme .modal-content {
  background: var(--booking-surface);
  border: 1px solid var(--booking-border);
  border-radius: var(--booking-radius);
  box-shadow: 0 4px 20px rgb(34 30 74 / 3%);
}
body.public-theme .card-body { padding: clamp(1.1rem, 2.5vw, 1.75rem); }
body.public-theme .card-header { background: transparent; border-bottom-color: var(--booking-border); }
body.public-theme .form-control {
  background-color: var(--booking-surface);
  border-color: var(--booking-border);
  border-radius: 10px;
  color: var(--booking-text);
  font-size: 1rem;
  min-height: 44px;
}
body.public-theme .form-control:focus { border-color: var(--booking-primary); box-shadow: 0 0 0 3px var(--booking-focus-background, #e9e7f5); }
body.public-theme .form-control.is-invalid { border-color: var(--booking-danger); }
body.public-theme input[type="checkbox"],
body.public-theme input[type="radio"] { accent-color: var(--booking-primary); }
body.public-theme .form-label { font-weight: 500; }
body.public-theme .alert { border-radius: 12px; line-height: 1.6; }
body.public-theme .alert-info { background: var(--booking-info-background, #e7f6ff); border-color: #b7deef; color: #24516c; }
body.public-theme .alert-success { background: #edf8ef; border-color: #b8ddc2; color: #195932; }
body.public-theme .alert-danger { background: #fff0f1; border-color: #efbcc3; color: #922331; }
body.public-theme .alert-warning { background: #fff7e5; border-color: #f1d59c; color: #735015; }

body.public-theme .offer-page-heading { margin-bottom: 2.5rem !important; }
body.public-theme .offer-service-card { border-radius: var(--booking-radius); }
body.public-theme .offer-service-title { line-height: 1.4; }
body.public-theme .offer-service-flyer-summary { display: block; }
body.public-theme .offer-service-price { color: var(--booking-primary) !important; }
body.public-theme .offer-service-card .card-body { padding-left: 0; padding-right: 0; }
body.public-theme .offer-service-actions { margin-top: auto; padding-top: 0.75rem; }
body.public-theme .offer-service-booking-button { background: var(--booking-primary) !important; border: 1px solid var(--booking-primary) !important; border-radius: 999px !important; color: #fff !important; }
body.public-theme .offer-service-booking-button:hover,
body.public-theme .offer-service-booking-button:focus { background: var(--booking-primary-hover) !important; border-color: var(--booking-primary-hover) !important; color: #fff !important; }
body.public-theme .offer-page-help { border-radius: var(--booking-radius); }
body.public-theme .offer-page-switcher-link { border-radius: 999px; }
body.public-theme .offer-external-link-card { border-radius: var(--booking-radius); border-color: var(--booking-border); }

body.public-theme .fc { font-family: var(--booking-font-body); --fc-border-color: var(--booking-border); --fc-today-bg-color: var(--booking-info-background, #e7f6ff); }
body.public-theme .fc .fc-toolbar-title { font-family: var(--booking-font-heading); font-size: clamp(1rem, 2vw, 1.4rem); }
body.public-theme .fc .fc-button-primary { background: var(--booking-primary); border-color: var(--booking-primary); border-radius: 999px; }
body.public-theme .fc .fc-button-primary:hover,
body.public-theme .fc .fc-button-primary:not(:disabled).fc-button-active { background: var(--booking-primary-hover); border-color: var(--booking-primary-hover); }
body.public-theme .fc .fc-col-header-cell { background: var(--booking-primary); border-color: var(--booking-primary); }
body.public-theme .fc .fc-col-header-cell-cushion { color: #fff; }
body.public-theme .fc td.fc-day-today { background: var(--booking-info-background, #e7f6ff); }
body.public-theme .fc th.fc-day-today { background: var(--booking-primary); box-shadow: inset 0 -3px var(--booking-accent); }
body.public-theme .fc .slot-btn { font-family: var(--booking-font-body); }
body.public-theme .fc .slot-btn-active { background: var(--booking-primary); color: #fff; }
body.public-theme .fc .slot-btn-selected { outline-color: var(--booking-accent); box-shadow: 0 0 0 2px var(--booking-primary); }
body.public-theme .fc .slot-btn-disabled { background: #ececf1; color: #727382; }
body.public-theme .calendar-wrapper { border: 1px solid var(--booking-border); border-radius: var(--booking-radius); box-shadow: none; }

body.public-theme footer { background-color: var(--booking-footer-background) !important; color: var(--booking-footer-text) !important; padding-top: 2rem !important; padding-bottom: 2rem !important; }
body.public-theme footer h5,
body.public-theme footer p,
body.public-theme footer a { color: var(--booking-footer-text); }
body.public-theme footer .text-white { color: var(--booking-footer-text) !important; }
body.public-theme footer hr { border-color: var(--booking-footer-border) !important; opacity: 1; }
body.public-theme footer a:hover { text-decoration: underline; }

@media (max-width: 991.98px) {
  body.public-theme .main-menu-wrapper { background: var(--booking-surface); }
  body.public-theme .main-nav > li > a { color: var(--booking-text); }
}
@media (max-width: 575.98px) {
  body.public-theme .content > .container-fluid { padding-left: 15px; padding-right: 15px; }
  body.public-theme .fc .fc-toolbar { flex-wrap: wrap; gap: 0.75rem; }
  body.public-theme .fc .slot-btn { font-size: 0.75rem; padding: 4px 1px; }
  body.public-theme .calendar-wrapper { padding: 0.5rem; }
  body.public-theme .offer-page-title { font-size: 2rem; }
}
