/* Homepage only: inherit the administrator's spa palette. */
.spa-home { --spa-rule: #dce0e5; background: #fff; color: var(--text-dark); }
.spa-home .text-muted { color: var(--text-muted) !important; }
.spa-home .skip-link { top: 0; transform: translateY(-120%); }
.spa-home .skip-link:focus { transform: translateY(0); }
.spa-home ::selection { background: var(--accent-color); color: var(--text-dark); }
.spa-home :is(a, button, input, select, textarea) { scroll-margin-block: 110px; }
.spa-home :is(section, #agendar-cita) { scroll-margin-top: 100px; }
.spa-home .container { max-width: 1240px; padding-inline: 32px; }
.spa-home .navbar { padding-block: 14px !important; box-shadow: none; border-bottom: 1px solid var(--spa-rule); }
.spa-home .navbar-brand { gap: 12px !important; flex-shrink: 0; }
.spa-home .logo-imagen { box-shadow: none; border-radius: 0; }
.spa-home .nav-link { font-size: .82rem; padding-inline: 10px !important; }
.spa-home .nav-link.active { text-decoration: underline; text-underline-offset: 8px; }
.spa-home .navbar .btn { font-size: .8rem; padding: 10px 12px !important; margin-left: 0 !important; }
.spa-home .navbar .btn:last-child { border: 1px solid var(--spa-rule); border-radius: 4px !important; }
.spa-home .spa-hero { background: var(--light-bg); border-bottom: 1px solid var(--spa-rule); }
.spa-home .spa-hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 64px; padding-block: 64px; }
.spa-home .spa-hero h1 { font-size: clamp(2.7rem, 4.2vw, 4.6rem); line-height: 1.13; font-weight: 400; letter-spacing: -.035em; text-wrap: balance; margin-bottom: 28px; }
.spa-home .spa-hero h1 em { font-weight: 400; }
.spa-home .spa-hero-description { color: var(--text-muted); font-size: 1.05rem; line-height: 1.85; max-width: 43ch; margin-bottom: 32px; }
.spa-home .spa-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.spa-home .spa-button { display: inline-flex; align-items: center; justify-content: center; gap: 28px; background: var(--text-dark); color: white; border: 1px solid var(--text-dark); border-radius: 4px; padding: 16px 24px; min-height: 52px; font-size: .9rem; font-weight: 600; transition: background-color .2s; }
.spa-home .spa-button:hover { background: var(--text-dark); color: white; }
.spa-home .spa-text-link { color: var(--text-dark); font-size: .9rem; padding-block: 12px; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.spa-home .spa-text-link:hover { text-decoration-thickness: 2px; }
.spa-home .spa-hero-visual { margin: 0; min-width: 0; }
.spa-home .spa-hero-visual picture { display: block; }
.spa-home .spa-hero-visual img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.spa-home .spa-hero-visual picture img { aspect-ratio: auto; }
.spa-home #main-content > section:not(.spa-hero) { padding-block: 80px !important; }
.spa-home #main-content > section:not(.spa-hero) > .container { padding-block: 0 !important; }
.spa-home h2.display-5 { font-size: clamp(2rem, 3.3vw, 3.1rem); font-weight: 400 !important; line-height: 1.2; letter-spacing: -.025em; text-wrap: balance; }
.spa-home #main-content > section > .container > .text-center:not(.row) { max-width: 720px; margin-inline: auto; }
.spa-home #main-content > section > .container > .text-center:not(.row) > p { font-size: 1rem !important; line-height: 1.8; }
.spa-home #beneficios { border-bottom: 1px solid var(--spa-rule); }
.spa-home #beneficios .row { text-align: left !important; justify-content: space-between !important; }
.spa-home #beneficios .row > div { flex: 1; }
.spa-home #beneficios .feature-card { padding: 0 20px !important; border-radius: 0; }
.spa-home #beneficios .feature-card:hover { transform: none; box-shadow: none; background: none; }
.spa-home #beneficios .icon-badge { width: auto !important; height: 36px !important; font-size: 1.4rem !important; justify-content: flex-start; background: transparent !important; color: var(--text-dark) !important; box-shadow: none !important; }
.spa-home #beneficios h3 { font-size: 1.35rem; line-height: 1.35; font-weight: 400 !important; }
.spa-home #beneficios p { font-size: .88rem; line-height: 1.8; margin-bottom: 0; }
.spa-home #promociones { background: var(--light-bg) !important; }
.spa-home #servicios { background: #fff !important; }
.spa-home #nosotros { background: var(--light-bg) !important; }
.spa-home #nosotros img { filter: none !important; border-radius: 0 !important; width: 100%; aspect-ratio: 1; object-fit: contain; }
.spa-home #nosotros .lead { font-size: 1.1rem; }
.spa-home :is(.promo-card, .result-card, .hover-lift, .product-card) { box-shadow: none !important; border-radius: 12px !important; }
.spa-home :is(.promo-card, .result-card, .hover-lift, .product-card):hover { transform: none; box-shadow: none !important; }
.spa-home #servicios .card { border: 1px solid var(--spa-rule) !important; }
.spa-home #servicios .card-body { text-align: left !important; }
.spa-home #servicios .card-body > .d-flex { justify-content: flex-start !important; flex-wrap: wrap; }
.spa-home #servicios .card-title { font-size: 1.5rem; line-height: 1.3; font-weight: 400 !important; }
.spa-home #servicios .card-footer { gap: 16px; flex-wrap: wrap; }
.spa-home #servicios .card:hover .zoom-effect { transform: none; }
.spa-home :is(.btn-reservar, .btn-primary-custom) { background: var(--text-dark) !important; border-color: var(--text-dark) !important; color: white !important; border-radius: 4px !important; min-height: 44px; }
.spa-home :is(.btn-reservar, .btn-primary-custom):hover { background: var(--text-dark) !important; transform: none; box-shadow: none; }
.spa-home .btn-primary-custom i { color: inherit; }
.spa-home :is(.btn-outline-dark, .btn-outline-danger) { border-radius: 4px !important; color: var(--text-dark); border-color: var(--text-dark); min-height: 44px; }
.spa-home :is(.btn-outline-dark, .btn-outline-danger):hover { background: var(--text-dark); color: white; transform: none; }
.spa-home #promociones .bg-danger { background: var(--text-dark) !important; }
.spa-home #promociones .text-danger { color: var(--text-dark) !important; }
.spa-home #promociones .border-danger { border-color: var(--spa-rule) !important; }
.spa-home #resultados .text-primary { color: var(--text-dark) !important; }
.spa-home #agendar-cita { padding-block: 80px; margin-block: 0 !important; }
.spa-home #agendar-cita .form-card { border: 1px solid var(--spa-rule); box-shadow: none; padding: 24px; margin-top: 24px; }
.spa-home #agendar-cita .form-control { min-height: 48px; }
.spa-home .footer { border-top: 1px solid var(--spa-rule); margin-top: 0 !important; }
.spa-home .footer a { overflow-wrap: anywhere; }
.spa-home .footer .rounded-circle { min-width: 44px; min-height: 44px; }
.spa-home .whatsapp-float { width: 52px; height: 52px; right: 22px; bottom: 22px; font-size: 26px; animation: none; }
.spa-home .product-card-carousel { box-shadow: none; border: 1px solid var(--spa-rule); }
.spa-home .product-card-carousel:hover { transform: none; box-shadow: none; }
.spa-home .product-card-carousel:focus-within .product-overlay { opacity: 1; }
@media (max-width: 1199px) {
    .spa-home .navbar-expand-lg .navbar-collapse { flex-wrap: wrap; }
    .spa-home .spa-hero-grid { gap: 32px; }
}
@media (max-width: 767px) {
    .spa-home .container { padding-inline: 24px; }
    .spa-home .spa-hero-grid { grid-template-columns: 1fr; gap: 32px; padding-block: 40px; }
    .spa-home .spa-hero h1 { font-size: clamp(2.5rem, 9vw, 3.7rem); }
    .spa-home .spa-hero-visual img { max-height: 420px; }
    .spa-home .spa-hero-visual picture img { width: auto; max-width: 100%; margin-inline: auto; }
    .spa-home #main-content > section:not(.spa-hero) { padding-block: 56px !important; }
    .spa-home #beneficios .row { flex-direction: column; gap: 28px; }
    .spa-home #beneficios .feature-card { padding-inline: 0 !important; }
    .spa-home #agendar-cita { padding-block: 56px; }
    .spa-home #agendar-cita .form-card { padding: 8px; }
    .spa-home .navbar-brand > .d-flex { max-width: 200px; }
}
@media (prefers-reduced-motion: reduce) {
    .spa-home *, .spa-home *::before, .spa-home *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* Equal card bodies keep dates and actions on the same baseline. */
.spa-home #promociones .promo-card { display: flex; flex-direction: column; }
.spa-home #promociones .promo-image-container { flex-shrink: 0; }
.spa-home #promociones .promo-card-content { flex: 1; justify-content: flex-start; }
.spa-home #promociones .promo-card-content .card-title { min-height: 2.5em; line-height: 1.25; width: 100%; }
.spa-home #promociones .promo-card-content > p { min-height: 3em; }
.spa-home #promociones .promo-card-footer { gap: 16px; padding-top: 20px !important; margin-top: auto !important; }
.spa-home #promociones .promo-action { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-height: 44px; min-width: 118px; padding: 10px 16px !important; line-height: 1.25; }
.spa-home #servicios .service-card-footer { padding: 24px !important; gap: 16px; flex-wrap: wrap; }
.spa-home #servicios .service-card-footer a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; }
@media (max-width: 575px) {
    .spa-home #promociones .promo-card-content .card-title, .spa-home #promociones .promo-card-content > p { min-height: 0; }
    .spa-home #promociones .promo-code-box span { overflow-wrap: anywhere; }
    .spa-home #promociones .promo-card-footer { flex-wrap: wrap; row-gap: 16px; }
    .spa-home #servicios .service-card-footer { padding: 20px !important; gap: 12px; }
    .spa-home #servicios .service-card-footer .btn-reservar { padding-inline: 16px !important; }
}
