/* Glamd Room booking page styles
   Split from current-overrides.css in v15.0.
   Loaded only on the booking page after current-overrides.css so the visual design stays the same. */

/* v13.7 booking mobile summary order */
@media (max-width: 760px) {
  .booking-app {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .booking-steps-panel {
    order: 1;
  }
  .booking-main-panel,
  .booking-summary-panel {
    display: contents !important;
  }
  .booking-services-panel,
  .booking-summary-content,
  .booking-details-panel,
  .booking-payment-content {
    background: #fff !important;
    border: 1px solid rgba(88, 16, 36, 0.1) !important;
    border-radius: 26px !important;
    padding: 20px !important;
    box-shadow: 0 18px 46px rgba(88, 16, 36, 0.08) !important;
    overflow: hidden !important;
  }
  .booking-services-panel {
    order: 2;
  }
  .booking-summary-content {
    order: 3;
    background: linear-gradient(145deg, #fffaf7, #fff) !important;
  }
  .booking-details-panel {
    order: 4;
  }
  .booking-payment-content {
    order: 5;
  }
  .booking-summary-content h3,
  .booking-details-panel h3 {
    margin-bottom: 14px !important;
  }
  .booking-summary-content .summary-line {
    border-radius: 16px !important;
    padding: 12px 0 !important;
  }
  .booking-payment-content .payment-choice-box,
  .booking-payment-content .checkout-policy-box {
    margin-top: 0 !important;
  }
}

/* v14.4 booking date selector before times */
.booking-date-selector {
  margin-top: 26px !important;
  padding: 20px !important;
  border: 1px solid rgba(88, 16, 36, 0.10) !important;
  border-radius: 26px !important;
  background: linear-gradient(145deg, #fffaf7, #fff) !important;
  box-shadow: 0 18px 46px rgba(88, 16, 36, 0.06) !important;
}
.booking-date-selector h3 {
  margin: 0 0 8px !important;
}
.booking-date-selector .booking-multi-note {
  margin-bottom: 16px !important;
}
.booking-date-selector .booking-date-field {
  margin: 0 !important;
}
.booking-date-selector input[type="date"] {
  width: 100% !important;
  min-height: 58px !important;
  border-radius: 18px !important;
  background: #fff !important;
}
@media (max-width: 760px) {
  .booking-date-selector {
    order: 2 !important;
    padding: 18px !important;
  }
}

/* v14.6 booking calendar and summary polish */
.booking-date-quick-actions {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin: 0 0 14px !important;
}
.booking-date-quick-actions button {
  border: 1px solid rgba(88, 16, 36, 0.12) !important;
  background: #fff !important;
  border-radius: 999px !important;
  min-height: 44px !important;
  padding: 10px 12px !important;
  color: #5a1430 !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
.booking-date-quick-actions button:hover,
.booking-date-quick-actions button:focus {
  border-color: rgba(185, 155, 85, 0.65) !important;
  box-shadow: 0 0 0 3px rgba(185, 155, 85, 0.16) !important;
}
.booking-summary-content-polished .booking-summary-heading-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
}
.booking-summary-kicker {
  display: block !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #b99b55 !important;
  margin-bottom: 5px !important;
}
.booking-summary-treatment-card {
  background: linear-gradient(145deg, #5a1430, #7d2347) !important;
  color: #fff !important;
  border-radius: 22px !important;
  padding: 16px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 18px 40px rgba(90, 20, 48, 0.20) !important;
}
.booking-summary-treatment-card span {
  display: block !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #ead88d !important;
  margin-bottom: 6px !important;
}
.booking-summary-treatment-card b {
  color: #fff !important;
  font-size: 18px !important;
  line-height: 1.25 !important;
}
.booking-summary-date-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}
.booking-summary-date-grid .summary-line,
.booking-summary-due-today {
  background: #fffaf7 !important;
  border: 1px solid rgba(88, 16, 36, 0.08) !important;
  border-radius: 18px !important;
  padding: 13px 14px !important;
}
.booking-summary-due-today b {
  font-size: 22px !important;
  color: #5a1430 !important;
}
.booking-summary-patch-note {
  margin-top: 12px !important;
  padding: 12px 14px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(185, 155, 85, 0.34) !important;
  background: rgba(185, 155, 85, 0.12) !important;
  color: #5a1430 !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}
.booking-summary-confirmation-note {
  margin: 14px 0 0 !important;
  color: #75676b !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}
@media (max-width: 560px) {
  .booking-date-quick-actions,
  .booking-summary-date-grid {
    grid-template-columns: 1fr !important;
  }
}

/* v14.7 appointment summary formatting fix */
.booking-summary-content-polished {
  padding: 22px !important;
}
.booking-summary-content-polished .booking-summary-heading-row {
  margin-bottom: 14px !important;
}
.booking-summary-content-polished h3 {
  font-size: clamp(36px, 8vw, 50px) !important;
  line-height: 0.98 !important;
  margin: 0 !important;
}
.booking-summary-content-polished .booking-summary-treatment-card {
  padding: 15px 16px !important;
  border-radius: 22px !important;
  margin-bottom: 12px !important;
}
.booking-summary-content-polished .booking-summary-treatment-card b {
  font-size: 18px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
}
.booking-summary-content-polished .booking-summary-date-grid {
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
}
.booking-summary-content-polished .summary-line {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  min-height: 58px !important;
  margin: 0 0 10px !important;
  padding: 12px 14px !important;
  background: #fffaf7 !important;
  border: 1px solid rgba(88, 16, 36, 0.08) !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}
.booking-summary-content-polished .summary-line span {
  color: #5f5558 !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.booking-summary-content-polished .summary-line b {
  color: #2d2226 !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: right !important;
  word-break: normal !important;
}
.booking-summary-content-polished .booking-summary-due-today {
  background: rgba(185, 155, 85, 0.12) !important;
  border-color: rgba(185, 155, 85, 0.32) !important;
}
.booking-summary-content-polished .booking-summary-due-today b {
  color: #5a1430 !important;
  font-size: 20px !important;
}
.booking-summary-content-polished .booking-summary-confirmation-note {
  margin: 12px 0 0 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}
@media (max-width: 420px) {
  .booking-summary-content-polished {
    padding: 18px !important;
  }
  .booking-summary-content-polished h3 {
    font-size: 34px !important;
  }
  .booking-summary-content-polished .summary-line {
    min-height: 54px !important;
    padding: 11px 13px !important;
  }
  .booking-summary-content-polished .summary-line b {
    font-size: 15px !important;
  }
}

/* v14.8 booking date feedback and duration */
.booking-date-feedback {
  display: none;
  margin-top: 14px !important;
  padding: 12px 14px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(185, 155, 85, 0.28) !important;
  background: rgba(185, 155, 85, 0.10) !important;
  color: #5a1430 !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}
.booking-date-feedback.show {
  display: grid !important;
  gap: 4px !important;
}
.booking-date-feedback b {
  font-weight: 800 !important;
}
.booking-summary-content-polished #sumDuration {
  color: #5a1430 !important;
}

/* v14.9 patch test labels on service cards */
.service-patch-label {
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content !important;
  margin-top: 8px !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  background: rgba(185, 155, 85, 0.14) !important;
  border: 1px solid rgba(185, 155, 85, 0.34) !important;
  color: #5a1430 !important;
  font-family: "Montserrat", sans-serif !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
.service-patch-label::before {
  content: "✓";
  margin-right: 6px !important;
  color: #b99b55 !important;
}
.service-item.active .service-patch-label,
.service-item.multi-selected .service-patch-label {
  background: rgba(255,255,255,0.16) !important;
  border-color: rgba(255,255,255,0.28) !important;
  color: #fff !important;
}
.service-item.active .service-patch-label::before,
.service-item.multi-selected .service-patch-label::before {
  color: #ead88d !important;
}

/* v1.2.0 appointment-date promotion pricing */
.booking-sale-price{display:inline-flex!important;align-items:flex-end!important;justify-content:flex-end!important;gap:6px!important;flex-wrap:wrap!important;line-height:1.1!important}
.booking-sale-price del{font-size:12px!important;font-weight:700!important;opacity:.58;text-decoration-thickness:1px}
.booking-sale-price ins{font-size:inherit!important;font-weight:900!important;text-decoration:none!important;color:#8d1d3d!important}
.booking-sale-price em{flex-basis:100%;font-size:9px!important;font-style:normal!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:#a68135!important}
.service-item.active .booking-sale-price ins,.service-item.multi-selected .booking-sale-price ins,.service-item.active .booking-sale-price em,.service-item.multi-selected .booking-sale-price em{color:#fff!important}
.booking-selected-treatments .booking-sale-price{justify-content:flex-start!important;margin-left:4px}
.booking-summary-promotion-note{margin:9px 0!important;padding:11px 13px!important;border-radius:14px!important;background:rgba(185,155,85,.13)!important;border:1px solid rgba(185,155,85,.28)!important;color:#681530!important;font-size:12px!important;font-weight:800!important;line-height:1.45!important}

/* v1.2.9 clearer scheduled-offer display in booking summary */
.booking-summary-standard-price[hidden],
.booking-summary-promotion-note[hidden],
.payment-promotion-notice[hidden]{display:none!important}
.booking-summary-content-polished .booking-summary-standard-price{
  min-height:50px!important;
  background:rgba(45,34,38,.035)!important;
}
.booking-summary-content-polished .booking-summary-standard-price span{
  color:#75676b!important;
}
.booking-summary-content-polished .booking-summary-standard-price del{
  color:#75676b!important;
  font-size:15px!important;
  font-weight:700!important;
  text-decoration-color:#8d1d3d!important;
  text-decoration-thickness:2px!important;
}
.booking-summary-content-polished .booking-summary-offer-price.has-active-promotion{
  background:linear-gradient(135deg,rgba(185,155,85,.16),rgba(141,29,61,.07))!important;
  border-color:rgba(185,155,85,.42)!important;
  box-shadow:0 8px 22px rgba(90,20,48,.06)!important;
}
.booking-summary-content-polished .booking-summary-offer-price.has-active-promotion span{
  color:#681530!important;
  font-weight:800!important;
}
.booking-summary-content-polished .booking-summary-offer-price.has-active-promotion b{
  color:#681530!important;
  font-size:21px!important;
}
.booking-summary-promotion-note{
  position:relative!important;
  padding-left:42px!important;
}
.booking-summary-promotion-note::before{
  content:"✓";
  position:absolute;
  left:13px;
  top:50%;
  width:21px;
  height:21px;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  border-radius:50%;
  background:#681530;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.payment-promotion-notice{
  position:relative;
  margin:-2px 0 14px!important;
  padding:12px 13px 12px 39px!important;
  border:1px solid rgba(185,155,85,.38)!important;
  border-radius:14px!important;
  background:rgba(185,155,85,.13)!important;
  color:#681530!important;
  font-family:"Montserrat",sans-serif!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.45!important;
}
.payment-promotion-notice::before{
  content:"✓";
  position:absolute;
  left:12px;
  top:13px;
  width:19px;
  height:19px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#681530;
  color:#fff;
  font-size:11px;
  font-weight:900;
}


/* SMS booking preferences */
.booking-sms-preferences {
  margin-bottom: 14px;
}
.booking-sms-preferences h4 {
  display: flex;
  align-items: center;
  gap: 8px;
}
.booking-sms-preferences h4::before {
  content: "SMS";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #183d35;
  color: #fff;
  font: 700 10px/1 Montserrat, sans-serif;
  letter-spacing: .02em;
}
.booking-sms-preferences .terms-check:last-child {
  margin-bottom: 0;
}

/* =========================================================
   v1.10.11 — customer discount code
   ========================================================= */
.booking-discount-code-box{
  display:grid;
  gap:13px;
  margin:0 0 14px;
  padding:17px;
  border:1px solid rgba(88,16,36,.11);
  border-radius:20px;
  background:linear-gradient(145deg,#fffaf7,#fff);
}
.booking-discount-code-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.booking-discount-code-heading>div{display:grid;gap:4px}
.booking-discount-code-heading span{
  color:#a68135;
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.booking-discount-code-heading h4{
  margin:0!important;
  color:#581024!important;
  font-family:"Cormorant Garamond",serif!important;
  font-size:27px!important;
  line-height:1!important;
}
.booking-discount-code-heading p{
  max-width:190px;
  margin:1px 0 0!important;
  color:#7b686e;
  font-size:11px;
  line-height:1.45;
  text-align:right;
}
.booking-discount-code-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}
.booking-discount-code-controls input{
  width:100%;
  min-width:0;
  min-height:48px;
  padding:11px 13px;
  border:1px solid rgba(88,16,36,.16);
  border-radius:13px;
  background:#fff;
  color:#302227;
  font-family:"Montserrat",sans-serif;
  font-size:16px;
  font-weight:750;
  letter-spacing:.06em;
  text-transform:uppercase;
  outline:none;
}
.booking-discount-code-controls input:focus{
  border-color:rgba(166,129,53,.7);
  box-shadow:0 0 0 3px rgba(185,155,85,.13);
}
.booking-discount-code-controls button{
  min-width:88px;
  min-height:48px;
  padding:10px 15px;
  border:0;
  border-radius:13px;
  background:#681530;
  color:#fff;
  font-family:"Montserrat",sans-serif;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  cursor:pointer;
}
.booking-discount-code-controls button:disabled{opacity:.55;cursor:wait}
.booking-discount-code-feedback{
  position:relative;
  margin:0!important;
  padding:10px 12px 10px 36px;
  border-radius:13px;
  font-family:"Montserrat",sans-serif;
  font-size:11px;
  font-weight:750;
  line-height:1.45;
}
.booking-discount-code-feedback[hidden]{display:none!important}
.booking-discount-code-feedback::before{
  position:absolute;
  left:12px;
  top:10px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:10px;
  font-weight:900;
}
.booking-discount-code-feedback.is-success{
  border:1px solid rgba(35,116,69,.2);
  background:#eaf8ef;
  color:#1d633b;
}
.booking-discount-code-feedback.is-success::before{content:"✓";background:#237445;color:#fff}
.booking-discount-code-feedback.is-error{
  border:1px solid rgba(150,40,53,.19);
  background:#fff0f1;
  color:#8b2636;
}
.booking-discount-code-feedback.is-error::before{content:"!";background:#9b3040;color:#fff}
.booking-discount-code-feedback.is-loading,
.booking-discount-code-feedback.is-info{
  border:1px solid rgba(166,129,53,.22);
  background:#fff8e8;
  color:#70551c;
}
.booking-discount-code-feedback.is-loading::before{content:"…";background:#a68135;color:#fff}
.booking-discount-code-feedback.is-info::before{content:"i";background:#a68135;color:#fff}

@media(max-width:520px){
  .booking-discount-code-box{padding:15px;border-radius:18px}
  .booking-discount-code-heading{display:grid;gap:7px}
  .booking-discount-code-heading p{max-width:none;text-align:left}
  .booking-discount-code-controls{grid-template-columns:minmax(0,1fr) 82px}
  .booking-discount-code-controls button{min-width:0;padding:10px 9px}
}
