/* ===========================================
   JUDITH MARTÍNEZ - FOOTER SEO/GEO v1.4
   COLOR EXACTO DE LA CABECERA + tipo más grande
   3 columnas arriba (Identidad · Terapias · Web)
   Mapa + Contacto a su lado, Garantías abajo
   =========================================== */

:root {
    --jmf-dorado: #b89968;
    --jmf-dorado-dark: #8a6d3b;
    --jmf-bg: #e9d2c2;           /* ← COLOR EXACTO DE LA CABECERA */
    --jmf-bg-soft: #f0dfd0;
    --jmf-text: #2c2c2a;
    --jmf-text-soft: #5a4a3e;
    --jmf-text-mute: #8a7a6e;
    --jmf-border: rgba(138, 109, 59, 0.25);
    --jmf-border-soft: rgba(138, 109, 59, 0.15);
    --jmf-serif: Georgia, 'Times New Roman', 'Playfair Display', serif;
    --jmf-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ============ RESET ROBUSTO ============ */
.jmf-footer {
    background: var(--jmf-bg) !important;
    color: var(--jmf-text) !important;
    font-family: var(--jmf-serif) !important;
    line-height: 1.75 !important;
    padding: 80px 0 0 !important;
    margin-top: 60px !important;
    border-top: 1px solid var(--jmf-border) !important;
    font-size: 17px !important;
    width: 100%;
    overflow-x: hidden;
    position: relative;
}

.jmf-footer::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 100px;
    height: 3px;
    background: var(--jmf-dorado);
}

.jmf-footer *,
.jmf-footer *::before,
.jmf-footer *::after {
    box-sizing: border-box;
}

.jmf-footer h1, .jmf-footer h2, .jmf-footer h3, .jmf-footer h4,
.jmf-footer h5, .jmf-footer h6, .jmf-footer p, .jmf-footer ul,
.jmf-footer li, .jmf-footer span, .jmf-footer a, .jmf-footer address,
.jmf-footer div {
    letter-spacing: normal !important;
    word-spacing: normal !important;
    text-shadow: none !important;
}

.jmf-footer h1, .jmf-footer h2, .jmf-footer h3, .jmf-footer h4,
.jmf-footer p, .jmf-footer ul, .jmf-footer li, .jmf-footer address {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.jmf-footer a {
    color: var(--jmf-text-soft) !important;
    text-decoration: none !important;
    transition: color 0.25s ease !important;
}

.jmf-footer a:hover,
.jmf-footer a:focus {
    color: var(--jmf-dorado-dark) !important;
    text-decoration: none !important;
}

.jmf-footer .jmf-footer-container {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
    width: 100% !important;
}

/* ============ FILA SUPERIOR: 3 COLUMNAS ============ */
.jmf-footer .jmf-footer-grid {
    display: grid !important;
    grid-template-columns: 1.4fr 1fr 1fr !important;
    gap: 50px !important;
    padding: 0 0 56px !important;
    border-bottom: 1px solid var(--jmf-border-soft) !important;
    align-items: start;
}

.jmf-footer .jmf-col {
    min-width: 0 !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* ============ COLUMNA 1: IDENTIDAD ============ */
.jmf-footer .jmf-brand {
    font-family: var(--jmf-serif) !important;
    font-weight: 400 !important;
    font-size: 32px !important;
    color: var(--jmf-text) !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    line-height: 1.35 !important;
    font-style: italic !important;
}

.jmf-footer .jmf-tagline {
    color: var(--jmf-text-soft) !important;
    font-size: 16px !important;
    line-height: 1.8 !important;
    margin: 0 0 30px !important;
    padding: 0 !important;
    font-family: var(--jmf-serif) !important;
    font-weight: 400 !important;
}

.jmf-footer .jmf-tagline strong {
    color: var(--jmf-text) !important;
    font-weight: 600 !important;
    font-size: 17px !important;
}

.jmf-footer .jmf-tagline em {
    color: var(--jmf-dorado-dark) !important;
    font-style: italic !important;
    font-size: 15px !important;
}

/* ============ SECTION TITLES ============ */
.jmf-footer .jmf-section-title {
    font-family: var(--jmf-serif) !important;
    font-style: italic !important;
    color: var(--jmf-dorado-dark) !important;
    font-size: 14px !important;
    letter-spacing: 2.8px !important;
    text-transform: uppercase !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    line-height: 1.6 !important;
    font-weight: 500 !important;
}

.jmf-footer .jmf-section-title-social {
    margin-top: 32px !important;
    margin-bottom: 16px !important;
}

/* ============ AUTORIDAD ============ */
.jmf-footer .jmf-authority-list {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.jmf-footer .jmf-authority-list li {
    margin: 0 0 12px !important;
    padding: 0 !important;
    list-style: none !important;
    line-height: 1.5 !important;
}

.jmf-footer .jmf-authority-list a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    font-size: 14px !important;
    color: var(--jmf-text-soft) !important;
    padding: 9px 18px !important;
    background: #fff !important;
    border: 1px solid var(--jmf-border) !important;
    border-radius: 30px !important;
    transition: all 0.25s ease !important;
    font-family: var(--jmf-sans) !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
    font-weight: 500 !important;
}

.jmf-footer .jmf-authority-list a:hover {
    background: var(--jmf-dorado) !important;
    border-color: var(--jmf-dorado) !important;
    color: #fff !important;
    transform: translateX(3px);
    box-shadow: 0 4px 12px rgba(184, 153, 104, 0.25);
}

.jmf-footer .jmf-authority-list a:hover .jmf-auth-badge {
    color: #fff !important;
}

.jmf-footer .jmf-auth-badge {
    color: var(--jmf-dorado) !important;
    font-size: 14px !important;
    line-height: 1 !important;
    transition: color 0.25s ease !important;
}

/* ============ COLUMNAS DE ENLACES (Terapias / Web) ============ */
.jmf-footer .jmf-link-list {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.jmf-footer .jmf-link-list li {
    margin: 0 0 14px !important;
    padding: 0 !important;
    list-style: none !important;
    line-height: 1.6 !important;
}

.jmf-footer .jmf-link-list a {
    font-size: 16px !important;
    color: var(--jmf-text-soft) !important;
    line-height: 1.6 !important;
    display: inline-block !important;
    position: relative;
    padding-left: 0 !important;
    transition: padding-left 0.25s ease, color 0.25s ease !important;
    font-family: var(--jmf-serif) !important;
    text-decoration: none !important;
}

.jmf-footer .jmf-link-list a::before {
    content: '→';
    opacity: 0;
    color: var(--jmf-dorado);
    margin-right: 6px;
    transition: opacity 0.25s ease;
    position: absolute;
    left: -16px;
    top: 0;
}

.jmf-footer .jmf-link-list a:hover {
    color: var(--jmf-dorado-dark) !important;
    padding-left: 14px !important;
}

.jmf-footer .jmf-link-list a:hover::before {
    opacity: 1;
    left: 0;
}

.jmf-footer .jmf-cta-link {
    color: var(--jmf-dorado-dark) !important;
    font-weight: 600 !important;
}

/* ============ REDES SOCIALES ============ */
.jmf-footer .jmf-social {
    display: flex !important;
    gap: 14px !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
}

.jmf-footer .jmf-social a {
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff !important;
    border: 1px solid var(--jmf-border) !important;
    border-radius: 50% !important;
    color: var(--jmf-dorado-dark) !important;
    transition: all 0.25s ease !important;
    padding: 0 !important;
    text-decoration: none !important;
    line-height: 1 !important;
}

.jmf-footer .jmf-social a:hover {
    background: var(--jmf-dorado) !important;
    border-color: var(--jmf-dorado) !important;
    color: #fff !important;
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(184, 153, 104, 0.25);
}

.jmf-footer .jmf-social svg {
    display: block;
    width: 20px;
    height: 20px;
}

/* ============ FILA MAPA + CONTACTO ============ */
.jmf-footer .jmf-footer-map-row {
    display: grid !important;
    grid-template-columns: 1.2fr 1fr !important;
    gap: 50px !important;
    padding: 56px 0 !important;
    border-bottom: 1px solid var(--jmf-border-soft) !important;
    align-items: center !important;
}

/* MAPA */
.jmf-footer .jmf-map-wrapper {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--jmf-border);
    aspect-ratio: 2 / 1;
    background: var(--jmf-bg-soft);
    box-shadow: 0 8px 28px rgba(138, 109, 59, 0.12);
}

.jmf-footer .jmf-map-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    position: relative;
    text-decoration: none !important;
}

.jmf-footer .jmf-map-svg {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    transition: transform 0.4s ease;
}

.jmf-footer .jmf-map-link:hover .jmf-map-svg {
    transform: scale(1.03);
}

.jmf-footer .jmf-map-overlay {
    position: absolute !important;
    bottom: 18px !important;
    left: 18px !important;
    background: #fff !important;
    color: var(--jmf-text) !important;
    padding: 11px 20px !important;
    border-radius: 30px !important;
    font-family: var(--jmf-sans) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    transition: all 0.25s ease !important;
    line-height: 1.4 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    letter-spacing: 0.3px;
}

.jmf-footer .jmf-map-link:hover .jmf-map-overlay {
    background: var(--jmf-dorado) !important;
    color: #fff !important;
    transform: translateY(-2px);
}

.jmf-footer .jmf-map-pin {
    font-size: 15px !important;
    line-height: 1 !important;
}

/* CONTACTO AL LADO DEL MAPA */
.jmf-footer .jmf-contact-block {
    min-width: 0 !important;
    word-wrap: break-word;
}

.jmf-footer .jmf-contact-link {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    color: var(--jmf-text-soft) !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    font-style: normal !important;
    font-family: var(--jmf-serif) !important;
    text-decoration: none !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
}

.jmf-footer .jmf-contact-link:hover {
    color: var(--jmf-dorado-dark) !important;
}

.jmf-footer .jmf-contact-link .jmf-contact-text {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    line-height: 1.65 !important;
}

.jmf-footer .jmf-email-link .jmf-contact-text {
    font-size: 14px !important;
}

.jmf-footer .jmf-icon {
    color: var(--jmf-dorado) !important;
    font-size: 16px !important;
    flex-shrink: 0 !important;
    min-width: 20px !important;
    line-height: 1.6 !important;
}

.jmf-footer .jmf-hours {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    color: var(--jmf-text-mute) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    margin: 20px 0 0 !important;
    padding: 16px 0 0 !important;
    border-top: 1px solid var(--jmf-border-soft) !important;
    font-style: italic !important;
    font-family: var(--jmf-serif) !important;
}

/* ============ BLOQUE GARANTÍAS (debajo del mapa) ============ */
.jmf-footer .jmf-trust-row {
    padding: 40px 0 !important;
    border-bottom: 1px solid var(--jmf-border-soft) !important;
    text-align: center !important;
}

.jmf-footer .jmf-trust-row .jmf-section-title {
    margin-bottom: 24px !important;
}

.jmf-footer .jmf-trust-list {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 24px 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.jmf-footer .jmf-trust-list li {
    color: var(--jmf-text-soft) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    font-family: var(--jmf-serif) !important;
}

.jmf-footer .jmf-trust-list strong {
    color: var(--jmf-text) !important;
    font-weight: 600 !important;
}

/* ============ BANDA INFERIOR LEGAL ============ */
.jmf-footer .jmf-footer-bottom {
    padding: 28px 0 32px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
}

.jmf-footer .jmf-copyright {
    color: var(--jmf-text-mute) !important;
    font-size: 13px !important;
    font-family: var(--jmf-sans) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.5 !important;
}

.jmf-footer .jmf-legal-list {
    display: flex !important;
    gap: 26px !important;
    flex-wrap: wrap !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.jmf-footer .jmf-legal-list li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    line-height: 1.5 !important;
}

.jmf-footer .jmf-legal-list a {
    color: var(--jmf-text-mute) !important;
    font-size: 13px !important;
    font-family: var(--jmf-sans) !important;
    transition: color 0.25s ease !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
}

.jmf-footer .jmf-legal-list a:hover {
    color: var(--jmf-dorado-dark) !important;
}

/* ============ RESPONSIVE ============ */
@media (max-width: 980px) {
    .jmf-footer .jmf-footer-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 36px !important;
    }
    .jmf-footer .jmf-col-identity {
        grid-column: 1 / -1 !important;
    }
    .jmf-footer .jmf-footer-map-row {
        grid-template-columns: 1fr !important;
        gap: 36px !important;
    }
}

@media (max-width: 600px) {
    .jmf-footer {
        padding: 60px 0 0 !important;
        margin-top: 40px !important;
        font-size: 15px !important;
    }
    .jmf-footer .jmf-footer-grid {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
        padding-bottom: 44px !important;
    }
    .jmf-footer .jmf-col-identity {
        grid-column: auto !important;
    }
    .jmf-footer .jmf-footer-map-row {
        padding: 40px 0 !important;
        gap: 36px !important;
    }
    .jmf-footer .jmf-trust-row {
        padding: 32px 0 !important;
    }
    .jmf-footer .jmf-trust-list {
        gap: 16px 24px !important;
    }
    .jmf-footer .jmf-footer-bottom {
        flex-direction: column !important;
        text-align: center !important;
        gap: 12px !important;
    }
    .jmf-footer .jmf-legal-list {
        justify-content: center !important;
        gap: 18px !important;
    }
    .jmf-footer .jmf-brand {
        font-size: 26px !important;
    }
    .jmf-footer .jmf-map-wrapper {
        aspect-ratio: 16 / 9;
    }
    .jmf-footer .jmf-email-link .jmf-contact-text {
        font-size: 13px !important;
    }
}
