/*
Theme Name: Meu Tema Filho
Template: astra
Version: 2.0.0
Description: Child theme for Astra with custom Salon Booking System styles.
Text Domain: meu-tema-filho
*/

/* ==========================================================================
   SALON BOOKING SYSTEM — Custom Styles v2 (clean)
   Primary: #5A7D7B | Secondary: #b281a6
   ========================================================================== */

/* 1. SCROLL FIX */
#sln-box--fixed_height,
#sln-box--fixed_height.is_scrollable {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* 2. GLOBAL */
.sln-salon-wrap, .sln-box, [id^="sln-box"] {
  box-sizing: border-box !important;
  font-family: 'Inter', 'Segoe UI', Arial, sans-serif !important;
}

/* 3. TOP BAR */
.sln-topbar { background-color: #f0f5f5 !important; border-bottom: 1px solid #d4e3e2 !important; padding: 8px 16px !important; font-size: 0.8125rem !important; border-radius: 8px 8px 0 0 !important; }
.sln-topbar a { color: #5A7D7B !important; font-weight: 600 !important; text-decoration: none !important; }
.sln-topbar a:hover { color: #3d5e5c !important; text-decoration: underline !important; }

/* 4. PROGRESS BAR */
.sln-progbar__wrapper { background-color: #f0f5f5 !important; padding: 16px 20px 12px !important; border-bottom: 1px solid #d4e3e2 !important; margin-bottom: 0 !important; }
.sln-progbar__text { font-size: 0.75rem !important; font-weight: 600 !important; color: #5A7D7B !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; margin-bottom: 8px !important; display: block !important; }
.sln-progbar { display: flex !important; gap: 4px !important; height: 6px !important; border-radius: 3px !important; overflow: hidden !important; background: #d4e3e2 !important; }
.sln-progbar__item { flex: 1 !important; height: 6px !important; background-color: #d4e3e2 !important; border-radius: 3px !important; }
.sln-progbar__item--current { background-color: #5A7D7B !important; }

/* 5. TÍTULOS */
h2.sln-salon-title { font-size: 1.5rem !important; font-weight: 700 !important; color: #2c3e3d !important; margin: 20px 20px 4px !important; padding: 0 !important; line-height: 1.3 !important; }
h2.salon-step-title { font-size: 0.9375rem !important; font-weight: 500 !important; color: #6b8e8c !important; margin: 0 20px 16px !important; padding: 0 !important; }

/* 6. CATEGORIAS (Accordion) */
.sln-panel { margin: 0 0 6px 0 !important; border-radius: 10px !important; overflow: hidden !important; box-shadow: 0 1px 4px rgba(90,125,123,0.1) !important; border: 1px solid #d4e3e2 !important; }
.sln-panel-heading { display: block !important; text-decoration: none !important; background-color: #5A7D7B !important; transition: background-color 0.2s ease !important; }
.sln-panel-heading:hover { background-color: #4a6e6c !important; text-decoration: none !important; }
.sln-panel-heading[aria-expanded="false"] { border-radius: 10px !important; }
.sln-panel-heading[aria-expanded="true"] { border-radius: 10px 10px 0 0 !important; }

/* Remove azul no focus/click */
a.sln-panel-heading:focus, a.sln-panel-heading:focus-visible, a.sln-panel-heading:active,
.sln-panel-heading:focus, .sln-panel-heading:focus-visible { outline: none !important; box-shadow: none !important; }
.sln-panel:focus-within { border-color: #d4e3e2 !important; box-shadow: 0 1px 4px rgba(90,125,123,0.1) !important; }

/* Título da categoria */
h2.sln-btn.sln-btn--icon.sln-btn--fullwidth { font-size: 1.0625rem !important; font-weight: 700 !important; color: #ffffff !important; padding: 14px 18px !important; margin: 0 !important; letter-spacing: 0.01em !important; line-height: 1.3 !important; text-transform: none !important; background: transparent !important; border: none !important; box-shadow: none !important; text-align: left !important; }

/* Seta sempre branca */
h2.sln-btn.sln-btn--icon.sln-btn--fullwidth::before { border-right-color: #ffffff !important; border-bottom-color: #ffffff !important; }
h2.sln-btn.sln-btn--icon.sln-btn--fullwidth::after { color: #ffffff !important; border-color: #ffffff !important; opacity: 1 !important; }

/* Hotel Canino — cor roxa */
a[href="#collapse24"], a[href="#collapse24"]:link, a[href="#collapse24"]:visited { background-color: #b281a6 !important; }
a[href="#collapse24"]:hover { background-color: #9e6d93 !important; }

.sln-panel-content { background-color: #ffffff !important; border-top: 1px solid #e8f0f0 !important; padding: 0 !important; }

/* 7. SERVIÇOS */
label.sln-list__item { display: flex !important; align-items: center !important; padding: 10px 16px !important; margin: 0 !important; border-bottom: 1px solid #f0f5f5 !important; cursor: pointer !important; transition: background-color 0.15s !important; gap: 12px !important; outline: none !important; box-shadow: none !important; }
label.sln-list__item:last-child { border-bottom: none !important; }
label.sln-list__item:hover { background-color: #f7fafa !important; }
label.sln-list__item:focus, label.sln-list__item:active, label.sln-list__item:focus-within { outline: none !important; box-shadow: none !important; }
.sln-list__item__fkbkg { display: none !important; }
.sln-checkbox.hide input[type="checkbox"] { outline: none !important; border: none !important; box-shadow: none !important; width: 0 !important; height: 0 !important; position: absolute !important; opacity: 0 !important; }
.sln-list__item__content { flex: 1 !important; min-width: 0 !important; display: flex !important; align-items: baseline !important; gap: 10px !important; flex-wrap: wrap !important; }
h3.sln-steps-name.sln-service-name.sln-list__item__name { font-size: 0.875rem !important; font-weight: 500 !important; color: #3d5250 !important; margin: 0 !important; padding: 0 !important; line-height: 1.4 !important; flex: 1 !important; }
h3.sln-steps-price.sln-service-price.sln-list__item__price { font-size: 0.875rem !important; font-weight: 700 !important; color: #5A7D7B !important; margin: 0 !important; padding: 0 !important; white-space: nowrap !important; flex-shrink: 0 !important; }
.sln-service__action.sln-list__item__action { flex-shrink: 0 !important; display: flex !important; align-items: center !important; }

/* 8. SUBSECÇÕES BANHO */

/* "PELO MÉDIO / LONGO" */
label.sln-list__item.sln-service--2792 {
  padding-top: 32px !important;
  position: relative !important;
}
label.sln-list__item.sln-service--2792::before {
  content: 'Pelo Médio / Longo' !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  display: block !important;
  box-sizing: border-box !important;
  background-color: #e8f2f1 !important;
  color: #5A7D7B !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 7px 16px !important;
  line-height: 1.2 !important;
  z-index: 1 !important;
}

/* "PELO CURTO" */
label.sln-list__item.sln-service--2785 {
  border-top: none !important;
  margin-top: 26px !important;
  position: relative !important;
  padding: 10px 16px !important;
  background-color: #ffffff !important;
}
label.sln-list__item.sln-service--2785:hover { background-color: #f7fafa !important; }
label.sln-list__item.sln-service--2785::before {
  content: 'Pelo Curto' !important;
  position: absolute !important;
  top: -26px !important; left: 0 !important; right: 0 !important;
  height: 26px !important;
  display: block !important;
  box-sizing: border-box !important;
  background-color: #ead8e7 !important;
  color: #8a5080 !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.09em !important;
  padding: 6px 16px !important;
  line-height: 1.2 !important;
  z-index: 1 !important;
}

/* 9. CONTADOR (+/-) */
.sln-service-variable-duration--counter { display: inline-flex !important; align-items: center !important; gap: 6px !important; border-radius: 50px !important; padding: 3px 6px !important; }
.sln-service-variable-duration--counter--value { font-size: 0.875rem !important; font-weight: 700 !important; color: #2c3e3d !important; min-width: 18px !important; text-align: center !important; }
.sln-service-variable-duration--counter--minus,
.sln-service-variable-duration--counter--plus { transition: transform 0.15s ease !important; }
.sln-service-variable-duration--counter--minus:hover,
.sln-service-variable-duration--counter--plus:hover { transform: scale(1.18) !important; }

/* 10. CHECKBOX */
.sln-checkbox { display: inline-flex !important; align-items: center !important; }
.sln-checkbox input[type="checkbox"] { appearance: none !important; -webkit-appearance: none !important; width: 18px !important; height: 18px !important; border: 2px solid #5A7D7B !important; border-radius: 4px !important; background: #ffffff !important; cursor: pointer !important; position: relative !important; flex-shrink: 0 !important; }
.sln-checkbox input[type="checkbox"]:checked { background-color: #5A7D7B !important; border-color: #5A7D7B !important; }
.sln-checkbox input[type="checkbox"]:checked::after { content: '' !important; position: absolute !important; top: 1px !important; left: 4px !important; width: 5px !important; height: 9px !important; border: 2px solid #ffffff !important; border-top: none !important; border-left: none !important; transform: rotate(45deg) !important; }

/* 11. PAINEL LATERAL */
#sln-box__bottombar { background-color: #eef4f4 !important; border-radius: 12px !important; padding: 20px !important; border: 1px solid #c8dede !important; box-shadow: 0 2px 8px rgba(90,125,123,0.08) !important; }
.sln-total { display: flex !important; align-items: center !important; justify-content: space-between !important; margin-bottom: 16px !important; padding-bottom: 14px !important; border-bottom: 1px solid #c8dede !important; }
.sln-total-label { font-size: 0.8125rem !important; font-weight: 600 !important; color: #6b8e8c !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; margin: 0 !important; }
#services-total, .sln-total-price { font-size: 1.25rem !important; font-weight: 800 !important; color: #5A7D7B !important; margin: 0 !important; }

/* 12. BOTÕES */

/* Formactions container */
.sln-box--formactions {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  height: auto !important;
  min-height: 0 !important;
  gap: 8px !important;
}

/* Wrappers */
.sln-btn--emphasis,
.sln-btn--nextstep,
.sln-btn--prevstep {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  align-self: flex-start !important;
}

/* Próximo passo — cor (ativo + disabled) */
#sln-step-submit,
.sln-btn--nextstep button,
.sln-btn--disabled #sln-step-submit,
.sln-btn--nextstep.sln-btn--disabled button {
  background-color: #5A7D7B !important;
  background-image: none !important;
  color: #ffffff !important;
}

/* Pay (<a> link) — passo 5 */
.sln-btn--emphasis a,
.sln-btn--nextstep a {
  display: block !important; width: 100% !important; box-sizing: border-box !important;
  height: auto !important; max-height: 56px !important; overflow: hidden !important;
  background-color: #5A7D7B !important; color: #ffffff !important;
  border: none !important; border-radius: 50px !important;
  padding: 14px 24px !important; font-size: 1rem !important; font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: center !important; text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(90,125,123,0.35) !important;
  letter-spacing: 0.02em !important;
}
.sln-btn--emphasis a:hover, .sln-btn--nextstep a:hover {
  background-color: #4a6e6c !important; color: #ffffff !important; text-decoration: none !important;
}

/* Pagar no local + Voltar */
.sln-btn--prevstep a {
  display: block !important; width: 100% !important; box-sizing: border-box !important;
  background-color: #ffffff !important; color: #5A7D7B !important;
  border: 1.5px solid #5A7D7B !important; border-radius: 50px !important;
  padding: 12px 24px !important; font-size: 1rem !important; font-weight: 600 !important;
  text-align: center !important; text-decoration: none !important;
  box-shadow: none !important; margin-top: 8px !important; line-height: 1.5 !important;
}
.sln-btn--prevstep a:hover {
  background-color: #f0f5f5 !important; color: #3d5e5c !important; text-decoration: none !important;
}

/* Bootstrap fallback */
html body .btn.btn-primary, html body .btn-primary {
  background-color: #5A7D7B !important; background-image: none !important;
  border-color: #5A7D7B !important; color: #ffffff !important; border-radius: 50px !important;
}
html body .btn.btn-primary:hover, html body .btn-primary:hover {
  background-color: #4a6e6c !important; border-color: #4a6e6c !important;
}
html body .btn.btn-default, html body .btn-default {
  background-color: #ffffff !important; color: #5A7D7B !important;
  border-color: #5A7D7B !important; border-radius: 50px !important;
}

/* 13. TABLET */
@media (max-width: 1024px) {
  h2.sln-salon-title { font-size: 1.3125rem !important; margin: 16px 16px 4px !important; }
  h2.salon-step-title { margin: 0 16px 14px !important; font-size: 0.9rem !important; }
  h2.sln-btn.sln-btn--icon.sln-btn--fullwidth { font-size: 1rem !important; padding: 13px 16px !important; }
  label.sln-list__item { padding: 9px 14px !important; }
  #sln-box__bottombar { padding: 16px !important; }
}

/* 14. MOBILE */
@media (max-width: 767px) {
  h2.sln-salon-title { font-size: 1.1875rem !important; margin: 14px 12px 4px !important; }
  h2.salon-step-title { font-size: 0.875rem !important; margin: 0 12px 12px !important; }
  h2.sln-btn.sln-btn--icon.sln-btn--fullwidth { font-size: 0.9375rem !important; padding: 12px 14px !important; }
  label.sln-list__item { padding: 9px 12px !important; }
  .sln-list__item__content { flex-direction: column !important; align-items: flex-start !important; gap: 3px !important; }
  h3.sln-steps-name.sln-service-name.sln-list__item__name { font-size: 0.8125rem !important; }
  h3.sln-steps-price.sln-service-price.sln-list__item__price { font-size: 0.8125rem !important; }
  #sln-box__bottombar { padding: 14px 12px !important; border-radius: 10px !important; }
  #services-total, .sln-total-price { font-size: 1.125rem !important; }
}

/* Próximo passo — ativo */
html body #sln-step-submit {
  background-color: #5A7D7B !important;
  background-image: none !important;
  color: #ffffff !important;
  border-radius: 50px !important;
  padding: 14px 24px !important;
  border: none !important;
  width: 100% !important;
  display: block !important;
  box-sizing: border-box !important;
  opacity: 1 !important;
}

/* Próximo passo — disabled */
html body div.sln-btn--disabled > button#sln-step-submit,
html body div.sln-btn--nextstep.sln-btn--disabled > button {
  background-color: #5A7D7B !important;
  background-image: none !important;
  color: #ffffff !important;
  border-radius: 50px !important;
  padding: 14px 24px !important;
  border: none !important;
  width: 100% !important;
  display: block !important;
  box-sizing: border-box !important;
  opacity: 0.6 !important;
  box-shadow: none !important;
}