/*
 * Theme Name:  JM Propiedades
 * Theme URI:   
 * Description: Child theme de Hello Elementor para JM Propiedades. Diseñado para AM Real Estate WP. Incluye modo oscuro, paleta de marca y estilos para todos los shortcodes del plugin.
 * Author:      JM Propiedades
 * Template:    hello-elementor
 * Version:     1.1.6
 * Text Domain: jm-propiedades
 * Requires at least: 5.8
 * Requires PHP: 7.4
 */

/* ============================================================
   VARIABLES CSS — TEMA CLARO (default)
   ============================================================ */
:root {
    /* Marca JM */
    --jm-rojo:          #CC0000;
    --jm-rojo-light:    #E53935;
    --jm-amarillo:      #FFD700;
    --jm-negro:         #0A0A0A;

    /* Tema claro */
    --bg-primary:       #FFFFFF;
    --bg-secondary:     #F5F5F5;
    --bg-tertiary:      #EBEBEB;
    --bg-card:          #FFFFFF;
    --bg-overlay:       rgba(0,0,0,0.04);

    --text-primary:     #1A1A1A;
    --text-secondary:   #555555;
    --text-muted:       #888888;
    --text-inverse:     #FFFFFF;

    --border:           #e2e8f0;
    --border-strong:    #d1d9e0;
    --shadow:           0 2px 12px rgba(0,0,0,0.08);
    --shadow-hover:     0 6px 24px rgba(0,0,0,0.14);
    --shadow-card:      0 1px 4px rgba(0,0,0,0.06);

    /* Acento principal = rojo JM */
    --accent:           var(--jm-rojo);
    --accent-light:     #FFEBEB;

    /* Acento secundario = amarillo JM */
    --accent2:          var(--jm-amarillo);
    --accent2-light:    #FFFBE6;

    /* Tipografía */
    --font-display:     'Barlow Condensed', sans-serif;
    --font-body:        'DM Sans', sans-serif;
    --font-mono:        'JetBrains Mono', monospace;

    /* Espaciado */
    --radius:           5px;
    --radius-lg:        8px;
    --gap:              20px;
    --section-gap:      60px;

    /* Transición */
    --transition:       0.22s ease;

    /* Panel nav del plugin */
    --panel-bg:         #0A0A0A;
    --panel-text:       #FFFFFF;
    --panel-border:     rgba(255,255,255,0.1);
    --panel-hover:      rgba(255,255,255,0.08);
    --panel-active:     var(--jm-rojo);
}

/* ============================================================
   VARIABLES CSS — TEMA OSCURO
   ============================================================ */

/* ============================================================
   GOOGLE FONTS — se cargan desde functions.php
   ============================================================ */

/* ============================================================
   BASE
   ============================================================ */
html {
    scroll-behavior: smooth;
    transition: background-color var(--transition), color var(--transition);
}

body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.65;
    transition: background-color var(--transition), color var(--transition);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
    letter-spacing: -0.01em;
}

a {
    color: var(--accent);
    text-decoration: none;
    transition: color var(--transition);
}
a:hover { color: var(--accent-dark); }

img { max-width: 100%; height: auto; }

/* ============================================================
   TOGGLE MODO OSCURO
   ============================================================ */


/* ============================================================
   HEADER / NAVBAR (Elementor Header + override)
   ============================================================ */
.e-con-inner,
.elementor-container {
    transition: background-color var(--transition);
}

/* Header sticky */
.jm-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--bg-primary);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow-card);
    transition: background-color var(--transition), border-color var(--transition);
}

/* Logo */
.jm-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}
.jm-logo img { height: 48px; width: auto; }
.jm-logo-text {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    line-height: 1;
}
.jm-logo-text span { color: var(--accent); }

/* Menú de navegación */
.jm-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.jm-nav a {
    display: block;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-secondary);
    border-radius: var(--radius);
    transition: all var(--transition);
}
.jm-nav a:hover,
.jm-nav a.current {
    color: var(--accent);
    background: var(--accent-light);
}

/* ============================================================
   PANEL NAV DEL PLUGIN (barra superior gi_inmobiliaria)
   ============================================================ */
#amrewp-panel-nav {
    background: var(--panel-bg) !important;
    border-bottom: 1px solid var(--panel-border) !important;
    font-family: var(--font-body) !important;
}
#amrewp-panel-nav .amrewp-panel-logo {
    font-family: var(--font-display) !important;
    font-weight: 700;
    letter-spacing: -0.01em;
}
#amrewp-panel-nav .amrewp-panel-link {
    font-size: 13px !important;
    transition: color var(--transition) !important;
}
#amrewp-panel-nav .amrewp-panel-link:hover,
#amrewp-panel-nav .amrewp-panel-link.active {
    color: var(--jm-rojo) !important;
}
#amrewp-panel-nav .amrewp-panel-badge {
    background: var(--jm-rojo) !important;
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.jm-hero {
    background: var(--bg-secondary);
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}
.jm-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--jm-rojo), var(--jm-amarillo));
}

.jm-hero-title {
    font-family: var(--font-display);
    font-size: clamp(36px, 5vw, 64px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--text-primary);
}
.jm-hero-title .jm-accent { color: var(--accent); }
.jm-hero-subtitle {
    font-size: 17px;
    color: var(--text-secondary);
    max-width: 520px;
    line-height: 1.6;
}

/* Buscador hero */
.jm-search-box {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 20px 24px;
    box-shadow: var(--shadow);
    transition: background-color var(--transition), border-color var(--transition);
}


.gi-card-precio-moneda {
    font-size: 14px;
    font-weight: 600;
    opacity: 0.75;
    margin-right: 2px;
}

/* Features row */
.gi-card-features {
    display: flex;
    gap: 14px;
    margin: 10px 0;
    padding: 10px 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}
.gi-card-feature {
    font-size: 12px;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: 4px;
}
.gi-card-feature strong {
    color: var(--text-primary);
    font-weight: 600;
}

/* Footer card */
.gi-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 14px;
    gap: 10px;
}

/* ============================================================
   BOTONES
   ============================================================ */
.jm-btn,
.amrewp-btn,
.gi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    padding: 10px 20px;
    border-radius: var(--radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all var(--transition);
    text-decoration: none;
    line-height: 1;
    white-space: nowrap;
}

/* Primario — rojo */
.jm-btn-primary,
.amrewp-btn-primary,
.gi-btn-primary {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.jm-btn-primary:hover,
.amrewp-btn-primary:hover,
.gi-btn-primary:hover {
    background: var(--accent-dark);
    border-color: var(--accent-dark);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(204,0,0,0.3);
}

/* Secundario — outline */
.jm-btn-outline,
.amrewp-btn-secondary,
.gi-btn-outline {
    background: transparent;
    border-color: var(--border);
    color: var(--text-primary);
}
.jm-btn-outline:hover,
.amrewp-btn-secondary:hover,
.gi-btn-outline:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-light);
}

/* WhatsApp */
.gi-btn-whatsapp,
.amrewp-btn-whatsapp {
    background: #25D366;
    border-color: #25D366;
    color: #fff;
}
.gi-btn-whatsapp:hover,
.amrewp-btn-whatsapp:hover {
    background: #1ebe5d;
    border-color: #1ebe5d;
    color: #fff;
    box-shadow: 0 4px 14px rgba(37,211,102,0.35);
}

/* Amarillo — destacado */
.jm-btn-gold {
    background: var(--jm-amarillo);
    border-color: var(--jm-amarillo);
    color: var(--jm-negro);
    font-weight: 700;
}
.jm-btn-gold:hover {
    background: var(--jm-amarillo-dark);
    border-color: var(--jm-amarillo-dark);
    color: var(--jm-negro);
    box-shadow: 0 4px 14px rgba(255,215,0,0.35);
}

/* ============================================================
   FILTROS DE LISTADO
   ============================================================ */
.amrewp-filtros,
.gi-filtros {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 20px 24px;
    margin-bottom: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: flex-end;
    transition: background-color var(--transition), border-color var(--transition);
    box-shadow: var(--shadow-card);
}

.gi-filtro-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1;
    min-width: 160px;
}
.gi-filtro-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.gi-filtro-group select,
.gi-filtro-group input {
    background: var(--bg-primary);
    border: 1.5px solid var(--border);
    border-radius: var(--radius);
    padding: 9px 12px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--text-primary);
    transition: border-color var(--transition), background-color var(--transition);
    -webkit-appearance: none;
    appearance: none;
}
.gi-filtro-group select:focus,
.gi-filtro-group input:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-light);
}

/* ============================================================
   GRILLA DE PROPIEDADES
   ============================================================ */
.amrewp-grid,
.gi-grid-propiedades {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--gap);
}
@media (max-width: 640px) {
    .amrewp-grid,
    .gi-grid-propiedades { grid-template-columns: 1fr; }
}

/* ============================================================
   FICHA DE PROPIEDAD INDIVIDUAL
   ============================================================ */
.amrewp-single-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 28px;
    align-items: stretch;
}
@media (max-width: 840px) {
    .amrewp-single-layout { grid-template-columns: 1fr; }
    .amrewp-single-side-sticky { position: static !important; }
}

.amrewp-single-titulo {
    font-family: var(--font-display);
    font-size: clamp(26px, 4vw, 40px);
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    margin-bottom: 8px;
}
.amrewp-single-ubicacion {
    font-size: 15px;
    color: var(--text-secondary);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Sidebar derecho */
.amrewp-single-side-sticky {
    position: sticky;
    top: 80px;
}
.amrewp-side-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 24px;
    box-shadow: var(--shadow);
    transition: background-color var(--transition), border-color var(--transition);
}
.amrewp-side-precio {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 800;
    color: var(--accent);
    letter-spacing: -0.03em;
    line-height: 1;
    margin-bottom: 6px;
}
.amrewp-side-precio-moneda {
    font-size: 18px;
    opacity: 0.7;
    margin-right: 3px;
}

/* Galería */
.amrewp-galeria-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-bottom: 20px;
}
.amrewp-galeria-grid .amrewp-galeria-item {
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: var(--radius);
    cursor: pointer;
}
.amrewp-galeria-grid .amrewp-galeria-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.amrewp-galeria-grid .amrewp-galeria-item:hover img {
    transform: scale(1.06);
}
.amrewp-galeria-main {
    aspect-ratio: 16/9;
    overflow: hidden;
    border-radius: var(--radius-lg);
    margin-bottom: 8px;
}
.amrewp-galeria-main img {
    width: 100%; height: 100%;
    object-fit: cover;
}

/* Características */
.amrewp-caracteristicas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
    margin: 20px 0;
}
.amrewp-caracteristica-item {
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 14px;
    transition: background-color var(--transition), border-color var(--transition);
}
.amrewp-car-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted);
    margin-bottom: 3px;
    font-weight: 700;
}
.amrewp-car-value {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
    font-family: var(--font-display);
}

/* ============================================================
   FORMULARIO DE CONSULTA
   ============================================================ */
.amrewp-form-consulta,
.gi-form-consulta {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.amrewp-form-consulta input,
.amrewp-form-consulta textarea,
.gi-form-consulta input,
.gi-form-consulta textarea {
    background: var(--bg-primary);
    border: 1.5px solid var(--border);
    border-radius: var(--radius);
    padding: 11px 14px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--text-primary);
    width: 100%;
    box-sizing: border-box;
    transition: border-color var(--transition), background-color var(--transition);
}
.amrewp-form-consulta input:focus,
.amrewp-form-consulta textarea:focus,
.gi-form-consulta input:focus,
.gi-form-consulta textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-light);
}
.amrewp-form-consulta textarea,
.gi-form-consulta textarea {
    min-height: 90px;
    resize: vertical;
}

/* ============================================================
   PANEL MIS PROPIEDADES / CONSULTAS (frontend)
   ============================================================ */
.amrewp-panel-header,
.gi-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
    gap: 12px;
}
.amrewp-panel-header h2,
.gi-panel-header h2 {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 800;
    color: var(--text-primary);
    margin: 0;
}

/* Tabla frontend */


/* Estados en tabla */
.amrewp-estado,
.gi-estado {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.amrewp-estado-publicado { background: #E8F5E9; color: #2E7D32; }
.amrewp-estado-pendiente { background: #FFF8E1; color: #F57F17; }
.amrewp-estado-borrador  { background: var(--bg-tertiary); color: var(--text-muted); }

/* ============================================================
   MENSAJES / NOTICES
   ============================================================ */
.jm-notice,
.amrewp-notice,
.gi-mensaje {
    padding: 13px 16px;
    border-radius: var(--radius);
    font-size: 14px;
    border-left: 4px solid;
    line-height: 1.5;
}
.jm-notice-success,
.amrewp-notice-success { background: #E8F5E9; border-color: #2E7D32; color: #1B5E20; }
.jm-notice-error,
.amrewp-notice-error   { background: #FFEBEE; border-color: var(--jm-rojo); color: #B71C1C; }
.jm-notice-info,
.amrewp-notice-info    { background: #E3F2FD; border-color: #1565C0; color: #0D47A1; }
.jm-notice-warning     { background: var(--accent2-light); border-color: var(--jm-amarillo); color: #7B5B00; }

/* ============================================================
   PAGINACIÓN
   ============================================================ */
.amrewp-paginacion,
.gi-paginacion {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 40px;
    flex-wrap: wrap;
}
.amrewp-paginacion a,
.amrewp-paginacion span,
.gi-paginacion a,
.gi-paginacion span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--radius);
    font-size: 14px;
    font-weight: 600;
    border: 1.5px solid var(--border);
    color: var(--text-secondary);
    background: var(--bg-card);
    transition: all var(--transition);
}
.amrewp-paginacion a:hover,
.gi-paginacion a:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-light);
}
.amrewp-paginacion .current,
.gi-paginacion .current {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

/* ============================================================
   SECCIÓN "PROPIEDADES DESTACADAS"
   ============================================================ */
.jm-section {
    padding: var(--section-gap) 0;
}
.jm-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 32px;
    flex-wrap: wrap;
    gap: 12px;
}
.jm-section-title {
    font-family: var(--font-display);
    font-size: clamp(24px, 3.5vw, 36px);
    font-weight: 800;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    margin: 0;
}
.jm-section-title .jm-accent { color: var(--accent); }
.jm-section-link {
    font-size: 14px;
    font-weight: 600;
    color: var(--accent);
    display: flex;
    align-items: center;
    gap: 4px;
}
.jm-section-link:hover { color: var(--accent-dark); }

/* Divisor con color de marca */
.jm-divider {
    height: 3px;
    background: linear-gradient(90deg, var(--jm-rojo) 0%, var(--jm-amarillo) 100%);
    border: none;
    margin: 0 0 32px;
    width: 60px;
    border-radius: 2px;
}

/* ============================================================
   FOOTER
   ============================================================ */
.jm-footer {
    background: var(--jm-negro);
    color: rgba(255,255,255,0.7);
    padding: 48px 0 24px;
    margin-top: var(--section-gap);
}
.jm-footer-title {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 16px;
}
.jm-footer a {
    color: rgba(255,255,255,0.6);
    font-size: 14px;
    transition: color var(--transition);
}
.jm-footer a:hover { color: var(--jm-rojo); }
.jm-footer-bottom {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.08);
    font-size: 13px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.jm-footer-accent { color: var(--jm-rojo); font-weight: 700; }

/* ============================================================
   SLIDER (template slider.php del plugin)
   ============================================================ */
.amrewp-slider {
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* ============================================================
   MAPA (shortcode gi_mapa)
   ============================================================ */
.amrewp-mapa-wrap {
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid var(--border);
    box-shadow: var(--shadow-card);
}
.leaflet-popup-content-wrapper {
    border-radius: var(--radius) !important;
    font-family: var(--font-body) !important;
    box-shadow: var(--shadow) !important;
}

/* ============================================================
   LOGIN FRONTEND
   ============================================================ */
.amrewp-login-wrap,
.gi-login-wrap {
    max-width: 520px;
    margin: 40px auto;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 36px 32px;
    box-shadow: var(--shadow);
    transition: background-color var(--transition), border-color var(--transition);
}

/* Campos del formulario de login — ancho completo */
.amrewp-login-wrap .amrewp-form-campo input,
.gi-login-wrap .amrewp-form-campo input {
    width: 100%;
    box-sizing: border-box;
}

/* Ojo contraseña — override Elementor flex */
.amrewp-form-campo .amrewp-input-password-wrap,
.elementor .amrewp-input-password-wrap,
.e-con .amrewp-input-password-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    flex-direction: unset !important;
    align-items: unset !important;
}
.amrewp-form-campo .amrewp-input-password-wrap input,
.elementor .amrewp-input-password-wrap input {
    width: 100% !important;
    box-sizing: border-box !important;
    padding-right: 44px !important;
    display: block !important;
}
.amrewp-toggle-password {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: none !important;
    border: none !important;
    cursor: pointer;
    color: var(--text-secondary) !important;
    padding: 4px;
    line-height: 1;
    display: flex !important;
    align-items: center;
    width: auto !important;
    flex: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}
.amrewp-toggle-password:hover,
.amrewp-toggle-password:focus {
    color: var(--color-primary) !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: none !important;
}
.amrewp-toggle-password svg {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.amrewp-login-titulo,
.gi-login-titulo {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 800;
    text-align: center;
    margin-bottom: 24px;
    color: var(--text-primary);
}

/* ============================================================
   CONTENEDOR GENERAL
   ============================================================ */
.jm-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
    .amrewp-single-layout { grid-template-columns: 1fr 320px; }
}
@media (max-width: 768px) {
    .amrewp-single-layout { grid-template-columns: 1fr; }
    .amrewp-side-precio { font-size: 28px; }
    .amrewp-single-titulo { font-size: 26px; }
    .amrewp-caracteristicas { grid-template-columns: repeat(2, 1fr); }
    .amrewp-filtros, .gi-filtros { padding: 16px; }
    .gi-filtro-group { min-width: 130px; }
    .jm-section { padding: 40px 0; }
}
@media (max-width: 480px) {
    .amrewp-caracteristicas { grid-template-columns: repeat(2, 1fr); }
    .gi-card-features { gap: 10px; }
    .jm-footer-bottom { flex-direction: column; text-align: center; }
}

/* ============================================================
   ELEMENTOR PRO — overrides para compatibilidad
   ============================================================ */
.elementor-section,
.e-con {
    transition: background-color var(--transition);
}

/* Que los textos de Elementor usen las variables del tema */
.elementor-widget-heading .elementor-heading-title {
    font-family: var(--font-display);
}
.elementor-widget-text-editor {
    font-family: var(--font-body);
    color: var(--text-primary);
}

/* Astra overflow fix (heredado del plugin) */
.ast-container,
.ast-article-single,
.entry-content {
    overflow: visible !important;
}

/* ============================================================
   MODO OSCURO — FORZAR SOBRE ELEMENTOR PRO
   Elementor hardcodea colores en secciones, esto los sobreescribe
   ============================================================ */

/* Body y fondo general */

/* Todas las secciones y contenedores de Elementor */

/* Secciones con fondo blanco explícito */

/* Header */

/* Footer */

/* Textos dentro de Elementor */

/* Textos con color explícito hardcodeado */

/* Íconos */

/* Separadores / dividers */

/* Imágenes y overlays */

/* Botones de Elementor */

/* Página en general — cualquier fondo blanco que quede */

/* Hello Elementor — override del fondo del body */



/* ============================================================
   FIX TEXTOS EN MODO OSCURO — mejor contraste
   ============================================================ */





/* Cajas / boxes con fondo oscuro — mejorar texto */



/* Fondos de cajas que quedaron negros puros */

/* Texto de párrafos con color hardcodeado en Elementor */





/* Secciones con imagen de fondo — mantener legibilidad */

/* ============================================================
   FIX BADGES — selectores reales del plugin (amrewp-slide-*)
   ============================================================ */



/* ============================================================
   FIX TEXTOS CARDS EN MODO OSCURO
   ============================================================ */

/* Título de la card */

/* Ubicación */

/* Precio */

/* Card body fondo */

/* ============================================================
   FIX BUSCADOR — una sola fila → grid responsive
   ============================================================ */


/* Ojo contraseña — visibilidad controlada por clase */
.amrewp-eye-hidden { display: none !important; }
