/* THESIS: Seasonal celebrations expressed through quiet, tactile spa rituals.
   OWN-WORLD: Moonlit plum and copper; daylight limestone and cempasuchil.
   STORY: Discover real treatments and book a moment of personal care.
   FIRST VIEWPORT: Editorial title and booking action beside an original ritual photograph.
   FORM: Two seasonal worlds over the existing public Blade layout and authentication forms.
   FINISH: Review desktop and mobile, document the designs and preserve image provenance. */

body[data-public-design="halloween"] {
    --primary-color: #95502b !important;
    --primary-hover: #7c4022 !important;
    --accent-color: #e7b680 !important;
    --text-dark: #f3e9dd !important;
    --text-muted: #cbbdce !important;
    --light-bg: #1c1722 !important;
    --season-bg: #17131d;
    --season-surface: #251e2c;
    --season-soft: #302637;
    --season-ink: #f3e9dd;
    --season-highlight: #ebbd86;
    --season-rule: #58445e;
    --season-button: #e7b680;
    --season-button-ink: #241b27;
    --season-footer: #100d15;
    --season-image: url('../images/seasons/halloween-ritual.png');
    color-scheme: dark;
}
body[data-public-design="dia-de-muertos"] {
    --primary-color: #97432b !important;
    --primary-hover: #76321f !important;
    --accent-color: #efd0ac !important;
    --text-dark: #402e28 !important;
    --text-muted: #765a4b !important;
    --light-bg: #f6eddf !important;
    --season-bg: #fffbf4;
    --season-surface: #fffaf0;
    --season-soft: #f1e3ce;
    --season-ink: #402e28;
    --season-highlight: #97432b;
    --season-rule: #ceb79b;
    --season-button: #97432b;
    --season-button-ink: #fffaf0;
    --season-footer: #392721;
    --season-image: url('../images/seasons/cempasuchil-ritual.png');
    color-scheme: light;
}
.spa-seasonal { --spa-rule: var(--season-rule); --gradient-primary: linear-gradient(135deg, var(--primary-color), var(--primary-hover)); --gradient-light: var(--season-soft); background: var(--season-bg) !important; color: var(--season-ink); }
html[data-public-design]:not([data-public-design="classic"]) { height: auto; overflow-x: clip; overflow-y: visible; }
.spa-seasonal.spa-auth { height: auto; overflow: visible; }
.spa-seasonal ::selection { background: var(--season-button); color: var(--season-button-ink); }
.spa-seasonal :is(input, textarea) { caret-color: var(--season-highlight); }
.spa-seasonal :is(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--season-highlight); outline-offset: 4px; box-shadow: none; }
.spa-seasonal :is(.text-dark, .text-body, .card-title, .form-label) { color: var(--season-ink) !important; }
.spa-seasonal :is(.text-muted, .text-secondary, .card-text, .form-text) { color: var(--text-muted) !important; }
.spa-seasonal :is(.text-primary, .text-danger, .text-warning) { color: var(--season-highlight) !important; }
.spa-seasonal :is(.product-title, .section-title, .section-title-large, .related-product-title, .spec-value, .page-title, .benefit-row span) { color: var(--season-ink) !important; }
.spa-seasonal :is(.content-text p, .spec-label, .price-amount .currency) { color: var(--text-muted) !important; }
.spa-seasonal :is(.product-brand, .price-amount, .section-title i, .spec-icon, .text-primary-custom) { color: var(--season-highlight) !important; }
.spa-seasonal :is(.bg-light-gradient, .spec-item, .related-product-card) { background: var(--season-surface) !important; border-color: var(--season-rule); }
.spa-seasonal :is(.bg-white, .card, .service-card, .product-card, .promo-card, .result-card, .testimonial-card, .form-card, .modal-content, .dropdown-menu, .list-group-item) { background-color: var(--season-surface) !important; color: var(--season-ink); }
.spa-seasonal :is(.bg-light, .card-footer, .input-group-text) { background-color: var(--season-soft) !important; color: var(--season-ink); }
.spa-seasonal :is(.border, .border-bottom, .card, .form-card, .modal-content) { border-color: var(--season-rule) !important; }
.spa-seasonal :is(.form-control, .form-select) { background-color: var(--season-bg); color: var(--season-ink); border-color: var(--season-rule); min-height: 46px; }
.spa-seasonal :is(.form-control, .form-select)::placeholder { color: var(--text-muted); opacity: 1; }
.spa-seasonal :is(.form-control, .form-select):focus { background-color: var(--season-bg); color: var(--season-ink); border-color: var(--season-highlight); }
.spa-seasonal .navbar { background: var(--season-surface) !important; border-bottom: 1px solid var(--season-rule); padding-block: 14px !important; box-shadow: none; }
.spa-seasonal .navbar .nav-link { color: var(--season-ink) !important; font-size: .83rem; padding-inline: 10px !important; }
.spa-seasonal .navbar .nav-link:is(.active, :hover) { color: var(--season-highlight) !important; text-decoration: underline; text-underline-offset: 7px; }
.spa-seasonal .navbar .btn { background: transparent !important; color: var(--season-ink) !important; border: 1px solid var(--season-rule); border-radius: 4px !important; font-size: .8rem; }
.spa-seasonal .navbar .btn:last-child { background: var(--season-button) !important; border-color: var(--season-button) !important; color: var(--season-button-ink) !important; }
.spa-seasonal .logo-imagen { border-radius: 4px; box-shadow: none; }
.spa-seasonal .dropdown-item { color: var(--season-ink); }
.spa-seasonal .dropdown-item:is(:hover, :focus) { background: var(--season-soft); }
body[data-public-design="halloween"] .navbar-toggler { border-color: var(--season-rule); }
.seasonal-ribbon { height: 44px; background: var(--season-soft) url('../images/seasons/halloween-garland.svg') repeat-x center / auto 44px; border-bottom: 1px solid var(--season-rule); pointer-events: none; }
body[data-public-design="dia-de-muertos"] .seasonal-ribbon { height: 38px; background-image: url('../images/seasons/papel-picado.svg'); background-size: auto 34px; }
.seasonal-preview-notice { background: #fff2cd; color: #513c17; padding: 12px 24px; text-align: center; font-size: .85rem; }
.seasonal-preview-notice a { color: #513c17; margin-left: 12px; text-decoration: underline; }
.spa-seasonal .seasonal-hero { position: relative; background: var(--season-bg); border-bottom: 1px solid var(--season-rule); }
.spa-seasonal .seasonal-hero .spa-hero-grid { padding-block: 52px; gap: 56px; grid-template-columns: 1.05fr 1fr; }
.spa-seasonal .seasonal-hero h1 { font-size: clamp(2.8rem, 4.1vw, 4.4rem); line-height: 1.15; letter-spacing: -.03em; }
.spa-seasonal .seasonal-hero h1 em { color: var(--season-highlight); }
.spa-seasonal .spa-hero-description { max-width: 44ch; }
.spa-seasonal .seasonal-visual { position: relative; padding: 12px; border: 1px solid var(--season-rule); }
.spa-seasonal .seasonal-visual img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
body[data-public-design="halloween"] .seasonal-visual { border-radius: 160px 160px 4px 4px; }
body[data-public-design="halloween"] .seasonal-visual img { border-radius: 148px 148px 0 0; }
body[data-public-design="dia-de-muertos"] .seasonal-hero { background: var(--light-bg); }
body[data-public-design="dia-de-muertos"] .seasonal-visual { padding: 10px; border-radius: 4px; }
body[data-public-design="dia-de-muertos"] .seasonal-hero .spa-hero-copy { order: 2; }
body[data-public-design="dia-de-muertos"] .seasonal-hero .seasonal-visual { order: 1; }
.spa-seasonal :is(.spa-button, .btn-reservar, .btn-primary-custom, .btn-dark, .submit-btn) { background: var(--season-button) !important; color: var(--season-button-ink) !important; border-color: var(--season-button) !important; border-radius: 4px !important; min-height: 44px; }
.spa-seasonal :is(.spa-button, .btn-reservar, .btn-primary-custom, .btn-dark, .submit-btn):hover { background: var(--season-button) !important; color: var(--season-button-ink) !important; filter: brightness(.92); transform: none; box-shadow: none; }
.spa-seasonal .spa-text-link { color: var(--season-ink); }
.spa-seasonal :is(.btn-outline-dark, .btn-outline-primary, .btn-outline-danger) { color: var(--season-highlight); border-color: var(--season-highlight); border-radius: 4px; }
.spa-seasonal :is(.btn-outline-dark, .btn-outline-primary, .btn-outline-danger):hover { background: var(--season-button); color: var(--season-button-ink); }
.spa-seasonal :is(#servicios, #resultados, #testimonios, #productos, #beneficios) { background: var(--season-bg) !important; }
.spa-seasonal :is(#nosotros, #promociones, #agendar-cita) { background: var(--light-bg) !important; }
.spa-seasonal :is(.page-hero, #main-content > section.text-center.border-bottom) { background: var(--season-soft) !important; border-bottom: 1px solid var(--season-rule); padding-block: 48px !important; }
.spa-seasonal .page-hero :is(.text-white, .text-white-50) { color: var(--season-ink) !important; }
.spa-seasonal .page-hero h1 { font-weight: 400 !important; }
.spa-seasonal .page-hero :is(.hero-bg-pattern, .badge) { display: none; }
.spa-seasonal .nav-pills .nav-link.active { background: var(--primary-color); color: #fff !important; }
.spa-seasonal .page-link { background: var(--season-surface); color: var(--season-ink); border-color: var(--season-rule); }
.spa-seasonal .page-item.active .page-link { background: var(--primary-color); color: #fff; }
.spa-seasonal .footer { background: var(--season-footer) !important; color: #f4e7d7; border-top: 1px solid var(--season-rule); }
.spa-seasonal .footer > div { background: transparent !important; }
.spa-seasonal .footer :is(.text-muted, .text-dark, .text-white-50, a) { color: #e0c7b1 !important; }
.spa-seasonal .footer a { overflow-wrap: anywhere; }
.spa-seasonal .footer h5 { color: #f4e7d7; }
.spa-seasonal .table { --bs-table-bg: var(--season-surface); --bs-table-color: var(--season-ink); --bs-table-border-color: var(--season-rule); }
.spa-seasonal :is(.semana-navegacion, .horario-calendario, .info-card, .excepciones-container, .excepcion-card, .leyenda-horario, .flatpickr-calendar) { background: var(--season-surface) !important; color: var(--season-ink); border-color: var(--season-rule); box-shadow: none; }
.spa-seasonal :is(.dia-contenido, .dia-contenido.es-seleccionado, .dia-contenido.abierto:hover) { background: var(--season-surface) !important; color: var(--season-ink); border-color: var(--season-rule); }
.spa-seasonal .dia-contenido.es-pasado { opacity: 1; }
.spa-seasonal :is(.dia-contenido.es-hoy, .dia-contenido.es-seleccionado) { background: var(--season-soft) !important; }
.spa-seasonal :is(.hora-item, .separador, .descripcion-dia, .semana-titulo, .info-header h5, .info-header i, .excepcion-horario) { color: var(--season-highlight); }
.spa-seasonal :is(.texto-cerrado, .descripcion-cerrado, .excepcion-fecha, .leyenda-item span, .info-lista li span) { color: var(--text-muted); }
.spa-seasonal :is(.nav-btn, .badge-actual, .descripcion-dia, .badge-especial) { background: var(--season-soft); color: var(--season-highlight); border-color: var(--season-rule); }
.spa-seasonal .semana-info .nav-link-ajax { background: var(--season-button) !important; color: var(--season-button-ink) !important; }
.spa-seasonal .semana-info .btn-outline-primary { color: var(--season-highlight) !important; border-color: var(--season-highlight) !important; }
.spa-seasonal .mobile-day-header { background: var(--season-soft) !important; color: var(--season-highlight); }
.spa-seasonal .flatpickr-day { color: var(--season-ink); }
.spa-seasonal.spa-auth .guest-content-wrapper { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(360px, 1.15fr); align-items: center; gap: 56px; max-width: 1200px; margin-inline: auto; padding: 56px 32px; min-height: 650px; overflow: visible; }
.spa-seasonal.spa-auth .bg-decoration { display: none; }
.seasonal-auth-story { position: relative; min-width: 0; }
.seasonal-auth-story img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 140px 140px 4px 4px; }
.seasonal-auth-story > div { padding-top: 24px; }
.seasonal-auth-story h1 { font: 400 clamp(2rem, 3vw, 2.8rem)/1.2 'Playfair Display', serif; letter-spacing: -.025em; }
.seasonal-auth-story h1 em { display: block; color: var(--season-highlight); }
.seasonal-auth-story p { color: var(--text-muted); margin-top: 16px; }
.spa-seasonal.spa-auth :is(.auth-block, .auth-container, .auth-container-register) { width: 100%; min-width: 0; }
.spa-seasonal.spa-auth .auth-block { min-height: 0; padding: 0; transform: none; }
.spa-seasonal.spa-auth :is(.auth-container, .auth-container-register) { background: var(--season-surface); border: 1px solid var(--season-rule); border-radius: 12px; box-shadow: none; animation: none; max-width: 100%; }
.spa-seasonal.spa-auth :is(.auth-container, .auth-container-register) { transform: none; margin-top: 0; backdrop-filter: none; }
.spa-seasonal.spa-auth .auth-header { background: var(--season-soft) !important; color: var(--season-ink); font: 400 1.6rem/1.3 'Playfair Display', serif; padding: 28px; letter-spacing: 0; }
.spa-seasonal.spa-auth :is(.welcome-message p, .auth-link, .form-check-label, .step-label) { color: var(--text-muted); }
.spa-seasonal.spa-auth .auth-link { color: var(--season-highlight) !important; }
.spa-seasonal.spa-auth .auth-link:hover { color: var(--season-ink) !important; }
.spa-seasonal.spa-auth .welcome-message h4 { color: var(--season-ink); }
.spa-seasonal.spa-auth .form-container { padding: 28px; }
.spa-seasonal.spa-auth :is(.step-number, .step-line, .social-btn, .phone-prefix) { background: var(--season-soft); color: var(--season-ink); border-color: var(--season-rule); }
body[data-public-design="dia-de-muertos"] .seasonal-auth-story img { border-radius: 4px; }
@media (max-width: 1199px) {
    .spa-seasonal .navbar-expand-lg .navbar-collapse { flex-wrap: wrap; }
    .spa-seasonal .seasonal-hero .spa-hero-grid { gap: 32px; }
}
@media (max-width: 991px) {
    .spa-seasonal.spa-auth .guest-content-wrapper { grid-template-columns: 1fr; max-width: 800px; gap: 32px; padding: 32px 24px; }
    .seasonal-auth-story { display: grid; grid-template-columns: 120px 1fr; gap: 24px; align-items: center; }
    .seasonal-auth-story img { border-radius: 4px !important; }
    .seasonal-auth-story > div { padding: 0; }
    .seasonal-auth-story h1 { font-size: 1.8rem; }
    .seasonal-auth-story p { margin-bottom: 0; font-size: .85rem; }
}
@media (max-width: 767px) {
    .spa-seasonal .product-details .row.g-5 { --bs-gutter-x: 1.5rem; }
    .spa-seasonal .seasonal-hero .spa-hero-grid { grid-template-columns: 1fr; padding-block: 36px; gap: 32px; }
    .spa-seasonal .seasonal-hero h1 { font-size: clamp(2.35rem, 9vw, 3.5rem); }
    body[data-public-design="dia-de-muertos"] .seasonal-hero .spa-hero-copy { order: 1; }
    body[data-public-design="dia-de-muertos"] .seasonal-hero .seasonal-visual { order: 2; }
    .spa-seasonal.spa-auth .form-container { padding: 24px 20px; }
    .spa-seasonal.spa-auth .auth-header { padding: 24px 20px; }
    .seasonal-auth-story { grid-template-columns: 76px 1fr; gap: 16px; }
    .seasonal-auth-story h1 { font-size: 1.45rem; }
    .seasonal-auth-story p { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .spa-seasonal *, .spa-seasonal *::before, .spa-seasonal *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Decorative margins: the content sits above the ornaments, with no hit targets. */
.spa-seasonal { --season-ornament: url('../images/seasons/halloween-ornament.svg'); }
body[data-public-design="dia-de-muertos"] { --season-ornament: url('../images/seasons/cempasuchil-ornament.svg'); }
.spa-seasonal :is(#main-content > section, .seasonal-hero, .guest-content-wrapper, .page-hero) { position: relative; isolation: isolate; }
.spa-seasonal :is(#main-content > section, .seasonal-hero, .guest-content-wrapper, .page-hero)::before,
.spa-seasonal :is(#main-content > section, .seasonal-hero, .guest-content-wrapper, .page-hero)::after {
    content: ''; position: absolute; width: clamp(110px, 15vw, 230px); height: 310px;
    background: var(--season-ornament) no-repeat center / contain; opacity: .65;
    pointer-events: none; z-index: -1;
}
.spa-seasonal :is(#main-content > section, .seasonal-hero, .guest-content-wrapper, .page-hero)::before { top: 12px; right: 0; }
.spa-seasonal :is(#main-content > section, .seasonal-hero, .guest-content-wrapper, .page-hero)::after { bottom: 12px; left: 0; transform: rotate(180deg); }
.spa-seasonal #main-content > section:nth-of-type(even)::before { transform: scaleX(-1); left: 0; right: auto; }
.spa-seasonal #main-content > section:nth-of-type(even)::after { transform: rotate(180deg) scaleX(-1); left: auto; right: 0; }
.spa-seasonal.spa-home #promociones .promo-discount,
.spa-seasonal .promo-discount { background: var(--season-button) !important; color: var(--season-button-ink) !important; opacity: 1; min-width: 84px; text-align: center; padding: 10px 20px !important; }
.spa-seasonal #promociones .promo-action { color: var(--season-button-ink) !important; background: var(--season-button) !important; border-color: var(--season-button) !important; }
.spa-seasonal #promociones .promo-code-box :is(.h5, .text-danger) { color: var(--season-highlight) !important; }
.spa-seasonal :is(.badge.bg-warning, .badge.bg-danger, .badge.bg-primary, .badge.bg-success, .badge.bg-dark) { background: var(--season-button) !important; color: var(--season-button-ink) !important; }
.spa-seasonal .promo-card-footer, .spa-seasonal .service-card-footer { border-top-color: var(--season-rule) !important; }
.spa-seasonal #main-content > .seasonal-hero::after { width: min(8vw, 100px); }
.spa-seasonal.spa-auth :is(#nextBtn, #submitBtn) { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; background: var(--season-button) !important; color: var(--season-button-ink) !important; border-color: var(--season-button) !important; }
.spa-seasonal.spa-auth :is(#nextBtn, #submitBtn) i { color: inherit; }
.spa-seasonal.spa-auth .step.active :is(.step-number, .step-label),
.spa-seasonal.spa-auth .step.completed :is(.step-number, .step-label) { color: var(--season-highlight); }
.spa-seasonal.spa-auth .step.active .step-number { background: var(--season-button); color: var(--season-button-ink); border-color: var(--season-button); box-shadow: 0 0 0 3px var(--season-rule); }
.spa-seasonal.spa-auth .step.completed .step-number { background: var(--season-soft); border-color: var(--season-highlight); }
.spa-seasonal.spa-auth .step-line.completed { background: var(--season-highlight); }
.spa-seasonal .products-carousel-section :is(.product-info, .product-card-carousel) { background: var(--season-surface) !important; color: var(--season-ink); border-color: var(--season-rule); }
.spa-seasonal .products-carousel-section .product-name { color: var(--season-ink); }
.spa-seasonal .products-carousel-section .product-price { color: var(--season-highlight); }
.spa-seasonal .products-carousel-section :is(.btn-view-product, .carousel-control) { background: var(--season-surface); color: var(--season-highlight); border-color: var(--season-highlight); }
.spa-seasonal .products-carousel-section :is(.btn-view-product, .carousel-control):is(:hover, :focus-visible) { background: var(--season-button); color: var(--season-button-ink); outline-color: var(--season-highlight); }
.spa-seasonal .products-carousel-section :is(.btn-view-product, .carousel-control) i { color: inherit; }
.spa-seasonal.spa-auth :is(.form-label, #prevBtn) .fas { color: inherit; }
@media (max-width: 767px) {
    .spa-seasonal :is(#main-content > section, .seasonal-hero, .guest-content-wrapper, .page-hero)::before,
    .spa-seasonal :is(#main-content > section, .seasonal-hero, .guest-content-wrapper, .page-hero)::after { width: 108px; height: 165px; opacity: .38; }
    .spa-seasonal .seasonal-hero .spa-hero-copy { padding-top: 16px; }
    .spa-seasonal .seasonal-hero .spa-hero-grid { padding-inline: 24px; }
    .spa-seasonal.spa-auth .guest-content-wrapper { padding-inline: 16px; }
}
