/* La opción clara conserva la paleta original del sitio. */
.tema-boton {
    display: inline-grid;
    place-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #e5d7d5;
    border-radius: 50%;
    background: #faf5f2;
    color: #722f37;
    cursor: pointer;
    box-shadow: 0 2px 8px rgb(74 38 44 / 5%);
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.tema-boton:hover { background: #f0e3df; border-color: #b99191; }
.tema-boton:active { transform: scale(.94); }
.tema-boton:focus-visible { outline: 3px solid #b38b60; outline-offset: 4px; }
.tema-boton svg { display: block; width: 21px; height: 21px; }
.tema-boton .tema-sol { display: none; }
.main-header .header-tools { gap: 12px; flex-shrink: 0; }
.main-header .tema-herramientas { margin-left: auto; }
.main-header .navbar { gap: 12px; }
.tema-boton-flotante { position: fixed; right: 20px; top: 16px; z-index: 9500; }
html[data-theme="light"] { color-scheme: light; }

html[data-theme="dark"] {
    color-scheme: dark;
    --color-malbec: #9c4356;
    --color-malbec-dark: #823649;
    --texto-oscuro: #f4eeed;
    --texto-gris: #c7b9b8;
    --blanco-puro: #201e22;
    --fondo-crema: #282329;
    --shadow-suave: 0 2px 16px rgb(0 0 0 / 22%);
    --tema-fondo: #141416;
    --tema-seccion: #1a181c;
    --tema-tarjeta: #232025;
    --tema-elevado: #30292f;
    --tema-borde: #493b43;
    --tema-texto: #f4eeed;
    --tema-secundario: #c7b9b8;
    --tema-acento: #efb3bf;
    background: var(--tema-fondo);
}
html[data-theme="dark"] body {
    background: var(--tema-fondo) !important;
    color: var(--tema-texto) !important;
}
html[data-theme="dark"] .tema-boton { background: var(--tema-elevado); border-color: #66505c; color: #f5d18a; }
html[data-theme="dark"] .tema-boton:hover { background: #40303a; border-color: #bd8796; }
html[data-theme="dark"] .tema-boton .tema-sol { display: block; }
html[data-theme="dark"] .tema-boton .tema-luna { display: none; }
html[data-theme="dark"] .main-header { background: rgb(30 27 32 / 98%); box-shadow: 0 2px 18px rgb(0 0 0 / 25%); }
html[data-theme="dark"] .main-header .logo { color: var(--tema-texto); }
html[data-theme="dark"] .logo span { color: var(--tema-acento); }
html[data-theme="dark"] .main-header .logo-img { max-height: 60px; background: #fdf8f5; padding: 4px; border-radius: 12px; }
html[data-theme="dark"] .nav-links li a { color: var(--tema-texto); }
html[data-theme="dark"] .nav-links li a:hover,
html[data-theme="dark"] .nav-links li a[aria-current="page"] { color: var(--tema-acento); }
html[data-theme="dark"] :is(.hero-top, .hero-tiendas, .tarjetas-comunes, .nosotros-paisajes, .construction-page, .contacto-pagina, .seccion-contacto) {
    background: var(--tema-seccion) !important;
}
html[data-theme="dark"] :is(.presentacion-comun, .nosotros-contenido, .nosotros-invitacion) { background: var(--tema-fondo) !important; }
html[data-theme="dark"] :is(.card-tienda, .card-depto, .depto-footer, .modal-content, .contenedor-form,
    .contacto-tarjeta, .legal-documento, .notice-card, .filtros-wrapper, .search-box, .widget-clima,
    .transporte-opciones article, .transporte-proximamente, .nosotros-galeria figure, .nosotros-foto-principal, .apoyo-dialog) {
    background: var(--tema-tarjeta) !important;
    border-color: var(--tema-borde) !important;
    color: var(--tema-texto);
    box-shadow: 0 10px 30px rgb(0 0 0 / 16%);
}
html[data-theme="dark"] :is(h1, h2, h3, h4, .hero-top h1, .hero-tiendas h1,
    .contacto-pagina .contacto-titulo, .legal-documento .legal-encabezado h1,
    .construction-page .notice-card h1, .nosotros-etiqueta, .eyebrow, .contacto-campo label,
    .nosotros-foto-principal strong, .transporte-opciones i, .transporte-proximamente > span) {
    color: var(--tema-acento) !important;
}
html[data-theme="dark"] :is(.hero-content p, .hero-tiendas p, .presentacion-comun p,
    .nosotros-contenido p, .contacto-bajada, .contacto-consentimiento,
    .contacto-ayuda, .notice-card p, .coming-note, .tienda-info p, .ubicacion,
    .transporte-opciones p, .transporte-proximamente p, .legal-documento p,
    .legal-documento li, .gracias-container p, .error-container p) {
    color: var(--tema-secundario) !important;
}
html[data-theme="dark"] :is(.legal-documento strong, .contacto-consentimiento label) { color: var(--tema-texto); }
html[data-theme="dark"] :is(.tagline, .contacto-etiqueta, .notice-mark, .cita-premium, .legal-aviso, .cta-emprendimientos) {
    background: var(--tema-elevado) !important;
    border-color: var(--tema-borde) !important;
    color: var(--tema-acento) !important;
}
html[data-theme="dark"] .nosotros-relato blockquote { border-color: #bd8e63; color: var(--tema-acento); }
html[data-theme="dark"] :is(.nosotros-carrusel-controles span, .filtro-item label,
    .dev-credits, .dev-credits a, .apoyo-nota) { color: var(--tema-secundario); }
html[data-theme="dark"] :is(.legal-documento a, .contacto-consentimiento a,
    .nosotros-contenido figcaption a, .emergencias-fuente, .apoyo-dialog a:not(.apoyo-medios a)) { color: var(--tema-acento); }
html[data-theme="dark"] :is(.tienda-footer, .depto-footer, .filtro-item,
    .boletin-header, .legal-encabezado, .legal-seccion, .legal-pie, .emergencias-extra) { border-color: var(--tema-borde) !important; }

/* Controles y formularios: fondos oscuros con sus estados de foco visibles. */
html[data-theme="dark"] :is(.btn-contacto-master, .btn-explorar-depto, .btn-secondary,
    .contacto-volver, .inicio-flecha, .nosotros-flecha, .btn-limpiar, .btn-limpiar-filtros, .btn-reset-filtros) {
    background: var(--tema-elevado) !important;
    border-color: #6d515f !important;
    color: var(--tema-texto) !important;
}
html[data-theme="dark"] :is(.btn-contacto-master, .btn-explorar-depto, .btn-secondary,
    .contacto-volver, .inicio-flecha, .nosotros-flecha):hover:not(:disabled) {
    background: var(--color-malbec) !important;
    color: #fff !important;
}
html[data-theme="dark"] :is(.btn-primary, .btn-vip, .home-button, .contacto-enviar, .btn-regreso,
    .cta-emprendimientos-boton, .btn-maps-destino, .categoria-tag) {
    background: var(--color-malbec) !important;
    color: #fff !important;
}
html[data-theme="dark"] .tienda-img-container { background-color: #30292f; }
html[data-theme="dark"] .tienda-perfil { border-color: var(--tema-tarjeta); background: #fff; }
html[data-theme="dark"] .estado-fotos { background: var(--tema-elevado); color: var(--tema-secundario) !important; }
html[data-theme="dark"] :is(.contacto-campo input, .contacto-campo select, .contacto-campo textarea, .filtro-item select, .search-box input) {
    background: #1b181c !important;
    color: var(--tema-texto) !important;
    border-color: #715763;
    color-scheme: dark;
}
html[data-theme="dark"] .filtro-item select { background: transparent !important; }
html[data-theme="dark"] select option { background: #232025; color: var(--tema-texto); }
html[data-theme="dark"] :is(input, textarea)::placeholder { color: #b2a2a8 !important; opacity: 1; }
html[data-theme="dark"] :is(.contacto-campo input, .contacto-campo select, .contacto-campo textarea):focus {
    border-color: #e6a4b4;
    box-shadow: 0 0 0 3px rgb(230 164 180 / 15%);
}
html[data-theme="dark"] .tiendas-page #contenedor-tiendas .tienda-descripcion {
    scrollbar-color: #a27486 #30292f;
}
html[data-theme="dark"] .tiendas-page #contenedor-tiendas .tienda-descripcion::-webkit-scrollbar-track { background: #30292f; }

/* Panel lateral y sus estilos generados desde n:point. */
html[data-theme="dark"] .boletin-sidebar { background: var(--tema-tarjeta); color: var(--tema-texto); }
html[data-theme="dark"] .boletin-content :is(p, small) { color: var(--tema-secundario) !important; }
html[data-theme="dark"] .boletin-content h4 { border-color: var(--tema-borde) !important; }
html[data-theme="dark"] .boletin-content .evento p:first-of-type { color: var(--tema-texto) !important; }
html[data-theme="dark"] .boletin-content .widget-clima > div { border-color: var(--tema-borde) !important; }
html[data-theme="dark"] .btn-cerrar { color: var(--tema-secundario); }
html[data-theme="dark"] .emergencias-panel { background: var(--tema-seccion); border-color: var(--tema-borde); }
html[data-theme="dark"] .emergencia-contacto { background: var(--tema-elevado); border-color: #66505c; color: var(--tema-texto); }
html[data-theme="dark"] .emergencia-contacto small { color: var(--tema-secundario); }
html[data-theme="dark"] .emergencia-principal { background: #843747; border-color: #b76f80; color: #fff; }
html[data-theme="dark"] .emergencia-principal small { color: #f8e5e8 !important; }
html[data-theme="dark"] .emergencias-extra summary { color: var(--tema-acento); }
html[data-theme="dark"] .emergencias-mas { background: #49333e; color: #efb3bf; }
html[data-theme="dark"] .modal-overlay { background: rgb(0 0 0 / 82%); }
html[data-theme="dark"] .modal-content p { color: var(--tema-secundario) !important; }
html[data-theme="dark"] .modal-content a { color: var(--tema-acento); }
html[data-theme="dark"] .modal-content .btn-primary { color: #fff; }
html[data-theme="dark"] .main-footer { background: #100f12; border-color: #9c4356; color: #e1d5d7; }
html[data-theme="dark"] .main-footer .logo { color: #f4eeed; }
html[data-theme="dark"] .footer-links a { color: #d6c8cc; }
html[data-theme="dark"] .footer-links a:hover { color: var(--tema-acento); }
html[data-theme="dark"] .footer-bottom { border-color: #9c4356; }
html[data-theme="dark"] .footer-bottom a { color: #d6c8cc; }
html[data-theme="dark"] .apoyo-dialog::backdrop { background: rgb(0 0 0 / 75%); }
html[data-theme="dark"] .apoyo-dialog .apoyo-cerrar { color: var(--tema-acento); }

@media (min-width: 769px) and (max-width: 1024px) {
    .main-header .logo { font-size: 22px; }
    .main-header .logo-img { max-width: 46px; max-height: 60px; }
    .main-header .nav-links { gap: 0; }
    .main-header .nav-links li a { font-size: 11px; padding: 10px 6px; }
    .main-header .nav-links .btn-vip { padding: 8px 10px !important; }
    .main-header .header-tools { margin-left: 10px; gap: 8px; }
}
@media (max-width: 768px) {
    .main-header .logo { font-size: clamp(1.25rem, 5.4vw, 1.75rem); min-width: 0; }
    .main-header .logo-img { max-width: 56px; max-height: 60px; }
    .main-header .header-tools { margin-left: auto; gap: 8px; }
    html[data-theme="dark"] .nav-links li a {
        background: #30292f !important; color: #f4eeed !important; border-color: #6d515f !important;
    }
    html[data-theme="dark"] .nav-links li a[aria-current="page"] { color: #efb3bf !important; }
    html[data-theme="dark"] .nav-links li a.btn-vip { background: #9c4356 !important; color: #fff !important; }
    html[data-theme="dark"] .menu-toggle { background: #282329 !important; border-color: #b77d8c !important; }
}
@media (prefers-reduced-motion: reduce) { .tema-boton { transition: none; } }
