/* Caroline Clinic booking page — refined, responsive styling */
:root {
  --cc-deep: #31533d;
  --cc-green: #6f9481;
  --cc-pale: #e6ede2;
  --cc-cream: #f7f8f4;
  --cc-ink: #393d3a;
  --cc-line: #dce5dc;
}

body.--theme-default {
  background: var(--cc-cream) !important;
  color: var(--cc-ink) !important;
  font-family: "Red Hat Display", "Helvetica Neue", Arial, sans-serif !important;
}

/* Header and hero */
body.--theme-default header {
  box-shadow: 0 2px 18px rgba(49, 83, 61, .08) !important;
}

body.--theme-default #main-buttons {
  height: 460px !important;
  min-height: 460px !important;
  background-position: center 48% !important;
  position: relative !important;
}

body.--theme-default #main-buttons::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(90deg, rgba(27, 48, 34, .46), rgba(49, 83, 61, .18), rgba(27, 48, 34, .30)) !important;
  pointer-events: none !important;
}

body.--theme-default #main-buttons .container-fluid {
  position: relative !important;
  z-index: 1 !important;
}

body.--theme-default #main-buttons .company-name {
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .28) !important;
  max-width: 850px !important;
  margin-inline: auto !important;
}

body.--theme-default #main-buttons .bar .btn a {
  border-radius: 999px !important;
  min-width: 150px !important;
  padding: 14px 24px !important;
  font-weight: 700 !important;
  letter-spacing: .01em !important;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease !important;
}

body.--theme-default #main-buttons .bar .btn a:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 25px rgba(30, 60, 42, .24) !important;
}

/* Booking steps */
body.--theme-default #steps-nav {
  background: #fff !important;
  box-shadow: 0 6px 24px rgba(49, 83, 61, .08) !important;
}

body.--theme-default #steps-nav .step_info_item a {
  color: #68726b !important;
  font-weight: 600 !important;
}

body.--theme-default #steps-nav .step_info_item.active,
body.--theme-default #steps-nav .step_info_item.active a {
  background: var(--cc-deep) !important;
  color: #fff !important;
}

/* Main booking area */
body.--theme-default #main-content {
  background: var(--cc-cream) !important;
}

body.--theme-default #sb_content .container-fluid.column {
  max-width: 1220px !important;
  margin-inline: auto !important;
}

body.--theme-default #sb_category_step_container {
  padding-top: 42px !important;
  padding-bottom: 64px !important;
}

body.--theme-default #sb_category_step_container .category-item.item {
  padding: 10px !important;
}

body.--theme-default #sb_category_step_container .tab.tab-col {
  height: 100% !important;
  overflow: hidden !important;
  border: 1px solid var(--cc-line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(49, 83, 61, .08) !important;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}

body.--theme-default #sb_category_step_container .tab.tab-col:hover {
  transform: translateY(-5px) !important;
  border-color: #bdcebf !important;
  box-shadow: 0 16px 36px rgba(49, 83, 61, .14) !important;
}

body.--theme-default #sb_category_step_container .preloader,
body.--theme-default #sb_category_step_container .preloader .user.img {
  height: 235px !important;
  overflow: hidden !important;
}

body.--theme-default #sb_category_step_container .preloader img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .45s ease !important;
}

body.--theme-default #sb_category_step_container .tab.tab-col:hover .preloader img {
  transform: scale(1.035) !important;
}

body.--theme-default #sb_category_step_container .tab-pd {
  padding: 24px 24px 22px !important;
}

body.--theme-default #sb_category_step_container .cap {
  color: var(--cc-deep) !important;
  font-size: 21px !important;
  line-height: 1.28 !important;
  font-weight: 700 !important;
  min-height: 54px !important;
}

body.--theme-default #sb_category_step_container .txt,
body.--theme-default #sb_category_step_container .txt p,
body.--theme-default #sb_category_step_container .txt span {
  color: #59615c !important;
  font-family: "Red Hat Display", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
}

body.--theme-default #sb_category_step_container .read-more {
  color: var(--cc-deep) !important;
  font-weight: 700 !important;
}

body.--theme-default #sb_category_step_container .btn.select a,
body.--theme-default #sb_service_step_container .btn.select a,
body.--theme-default .btn.custom a,
body.--theme-default #sb_book_btn {
  background: var(--cc-deep) !important;
  border-color: var(--cc-deep) !important;
  border-radius: 10px !important;
  color: #fff !important;
  font-weight: 700 !important;
  min-height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}

body.--theme-default #sb_category_step_container .btn.select a:hover,
body.--theme-default #sb_service_step_container .btn.select a:hover,
body.--theme-default .btn.custom a:hover,
body.--theme-default #sb_book_btn:hover {
  background: #24432f !important;
  border-color: #24432f !important;
  box-shadow: 0 8px 20px rgba(49, 83, 61, .20) !important;
}

/* Forms, calendar and time slots */
body.--theme-default input,
body.--theme-default select,
body.--theme-default textarea {
  border-radius: 9px !important;
  border-color: var(--cc-line) !important;
}

body.--theme-default input:focus,
body.--theme-default select:focus,
body.--theme-default textarea:focus {
  border-color: var(--cc-green) !important;
  box-shadow: 0 0 0 3px rgba(111, 148, 129, .16) !important;
}

body.--theme-default .time-slot,
body.--theme-default .sb-cell.free {
  border-radius: 8px !important;
}

body.--theme-default footer {
  background: var(--cc-deep) !important;
  color: #fff !important;
}

/* Mobile */
@media (max-width: 767px) {
  body.--theme-default #main-buttons {
    height: 310px !important;
    min-height: 310px !important;
    background-position: center center !important;
  }

  body.--theme-default #main-buttons .company-name {
    font-size: 27px !important;
    padding-inline: 18px !important;
  }

  body.--theme-default #main-buttons .bar .btn a {
    min-width: 132px !important;
    padding: 12px 17px !important;
  }

  body.--theme-default #steps-nav {
    overflow-x: auto !important;
  }

  body.--theme-default #sb_category_step_container {
    padding: 22px 10px 42px !important;
  }

  body.--theme-default #sb_category_step_container .category-item.item {
    padding: 7px !important;
  }

  body.--theme-default #sb_category_step_container .preloader,
  body.--theme-default #sb_category_step_container .preloader .user.img {
    height: 210px !important;
  }

  body.--theme-default #sb_category_step_container .tab-pd {
    padding: 20px !important;
  }

  body.--theme-default #sb_category_step_container .cap {
    min-height: 0 !important;
    font-size: 20px !important;
  }
}

body.--theme-default #main-buttons .company-name {
  color: #ffffff !important;
}
