/*
Theme Name: Tasa de Basuras (Astra child)
Template: astra
Description: Directorio tasa de basuras. Estilos basados en autoescuelas-theme.
Version: 0.4.0
*/

/* ============ CSS BASE COPIADO DE autoescuelas-theme ============ */

/* ========================================
   VARIABLES Y COLORES
   ======================================== */
:root {
    --ae-primary: #2563EB;
    --ae-primary-hover: #1D4ED8;
    --ae-primary-light: #EFF6FF;
    --ae-primary-ultra-light: #F8FAFF;
    --ae-accent: #F59E0B;
    --ae-accent-hover: #D97706;
    --ae-accent-light: #FEF3C7;
    --ae-negro: #1E293B;
    --ae-gris: #64748B;
    --ae-gris-light: #F1F5F9;
    --ae-blanco: #FFFFFF;
    --ae-verde: #22C55E;
    --ae-estrella: #F59E0B;
    --ae-sombra: 0 2px 16px rgba(0,0,0,0.06);
    --ae-sombra-hover: 0 8px 30px rgba(0,0,0,0.12);
    --ae-radio: 16px;
    --ae-transicion: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --ae-font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --ae-font-heading: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ========================================
   ASTRA OVERRIDES - LAYOUT FIX
   ======================================== */
.home .site-content > .ast-container,
.single-autoescuela .site-content > .ast-container,
.ae-directory-page .site-content > .ast-container {
    max-width: 100% !important;
    padding: 0 !important;
    display: block !important;
}
.home #primary,
.single-autoescuela #primary,
.ae-directory-page #primary {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.home #secondary,
.single-autoescuela #secondary,
.ae-directory-page #secondary {
    display: none !important;
}
.home .entry-content,
.single-autoescuela .entry-content,
.ae-directory-page .entry-content {
    margin: 0 !important;
    padding: 0 !important;
}
.home .ast-container,
.home .site-main,
.ae-directory-page .ast-container,
.ae-directory-page .site-main {
    display: block !important;
}
.home .ast-archive-description,
.home .page-header,
.home .entry-header,
.ae-directory-page .ast-archive-description,
.ae-directory-page .page-header,
.ae-directory-page .entry-header,
.ae-directory-page .ast-archive-entry-banner {
    display: none !important;
}
/* Pages (info, legal) and 404: force full-width single column */
.page .site-content > .ast-container,
.error404 .site-content > .ast-container {
    max-width: 100% !important;
    padding: 0 !important;
    display: block !important;
}
.page #primary,
.error404 #primary {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.page #secondary,
.error404 #secondary {
    display: none !important;
}
.page .entry-content {
    max-width: 800px;
    margin: 0 auto !important;
    padding: 40px 20px !important;
}
.page .entry-header {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 20px 0;
}
/* Taxonomy pages: Astra wraps in #primary with columns */
.tax-ciudad .site-content > .ast-container,
.tax-barrio .site-content > .ast-container {
    max-width: 100% !important;
    padding: 0 !important;
    display: block !important;
}
.tax-ciudad #primary,
.tax-barrio #primary {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.tax-ciudad #secondary,
.tax-barrio #secondary {
    display: none !important;
}

/* ========================================
   GLOBAL TYPOGRAPHY
   ======================================== */
body {
    font-family: var(--ae-font-body);
    color: var(--ae-negro);
    background: var(--ae-blanco);
    line-height: 1.7;
    font-weight: 400;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ae-font-heading);
    color: var(--ae-negro);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

h1 { font-size: 3rem; font-weight: 700; }
h2 { font-size: 2.2rem; }
h3 { font-size: 1.4rem; }

p {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--ae-gris);
}

a {
    color: var(--ae-primary);
    text-decoration: none;
    transition: var(--ae-transicion);
}
a:hover {
    color: var(--ae-primary-hover);
}

/* ========================================
   HEADER
   ======================================== */
.site-header {
    background: rgba(255,255,255,0.95) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 1px 0 rgba(0,0,0,0.05);
    position: sticky;
    top: 0;
    z-index: 999;
}

.site-header .site-title a,
.site-header .site-title {
    color: var(--ae-negro) !important;
    font-family: var(--ae-font-heading) !important;
    font-weight: 700 !important;
    font-size: 1.6rem !important;
    letter-spacing: -0.02em;
}

.main-navigation a {
    color: var(--ae-negro) !important;
    font-weight: 500;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
    transition: var(--ae-transicion);
}
.main-navigation a:hover {
    color: var(--ae-primary) !important;
}

/* ========================================
   HERO SECTION (HOME)
   ======================================== */
.ae-hero {
    background: linear-gradient(160deg, var(--ae-primary-light) 0%, var(--ae-blanco) 40%, var(--ae-accent-light) 100%);
    padding: 100px 20px 80px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.ae-hero::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -15%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(37,99,235,0.12) 0%, transparent 70%);
    border-radius: 50%;
}
.ae-hero::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: -10%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(245,158,11,0.08) 0%, transparent 70%);
    border-radius: 50%;
}
.ae-hero h1 {
    font-size: 3.5rem;
    margin-bottom: 0.6rem;
    position: relative;
    z-index: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
}
.ae-hero h1 span {
    color: var(--ae-primary);
    font-style: italic;
}
.ae-hero > p {
    font-size: 1.15rem;
    color: var(--ae-gris);
    margin-bottom: 2.5rem;
    position: relative;
    z-index: 1;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.8;
}

/* ========================================
   BUSCADOR
   ======================================== */
.ae-search-box {
    max-width: 860px;
    margin: 0 auto 3rem;
    display: flex;
    gap: 12px;
    position: relative;
    z-index: 1;
    background: var(--ae-blanco);
    padding: 8px;
    border-radius: 60px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}
.ae-search-box input,
.ae-search-box select {
    padding: 6px 10px;
    border: none;
    border-radius: 50px;
    font-size: 0.95rem;
    font-family: var(--ae-font-body);
    flex: 1;
    min-width: 200px;
    background: var(--ae-gris-light);
    transition: var(--ae-transicion);
    color: var(--ae-negro);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
    cursor: pointer;
}
.ae-search-box select option {
    font-size: 0.95rem;
    padding: 8px;
}
.ae-search-box input:focus,
.ae-search-box select:focus {
    outline: none;
    background: var(--ae-primary-ultra-light);
    box-shadow: 0 0 0 2px rgba(37,99,235,0.3);
}
.ae-search-box button {
    padding: 14px 32px;
    background: linear-gradient(135deg, var(--ae-primary), var(--ae-primary-hover));
    color: var(--ae-blanco);
    border: none;
    border-radius: 50px;
    font-size: 0.95rem;
    font-weight: 700;
    font-family: var(--ae-font-body);
    cursor: pointer;
    transition: var(--ae-transicion);
    letter-spacing: 0.02em;
}
.ae-search-box button:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(37,99,235,0.4);
}

/* ========================================
   SECCIONES
   ======================================== */
.ae-section {
    padding: 80px 20px;
    max-width: 1200px;
    margin: 0 auto;
}
.ae-section-title {
    text-align: center;
    margin-bottom: 3rem;
}
.ae-section-title h2 {
    font-size: 2.4rem;
    margin-bottom: 0.6rem;
    font-weight: 600;
}
.ae-section-title h2::after {
    content: '';
    display: block;
    width: 50px;
    height: 3px;
    background: linear-gradient(90deg, var(--ae-primary), var(--ae-accent));
    margin: 14px auto 0;
    border-radius: 2px;
}
.ae-section-title p {
    color: var(--ae-gris);
    font-size: 1.05rem;
}
.ae-section-alt {
    background: var(--ae-primary-ultra-light);
}

/* ========================================
   GRID CIUDADES — OVERLAY CARDS
   ======================================== */
.ae-ciudades-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    max-width: 1200px;
    margin: 0 auto;
}
.ae-ciudades-grid .ae-ciudad-card:nth-child(-n+3) {
    grid-column: span 1;
}
@media (min-width: 800px) {
    .ae-ciudades-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .ae-ciudades-grid .ae-ciudad-card:nth-child(-n+3) {
        min-height: 280px;
    }
    .ae-ciudades-grid .ae-ciudad-card {
        min-height: 200px;
    }
}
.ae-ciudades-grid-landing {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}
@media (min-width: 800px) {
    .ae-ciudades-grid-landing {
        grid-template-columns: repeat(4, 1fr);
    }
    .ae-ciudades-grid-landing .ae-ciudad-card {
        min-height: 200px;
    }
}
.ae-ciudad-card {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    text-decoration: none;
    display: block;
    min-height: 180px;
    cursor: pointer;
}
.ae-ciudad-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.65) 100%);
    z-index: 1;
    transition: var(--ae-transicion);
}
.ae-ciudad-card:hover::before {
    background: linear-gradient(180deg, rgba(0,0,0,0) 10%, rgba(0,0,0,0.75) 100%);
}
.ae-ciudad-card .ae-ciudad-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.ae-ciudad-card:hover .ae-ciudad-bg {
    transform: scale(1.08);
}
.ae-ciudad-card .ae-ciudad-info {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 24px;
    z-index: 2;
    text-align: left;
}
.ae-ciudad-card h3 {
    font-size: 1.4rem;
    margin: 0 0 4px;
    color: #fff !important;
    font-family: var(--ae-font-heading);
    font-weight: 700;
    text-shadow: 0 1px 4px rgba(0,0,0,0.3);
    letter-spacing: -0.01em;
}
.ae-ciudad-card .ae-count {
    font-size: 0.82rem;
    color: rgba(255,255,255,0.85) !important;
    font-weight: 500;
}
.ae-ciudad-card .ae-ciudad-arrow {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(8px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1rem;
    opacity: 0;
    transform: translateX(-8px);
    transition: all 0.3s ease;
}
.ae-ciudad-card:hover .ae-ciudad-arrow {
    opacity: 1;
    transform: translateX(0);
}
.ae-ciudad-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--ae-primary-light), var(--ae-accent-light));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    font-family: var(--ae-font-heading);
    font-weight: 700;
    color: rgba(255,255,255,0.8);
}
.ae-ciudad-card .ae-ciudad-info {
    padding: 18px;
    text-align: center;
}
.ae-ciudad-card h3 {
    font-size: 1.15rem;
    margin: 0 0 4px;
    color: var(--ae-negro);
    font-family: var(--ae-font-heading);
}
.ae-ciudad-card .ae-count {
    font-size: 0.8rem;
    color: var(--ae-gris);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ========================================
   GRID CATEGORIAS
   ======================================== */
.ae-categorias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}
.ae-categoria-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px;
    background: var(--ae-blanco);
    border-radius: var(--ae-radio);
    border: 1px solid rgba(0,0,0,0.05);
    transition: var(--ae-transicion);
    text-decoration: none;
    box-shadow: var(--ae-sombra);
}
.ae-categoria-card:hover {
    border-color: var(--ae-primary);
    transform: translateY(-3px);
    box-shadow: var(--ae-sombra-hover);
}
.ae-categoria-card .ae-cat-icon {
    width: 52px;
    height: 52px;
    background: linear-gradient(135deg, var(--ae-primary-light), var(--ae-accent-light));
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}
.ae-categoria-card h3 {
    font-size: 1rem;
    margin: 0 0 2px;
    font-family: var(--ae-font-body);
    font-weight: 700;
    color: var(--ae-negro);
}
.ae-categoria-card .ae-cat-count {
    font-size: 0.78rem;
    color: var(--ae-gris);
    font-weight: 500;
}

/* ========================================
   LISTADO DE AUTOESCUELAS (CARDS)
   ======================================== */
.ae-autoescuelas-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
}
.ae-autoescuela-card {
    display: flex;
    flex-direction: column;
    background: var(--ae-blanco);
    border-radius: 20px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06);
    overflow: hidden;
    transition: var(--ae-transicion);
    text-decoration: none;
    border: 1px solid rgba(0,0,0,0.05);
}
.ae-autoescuela-card:hover {
    box-shadow: 0 12px 40px rgba(0,0,0,0.12);
    transform: translateY(-6px);
    border-color: rgba(37,99,235,0.25);
}
.ae-autoescuela-card.destacada {
    border: 2px solid var(--ae-accent);
    background: linear-gradient(180deg, #FFFDF8 0%, var(--ae-blanco) 100%);
}
/* Autoescuela image */
.ae-autoescuela-img {
    width: 100%;
    height: 220px;
    background: var(--ae-gris-light);
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    display: block;
    text-decoration: none;
}
.ae-autoescuela-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.ae-autoescuela-card:hover .ae-autoescuela-img img {
    transform: scale(1.08);
}
.ae-autoescuela-img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%);
}
.ae-autoescuela-img .ae-badge-verificada {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: rgba(34,197,94,0.9);
    backdrop-filter: blur(4px);
    color: white;
    font-size: 0.68rem;
    padding: 4px 10px;
    border-radius: 8px;
    font-weight: 700;
    font-family: var(--ae-font-body);
}
.ae-autoescuela-img .ae-badge-destacada {
    position: absolute;
    top: 10px;
    left: 10px;
    background: linear-gradient(135deg, var(--ae-accent), var(--ae-accent-hover));
    color: white;
    font-size: 0.68rem;
    padding: 4px 10px;
    border-radius: 8px;
    font-weight: 700;
    font-family: var(--ae-font-body);
}
.ae-card-rating-pill {
    position: absolute;
    top: 10px;
    right: 10px;
    background: rgba(0,0,0,0.6);
    backdrop-filter: blur(8px);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 8px;
    font-family: var(--ae-font-body);
}
.ae-card-rating-pill span {
    color: var(--ae-estrella);
}
/* Autoescuela body */
.ae-autoescuela-body {
    padding: 22px 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ae-autoescuela-body-top {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.ae-card-tipo {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ae-primary);
}
.ae-autoescuela-body h3 {
    font-size: 1.2rem;
    margin: 0;
    font-family: var(--ae-font-heading);
    font-weight: 700;
    line-height: 1.3;
}
.ae-autoescuela-body h3 a {
    color: var(--ae-negro);
    text-decoration: none;
}
.ae-autoescuela-body h3 a:hover {
    color: var(--ae-primary);
}
/* Rating */
.ae-rating {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
}
.ae-stars {
    color: var(--ae-estrella);
    font-size: 0.85rem;
    letter-spacing: 0.5px;
}
.ae-rating-number {
    font-weight: 800;
    font-size: 0.85rem;
    color: var(--ae-negro);
}
.ae-rating-count {
    font-size: 0.78rem;
    color: var(--ae-gris);
}
/* Meta items */
.ae-autoescuela-meta {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.ae-autoescuela-meta-item {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.82rem;
    color: var(--ae-gris);
    line-height: 1.4;
}
.ae-autoescuela-meta-item svg {
    flex-shrink: 0;
    stroke: var(--ae-primary);
    opacity: 0.7;
}
/* Card footer */
.ae-autoescuela-card-footer {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}
.ae-btn-sm {
    padding: 8px 20px !important;
    font-size: 0.8rem !important;
}
/* Direccion (legacy compat) */
.ae-autoescuela-direccion {
    font-size: 0.85rem;
    color: var(--ae-gris);
    margin-bottom: 8px;
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

/* Filter tags (search results) */
.ae-filter-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 14px;
    background: var(--ae-primary-ultra-light);
    color: var(--ae-primary-hover);
    border: 1px solid rgba(37,99,235,0.3);
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    transition: var(--ae-transicion);
}
.ae-filter-tag:hover {
    background: var(--ae-primary-light);
    color: var(--ae-primary);
}
.ae-filter-clear {
    background: var(--ae-gris-light);
    color: var(--ae-gris);
    border-color: transparent;
}
.ae-filter-clear:hover {
    background: #eee;
    color: var(--ae-negro);
}
/* No results */
.ae-no-results {
    text-align: center;
    padding: 60px 20px;
}
.ae-no-results h3 {
    font-size: 1.4rem;
    margin: 16px 0 8px;
    color: var(--ae-negro);
}
.ae-no-results p {
    color: var(--ae-gris);
    margin-bottom: 0;
}

/* City hero (ciudad hub) */
.ae-city-hero {
    position: relative;
    height: 320px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
}
.ae-city-hero-overlay {
    width: 100%;
    padding: 60px 20px 40px;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%);
    text-align: center;
}
.ae-city-hero h1 {
    color: #fff;
    font-size: 2.8rem;
    margin-bottom: 8px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.ae-city-hero .ae-subtitle {
    color: rgba(255,255,255,0.9);
    font-size: 1.05rem;
}

/* Barrios grid */
.ae-barrios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}
.ae-barrio-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    background: var(--ae-blanco);
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 12px;
    text-decoration: none;
    transition: var(--ae-transicion);
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.ae-barrio-card:hover {
    border-color: var(--ae-primary);
    transform: translateY(-2px);
    box-shadow: var(--ae-sombra);
}
.ae-barrio-card-name {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--ae-negro);
}
.ae-barrio-card-count {
    font-size: 0.75rem;
    color: var(--ae-gris);
    background: var(--ae-gris-light);
    padding: 3px 10px;
    border-radius: 10px;
    font-weight: 600;
    white-space: nowrap;
}

/* SEO text block */
.ae-seo-block {
    background: var(--ae-gris-light);
    border-radius: 20px;
    padding: 40px;
    margin-bottom: 48px;
    line-height: 1.8;
}
.ae-seo-block h2 {
    font-size: 1.5rem;
    margin: 0 0 16px;
}
.ae-seo-block h3 {
    font-size: 1.15rem;
    margin: 24px 0 12px;
}
.ae-seo-block p {
    color: var(--ae-gris);
    margin-bottom: 12px;
}
.ae-seo-block ul {
    padding-left: 20px;
    color: var(--ae-gris);
}
.ae-seo-block li {
    margin-bottom: 8px;
}
.ae-seo-block strong {
    color: var(--ae-negro);
}

/* Botones */
.ae-btn {
    display: inline-block;
    padding: 12px 28px;
    background: linear-gradient(135deg, var(--ae-primary), var(--ae-primary-hover));
    color: var(--ae-blanco) !important;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.88rem;
    text-align: center;
    transition: var(--ae-transicion);
    border: none;
    cursor: pointer;
    font-family: var(--ae-font-body);
    letter-spacing: 0.02em;
}
.ae-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(37,99,235,0.4);
}
.ae-btn-accent {
    background: linear-gradient(135deg, var(--ae-accent), var(--ae-accent-hover));
}
.ae-btn-accent:hover {
    box-shadow: 0 6px 20px rgba(245,158,11,0.4);
}
.ae-btn-outline {
    background: transparent;
    border: 2px solid var(--ae-primary);
    color: var(--ae-primary) !important;
}
.ae-btn-outline:hover {
    background: var(--ae-primary);
    color: var(--ae-blanco) !important;
}

/* ========================================
   LAYOUT SIDEBAR
   ======================================== */
.ae-layout-sidebar {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 50px 20px;
}
.ae-sidebar {
    position: sticky;
    top: 100px;
    align-self: start;
}
.ae-sidebar-box {
    background: var(--ae-blanco);
    border-radius: var(--ae-radio);
    box-shadow: var(--ae-sombra);
    padding: 28px;
    margin-bottom: 24px;
    border: 1px solid rgba(0,0,0,0.04);
}
.ae-sidebar-box h3 {
    font-size: 1.15rem;
    margin: 0 0 18px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--ae-primary-light);
    font-family: var(--ae-font-heading);
    font-weight: 600;
}
.ae-barrio-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ae-barrio-list li { margin-bottom: 0; }
.ae-barrio-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border-radius: 10px;
    color: var(--ae-negro);
    transition: var(--ae-transicion);
    font-size: 0.88rem;
    font-weight: 500;
}
.ae-barrio-list a:hover {
    background: var(--ae-primary-ultra-light);
    color: var(--ae-primary);
}
.ae-barrio-list .ae-count-badge {
    background: var(--ae-gris-light);
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.72rem;
    color: var(--ae-gris);
    font-weight: 700;
}

/* ========================================
   BREADCRUMBS
   ======================================== */
.ae-breadcrumbs {
    padding: 18px 20px;
    max-width: 1200px;
    margin: 0 auto;
    font-size: 0.82rem;
    color: var(--ae-gris);
    font-weight: 500;
}
.ae-breadcrumbs a { color: var(--ae-primary); }
.ae-breadcrumbs span.separator {
    margin: 0 8px;
    color: #ccc;
}

/* ========================================
   PAGE HEADER (tipo/ciudad/barrio)
   ======================================== */
.ae-page-header {
    background: linear-gradient(160deg, var(--ae-primary-light) 0%, var(--ae-blanco) 50%, var(--ae-accent-light) 100%);
    padding: 60px 20px 50px;
    text-align: center;
}
.ae-page-header h1 {
    font-size: 2.8rem;
    margin-bottom: 12px;
    font-weight: 700;
    letter-spacing: -0.02em;
}
.ae-page-header .ae-subtitle {
    color: var(--ae-gris);
    font-size: 1.05rem;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.7;
}

/* SEO intro text block */
.ae-seo-intro {
    max-width: 800px;
    margin: 0 auto;
    padding: 30px 20px 0;
    font-size: 1rem;
    line-height: 1.85;
    color: var(--ae-gris);
    text-align: center;
}
.ae-seo-intro strong {
    color: var(--ae-negro);
    font-weight: 700;
}

/* Stats bar */
.ae-stats-bar {
    display: flex;
    justify-content: center;
    gap: 40px;
    max-width: 800px;
    margin: 0 auto;
    padding: 28px 20px;
    flex-wrap: wrap;
}
.ae-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.ae-stat-number {
    font-family: var(--ae-font-heading);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--ae-primary);
    line-height: 1;
}
.ae-stat-label {
    font-size: 0.8rem;
    color: var(--ae-gris);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* FAQ Section */
.ae-faq-section {
    max-width: 800px;
    margin: 0 auto;
    padding: 60px 20px;
}
.ae-faq-section h2 {
    text-align: center;
    margin-bottom: 2rem;
    font-size: 2rem;
}
.ae-faq-section h2::after {
    content: '';
    display: block;
    width: 50px;
    height: 3px;
    background: linear-gradient(90deg, var(--ae-primary), var(--ae-accent));
    margin: 14px auto 0;
    border-radius: 2px;
}
.ae-faq-item {
    background: var(--ae-blanco);
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: var(--ae-radio);
    padding: 24px 28px;
    margin-bottom: 12px;
    box-shadow: var(--ae-sombra);
}
.ae-faq-item h3 {
    font-size: 1.05rem;
    margin: 0 0 10px;
    font-family: var(--ae-font-body);
    font-weight: 700;
    color: var(--ae-negro);
}
.ae-faq-item p {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--ae-gris);
}

/* ========================================
   FICHA INDIVIDUAL
   ======================================== */
.ae-ficha {
    max-width: 920px;
    margin: 0 auto;
    padding: 0 20px 60px;
}
.ae-ficha-galeria {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 8px;
    border-radius: var(--ae-radio);
    overflow: hidden;
    margin-bottom: 32px;
}
.ae-ficha-galeria img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ae-ficha-galeria img:first-child {
    grid-row: 1 / 3;
}
.ae-ficha-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 28px;
    flex-wrap: wrap;
    gap: 16px;
}
.ae-ficha-header h1 {
    font-size: 2.4rem;
    margin: 0 0 6px;
    font-weight: 700;
}
.ae-ficha-contacto {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    background: var(--ae-gris-light);
    padding: 28px;
    border-radius: var(--ae-radio);
    margin-bottom: 32px;
}
.ae-ficha-contacto-item {
    display: flex;
    align-items: center;
    gap: 12px;
}
.ae-ficha-contacto-item .icon {
    width: 40px;
    height: 40px;
    background: var(--ae-primary-light);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
}
.ae-ficha-contacto-item .label {
    font-size: 0.72rem;
    color: var(--ae-gris);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
}
.ae-ficha-contacto-item .value {
    font-weight: 600;
    font-size: 0.95rem;
}

.ae-ficha-section {
    margin-bottom: 36px;
    padding-top: 24px;
}
.ae-ficha-section h2 {
    font-size: 1.6rem;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--ae-primary-light);
}
.ae-ficha-tratamientos {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ae-ficha-tratamiento-tag {
    padding: 9px 20px;
    background: var(--ae-primary-ultra-light);
    color: var(--ae-primary-hover);
    border-radius: 30px;
    font-size: 0.85rem;
    font-weight: 600;
    border: 1px solid rgba(37,99,235,0.25);
    transition: var(--ae-transicion);
}
.ae-ficha-tratamiento-tag:hover {
    background: var(--ae-primary);
    color: var(--ae-blanco);
}

.ae-ficha-mapa {
    border-radius: var(--ae-radio);
    overflow: hidden;
    margin-bottom: 32px;
    box-shadow: var(--ae-sombra);
}
.ae-ficha-mapa iframe {
    width: 100%;
    height: 320px;
    border: 0;
}

/* Resenas */
.ae-resena {
    background: var(--ae-gris-light);
    padding: 24px;
    border-radius: var(--ae-radio);
    margin-bottom: 14px;
}
.ae-resena-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.ae-resena-avatar {
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, var(--ae-primary-light), var(--ae-accent-light));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: var(--ae-primary-hover);
    font-size: 1.1rem;
}
.ae-resena-nombre {
    font-weight: 700;
    font-size: 0.9rem;
}
.ae-resena-fecha {
    font-size: 0.75rem;
    color: var(--ae-gris);
}
.ae-resena-texto {
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--ae-negro);
}

/* ========================================
   ALL CITIES GRID (legacy)
   ======================================== */
.ae-all-cities {
    column-count: 4;
    column-gap: 24px;
}
.ae-all-cities a {
    display: block;
    break-inside: avoid;
    margin-bottom: 10px;
    color: var(--ae-negro);
    font-size: 0.88rem;
    font-weight: 500;
    padding: 6px 0;
    border-bottom: 1px solid transparent;
    transition: var(--ae-transicion);
}
.ae-all-cities a:hover {
    color: var(--ae-primary);
    border-bottom-color: var(--ae-primary-light);
}

/* ========================================
   CITIES HUB - CCAA BLOCKS
   ======================================== */
.ae-ccaa-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.ae-ccaa-block {
    background: #fff;
    border-radius: var(--ae-radio);
    padding: 20px;
    box-shadow: 0 2px 12px rgba(0,0,0,.05);
    border: 1px solid #f0f0f0;
}
.ae-ccaa-title {
    font-family: var(--ae-font-heading);
    font-size: 1.1rem;
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--ae-primary-light);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.ae-ccaa-count {
    font-family: var(--ae-font-body);
    font-size: 0.78rem;
    color: var(--ae-gris);
    font-weight: 400;
}
.ae-ccaa-cities {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ae-ccaa-city-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 8px;
    color: var(--ae-negro);
    text-decoration: none;
    transition: var(--ae-transicion);
    font-size: 0.9rem;
}
.ae-ccaa-city-link:hover {
    background: var(--ae-primary-ultra-light);
    color: var(--ae-primary);
}
.ae-ccaa-city-name {
    flex: 1;
    font-weight: 500;
}
.ae-ccaa-city-count {
    font-size: 0.78rem;
    color: var(--ae-gris);
    background: #f5f5f5;
    padding: 2px 8px;
    border-radius: 12px;
}

/* ========================================
   CITIES HUB - ALL CITIES COMPACT
   ======================================== */
.ae-all-cities-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}
.ae-all-city-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border-radius: 8px;
    color: var(--ae-negro);
    text-decoration: none;
    font-size: 0.88rem;
    transition: var(--ae-transicion);
    border: 1px solid transparent;
}
.ae-all-city-item:hover {
    background: var(--ae-primary-ultra-light);
    border-color: var(--ae-primary-light);
    color: var(--ae-primary);
}
.ae-all-city-name {
    font-weight: 500;
}
.ae-all-city-count {
    font-size: 0.75rem;
    color: var(--ae-gris);
}

/* ========================================
   FOOTER
   ======================================== */
.site-footer {
    background: var(--ae-negro) !important;
    color: #aaa !important;
}
.site-footer a {
    color: var(--ae-accent) !important;
}
.site-footer a:hover {
    color: var(--ae-primary) !important;
}

/* ========================================
   MOBILE MENU (Astra overrides)
   ======================================== */

/* Hamburger icon — replace ugly blue with brand color */
.menu-toggle.main-header-menu-toggle,
.ast-mobile-menu-trigger-minimal {
    color: var(--ae-negro) !important;
    border: none !important;
    background: none !important;
    padding: 6px !important;
    transition: color 0.2s ease;
}
.menu-toggle.main-header-menu-toggle:hover,
.menu-toggle.main-header-menu-toggle:focus {
    color: var(--ae-primary) !important;
}
.menu-toggle .ast-mobile-svg {
    width: 28px !important;
    height: 28px !important;
    fill: currentColor !important;
}

/* Mobile popup/slide menu */
.ast-mobile-header-content,
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
    background: var(--ae-blanco) !important;
    padding: 20px !important;
}

/* Mobile nav links */
.ast-mobile-header-content .main-navigation a,
.ast-builder-menu-mobile .menu-item a,
.ast-mobile-popup-drawer a {
    color: var(--ae-negro) !important;
    font-family: var(--ae-font-body) !important;
    font-size: 1.05rem !important;
    font-weight: 500 !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid rgba(0,0,0,0.05) !important;
    transition: color 0.2s, background 0.2s !important;
    display: block !important;
}
.ast-mobile-header-content .main-navigation a:hover,
.ast-builder-menu-mobile .menu-item a:hover,
.ast-mobile-popup-drawer a:hover {
    color: var(--ae-primary) !important;
    background: var(--ae-primary-ultra-light) !important;
}

/* Mobile menu close button */
.ast-mobile-popup-close,
.menu-toggle-close {
    color: var(--ae-negro) !important;
    background: none !important;
    border: none !important;
}

/* Mobile header bar */
.ast-mobile-header-wrap .ast-primary-header,
.ast-mobile-header-wrap .ast-main-header-bar-alignment {
    background: rgba(255,255,255,0.95) !important;
    backdrop-filter: blur(20px) !important;
}

/* ========================================
   SOBRE NOSOTROS
   ======================================== */
.page-id-5948 .entry-header,
.page-id-5948 .ast-archive-description {
    display: none !important;
}
.page-id-5948 .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.sobre-page { max-width:1100px; margin:0 auto; padding:0 20px; }
.sobre-hero { text-align:center; padding:40px 0 50px; }
.sobre-hero .sobre-tag { font-size:0.85rem; color:#2563EB; text-transform:uppercase; letter-spacing:4px; margin-bottom:12px; font-weight:600; }
.sobre-hero h2 { font-size:2.8rem; font-family:'Plus Jakarta Sans',sans-serif; margin:0 0 20px; line-height:1.2; color:#1E293B; }
.sobre-hero p { font-size:1.1rem; color:#64748B; max-width:650px; margin:0 auto; line-height:1.8; }
.sobre-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:60px; }
.sobre-stat-card { padding:28px 16px; border-radius:16px; background:#fff; text-align:center; }
.sobre-stat-card.primary { border:1px solid rgba(37,99,235,.2); }
.sobre-stat-card.accent { border:1px solid rgba(245,158,11,.2); }
.sobre-stat-num { display:block; font-size:2.4rem; font-weight:800; font-family:'Plus Jakarta Sans',sans-serif; }
.sobre-stat-num.primary { color:#2563EB; }
.sobre-stat-num.accent { color:#F59E0B; }
.sobre-stat-label { font-size:0.8rem; color:#94a3b8; font-weight:500; text-transform:uppercase; letter-spacing:1px; }
.sobre-two-col { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:60px; align-items:start; }
.sobre-mission { padding:40px; background:linear-gradient(135deg,#F8FAFF 0%,#FEF3C7 100%); border-radius:20px; border-left:4px solid #F59E0B; }
.sobre-mission h2 { font-size:1.4rem; margin:0 0 16px; font-family:'Plus Jakarta Sans',sans-serif; color:#1E293B; }
.sobre-mission p { font-size:1rem; line-height:1.85; color:#555; margin:0; }
.sobre-diff { display:grid; gap:12px; }
.sobre-diff-item { display:flex; gap:16px; align-items:flex-start; padding:18px 20px; background:#fff; border-radius:14px; border:1px solid #f0f0f0; }
.sobre-diff-icon { min-width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.sobre-diff-icon.primary { background:#EFF6FF; }
.sobre-diff-icon.accent { background:#FEF3C7; }
.sobre-diff-item strong { display:block; margin-bottom:3px; color:#1E293B; font-size:0.95rem; }
.sobre-diff-item span { color:#888; font-size:0.85rem; line-height:1.55; }
.sobre-steps { margin-bottom:60px; }
.sobre-steps h2 { text-align:center; font-size:1.4rem; margin-bottom:36px; font-family:'Plus Jakarta Sans',sans-serif; color:#1E293B; }
.sobre-steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.sobre-step { text-align:center; padding:32px 20px; background:#fff; border-radius:16px; border:1px solid #f0f0f0; }
.sobre-step-num { width:48px; height:48px; margin:0 auto 16px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.2rem; font-weight:700; }
.sobre-step-num.primary { background:linear-gradient(135deg,#2563EB,#60A5FA); }
.sobre-step-num.accent { background:linear-gradient(135deg,#F59E0B,#FBBF24); }
.sobre-step h3 { font-size:1rem; margin:0 0 8px; color:#1E293B; }
.sobre-step p { color:#888; font-size:0.88rem; line-height:1.6; margin:0; }
.sobre-bottom-row { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:60px; align-items:start; }
.sobre-especialidades h2 { font-size:1.4rem; margin-bottom:24px; font-family:'Plus Jakarta Sans',sans-serif; color:#1E293B; }
.sobre-tags { display:flex; flex-wrap:wrap; gap:10px; }
.sobre-tag-pill { padding:10px 20px; border-radius:50px; font-size:0.85rem; font-weight:500; }
.sobre-tag-pill.primary { background:#EFF6FF; color:#2563EB; }
.sobre-tag-pill.accent { background:#FEF3C7; color:#D97706; }
.sobre-cta { text-align:center; padding:50px 30px; background:linear-gradient(135deg,#EFF6FF 0%,#FEF3C7 100%); border-radius:20px; display:flex; flex-direction:column; justify-content:center; }
.sobre-cta h2 { font-size:1.6rem; margin:0 0 12px; font-family:'Plus Jakarta Sans',sans-serif; color:#1E293B; }
.sobre-cta p { color:#888; margin:0 0 24px; font-size:1rem; }
.sobre-cta a { display:inline-block; padding:14px 40px; background:#2563EB; color:#fff; border-radius:50px; text-decoration:none; font-weight:600; font-size:0.95rem; letter-spacing:0.5px; }
.sobre-cta a:hover { background:#1D4ED8; }
.sobre-contact { text-align:center; padding:20px 20px 40px; color:#94a3b8; font-size:0.9rem; }
.sobre-contact a { color:#F59E0B; font-weight:600; text-decoration:none; }
@media (max-width:768px) {
    .sobre-stats { grid-template-columns:repeat(2,1fr); }
    .sobre-two-col, .sobre-bottom-row { grid-template-columns:1fr; gap:30px; }
    .sobre-steps-grid { grid-template-columns:1fr; }
    .sobre-hero h2 { font-size:2rem; }
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 768px) {
    .ae-hero h1 { font-size: 2.2rem; }
    .ae-page-header h1 { font-size: 1.8rem; }
    .ae-search-box { flex-direction: column; border-radius: var(--ae-radio); }
    .ae-layout-sidebar { grid-template-columns: 1fr; }
    .ae-sidebar { position: static; }
    .ae-autoescuelas-list { grid-template-columns: 1fr; }
    .ae-autoescuela-img { height: 200px; }
    .ae-stats-bar { gap: 20px; }
    .ae-ficha-galeria { grid-template-columns: 1fr; }
    .ae-ficha-galeria img:first-child { grid-row: auto; }
    .ae-ciudades-grid { grid-template-columns: repeat(2, 1fr); }
    .ae-ciudades-grid-landing { grid-template-columns: repeat(2, 1fr); }
    .ae-all-cities { column-count: 2; }
    .ae-ccaa-grid { grid-template-columns: 1fr; }
    .ae-all-cities-grid { grid-template-columns: repeat(2, 1fr); }
    .ae-faq-item { padding: 18px 20px; }
    h1 { font-size: 2rem; }
    h2 { font-size: 1.6rem; }
    .ae-section { padding: 50px 16px; }
}

@media (max-width: 480px) {
    .ae-ciudades-grid { grid-template-columns: 1fr; }
    .ae-ciudades-grid-landing { grid-template-columns: 1fr; }
    .ae-categorias-grid { grid-template-columns: 1fr; }
    .ae-all-cities { column-count: 1; }
    .ae-all-cities-grid { grid-template-columns: 1fr; }
}

/* ========================================
   CUSTOM FOOTER
   ======================================== */
.ae-footer {
    background: var(--ae-negro);
    color: #9a9ab0;
    font-size: 0.88rem;
    line-height: 1.7;
}
.ae-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 70px 20px 50px;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 40px;
}
.ae-footer-logo {
    display: inline-block;
    margin-bottom: 16px;
}
.ae-footer-logo img {
    height: 40px;
    width: auto;
    filter: brightness(0) invert(1);
}
.ae-footer-brand {
    font-family: var(--ae-font-heading);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--ae-blanco);
    margin-bottom: 14px;
    letter-spacing: -0.02em;
}
.ae-footer-col p {
    color: #8888a0;
    font-size: 0.85rem;
    line-height: 1.8;
    margin-bottom: 18px;
}
.ae-footer-social {
    display: flex;
    gap: 10px;
}
.ae-footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    color: #9a9ab0 !important;
    font-size: 0.8rem;
    transition: var(--ae-transicion);
    text-decoration: none;
}
.ae-footer-social a:hover {
    background: var(--ae-primary);
    color: var(--ae-blanco) !important;
}
.ae-footer-col h4 {
    font-family: var(--ae-font-body);
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--ae-blanco);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid rgba(37,99,235,0.2);
}
.ae-footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ae-footer-col ul li {
    margin-bottom: 8px;
}
.ae-footer-col ul a {
    color: #8888a0 !important;
    text-decoration: none;
    transition: var(--ae-transicion);
    font-size: 0.84rem;
    font-weight: 500;
}
.ae-footer-col ul a:hover {
    color: var(--ae-primary) !important;
    padding-left: 4px;
}
.ae-footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.06);
    padding: 24px 20px;
    text-align: center;
}
.ae-footer-bottom p {
    color: #5a5a70;
    font-size: 0.78rem;
    margin: 0;
    letter-spacing: 0.02em;
}

/* Hide Astra's default footer when our custom one is present */
.site-footer {
    display: none !important;
}

/* ========================================
   COOKIE BANNER
   ======================================== */
#ae-cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 99999;
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-top: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 -4px 30px rgba(0,0,0,0.08);
    padding: 0;
    animation: aeSlideUp 0.4s ease;
}
@keyframes aeSlideUp {
    from { transform: translateY(100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
.ae-cookie-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.ae-cookie-text {
    margin: 0;
    font-size: 0.88rem;
    color: #666;
    line-height: 1.5;
    flex: 1;
}
.ae-cookie-text a {
    color: var(--ae-primary);
    text-decoration: underline;
    font-weight: 500;
}
.ae-cookie-buttons {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}
.ae-cookie-btn {
    padding: 10px 24px;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    border: none;
    transition: all 0.2s;
    white-space: nowrap;
    font-family: var(--ae-font-body);
}
.ae-cookie-accept {
    background: var(--ae-primary);
    color: #fff;
}
.ae-cookie-accept:hover {
    background: #1D4ED8;
    transform: translateY(-1px);
}
.ae-cookie-reject {
    background: transparent;
    color: var(--ae-gris);
    border: 1px solid #ddd;
}
.ae-cookie-reject:hover {
    border-color: var(--ae-primary);
    color: var(--ae-primary);
}
@media (max-width: 600px) {
    .ae-cookie-inner {
        flex-direction: column;
        text-align: center;
        padding: 18px 20px;
        gap: 14px;
    }
    .ae-cookie-buttons {
        width: 100%;
    }
    .ae-cookie-btn {
        flex: 1;
    }
}

@media (max-width: 768px) {
    .ae-footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 30px;
        padding: 50px 20px 30px;
    }
}
@media (max-width: 480px) {
    .ae-footer-inner {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   FICHA AUTOESCUELA - PRODUCT LAYOUT
   ======================================== */
.ae-ficha-product {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px 60px;
}

/* TOP SECTION: Image left + Info right */
.ae-ficha-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
    align-items: start;
}
.ae-ficha-image {
    position: relative;
    border-radius: var(--ae-radio);
    overflow: hidden;
    background: var(--ae-gris-light);
    aspect-ratio: 4/3;
}
.ae-ficha-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ae-ficha-image-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--ae-primary-ultra-light), var(--ae-accent-light));
    min-height: 350px;
}
.ae-ficha-image-placeholder span {
    font-size: 4rem;
    margin-bottom: 8px;
}
.ae-ficha-image-placeholder p {
    color: var(--ae-gris);
    font-size: 0.85rem;
}
.ae-badge-verificada {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--ae-verde);
    color: white;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 0.68rem;
    font-weight: 600;
}
.ae-badge-destacada {
    position: absolute;
    top: 12px;
    right: 12px;
    background: var(--ae-accent);
    color: white;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

/* Info panel right */
.ae-ficha-info h1 {
    font-family: var(--ae-font-heading);
    font-size: 2rem;
    margin: 0 0 8px;
    line-height: 1.2;
}
.ae-ficha-category {
    display: inline-block;
    font-size: 0.8rem;
    color: var(--ae-gris);
    background: var(--ae-gris-light);
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 12px;
}
.ae-ficha-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 1rem;
}
.ae-ficha-rating .ae-rating-count {
    font-size: 0.82rem;
    color: var(--ae-gris);
}
.ae-ficha-price {
    font-size: 0.9rem;
    color: var(--ae-accent);
    font-weight: 700;
    margin-bottom: 12px;
}
.ae-ficha-desc {
    font-size: 0.9rem;
    line-height: 1.7;
    color: #555;
    margin-bottom: 16px;
}

/* Details list */
.ae-ficha-details {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
    padding: 16px;
    background: var(--ae-gris-light);
    border-radius: 12px;
}
.ae-ficha-detail {
    display: flex;
    align-items: center;
    gap: 10px;
}
.ae-detail-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    border-radius: 8px;
    font-size: 0.95rem;
    flex-shrink: 0;
}
.ae-detail-label {
    display: block;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ae-gris);
    font-weight: 600;
}
.ae-detail-value {
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--ae-negro);
}
a.ae-detail-value {
    color: var(--ae-primary-hover);
}
a.ae-detail-value:hover {
    text-decoration: underline;
}

/* CTA Buttons */
.ae-ficha-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ae-btn-primary {
    background: var(--ae-primary);
    color: white;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: var(--ae-transicion);
    border: 2px solid var(--ae-primary);
}
.ae-btn-primary:hover {
    background: var(--ae-primary-hover);
    border-color: var(--ae-primary-hover);
    color: white;
}
.ae-btn-outline {
    background: transparent;
    color: var(--ae-negro);
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    border: 2px solid #ddd;
    transition: var(--ae-transicion);
}
.ae-btn-outline:hover {
    border-color: var(--ae-primary);
    color: var(--ae-primary-hover);
}

/* TABS SECTION */
.ae-ficha-tabs {
    max-width: 100%;
}
.ae-ficha-product .ae-ficha-section {
    margin-bottom: 36px;
}
.ae-ficha-product .ae-ficha-section h2 {
    font-family: var(--ae-font-heading);
    font-size: 1.5rem;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--ae-primary-light);
}

/* Horario table */
.ae-horario-table {
    width: 100%;
    max-width: 400px;
    border-collapse: collapse;
}
.ae-horario-table tr {
    border-bottom: 1px solid #f0f0f0;
}
.ae-horario-day {
    padding: 8px 16px 8px 0;
    font-weight: 600;
    font-size: 0.88rem;
}
.ae-horario-time {
    padding: 8px 0;
    font-size: 0.88rem;
    color: var(--ae-gris);
}

/* Chips */
.ae-ficha-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ae-chip {
    padding: 7px 16px;
    background: var(--ae-gris-light);
    border-radius: 30px;
    font-size: 0.82rem;
    font-weight: 500;
}
.ae-chip-accent {
    background: var(--ae-primary-ultra-light);
    color: var(--ae-primary-hover);
    border: 1px solid rgba(37,99,235,0.2);
}

/* Features grid */
.ae-ficha-features {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}
.ae-feature {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88rem;
    padding: 8px 0;
}
.ae-feature-icon {
    font-size: 1rem;
}
.ae-ficha-location-text {
    color: var(--ae-gris);
    font-size: 0.9rem;
    margin-bottom: 16px;
}

/* Reviews */
.ae-review-summary {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    padding: 20px;
    background: var(--ae-gris-light);
    border-radius: 12px;
}
.ae-review-big-number {
    font-family: var(--ae-font-heading);
    font-size: 3rem;
    font-weight: 700;
    color: var(--ae-negro);
    line-height: 1;
}
.ae-review-summary-text {
    font-size: 0.82rem;
    color: var(--ae-gris);
    margin-top: 4px;
}
.ae-review-count {
    font-weight: 400;
    font-size: 0.7em;
    color: var(--ae-gris);
}
.ae-review-card {
    background: var(--ae-gris-light);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 12px;
}
.ae-review-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.ae-review-avatar {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, var(--ae-primary-light), var(--ae-accent-light));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: var(--ae-primary-hover);
    font-size: 1rem;
    flex-shrink: 0;
}
.ae-review-avatar-img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.ae-review-author {
    font-weight: 700;
    font-size: 0.88rem;
}
.ae-review-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
}
.ae-review-date {
    color: var(--ae-gris);
    font-size: 0.75rem;
}
.ae-review-text {
    font-size: 0.88rem;
    line-height: 1.7;
    color: #444;
    margin: 0;
}
.ae-no-reviews {
    color: var(--ae-gris);
    font-size: 0.9rem;
}

/* Related autoescuelas */
.ae-related {
    margin-top: 48px;
    padding-top: 36px;
    border-top: 2px solid var(--ae-gris-light);
}
.ae-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.ae-related-grid .ae-autoescuela-card {
    flex-direction: column;
}
.ae-related-grid .ae-autoescuela-img {
    width: 100%;
    height: 180px;
}

/* Responsive */
@media (max-width: 768px) {
    .ae-ficha-top {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .ae-ficha-image {
        aspect-ratio: 16/9;
    }
    .ae-related-grid {
        grid-template-columns: 1fr;
    }
    .ae-ficha-ctas {
        flex-direction: column;
    }
    .ae-ficha-ctas .ae-btn-primary,
    .ae-ficha-ctas .ae-btn-outline {
        text-align: center;
    }
}

/* Horario grid - premium style */
.ae-horario-grid {
    max-width: 480px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    background: var(--ae-gris-light);
    border-radius: 12px;
    overflow: hidden;
    padding: 4px;
}
.ae-horario-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: white;
    border-radius: 8px;
    font-size: 0.88rem;
}
.ae-horario-row .ae-horario-day {
    font-weight: 600;
    min-width: 100px;
    color: var(--ae-negro);
}
.ae-horario-dots {
    flex: 1;
    border-bottom: 2px dotted #e0e0e0;
    margin: 0 4px;
    min-width: 20px;
}
.ae-horario-row .ae-horario-time {
    font-weight: 500;
    color: #333;
    text-align: right;
}
.ae-horario-today {
    background: var(--ae-primary-ultra-light) !important;
    border: 2px solid var(--ae-primary);
}
.ae-horario-today .ae-horario-day {
    color: var(--ae-primary-hover);
}
.ae-today-badge {
    background: var(--ae-primary);
    color: white;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.ae-horario-closed .ae-horario-day {
    color: var(--ae-gris);
}
.ae-closed-badge {
    color: #c0392b;
    font-weight: 600;
    font-size: 0.82rem;
}
/* Open/closed in detail panel */
.ae-detail-value.ae-open {
    color: #27ae60;
    font-weight: 700;
}
.ae-detail-value.ae-closed {
    color: #c0392b;
    font-weight: 700;
}

/* Two-column layout: Horario + Servicios */
.ae-two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: start;
}
.ae-two-cols > .ae-ficha-section {
    margin-bottom: 0;
}
.ae-two-cols .ae-horario-grid {
    max-width: 100%;
}
@media (max-width: 768px) {
    .ae-two-cols {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

/* Fix badges size in ficha */
.ae-ficha-image .ae-badge-verificada,
.ae-ficha-image .ae-badge-destacada {
    font-size: 0.72rem;
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    z-index: 2;
    white-space: nowrap;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}

/* ============================================================
 * CONTENIDO EDITORIAL
 * ============================================================ */
.ae-editorial {
    background: #FAFAFA;
    border-radius: 12px;
    padding: 32px;
    margin-bottom: 32px;
}
.ae-editorial h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1.5rem;
    color: var(--ae-negro);
    margin-bottom: 16px;
}
.ae-editorial-text {
    font-size: 0.95rem;
    line-height: 1.8;
    color: #444;
}
.ae-editorial-text br + br {
    display: block;
    margin-top: 12px;
    content: "";
}

/* ============================================================
 * ANALISIS DE RESENAS
 * ============================================================ */
.ae-analisis {
    margin-bottom: 32px;
}
.ae-analisis-resumen {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 20px;
}
.ae-puntos-fuertes {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px;
}
.ae-punto-fuerte {
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    background: #f8f8f8;
    border-radius: 8px;
    padding: 10px 16px;
    overflow: hidden;
}
.ae-punto-barra {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    background: linear-gradient(90deg, rgba(37,99,235,0.2), rgba(37,99,235,0.1));
    border-radius: 8px 0 0 8px;
    z-index: 0;
}
.ae-punto-tema {
    font-weight: 600;
    font-size: 0.9rem;
    color: #1E293B;
    flex: 1;
    z-index: 1;
}
.ae-punto-count {
    font-size: 0.8rem;
    color: #999;
    z-index: 1;
}
.ae-resena-destacada {
    background: linear-gradient(135deg, #EFF6FF, #FEF3C7);
    border-left: 4px solid #2563EB;
    border-radius: 0 12px 12px 0;
    padding: 20px 24px;
    margin: 0 0 16px;
    font-style: italic;
}
.ae-resena-destacada p {
    font-size: 0.95rem;
    line-height: 1.7;
    color: #444;
    margin: 0 0 8px;
}
.ae-resena-destacada cite {
    font-size: 0.85rem;
    color: #888;
    font-style: normal;
}
.ae-punto-debil {
    font-size: 0.85rem;
    color: #999;
    padding: 12px 16px;
    background: #fafafa;
    border-radius: 8px;
    border-left: 3px solid #ddd;
}

/* ============================================================
 * FAQs
 * ============================================================ */
.ae-faqs {
    margin-bottom: 32px;
}
.ae-faq-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ae-faq-item {
    border: 1px solid #eee;
    border-radius: 10px;
    overflow: hidden;
    transition: border-color 0.2s;
}
.ae-faq-item[open] {
    border-color: #2563EB;
}
.ae-faq-item summary {
    padding: 16px 20px;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #1E293B;
}
.ae-faq-item summary::after {
    content: '+';
    font-size: 1.3rem;
    color: #F59E0B;
    font-weight: 300;
    transition: transform 0.2s;
}
.ae-faq-item[open] summary::after {
    content: '-';
}
.ae-faq-item summary::-webkit-details-marker {
    display: none;
}
.ae-faq-item p {
    padding: 0 20px 16px;
    font-size: 0.9rem;
    line-height: 1.7;
    color: #555;
    margin: 0;
}

/* ============================================================
 * ESPECIALIDADES LANDING
 * ============================================================ */
.ae-categorias-big {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
}
.ae-especialidad-card {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: var(--ae-blanco);
    border-radius: var(--ae-radio);
    padding: 28px;
    box-shadow: var(--ae-sombra);
    text-decoration: none;
    transition: var(--ae-transicion);
    border: 1px solid #f0f0f0;
}
.ae-especialidad-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--ae-sombra-hover);
    border-color: var(--ae-primary);
}
.ae-especialidad-icon {
    font-size: 2.5rem;
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ae-primary-ultra-light);
    border-radius: 16px;
}
.ae-especialidad-body h2 {
    font-size: 1.1rem;
    margin: 0 0 4px;
    color: var(--ae-negro);
}
.ae-especialidad-body .ae-cat-count {
    font-size: 0.78rem;
    color: var(--ae-accent);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.ae-especialidad-desc {
    font-size: 0.85rem;
    color: #777;
    line-height: 1.6;
    margin: 8px 0 0;
}

/* ============================================================
 * LEAFLET MAPS
 * ============================================================ */
.ae-leaflet-map {
    z-index: 1;
    border: 1px solid #eee;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.ae-leaflet-map .leaflet-popup-content-wrapper {
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.ae-leaflet-map .leaflet-popup-content {
    margin: 12px 14px;
    line-height: 1.5;
}

/* ========================================
   404 PAGE
   ======================================== */
.ae-404-page {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    background: linear-gradient(180deg, var(--ae-primary-ultra-light) 0%, var(--ae-blanco) 100%);
}
.ae-404-content {
    text-align: center;
    max-width: 560px;
}
.ae-404-icon {
    margin-bottom: 24px;
    animation: ae-float 3s ease-in-out infinite;
}
@keyframes ae-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}
.ae-404-page h1 {
    font-family: var(--ae-font-heading);
    font-size: 6rem;
    font-weight: 700;
    background: linear-gradient(135deg, var(--ae-primary), var(--ae-accent));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 8px;
    line-height: 1;
}
.ae-404-subtitle {
    font-family: var(--ae-font-heading);
    font-size: 1.6rem;
    color: var(--ae-negro);
    font-weight: 600;
    margin: 0 0 12px;
}
.ae-404-text {
    color: var(--ae-gris);
    font-size: 0.95rem;
    line-height: 1.7;
    margin: 0 0 30px;
}
.ae-404-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 40px;
}
.ae-404-suggestions {
    border-top: 1px solid rgba(0,0,0,0.06);
    padding-top: 30px;
}
.ae-404-suggestions h3 {
    font-family: var(--ae-font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ae-gris);
    margin: 0 0 16px;
    font-weight: 600;
}
.ae-404-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}
.ae-404-links a {
    display: inline-block;
    padding: 8px 18px;
    background: var(--ae-blanco);
    color: var(--ae-negro) !important;
    border-radius: 30px;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid rgba(0,0,0,0.08);
    transition: var(--ae-transicion);
}
.ae-404-links a:hover {
    background: var(--ae-primary-light);
    border-color: var(--ae-primary);
    color: var(--ae-primary-hover) !important;
}

/* ============================================================
 * WHATSAPP CTA BUTTON
 * ============================================================ */
.ae-btn-whatsapp {
    background: #25D366 !important;
    color: white !important;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: var(--ae-transicion);
    border: 2px solid #25D366;
}
.ae-btn-whatsapp:hover {
    background: #1DA851 !important;
    border-color: #1DA851;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(37,211,102,0.3);
}

/* ============================================================
 * SHARE BUTTONS
 * ============================================================ */
.ae-share-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}
.ae-share-label {
    font-size: 0.8rem;
    color: var(--ae-gris);
    font-weight: 500;
}
.ae-share-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    max-width: 36px;
    border-radius: 50%;
    background: var(--ae-gris-light);
    color: var(--ae-gris);
    font-size: 0.9rem;
    border: none;
    cursor: pointer;
    transition: var(--ae-transicion);
    text-decoration: none;
    padding: 0;
    box-sizing: border-box;
    flex-shrink: 0;
    overflow: hidden;
}
.ae-share-btn:hover {
    transform: translateY(-2px);
}
.ae-share-wa:hover {
    background: #25D366;
    color: white;
}
.ae-share-copy:hover {
    background: var(--ae-primary);
    color: white;
}
.ae-share-email:hover {
    background: var(--ae-accent);
    color: white;
}

/* ============================================================
 * PHOTO GALLERY
 * ============================================================ */
.ae-gallery {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ae-gallery-main {
    flex: 1;
    min-height: 0;
    border-radius: 12px;
    overflow: hidden;
}
.ae-gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.3s ease;
}
.ae-gallery-thumbs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 4px;
}
.ae-gallery-thumb {
    width: 56px;
    height: 42px;
    object-fit: cover;
    border-radius: 8px;
    cursor: pointer;
    opacity: 0.6;
    transition: all 0.2s ease;
    flex-shrink: 0;
    border: 2px solid transparent;
}
.ae-gallery-thumb:hover {
    opacity: 0.85;
}
.ae-gallery-thumb.active {
    opacity: 1;
    border-color: var(--ae-primary);
}

/* ============================================================
 * BLOG ARCHIVE & SINGLE POST STYLES
 * ============================================================ */

/* Force full width on ALL pages */
#primary {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
#secondary,
.widget-area,
.sidebar-main {
    display: none !important;
}
.ast-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.site-content > .ast-container {
    display: block !important;
    max-width: 100% !important;
}
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
/* Remove Astra's default post structure wrapping */
.single-post .site-content .ast-container,
.blog .site-content .ast-container,
.archive .site-content .ast-container,
.category .site-content .ast-container {
    display: block !important;
    max-width: 100% !important;
    padding: 0 !important;
}
.single-post .ast-row,
.blog .ast-row,
.archive .ast-row,
.category .ast-row {
    display: block !important;
}
.single-post #primary .ast-article-single {
    max-width: 100% !important;
    width: 100% !important;
}
/* Remove Astra entry header/content wrapper padding */
.entry-content {
    margin: 0 !important;
}
.ast-separate-container .entry-content {
    padding: 0 !important;
}

/* Header padding fix */
.ast-primary-header-bar .site-primary-header-wrap,
.main-header-bar .main-header-container,
.ast-primary-header .ast-container {
    padding-left: 40px !important;
    padding-right: 40px !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
}
@media (max-width: 768px) {
    .ast-primary-header-bar .site-primary-header-wrap,
    .main-header-bar .main-header-container,
    .ast-primary-header .ast-container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* Blog Hero Section */
.ae-blog-hero {
    background: linear-gradient(135deg, var(--ae-primary) 0%, #1E40AF 50%, #0F2A5E 100%);
    padding: 96px 40px 88px;
    text-align: center;
    color: white;
    margin-bottom: 0;
    position: relative;
    overflow: hidden;
}
.ae-blog-hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(255,255,255,0.06) 0%, transparent 70%);
    border-radius: 50%;
}
.ae-blog-hero-badge {
    display: inline-block;
    background: rgba(255,255,255,0.12);
    color: white;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 8px 20px;
    border-radius: 24px;
    margin-bottom: 28px;
    border: 1px solid rgba(255,255,255,0.15);
    position: relative;
}
.ae-blog-hero h1 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 44px;
    font-weight: 800;
    color: white;
    margin: 0 auto 20px;
    max-width: 720px;
    line-height: 1.15;
    letter-spacing: -0.5px;
    position: relative;
}
.ae-blog-hero p {
    font-size: 18px;
    opacity: 0.8;
    max-width: 560px;
    margin: 0 auto;
    font-weight: 400;
    line-height: 1.65;
    position: relative;
}
@media (max-width: 768px) {
    .ae-blog-hero { padding: 64px 20px 56px; }
    .ae-blog-hero h1 { font-size: 30px; }
    .ae-blog-hero p { font-size: 15px; }
}

/* Blog Featured Post (first post on page 1) */
.ae-blog-featured {
    max-width: 1200px;
    margin: 56px auto 0;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: center;
}
.ae-blog-featured-img {
    border-radius: 16px;
    overflow: hidden;
    display: block;
    aspect-ratio: 16/10;
}
.ae-blog-featured-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.ae-blog-featured-img:hover img {
    transform: scale(1.03);
}
.ae-blog-featured-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ae-blog-featured-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.2;
    color: var(--ae-negro);
    margin: 4px 0 8px;
}
.ae-blog-featured-title a {
    color: inherit;
    text-decoration: none;
}
.ae-blog-featured-title a:hover {
    color: var(--ae-primary);
}
.ae-blog-featured-excerpt {
    font-size: 16px;
    line-height: 1.65;
    color: var(--ae-gris);
    margin: 0;
}

/* Blog hero text must be white */
.ae-blog-hero,
.ae-blog-hero h1,
.ae-blog-hero p,
.ae-blog-hero span {
    color: white !important;
}
@media (max-width: 800px) {
    .ae-blog-featured {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 0 20px;
        margin-top: 32px;
    }
    .ae-blog-featured-title { font-size: 22px; }
}

/* Section title between featured and grid */
.ae-blog-section-title {
    max-width: 1200px;
    margin: 48px auto 32px;
    padding: 0 40px;
}
.ae-blog-section-title h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--ae-negro);
    margin: 0 0 8px;
}
.ae-blog-section-line {
    width: 48px;
    height: 3px;
    background: var(--ae-primary);
    border-radius: 2px;
}
@media (max-width: 768px) {
    .ae-blog-section-title { padding: 0 20px; margin: 32px auto 24px; }
}

/* ========================================
   MOBILE MENU (Astra overrides)
   ======================================== */

/* Hamburger icon */
.menu-toggle.main-header-menu-toggle,
.ast-mobile-menu-trigger-minimal {
    color: var(--ae-negro) !important;
    border: none !important;
    background: none !important;
    padding: 8px !important;
    transition: color 0.2s ease;
}
.menu-toggle.main-header-menu-toggle:hover,
.menu-toggle.main-header-menu-toggle:focus {
    color: var(--ae-primary) !important;
}
.menu-toggle .ast-mobile-svg {
    width: 28px !important;
    height: 28px !important;
    fill: currentColor !important;
}

/* Mobile popup/slide menu */
.ast-mobile-header-content,
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
    background: white !important;
    padding: 24px !important;
}

/* Mobile nav links */
.ast-mobile-header-content .main-navigation a,
.ast-builder-menu-mobile .menu-item a,
.ast-mobile-popup-drawer a {
    color: var(--ae-negro) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid #f1f5f9 !important;
    border-radius: 8px !important;
    display: block !important;
    transition: all 0.2s ease !important;
}
.ast-mobile-header-content .main-navigation a:hover,
.ast-builder-menu-mobile .menu-item a:hover,
.ast-mobile-popup-drawer a:hover {
    color: var(--ae-primary) !important;
    background: var(--ae-primary-ultra-light) !important;
}

/* Active menu item */
.ast-mobile-popup-drawer .current-menu-item > a,
.ast-builder-menu-mobile .current-menu-item > a {
    color: var(--ae-primary) !important;
    font-weight: 600 !important;
    background: var(--ae-primary-light) !important;
}

/* Mobile menu close button */
.ast-mobile-popup-close,
.menu-toggle-close {
    color: var(--ae-negro) !important;
    background: none !important;
    border: none !important;
    padding: 12px !important;
    transition: color 0.2s ease !important;
}
.ast-mobile-popup-close:hover {
    color: var(--ae-primary) !important;
}

/* Mobile header bar */
.ast-mobile-header-wrap .ast-primary-header,
.ast-mobile-header-wrap .ast-main-header-bar-alignment {
    background: rgba(255,255,255,0.97) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
}

/* Mobile logo sizing */
@media (max-width: 921px) {
    .ast-mobile-header-wrap .custom-logo-link img,
    .ast-mobile-header-wrap .ae-logo {
        height: 36px !important;
        width: auto !important;
    }
    .ast-mobile-header-wrap .site-primary-header-wrap,
    .ast-mobile-header-wrap .ast-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* Mobile overlay background */
.ast-mobile-popup-drawer .ast-mobile-popup-overlay {
    background: rgba(0,0,0,0.5) !important;
    backdrop-filter: blur(4px) !important;
}

/* Mobile menu header with logo */
.ast-mobile-popup-drawer .ast-mobile-popup-header {
    padding: 16px 20px !important;
    border-bottom: 1px solid #f1f5f9 !important;
    margin-bottom: 8px !important;
}

/* Blog card image placeholder */
.ae-blog-card-img-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #EFF6FF, #DBEAFE);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Blog Grid */
.ae-blog-grid {
    max-width: 1200px;
    margin: 0 auto;
    padding: 16px 40px 60px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}
@media (max-width: 900px) {
    .ae-blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}
@media (max-width: 600px) {
    .ae-blog-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .ae-blog-hero h1 { font-size: 28px; }
    .ae-blog-hero { padding: 40px 16px; }
}

/* Blog Card */
.ae-blog-card {
    background: white;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    display: flex;
    flex-direction: column;
}
.ae-blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.10);
}
.ae-blog-card a {
    text-decoration: none;
    color: inherit;
}
.ae-blog-card-img {
    width: 100%;
    height: 200px;
    overflow: hidden;
}
.ae-blog-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.ae-blog-card:hover .ae-blog-card-img img {
    transform: scale(1.05);
}
.ae-blog-card-body {
    padding: 20px 24px 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.ae-blog-card-category {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ae-primary);
    margin-bottom: 8px;
}
.ae-blog-card-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ae-negro);
    margin: 0 0 12px;
}
.ae-blog-card-title a:hover {
    color: var(--ae-primary);
}
.ae-blog-card-excerpt {
    font-size: 14px;
    line-height: 1.6;
    color: var(--ae-gris);
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ae-blog-card-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
    font-size: 13px;
    color: var(--ae-gris);
}
.ae-blog-card-meta svg {
    flex-shrink: 0;
}
.ae-blog-card-readmore {
    font-weight: 600;
    color: var(--ae-primary);
    font-size: 14px;
    margin-left: auto;
}
.ae-blog-card-readmore:hover {
    text-decoration: underline;
}

/* Single Post Hero */
.ae-post-hero {
    width: 100%;
    height: 520px;
    overflow: hidden;
    position: relative;
}
.ae-post-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.ae-post-hero-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 80px 80px 56px;
    background: linear-gradient(transparent 0%, rgba(0,0,0,0.3) 30%, rgba(0,0,0,0.8) 100%);
    color: white;
}
.ae-post-hero-overlay h1 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 40px;
    font-weight: 800;
    color: white;
    margin: 0 0 16px;
    max-width: 800px;
    line-height: 1.18;
    letter-spacing: -0.3px;
}
.ae-post-hero-meta {
    font-size: 15px;
    opacity: 0.8;
    letter-spacing: 0.3px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ae-post-hero-meta span {
    display: inline-flex;
    align-items: center;
}
@media (max-width: 768px) {
    .ae-post-hero { height: 380px; }
    .ae-post-hero-overlay { padding: 48px 24px 36px; }
    .ae-post-hero-overlay h1 { font-size: 26px; }
    .ae-post-hero-meta { font-size: 13px; }
}

/* Single Post Content */
.ae-post-content {
    max-width: 800px;
    margin: 40px auto;
    padding: 0 20px;
    font-size: 17px;
    line-height: 1.8;
    color: #2D2D2D;
}
/* Hide first H1 in content since hero already shows the title */
.ae-post-content > h1:first-child,
.ae-post-content > h1:first-of-type {
    display: none;
}
.ae-post-content h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--ae-negro);
    margin: 48px 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--ae-primary-light);
}
.ae-post-content h3 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 22px;
    font-weight: 600;
    color: var(--ae-negro);
    margin: 32px 0 12px;
}
.ae-post-content p {
    margin-bottom: 20px;
}
.ae-post-content strong {
    color: var(--ae-negro);
}
.ae-post-content a {
    color: var(--ae-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.ae-post-content a:hover {
    color: var(--ae-primary-hover);
}
.ae-post-content ul, .ae-post-content ol {
    margin: 16px 0 24px 24px;
}
.ae-post-content li {
    margin-bottom: 8px;
}

/* Tables in posts */
.ae-post-content table,
.ae-post-content .ae-table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
    font-size: 15px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}
.ae-post-content table th,
.ae-post-content .ae-table th {
    background: var(--ae-primary);
    color: white;
    padding: 12px 16px;
    text-align: left;
    font-weight: 600;
    font-size: 14px;
}
.ae-post-content table td,
.ae-post-content .ae-table td {
    padding: 10px 16px;
    border-bottom: 1px solid #f0f0f0;
}
.ae-post-content table tr:nth-child(even),
.ae-post-content .ae-table tr:nth-child(even) {
    background: #F8FAFF;
}

/* TOC in posts */
.ae-post-content .ae-toc {
    background: var(--ae-primary-ultra-light);
    border: 1px solid var(--ae-primary-light);
    border-radius: 12px;
    padding: 20px 24px;
    margin: 0 0 32px;
}
.ae-post-content .ae-toc h4 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--ae-negro);
    margin: 0 0 12px;
}
.ae-post-content .ae-toc ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.ae-post-content .ae-toc li {
    margin-bottom: 6px;
    padding-left: 16px;
    position: relative;
}
.ae-post-content .ae-toc li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--ae-primary);
}
.ae-post-content .ae-toc a {
    text-decoration: none;
    font-size: 15px;
}

/* FAQ section in posts */
.ae-post-content .ae-faq-section {
    background: var(--ae-gris-light);
    border-radius: 12px;
    padding: 24px;
    margin: 40px 0;
}
.ae-post-content .ae-faq-section h2 {
    border-bottom: none;
    margin-top: 0;
}
.ae-post-content details {
    background: white;
    border-radius: 8px;
    margin-bottom: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.ae-post-content details summary {
    padding: 16px 20px;
    cursor: pointer;
    font-weight: 600;
    font-size: 16px;
    color: var(--ae-negro);
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ae-post-content details summary::after {
    content: '+';
    font-size: 20px;
    color: var(--ae-primary);
    font-weight: 700;
    flex-shrink: 0;
    margin-left: 12px;
}
.ae-post-content details[open] summary::after {
    content: '−';
}
.ae-post-content details summary::-webkit-details-marker {
    display: none;
}
.ae-post-content details p {
    padding: 0 20px 16px;
    margin: 0;
    color: var(--ae-gris);
    font-size: 15px;
    line-height: 1.7;
}

/* Hide Astra default entry-header on single posts (we use our hero) */
.single-post .entry-header {
    display: none !important;
}
.single-post .entry-content {
    margin: 0 !important;
    padding: 0 !important;
}
/* Hide featured image shown by Astra (we handle it ourselves) */
.single-post .post-thumb-img-content,
.single-post .ast-blog-featured-section {
    display: none !important;
}

/* Blog archive: hide Astra default layout, we use custom */
.blog .ast-article-post,
.archive .ast-article-post,
.category .ast-article-post {
    display: none !important;
}

/* Pagination */
.ae-blog-pagination {
    max-width: 1200px;
    margin: 40px auto 60px;
    padding: 0 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ae-blog-pagination a,
.ae-blog-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 16px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 15px;
    transition: all 0.2s;
    white-space: nowrap;
    text-decoration: none;
}
.ae-blog-pagination .page-numbers:not(.prev):not(.next):not(.dots) {
    width: 44px;
    padding: 0;
}
.ae-blog-pagination a {
    background: white;
    color: var(--ae-negro);
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.ae-blog-pagination a:hover {
    background: var(--ae-primary);
    color: white;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(37,99,235,0.3);
}
.ae-blog-pagination span.current {
    background: var(--ae-primary);
    color: white;
    box-shadow: 0 2px 8px rgba(37,99,235,0.25);
}
.ae-blog-pagination .dots {
    background: none;
    box-shadow: none;
    color: var(--ae-gris);
    min-width: auto;
    padding: 0 4px;
}
.ae-blog-pagination .prev,
.ae-blog-pagination .next {
    font-size: 14px;
    gap: 6px;
    padding: 0 20px;
    background: var(--ae-primary-light);
    color: var(--ae-primary);
    border: 1px solid rgba(37,99,235,0.15);
}
.ae-blog-pagination .prev:hover,
.ae-blog-pagination .next:hover {
    background: var(--ae-primary);
    color: white;
    border-color: var(--ae-primary);
}

/* ============ TASA DE BASURAS: overrides Astra + componentes (tokens --ae-*) ============ */
.single-municipio .site-content>.ast-container,.tax-provincia .site-content>.ast-container,.tax-ccaa .site-content>.ast-container,.home .site-content>.ast-container{max-width:100%!important;padding:0!important;display:block!important}
.single-municipio #primary,.tax-provincia #primary,.tax-ccaa #primary,.home #primary{max-width:100%!important;width:100%!important;float:none!important;margin:0!important;padding:0!important}
.single-municipio #secondary,.tax-provincia #secondary,.tax-ccaa #secondary,.home #secondary{display:none!important}
.single-municipio .entry-header,.single-municipio .ast-archive-description,.single-municipio .ast-single-related-posts-container,.tax-provincia .ast-archive-description{display:none!important}
.single-municipio .entry-content,.tax-provincia .entry-content,.tax-ccaa .entry-content{margin:0!important;padding:0!important}
.single-municipio .post-meta,.single-municipio .entry-meta{display:none!important}

body{font-family:var(--ae-font-body,'Inter',sans-serif)}
.tb-hero h1,.tb-section>h2,.tb-content h3,.tb-stat-n,.tb-card-v{font-family:var(--ae-font-heading,'Plus Jakarta Sans',sans-serif)}

/* HERO */
.tb-hero{background:linear-gradient(135deg,var(--ae-primary,#2563EB) 0%,var(--ae-primary-hover,#1D4ED8) 100%);color:#fff;padding:2.2rem 1.1rem 2.8rem}
.tb-hero-inner{max-width:880px;margin:0 auto}
.tb-breadcrumb{font-size:.8rem;color:rgba(255,255,255,.85);margin-bottom:1rem}
.tb-breadcrumb a{color:rgba(255,255,255,.85);text-decoration:none}.tb-breadcrumb a:hover{color:#fff;text-decoration:underline}
.tb-breadcrumb .tb-current{color:#fff;font-weight:700}
.tb-hero h1{font-size:1.9rem;line-height:1.15;font-weight:800;letter-spacing:-.02em;margin:.3rem 0 .5rem;color:#fff}
.tb-hero-sub{font-size:1.05rem;color:rgba(255,255,255,.95);margin:0;font-weight:500}

/* WRAP + STATS */
.tb-wrap{max-width:880px;margin:0 auto;padding:0 1.1rem 3rem}
.tb-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin:-1.8rem 0 2rem;position:relative;z-index:2}
.tb-stat{background:#fff;border:1px solid var(--ae-gris-light,#F1F5F9);border-radius:var(--ae-radio,16px);padding:1rem 1.1rem;box-shadow:var(--ae-sombra,0 2px 16px rgba(0,0,0,.06))}
.tb-stat-n{display:block;font-size:1.45rem;font-weight:800;color:var(--ae-primary,#2563EB);letter-spacing:-.01em;line-height:1.1}
.tb-stat-l{display:block;font-size:.8rem;color:var(--ae-gris,#64748B);margin-top:.25rem;font-weight:500}

/* LEAD */
.tb-lead{font-size:1.12rem;line-height:1.6;background:var(--ae-primary-light,#EFF6FF);border:1px solid #bfdbfe;border-left:5px solid var(--ae-primary,#2563EB);border-radius:var(--ae-radio,16px);padding:1.1rem 1.3rem;margin:0 0 2rem}
.tb-lead strong{color:var(--ae-primary-hover,#1D4ED8)}

/* SECTIONS */
.tb-section{margin:0 0 2.2rem}
.tb-section>h2{font-size:1.45rem;font-weight:800;letter-spacing:-.01em;margin:0 0 1rem;padding-bottom:.55rem;border-bottom:2px solid var(--ae-gris-light,#F1F5F9);color:var(--ae-negro,#1E293B)}
.tb-content h3{font-size:1.12rem;font-weight:700;margin:1.3rem 0 .5rem;color:var(--ae-negro,#1E293B)}
.tb-content p{margin:.6rem 0;color:#334155}.tb-note{font-size:.85rem;color:var(--ae-gris,#64748B)}

/* AVISO */
.tb-aviso{background:var(--ae-accent-light,#FEF3C7);border:1px solid var(--ae-accent,#F59E0B);color:#92400e;border-radius:12px;padding:1rem 1.2rem;margin:0 0 1.6rem;font-size:.96rem}

/* TABLES */
.tb-table-wrap{overflow-x:auto;border:1px solid var(--ae-gris-light,#F1F5F9);border-radius:12px;margin:.9rem 0}
.tb-content table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:320px}
.tb-content th,.tb-content td{padding:.75rem .95rem;border-bottom:1px solid var(--ae-gris-light,#F1F5F9);text-align:left}
.tb-content thead th{background:var(--ae-gris-light,#F1F5F9);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ae-gris,#64748B)}
.tb-content tbody tr:last-child td{border-bottom:0}.tb-content tbody tr:nth-child(even){background:#fafbfc}

/* CARDS */
.tb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem;margin:.5rem 0}
.tb-card{background:#fff;border:1px solid var(--ae-gris-light,#F1F5F9);border-radius:var(--ae-radio,16px);padding:1.1rem;box-shadow:var(--ae-sombra,0 2px 16px rgba(0,0,0,.06));transition:var(--ae-transicion,all .3s)}
.tb-card:hover{transform:translateY(-3px);box-shadow:var(--ae-sombra-hover,0 8px 30px rgba(0,0,0,.12))}
.tb-card-v{font-size:1.35rem;font-weight:800;color:var(--ae-primary,#2563EB);line-height:1.1}
.tb-card-t{font-size:.92rem;font-weight:700;margin-top:.3rem;color:var(--ae-negro,#1E293B)}
.tb-card-r{font-size:.8rem;color:var(--ae-gris,#64748B);margin-top:.4rem}

/* LISTS / LINKS */
.tb-list{list-style:none;padding:0;margin:.5rem 0}.tb-list li{padding:.55rem 0;border-bottom:1px solid var(--ae-gris-light,#F1F5F9)}.tb-list li:last-child{border-bottom:0}
.tb-content a{color:var(--ae-primary-hover,#1D4ED8)}

/* CHIPS */
.tb-chips{display:flex;flex-wrap:wrap;gap:.55rem}
.tb-chip{display:inline-block;background:var(--ae-primary-light,#EFF6FF);border:1px solid #bfdbfe;border-radius:999px;padding:.5rem 1rem;font-size:.88rem;font-weight:600;color:var(--ae-primary-hover,#1D4ED8);text-decoration:none;transition:var(--ae-transicion,all .3s)}
.tb-chip:hover{background:var(--ae-primary,#2563EB);color:#fff;border-color:var(--ae-primary,#2563EB)}

/* FAQ acordeón */
.tb-faq{border:1px solid var(--ae-gris-light,#F1F5F9);border-radius:12px;margin:.65rem 0;overflow:hidden;background:#fff}
.tb-faq summary{cursor:pointer;padding:1.05rem 1.2rem;font-weight:700;font-size:1rem;list-style:none;position:relative;color:var(--ae-negro,#1E293B)}
.tb-faq summary::-webkit-details-marker{display:none}
.tb-faq summary::after{content:"+";position:absolute;right:1.2rem;top:.85rem;font-size:1.4rem;color:var(--ae-primary,#2563EB);font-weight:400}
.tb-faq[open] summary::after{content:"−"}.tb-faq>div{padding:0 1.2rem 1.15rem;color:#475569}

/* CTA */
.tb-cta{background:linear-gradient(135deg,var(--ae-primary,#2563EB),var(--ae-primary-hover,#1D4ED8));color:#fff;border-radius:var(--ae-radio,16px);padding:1.4rem 1.5rem;margin:1.8rem 0}
.tb-cta p{margin:0}.tb-cta strong{color:#fff}

/* CALC + updated */
.tb-calc{box-shadow:var(--ae-sombra,0 2px 16px rgba(0,0,0,.06));border-color:var(--ae-gris-light,#F1F5F9)!important}
.tb-calc__amount{color:var(--ae-primary,#2563EB)}
.tb-updated{font-size:.82rem;color:var(--ae-gris,#64748B);border-top:1px solid var(--ae-gris-light,#F1F5F9);padding-top:1rem;margin-top:2rem}

/* HUB / PILLAR */
.tb-hub,.tb-pillar{max-width:980px;margin:0 auto;padding:1.8rem 1.1rem 3rem}
.tb-pillar ul{list-style:none;padding:0}.tb-pillar a,.tb-hub a{color:var(--ae-primary-hover,#1D4ED8);text-decoration:none;font-weight:600}

@media (min-width:720px){
  .tb-hero{padding:3rem 1.5rem 3.4rem}.tb-hero h1{font-size:2.6rem}.tb-hero-sub{font-size:1.2rem}
  .tb-stats{grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:-2.2rem}.tb-stat-n{font-size:1.6rem}
  .tb-wrap{padding:0 1.5rem 4rem}.tb-section>h2{font-size:1.7rem}.tb-pillar ul{columns:3}
}

/* ============ CHROME GLOBAL (header/footer SaaS) ============ */
.tb-skip{position:absolute;left:-9999px}.tb-skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:9999;border-radius:8px}
#tb-main{min-height:60vh}
.tb-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--ae-gris-light,#F1F5F9)}
.tb-header-inner{max-width:1180px;margin:0 auto;padding:.7rem 1.1rem;display:flex;align-items:center;gap:1.2rem}
.tb-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ae-negro,#1E293B);font-weight:800}
.tb-logo-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--ae-primary,#2563EB),var(--ae-primary-hover,#1D4ED8));color:#fff}
.tb-logo-txt{font-family:var(--ae-font-heading,'Plus Jakarta Sans');font-size:1.12rem;letter-spacing:-.02em}.tb-logo-txt strong{color:var(--ae-primary,#2563EB)}
.tb-nav{margin-left:auto}
.tb-menu{display:flex;gap:.3rem;list-style:none;margin:0;padding:0}
.tb-menu a{display:block;padding:.5rem .85rem;border-radius:9px;text-decoration:none;color:var(--ae-negro,#1E293B);font-weight:600;font-size:.95rem;transition:.2s}
.tb-menu a:hover{background:var(--ae-primary-light,#EFF6FF);color:var(--ae-primary-hover,#1D4ED8)}
.tb-search{display:flex;align-items:center;background:#fff;border:1px solid var(--ae-gris-light,#e2e8f0);border-radius:999px;padding:.2rem .2rem .2rem .95rem;width:250px;flex:0 0 auto;margin-left:1rem;transition:border-color .2s,box-shadow .2s}
.tb-search:focus-within{border-color:var(--ae-primary,#2563EB);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.tb-search input[type=search]{border:0;background:transparent;outline:0;font-size:.92rem;width:100%;min-width:0;padding:.4rem 0;-webkit-appearance:none}
.tb-search input[type=search]::-webkit-search-cancel-button{display:none}
.tb-search button{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border:0;border-radius:999px;background:var(--ae-primary,#2563EB);color:#fff;cursor:pointer}
.tb-search button:hover{background:var(--ae-primary-hover,#1D4ED8)}
.tb-menu{gap:.15rem}
.tb-burger{display:none;flex-direction:column;gap:4px;background:0;border:0;cursor:pointer;padding:.4rem}
.tb-burger span{width:22px;height:2px;background:var(--ae-negro,#1E293B);border-radius:2px}

.tb-footer{background:var(--ae-negro,#1E293B);color:#cbd5e1;margin-top:3rem}
.tb-footer-inner{max-width:1180px;margin:0 auto;padding:2.6rem 1.1rem 1.6rem;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
.tb-footer-brand p{font-size:.9rem;line-height:1.6;margin-top:.6rem;color:#94a3b8}
.tb-footer .tb-logo-txt{color:#fff}
.tb-footer-col h4{color:#fff;font-size:.95rem;margin:0 0 .8rem}
.tb-footer-col ul{list-style:none;padding:0;margin:0}
.tb-footer-col li{margin:.4rem 0}
.tb-footer-col a{color:#cbd5e1;text-decoration:none;font-size:.9rem}.tb-footer-col a:hover{color:#fff;text-decoration:underline}
.tb-footer-bottom{border-top:1px solid #334155;padding:1.2rem 1.1rem;text-align:center}
.tb-footer-bottom p{max-width:1180px;margin:0 auto;font-size:.8rem;color:#94a3b8}

@media (max-width:860px){
  .tb-header-inner{flex-wrap:wrap;gap:.6rem 1rem}
  .tb-logo{order:1}
  .tb-burger{display:flex;order:2;margin-left:auto}
  .tb-search{display:flex;order:3;flex-basis:100%;max-width:none;margin:0}
  .tb-nav{order:4;flex-basis:100%;margin:0;max-height:0;overflow:hidden;transition:max-height .3s}
  body.tb-menu-open .tb-nav{max-height:80vh}
  .tb-menu{flex-direction:column;padding:.4rem 0;gap:.1rem}
  .tb-menu a{padding:.7rem .4rem;border-bottom:1px solid var(--ae-gris-light,#F1F5F9)}
  .tb-footer-inner{grid-template-columns:1fr 1fr}
}

/* ============ FRONT PAGE (pillar SaaS) ============ */
.tb-home-hero{background:linear-gradient(135deg,var(--ae-primary,#2563EB),var(--ae-primary-hover,#1D4ED8) 60%,#1e3a8a);color:#fff;padding:3.5rem 1.1rem 4rem;text-align:center}
.tb-home-hero h1{font-size:2.1rem;font-weight:800;letter-spacing:-.02em;max-width:760px;margin:0 auto .8rem;color:#fff;line-height:1.15}
.tb-home-hero p{font-size:1.12rem;color:rgba(255,255,255,.92);max-width:620px;margin:0 auto 1.8rem}
.tb-home-search{display:flex;max-width:560px;margin:0 auto;background:#fff;border-radius:999px;padding:.4rem;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.tb-home-search input{flex:1;border:0;outline:0;padding:.7rem 1.2rem;font-size:1rem;background:transparent}
.tb-home-search button{border:0;border-radius:999px;background:var(--ae-primary,#2563EB);color:#fff;font-weight:700;padding:.7rem 1.6rem;cursor:pointer;font-size:1rem}
.tb-home-stats{display:flex;justify-content:center;gap:2.5rem;flex-wrap:wrap;margin-top:2rem;color:#fff}
.tb-home-stats div{text-align:center}.tb-home-stats b{display:block;font-size:1.8rem;font-family:var(--ae-font-heading)}
.tb-home-stats span{font-size:.85rem;color:rgba(255,255,255,.85)}
.tb-home-section{max-width:1100px;margin:0 auto;padding:3rem 1.1rem}
.tb-home-section h2{font-size:1.7rem;font-weight:800;text-align:center;margin:0 0 .5rem;letter-spacing:-.01em}
.tb-home-section .tb-sub{text-align:center;color:var(--ae-gris,#64748B);max-width:640px;margin:0 auto 2rem}
.tb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.tb-tile{display:block;background:#fff;border:1px solid var(--ae-gris-light,#F1F5F9);border-radius:14px;padding:1.2rem;text-decoration:none;color:var(--ae-negro,#1E293B);font-weight:700;box-shadow:var(--ae-sombra);transition:.2s}
.tb-tile:hover{transform:translateY(-3px);box-shadow:var(--ae-sombra-hover);border-color:var(--ae-primary)}
.tb-tile small{display:block;color:var(--ae-gris,#64748B);font-weight:500;font-size:.82rem;margin-top:.2rem}
.tb-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.4rem}
.tb-feature{text-align:center;padding:1rem}
.tb-feature .tb-ico{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;margin:0 auto .8rem;background:var(--ae-primary-light,#EFF6FF);color:var(--ae-primary,#2563EB);font-size:1.6rem}
.tb-feature h3{font-size:1.1rem;margin:0 0 .35rem}.tb-feature p{color:var(--ae-gris,#64748B);font-size:.92rem;margin:0}
.tb-home-alt{background:var(--ae-gris-light,#F1F5F9)}
@media (min-width:720px){.tb-home-hero h1{font-size:3rem}.tb-home-hero{padding:5rem 1.5rem}}

/* ============ HUBS provincia/ccaa ============ */
.tb-hub-hero{background:linear-gradient(135deg,var(--ae-primary,#2563EB),var(--ae-primary-hover,#1D4ED8));color:#fff;padding:2.4rem 1.1rem 2.8rem}
.tb-hub-hero .tb-hero-inner{max-width:1100px}
.tb-hub-hero h1{color:#fff;font-size:1.9rem;font-weight:800;margin:.3rem 0 .4rem}
.tb-hub-hero p{color:rgba(255,255,255,.9);margin:0}
.tb-hub-wrap{max-width:1100px;margin:0 auto;padding:2rem 1.1rem 3rem}
@media (min-width:720px){.tb-hub-hero h1{font-size:2.4rem}}

/* ============ GRÁFICO COMPARATIVO (barras) ============ */
.tb-bars{display:flex;flex-direction:column;gap:.8rem;margin:1rem 0}
.tb-bar{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:.8rem}
.tb-bar-l{font-size:.85rem;font-weight:600;color:var(--ae-gris,#64748B);text-align:right}
.tb-bar-track{background:var(--ae-gris-light,#F1F5F9);border-radius:999px;overflow:hidden;height:34px}
.tb-bar-fill{height:100%;display:flex;align-items:center;justify-content:flex-end;padding:0 .8rem;color:#fff;font-weight:700;font-size:.9rem;background:#94a3b8;border-radius:999px;white-space:nowrap;min-width:fit-content}
.tb-bar-fill.tb-bar-me{background:linear-gradient(90deg,var(--ae-primary,#2563EB),var(--ae-primary-hover,#1D4ED8))}
@media (max-width:560px){.tb-bar{grid-template-columns:90px 1fr}.tb-bar-l{font-size:.75rem}}

/* ============ HOME: ranking + FAQ + trust ============ */
.tb-rank{max-width:760px;margin:0 auto;display:grid;gap:.6rem}
.tb-rank-row{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--ae-gris-light,#F1F5F9);border-radius:12px;padding:.8rem 1.1rem;box-shadow:var(--ae-sombra)}
.tb-rank-pos{font-weight:800;color:var(--ae-primary,#2563EB);width:28px}
.tb-rank-name{font-weight:700;flex:1;text-decoration:none;color:var(--ae-negro,#1E293B)}
.tb-rank-val{font-weight:800;color:var(--ae-negro,#1E293B)}
.tb-home-faq{max-width:760px;margin:0 auto}
.tb-trust{background:var(--ae-primary,#2563EB);color:#fff;text-align:center;padding:2.4rem 1.1rem}
.tb-trust h2{color:#fff}.tb-trust p{max-width:640px;margin:.4rem auto 0;color:rgba(255,255,255,.9)}

.tb-calc--info{background:var(--ae-primary-light,#EFF6FF);border:1px solid #bfdbfe;border-radius:var(--ae-radio,16px);padding:1.1rem 1.3rem}
.tb-calc--info p{margin:0;color:var(--ae-negro,#1E293B)}

/* ============ PULIDO LANDINGS v0.8 ============ */
html{scroll-behavior:smooth}
.tb-content .tb-section>h2,.single-municipio h1{scroll-margin-top:90px}
/* acento a la izquierda de los H2 de sección */
.tb-content .tb-section>h2{position:relative;padding-left:.9rem;border-bottom:none;margin-bottom:1.1rem}
.tb-content .tb-section>h2::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:5px;border-radius:3px;background:linear-gradient(180deg,var(--ae-primary,#2563EB),var(--ae-primary-hover,#1D4ED8))}
.tb-section{padding-bottom:1.6rem;border-bottom:1px solid var(--ae-gris-light,#F1F5F9)}
.tb-section:last-of-type{border-bottom:none}
/* índice navegable */
.tb-toc{background:#fff;border:1px solid var(--ae-gris-light,#F1F5F9);border-radius:14px;padding:1rem 1.1rem;margin:0 0 2rem;box-shadow:var(--ae-sombra)}
.tb-toc-t{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ae-gris,#64748B);margin-bottom:.6rem}
.tb-toc-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.tb-toc-chips a{font-size:.85rem;font-weight:600;color:var(--ae-primary-hover,#1D4ED8);background:var(--ae-primary-light,#EFF6FF);border:1px solid #dbeafe;border-radius:999px;padding:.35rem .8rem;text-decoration:none;transition:.2s}
.tb-toc-chips a:hover{background:var(--ae-primary,#2563EB);color:#fff;border-color:var(--ae-primary,#2563EB)}
/* lead un poco más premium */
.tb-lead{font-size:1.15rem}
/* listas de contenido: flujo normal (NADA de flex/columns en items de texto) */
.tb-content .tb-list,.tb-content ul{column-count:1!important}
.tb-content .tb-list li{display:block}

/* ============ BLOG full-width (igual que el directorio) ============ */
.blog .site-content>.ast-container,.single .site-content>.ast-container,.archive .site-content>.ast-container{max-width:100%!important;padding:0!important;display:block!important}
.blog #primary,.single #primary,.archive #primary{max-width:100%!important;width:100%!important;float:none!important;margin:0!important;padding:0!important}
.blog #secondary,.single #secondary,.archive #secondary{display:none!important}
.blog .ast-archive-description,.single .entry-header,.blog .entry-header{display:none!important}
