.cw-site-footer {
    --cw-footer-bg: var(--cw-pf-background, #FFFFFF);
    --cw-footer-text: var(--cw-pf-text, var(--e-global-color-text, #333333));
    --cw-footer-muted: var(--cw-pf-muted, color-mix(in srgb, var(--cw-footer-text) 65%, transparent));
    --cw-footer-accent: var(--cw-pf-primary, var(--e-global-color-primary, #00CFAB));
    --cw-footer-border: var(--cw-pf-border, color-mix(in srgb, var(--cw-footer-text) 13%, transparent));
    --cw-footer-px: 24px;
    --cw-footer-spacing: clamp(35px, 4vw, 50px);
    --cw-footer-heading-size: 12px;
    position: relative;
    z-index: 10;
    overflow: hidden;
    padding: var(--cw-footer-spacing) var(--cw-footer-px) 28px;
    background: var(--cw-footer-bg);
    color: var(--cw-footer-text);
    font-family: var(--e-global-typography-primary-font-family, inherit);
    transition: background-color .35s ease, color .35s ease;
}




[data-theme="dark"] .cw-site-footer {
    --cw-footer-bg: var(--cw-pf-background, #10282A);
    --cw-footer-text: var(--cw-pf-text, var(--e-global-color-text, #F3F7F7));
    --cw-footer-muted: var(--cw-pf-muted, color-mix(in srgb, var(--cw-footer-text) 68%, transparent));
    --cw-footer-border: var(--cw-pf-border, color-mix(in srgb, var(--cw-footer-text) 15%, transparent));
}

body.cw-footer-replaces-elementor>.elementor-location-footer,
body.cw-footer-replaces-elementor .elementor-location-footer:not(#cwFooter) {
    display: none !important;
}

/* TOP CONTAINER (Horizontal Bar) */
.cw-footer-top-container,
.cw-footer-main-container,
.cw-footer-bottom {
    position: relative;
    z-index: 1;
    width: min(var(--cw-footer-max-w, 1300px), 100%);
    margin-inline: auto;
}

/* FORMACIÓN + COLABORACIONES
   Brand board de una sola pieza. La escala se normaliza ópticamente en los
   propios assets: todos comparten un lienzo 180×74 y una presencia percibida
   equivalente, sin deformar ni recolorear ninguna marca. */
.cw-footer-credentials {
    --cw-credentials-ink: #193033;
    --cw-credentials-muted: rgba(25,48,51,.58);
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 220px);
    gap: clamp(38px, 4.2vw, 64px);
    width: min(var(--cw-footer-max-w, 1300px), 100%);
    margin: 0 auto clamp(40px, 4vw, 54px);
    padding: clamp(8px, 1vw, 12px) 0 0;
    background: #fff;
    color: var(--cw-credentials-ink);
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
/* En oscuro se conserva una única superficie neutra para respetar los colores
   corporativos originales. No se crean diez tarjetas ni se invierten logos. */
[data-theme="dark"] .cw-footer-credentials {
    margin-top: 0;
    padding: clamp(28px, 3vw, 36px);
    border-radius: 24px;
    background: #fff;
}
.cw-footer-credentials-group { min-width: 0; }
.cw-footer-credentials-heading {
    margin: 0 0 clamp(20px, 2vw, 26px);
    min-width: 0;
}
#cwFooter .cw-footer-credentials-title {
    margin: 0 !important;
    color: var(--cw-credentials-ink) !important;
    font: inherit !important;
    font-size: clamp(21px, 1.45vw, 25px) !important;
    font-weight: 720 !important;
    line-height: 1.08 !important;
    letter-spacing: -.025em !important;
    text-transform: none !important;
}
.cw-footer-logo-matrix {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    justify-items: center;
    gap: clamp(20px, 2.1vw, 28px) clamp(16px, 1.8vw, 24px);
    min-width: 0;
}
.cw-footer-logo-cell {
    display: grid;
    place-items: center;
    width: 100%;
    min-width: 0;
    height: 78px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}
.cw-footer-logo-cell::before,
.cw-footer-logo-cell::after { display: none !important; }
.cw-footer-logo-cell img {
    display: block;
    width: 180px;
    height: 74px;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
}
.cw-footer-credentials-group--collaborations { min-width: 0; }
.cw-footer-logo-matrix--collaborations {
    grid-template-columns: 1fr;
    gap: 18px;
}
.cw-footer-logo-matrix--collaborations .cw-footer-logo-cell {
    height: 78px;
}
.cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img {
    width: 180px;
    height: 74px;
    max-width: 100%;
}

.cw-footer-top-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    padding-bottom: clamp(30px, 4vw, 45px);
    margin-bottom: clamp(30px, 4vw, 45px);
    border-bottom: 1px solid var(--cw-footer-border);
}

.cw-footer-brand-area {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    max-width: 450px;
}

.cw-footer-social {
    display: flex;
    gap: 10px;
    margin-top: 5px;
}


.cw-footer-social-link {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid var(--cw-footer-border);
    border-radius: 50%;
    background: color-mix(in srgb, var(--cw-footer-bg) 75%, transparent);
    color: var(--cw-footer-text);
    transition: transform .25s cubic-bezier(.16, 1, .3, 1), background .25s ease, color .25s ease, border-color .25s ease;
}

.cw-footer-social-link:hover {
    transform: translateY(-4px);
    border-color: var(--cw-footer-accent);
    background: var(--cw-footer-accent);
    color: #fff;
}

.cw-footer-social-link svg {
    width: 18px;
    height: 18px;
}

.cw-footer-main-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: clamp(26px, 3vw, 42px);
}

.cw-footer-col {
    flex: 1 1 160px;
    min-width: 140px;
}

.cw-footer-contact-col {
    flex: 1.2 1 200px;
}

.cw-footer-col3-col {
    flex: 1.4 1 230px;
}

.cw-footer-schedule {
    flex: 1.1 1 180px;
}



.cw-footer-heading-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.cw-footer-heading-row .cw-footer-heading {
    margin-bottom: 0;
}

/* Footer headings are an internal component style, never site H2 typography.
   The explicit selector + !important values intentionally beat Elementor Global
   Heading rules without leaking outside #cwFooter. */
#cwFooter h2.cw-footer-heading,
#cwFooter .cw-footer-heading {
    margin: 0 0 20px !important;
    color: var(--cw-footer-text) !important;
    font-family: inherit !important;
    font-size: var(--cw-footer-heading-size, 12px) !important;
    font-style: normal !important;
    font-weight: 760 !important;
    letter-spacing: .11em !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}

.cw-footer-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cw-footer-list-link {
    color: var(--cw-footer-text) !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: color .2s ease, transform .2s ease;
}

.cw-footer-list-link:hover {
    color: var(--cw-footer-accent) !important;
    transform: translateX(4px);
}

.cw-footer-list-link svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--cw-footer-accent);
}

/* SCHEDULE */
.cw-dynamic-schedule-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
}

.cw-sched-status-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    flex-shrink: 0;
}

.cw-sched-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--cw-footer-muted);
}

.cw-sched-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #fff;
    margin-top: -15px;
}

.cw-sched-badge.is-open {
    background: var(--cw-footer-open-bg, #22c55e);
}

.cw-sched-badge.is-closed {
    background: var(--cw-footer-closed-bg, #ef4444);
}

.cw-sched-badge i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.3);
    animation: cw-pulse 2s 5;
}

.cw-sched-hint {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--cw-footer-text);
    margin-top: 4px;
}

.cw-footer-hours {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    flex: 1 1 auto;
    min-width: 220px;
}

.cw-footer-hours-row {
    display: flex;
    justify-content: space-between;
    font-size: 13.5px;
    color: var(--cw-footer-muted);
    border-bottom: 1px dashed var(--cw-footer-border);
    padding-bottom: 6px;
}

.cw-footer-hours-row dt {
    font-weight: 500;
}

.cw-footer-hours-row dd {
    margin: 0;
    font-weight: 600;
}

.cw-footer-hours-row.is-today {
    color: var(--cw-footer-text);
    font-weight: 700;
}

.cw-footer-hours-row.is-today dt:before {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    margin: 0 6px 2px 0;
    border-radius: 50%;
    background: var(--cw-footer-accent);
}

/* IMAGES */
.cw-footer-images-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
    align-items: flex-start;
}

.cw-footer-images-grid a {
    display: block;
    transition: transform .25s cubic-bezier(.16, 1, .3, 1), opacity .25s ease;
}

.cw-footer-images-grid a:hover {
    transform: translateY(-3px) scale(1.02);
    opacity: 0.95;
}

.cw-footer-img {
    display: block;
    max-width: 100%;
    max-height: 90px;
    height: auto;
    width: auto;
    object-fit: contain;
    transition: transform .3s ease;
}


/* BOTTOM CONTAINER */
.cw-footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    margin-top: clamp(36px, 5vw, 60px);
    padding-top: 25px;
    color: var(--cw-footer-muted);
    font-size: 12px;
}

.cw-footer-bottom::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(1300px, 100%);
    border-top: 1px solid var(--cw-footer-border);
    pointer-events: none;
}


.cw-footer-bottom a {
    color: var(--cw-footer-text);
    text-decoration: none;
    font-weight: 600;
}

.cw-footer-bottom a:hover {
    color: var(--cw-footer-accent);
}

/* RESPONSIVE */
@media (min-width: 761px) and (max-width: 1050px) {
    .cw-footer-credentials { grid-template-columns: minmax(0, 1fr) 190px; gap: 30px; padding: 28px; }
    .cw-footer-logo-matrix { gap: 12px 16px; }
    .cw-footer-logo-cell { height: 64px; }
    .cw-footer-logo-cell img,
    .cw-footer-logo-cell.is-square img,
    .cw-footer-logo-cell.is-compact img,
    .cw-footer-logo-cell.is-wide img { width: 156px; height: 52px; }
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell { height: 78px; }
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img { width: 174px; height: 58px; }
}
@media (max-width: 760px) {
    .cw-footer-credentials {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 22px 18px;
        border-radius: 20px;
    }
    .cw-footer-credentials-heading { margin-bottom: 18px; text-align: left; }
    .cw-footer-credentials-heading p { max-width: 42ch; text-align: left; }
    #cwFooter .cw-footer-credentials-title { max-width: none; }
    .cw-footer-logo-matrix { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
    .cw-footer-logo-cell { height: 62px; }
    .cw-footer-logo-cell img,
    .cw-footer-logo-cell.is-square img,
    .cw-footer-logo-cell.is-compact img,
    .cw-footer-logo-cell.is-wide img { width: 150px; height: 50px; }
    .cw-footer-logo-matrix--collaborations { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell { height: 70px; }
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img { width: 162px; height: 54px; }
    .cw-site-footer {
        --cw-footer-px: 20px;
        padding: var(--cw-footer-spacing) var(--cw-footer-px) 24px;
    }

    .cw-footer-col3-col {
        flex: unset;
    }

    .cw-footer-col,
    .cw-footer-contact-col,
    .cw-footer-schedule {
        flex: unset;
    }

    .cw-footer-main-container {
        flex-direction: column;
        gap: 35px;
    }

    .cw-footer-col {
        text-align: center;
        align-items: center;
    }

    .cw-footer-social {
        justify-content: center;
    }

    .cw-footer-list {
        align-items: center;
    }

    .cw-footer-contact-list {
        align-items: center;
    }

    .cw-footer-list-link {
        justify-content: center;
    }

    .cw-dynamic-schedule-container {
        align-items: center;
    }

    .cw-sched-status-container {
        align-items: center;
    }

    .cw-footer-hours-row {
        flex-direction: column;
        gap: 4px;
        align-items: center;
    }

    .cw-footer-images-grid {
        align-items: center;
        justify-content: center;
    }

    .cw-footer-bottom {
        align-items: center;
        flex-direction: column;
        text-align: center;
        gap: 12px;
    }
}

@media (max-width: 420px) {
    .cw-footer-logo-matrix { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cw-footer-logo-cell { height: 58px; }
    .cw-footer-logo-matrix--collaborations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    .cw-site-footer * {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}
.cw-footer-list-static {
    cursor: default;
}


/* v1.1.53 · responsive del brand board */
@media (max-width: 980px) {
    .cw-footer-credentials {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .cw-footer-logo-matrix { grid-template-columns: repeat(4, minmax(0,1fr)); }
    .cw-footer-logo-matrix--collaborations {
        grid-template-columns: repeat(2, minmax(0,1fr));
        max-width: 420px;
    }
}
@media (max-width: 680px) {
    .cw-footer-credentials {
        gap: 30px;
        padding-top: 4px;
    }
    [data-theme="dark"] .cw-footer-credentials {
        padding: 24px 18px;
        border-radius: 20px;
    }
    .cw-footer-logo-matrix {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 18px 12px;
    }
    .cw-footer-logo-cell,
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell { height: 72px; }
    .cw-footer-logo-cell img,
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img {
        width: 170px;
        height: 70px;
    }
    .cw-footer-logo-matrix--collaborations {
        grid-template-columns: repeat(2, minmax(0,1fr));
        max-width: none;
    }
}

/* ========================================================================
   v1.1.55 · Formación + colaboraciones · fieldset editorial
   Dos grupos claros y armónicos, sin divisiones internas. Los títulos cortan
   la línea superior como un legend, con la misma lógica óptica en ambos.
   ======================================================================== */
.cw-footer-credentials{
    --cw-credential-panel-bg: var(--cw-footer-bg);
    --cw-credential-panel-ink: var(--cw-footer-text);
    display:grid!important;
    grid-template-columns:minmax(0,4fr) minmax(220px,1.18fr)!important;
    align-items:stretch!important;
    gap:clamp(20px,2.2vw,28px)!important;
    width:min(var(--cw-footer-max-w,1300px),100%)!important;
    margin:0 auto clamp(44px,4vw,56px)!important;
    padding:22px 0 0!important;
    background:transparent!important;
    color:var(--cw-credential-panel-ink)!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
}
.cw-footer-credentials-group{
    position:relative!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:clamp(30px,2.6vw,38px) clamp(22px,2.2vw,30px) clamp(24px,2.2vw,30px)!important;
    border:1px solid color-mix(in srgb,var(--cw-footer-text) 12%,transparent)!important;
    border-radius:22px!important;
    background:var(--cw-credential-panel-bg)!important;
    box-shadow:none!important;
}
.cw-footer-credentials-heading{
    position:absolute!important;
    z-index:2!important;
    top:0!important;
    left:50%!important;
    transform:translate(-50%,-50%)!important;
    width:max-content!important;
    max-width:calc(100% - 44px)!important;
    margin:0!important;
    padding:0 14px!important;
    text-align:center!important;
    background:var(--cw-credential-panel-bg)!important;
}
#cwFooter .cw-footer-credentials-title{
    margin:0!important;
    color:var(--cw-credential-panel-ink)!important;
    font-family:inherit!important;
    font-size:clamp(20px,1.4vw,25px)!important;
    font-weight:720!important;
    line-height:1.08!important;
    letter-spacing:-.025em!important;
    text-transform:none!important;
    white-space:nowrap!important;
}
.cw-footer-logo-matrix{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:center!important;
    justify-items:center!important;
    gap:clamp(16px,1.5vw,22px) clamp(12px,1.4vw,20px)!important;
    width:100%!important;
    min-width:0!important;
}
.cw-footer-logo-cell,
.cw-footer-logo-matrix--collaborations .cw-footer-logo-cell{
    display:grid!important;
    place-items:center!important;
    width:100%!important;
    height:74px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
}
.cw-footer-logo-cell::before,
.cw-footer-logo-cell::after{display:none!important}
.cw-footer-logo-cell img,
.cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img{
    display:block!important;
    width:176px!important;
    height:72px!important;
    max-width:100%!important;
    object-fit:contain!important;
    object-position:center!important;
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    transition:none!important;
}
.cw-footer-credentials-group--collaborations{
    min-width:0!important;
}
.cw-footer-logo-matrix--collaborations{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:repeat(2,minmax(74px,1fr))!important;
    align-content:center!important;
    gap:14px!important;
    width:100%!important;
    height:100%!important;
}

/* Los logotipos son multicolor. En oscuro se conserva una superficie clara
   única por grupo para mantener intacta la identidad de cada marca. */
[data-theme="dark"] .cw-footer-credentials{
    --cw-credential-panel-bg:#f8fbfb;
    --cw-credential-panel-ink:#193033;
    padding-top:22px!important;
    border-radius:0!important;
    background:transparent!important;
}
[data-theme="dark"] .cw-footer-credentials-group{
    border-color:rgba(25,48,51,.12)!important;
}

@media (max-width:1050px){
    .cw-footer-credentials{
        grid-template-columns:minmax(0,1fr) minmax(190px,230px)!important;
        gap:20px!important;
    }
    .cw-footer-logo-cell img,
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img{
        width:158px!important;
        height:66px!important;
    }
}
@media (max-width:820px){
    .cw-footer-credentials{
        grid-template-columns:1fr!important;
        gap:34px!important;
    }
    .cw-footer-credentials-group{
        padding:32px 20px 24px!important;
    }
    .cw-footer-logo-matrix--collaborations{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        grid-template-rows:1fr!important;
        height:auto!important;
        gap:12px!important;
    }
}
@media (max-width:560px){
    .cw-footer-credentials{
        padding-top:18px!important;
        gap:30px!important;
    }
    .cw-footer-credentials-group{
        border-radius:18px!important;
        padding:30px 16px 20px!important;
    }
    #cwFooter .cw-footer-credentials-title{
        font-size:20px!important;
    }
    .cw-footer-logo-matrix{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:12px 8px!important;
    }
    .cw-footer-logo-cell,
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell{
        height:64px!important;
    }
    .cw-footer-logo-cell img,
    .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img{
        width:150px!important;
        height:60px!important;
    }
    .cw-footer-logo-matrix--collaborations{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }
}


/* ==========================================================================
   v1.1.57 · Cómo llegar integrado + retícula homogénea del footer
   Sin card independiente: mapa y transporte comparten el mismo ritmo visual
   del resto del footer. El footer principal usa una retícula estable en PC y
   2×2 en móvil/tablet para evitar columnas demasiado separadas o infinitas.
   ========================================================================== */

.cw-footer-directions{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(440px,1.08fr);
    align-items:stretch;
    gap:clamp(34px,4vw,58px);
    width:min(var(--cw-footer-max-w,1300px),100%);
    margin:0 auto clamp(46px,4.5vw,62px);
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:var(--cw-footer-text);
    overflow:visible;
}
.cw-footer-directions-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:clamp(26px,3vw,36px);
    padding:clamp(6px,1vw,10px) 0;
}
.cw-footer-directions-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
}
#cwFooter .cw-footer-directions-title{
    margin:0 0 11px!important;
    color:var(--cw-footer-text)!important;
    font-family:inherit!important;
    font-size:clamp(25px,1.9vw,31px)!important;
    font-weight:730!important;
    line-height:1.05!important;
    letter-spacing:-.028em!important;
    text-transform:none!important;
}
.cw-footer-directions-address{
    display:inline-flex;
    align-items:center;
    gap:9px;
    max-width:100%;
    margin:0;
    color:var(--cw-footer-muted)!important;
    text-decoration:none!important;
    font-size:13.5px;
    font-weight:560;
    line-height:1.4;
}
a.cw-footer-directions-address:hover{color:var(--cw-footer-text)!important}
.cw-footer-directions-icon{
    display:grid;
    place-items:center;
    width:28px;
    height:28px;
    flex:0 0 28px;
    border-radius:50%;
    background:color-mix(in srgb,var(--cw-footer-accent) 9%,transparent);
    color:var(--cw-footer-accent);
}
.cw-footer-directions-icon svg{width:15px;height:15px}

.cw-footer-transit{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:clamp(26px,3vw,40px);
}
.cw-footer-transit-group{min-width:0}
.cw-footer-transit-label{
    display:flex;
    align-items:center;
    gap:9px;
    margin:0 0 12px;
    color:var(--cw-footer-text);
    font-size:11px;
    font-weight:800;
    letter-spacing:.095em;
    line-height:1;
    text-transform:uppercase;
}
.cw-footer-transit-icon{
    display:grid;
    place-items:center;
    width:25px;
    height:25px;
    flex:0 0 25px;
    border-radius:7px;
    background:var(--cw-footer-accent);
    color:#fff;
    font-size:11px;
    font-weight:850;
    letter-spacing:0;
}
.cw-footer-transit-icon--bus{
    background:color-mix(in srgb,var(--cw-footer-accent) 10%,transparent);
    color:var(--cw-footer-accent);
}
.cw-footer-transit-icon--bus svg{width:14px;height:14px}
.cw-footer-metro-list{display:grid;gap:10px}
.cw-footer-metro-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:baseline;
    gap:12px;
    min-width:0;
    font-size:13px;
    line-height:1.35;
}
.cw-footer-metro-row strong{
    min-width:0;
    color:var(--cw-footer-text);
    font-weight:650;
}
.cw-footer-metro-row>span{
    color:var(--cw-footer-muted);
    font-size:12px;
    font-weight:560;
    white-space:nowrap;
}
.cw-footer-transit-note{
    margin:0 0 6px;
    color:var(--cw-footer-muted);
    font-size:12px;
    font-weight:520;
    line-height:1.45;
}
.cw-footer-bus-lines{
    margin:0;
    color:var(--cw-footer-text);
    font-size:13px;
    font-weight:600;
    line-height:1.58;
}

/* Exactamente el mismo motor visual de CW Botón Premium. */
.cw-footer-map-cta.cw-el-btn{
    --cw-icon-transition:360ms;
    flex:0 0 auto;
    min-height:46px!important;
    gap:5px!important;
    padding:12px 22px!important;
    border:1px solid transparent!important;
    border-radius:999px!important;
    background:var(--cw-footer-accent)!important;
    color:#fff!important;
    box-shadow:none!important;
    font-size:12px!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:.035em!important;
    text-transform:none!important;
}
.cw-footer-map-cta.cw-el-btn:hover,
.cw-footer-map-cta.cw-el-btn:focus-visible{
    border-color:transparent!important;
    background:color-mix(in srgb,var(--cw-footer-accent) 91%,var(--cw-footer-text) 9%)!important;
    color:#fff!important;
    box-shadow:none!important;
}
.cw-footer-map-cta .cw-el-btn-icon{
    width:17px;
    height:17px;
    margin-left:0!important;
    color:currentColor;
    transform:none;
}
.cw-footer-map-cta .cw-el-btn-icon svg{
    width:15px!important;
    height:15px!important;
    padding:0!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.9!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
    transform:rotate(315deg);
    transform-origin:50% 50%;
}
.cw-footer-map-cta:hover .cw-el-btn-icon svg,
.cw-footer-map-cta:focus-visible .cw-el-btn-icon svg{
    width:17px!important;
    height:17px!important;
    transform:rotate(720deg);
}

.cw-footer-map-shell{
    position:relative;
    min-width:0;
    min-height:286px;
    overflow:hidden;
    border:1px solid var(--cw-footer-border);
    border-radius:20px;
    background:color-mix(in srgb,var(--cw-footer-text) 3%,var(--cw-footer-bg));
}
.cw-footer-map-shell iframe{
    display:block;
    width:100%;
    height:100%;
    min-height:286px;
    border:0;
}

/* PC: cuatro columnas sobre una retícula real, sin space-between arbitrario. */
#cwFooter .cw-footer-main-container{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr) minmax(0,.9fr) minmax(220px,1.05fr);
    align-items:start;
    gap:clamp(30px,3.4vw,48px);
}
#cwFooter .cw-footer-col,
#cwFooter .cw-footer-contact-col,
#cwFooter .cw-footer-col3-col,
#cwFooter .cw-footer-schedule{
    min-width:0;
    width:auto;
    flex:none;
}
#cwFooter .cw-footer-schedule{justify-self:stretch}
#cwFooter .cw-footer-hours{min-width:0;width:100%}

@media (max-width:1020px){
    .cw-footer-directions{
        grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);
        gap:30px;
    }
    .cw-footer-directions-head{
        align-items:flex-start;
        flex-direction:column;
    }
    #cwFooter .cw-footer-main-container{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:34px 42px;
    }
}

@media (max-width:760px){
    .cw-footer-directions{
        grid-template-columns:1fr;
        gap:22px;
        margin-bottom:40px;
    }
    .cw-footer-directions-copy{
        gap:24px;
        padding:0;
    }
    .cw-footer-directions-head{
        flex-direction:column;
        align-items:flex-start;
        gap:18px;
    }
    #cwFooter .cw-footer-directions-title{
        font-size:26px!important;
    }
    .cw-footer-transit{
        grid-template-columns:1fr 1fr;
        gap:22px;
    }
    .cw-footer-map-shell,
    .cw-footer-map-shell iframe{
        min-height:220px;
    }

    #cwFooter .cw-footer-main-container{
        display:grid!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        align-items:start!important;
        gap:28px 18px!important;
    }
    #cwFooter .cw-footer-col,
    #cwFooter .cw-footer-contact-col,
    #cwFooter .cw-footer-schedule,
    #cwFooter .cw-footer-col3-col{
        min-width:0!important;
        width:auto!important;
        flex:none!important;
        text-align:left!important;
        align-items:flex-start!important;
    }
    #cwFooter h2.cw-footer-heading,
    #cwFooter .cw-footer-heading{
        margin-bottom:12px!important;
        font-size:10.5px!important;
        letter-spacing:.1em!important;
    }
    #cwFooter .cw-footer-list,
    #cwFooter .cw-footer-contact-list{
        align-items:flex-start!important;
        gap:8px!important;
    }
    #cwFooter .cw-footer-list-link{
        justify-content:flex-start!important;
        gap:7px!important;
        font-size:12.5px!important;
        line-height:1.35!important;
        text-align:left!important;
        transform:none!important;
        overflow-wrap:anywhere;
    }
    #cwFooter .cw-footer-list-link svg{width:15px!important;height:15px!important}
    #cwFooter .cw-footer-social{
        justify-content:flex-start!important;
        gap:7px!important;
        margin-top:14px!important;
    }
    #cwFooter .cw-footer-social-link{width:34px!important;height:34px!important}
    #cwFooter .cw-dynamic-schedule-container,
    #cwFooter .cw-sched-status-container{align-items:flex-start!important}
    #cwFooter .cw-footer-hours{
        width:100%!important;
        min-width:0!important;
        gap:7px!important;
    }
    #cwFooter .cw-footer-hours-row{
        align-items:flex-start!important;
        flex-direction:column!important;
        gap:2px!important;
        padding-bottom:5px!important;
        font-size:11.5px!important;
    }
    #cwFooter .cw-sched-badge{
        margin-top:0!important;
        padding:5px 9px!important;
        font-size:10.5px!important;
    }
    #cwFooter .cw-sched-hint{font-size:11px!important}
    #cwFooter .cw-footer-images{grid-column:1/-1!important}
}

@media (max-width:520px){
    .cw-site-footer{--cw-footer-px:16px}
    .cw-footer-transit{
        grid-template-columns:1fr;
        gap:20px;
    }
    .cw-footer-metro-row{
        grid-template-columns:1fr;
        gap:2px;
    }
    .cw-footer-metro-row>span{white-space:normal}
    .cw-footer-map-shell,
    .cw-footer-map-shell iframe{min-height:195px}
    #cwFooter .cw-footer-main-container{gap:25px 14px!important}
    #cwFooter .cw-footer-list-link{font-size:12px!important}
}

@media (max-width:360px){
    #cwFooter .cw-footer-main-container{gap:24px 10px!important}
    #cwFooter .cw-footer-heading{font-size:10px!important}
    #cwFooter .cw-footer-list-link{font-size:11.5px!important}
}

@media (prefers-reduced-motion:reduce){
    .cw-footer-map-cta,
    .cw-footer-map-cta *,
    .cw-footer-map-cta svg{transition:none!important}
}

/* ========================================================================
   v1.1.58 · Footer: recorrido lógico + Cómo llegar editorial
   Orden: Cómo llegar → Formación/Colaboraciones → navegación.
   El enlace de mapa deja de ser botón y el transporte prioriza lectura humana.
   ======================================================================== */
.cw-footer-directions{
    grid-template-columns:minmax(0,.82fr) minmax(500px,1.18fr)!important;
    align-items:center!important;
    gap:clamp(42px,5vw,72px)!important;
    margin-bottom:clamp(38px,4vw,50px)!important;
}
.cw-footer-directions-copy{
    justify-content:center!important;
    gap:clamp(28px,3vw,36px)!important;
    padding:0!important;
}
.cw-footer-directions-head{
    display:block!important;
}
#cwFooter .cw-footer-directions-title{
    margin:0 0 14px!important;
    font-size:clamp(27px,2vw,32px)!important;
    font-weight:730!important;
    line-height:1.04!important;
    letter-spacing:-.03em!important;
}
.cw-footer-directions-address{
    display:flex!important;
    width:max-content;
    max-width:100%;
    margin:0!important;
    color:var(--cw-footer-text)!important;
    font-size:13.5px!important;
    font-weight:570!important;
    line-height:1.45!important;
}
.cw-footer-directions-icon{
    width:26px!important;
    height:26px!important;
    flex-basis:26px!important;
    border-radius:50%!important;
    background:color-mix(in srgb,var(--cw-footer-accent) 8%,transparent)!important;
}
.cw-footer-map-link{
    display:inline-flex;
    align-items:center;
    gap:7px;
    width:max-content;
    max-width:100%;
    margin-top:11px;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:var(--cw-footer-accent)!important;
    font-size:11.5px;
    font-weight:760;
    line-height:1.2;
    letter-spacing:.065em;
    text-decoration:none!important;
    text-transform:uppercase;
    transition:color .22s ease;
}
.cw-footer-map-link svg{
    width:14px;
    height:14px;
    flex:0 0 14px;
    stroke-width:1.85;
    transition:transform .28s cubic-bezier(.16,1,.3,1);
}
.cw-footer-map-link:hover,
.cw-footer-map-link:focus-visible{
    color:var(--cw-footer-text)!important;
    outline:0;
}
.cw-footer-map-link:hover svg,
.cw-footer-map-link:focus-visible svg{
    transform:translate(2px,-2px);
}

.cw-footer-transit{
    grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)!important;
    gap:clamp(30px,3.6vw,46px)!important;
    padding-top:24px!important;
    border-top:1px solid var(--cw-footer-border)!important;
}
.cw-footer-transit-group{
    min-width:0;
}
.cw-footer-transit-label{
    gap:8px!important;
    margin-bottom:13px!important;
    font-size:10.5px!important;
    letter-spacing:.09em!important;
}
.cw-footer-transit-icon{
    width:18px!important;
    height:18px!important;
    flex-basis:18px!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--cw-footer-accent)!important;
    font-size:11px!important;
}
.cw-footer-transit-icon--bus{
    background:transparent!important;
    color:var(--cw-footer-accent)!important;
}
.cw-footer-transit-icon--bus svg{
    width:17px!important;
    height:17px!important;
}
.cw-footer-metro-list{
    gap:8px!important;
}
.cw-footer-metro-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:16px!important;
    font-size:13px!important;
}
.cw-footer-metro-row strong{
    font-weight:650!important;
}
.cw-footer-metro-row>span{
    font-size:12px!important;
    color:var(--cw-footer-muted)!important;
}
.cw-footer-transit-note{
    margin:0 0 7px!important;
    max-width:31ch;
    font-size:12px!important;
    line-height:1.5!important;
}
.cw-footer-bus-lines{
    max-width:36ch;
    font-size:12.5px!important;
    font-weight:600!important;
    line-height:1.65!important;
    letter-spacing:.002em;
}
.cw-footer-map-shell{
    min-height:310px!important;
    border-color:color-mix(in srgb,var(--cw-footer-text) 11%,transparent)!important;
    border-radius:18px!important;
    background:color-mix(in srgb,var(--cw-footer-text) 2%,var(--cw-footer-bg))!important;
    box-shadow:none!important;
}
.cw-footer-map-shell iframe{
    min-height:310px!important;
}

/* Al ir después de Cómo llegar, el bloque de marcas entra con una pausa más corta. */
.cw-footer-credentials{
    margin-bottom:clamp(40px,4vw,50px)!important;
}

@media (max-width:1020px){
    .cw-footer-directions{
        grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr)!important;
        gap:34px!important;
    }
}
@media (max-width:760px){
    .cw-footer-directions{
        grid-template-columns:1fr!important;
        gap:22px!important;
        margin-bottom:38px!important;
    }
    .cw-footer-directions-copy{
        gap:24px!important;
    }
    #cwFooter .cw-footer-directions-title{
        margin-bottom:12px!important;
        font-size:26px!important;
    }
    .cw-footer-map-link{
        margin-top:10px!important;
    }
    .cw-footer-transit{
        grid-template-columns:1fr 1fr!important;
        gap:22px!important;
        padding-top:22px!important;
    }
    .cw-footer-map-shell,
    .cw-footer-map-shell iframe{
        min-height:220px!important;
    }
}
@media (max-width:520px){
    .cw-footer-transit{
        grid-template-columns:1fr!important;
        gap:20px!important;
    }
    .cw-footer-metro-row{
        grid-template-columns:minmax(0,1fr) auto!important;
        gap:12px!important;
    }
    .cw-footer-metro-row>span{
        white-space:normal!important;
        text-align:right;
    }
    .cw-footer-map-shell,
    .cw-footer-map-shell iframe{
        min-height:195px!important;
    }
}
@media (prefers-reduced-motion:reduce){
    .cw-footer-map-link,
    .cw-footer-map-link svg{transition:none!important}
}


/* ========================================================================
   v1.1.59 · Cómo llegar interactivo + dark mode coherente
   - Mapa real con clínica + estaciones de Metro.
   - El transporte es navegable: cada estación enfoca su marcador.
   - Leaflet se inicializa de forma diferida; el footer mantiene fallback.
   - Formación/colaboraciones en oscuro se resuelven como una sola superficie,
     evitando dos rectángulos blancos desconectados del resto del footer.
   ======================================================================== */
#cwFooter .cw-footer-directions{
    display:grid!important;
    grid-template-columns:minmax(320px,.76fr) minmax(0,1.24fr)!important;
    align-items:stretch!important;
    gap:clamp(34px,4.4vw,62px)!important;
    width:min(var(--cw-footer-max-w,1300px),100%)!important;
    margin:0 auto clamp(42px,4vw,54px)!important;
    padding:clamp(30px,3vw,40px) 0!important;
    border-top:1px solid var(--cw-footer-border)!important;
    border-bottom:1px solid var(--cw-footer-border)!important;
    background:transparent!important;
    border-radius:0!important;
    box-shadow:none!important;
}
#cwFooter .cw-footer-directions-copy{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:clamp(24px,2.5vw,32px)!important;
    min-width:0!important;
}
#cwFooter .cw-footer-directions-kicker{
    display:block!important;
    margin:0 0 8px!important;
    color:var(--cw-footer-accent)!important;
    font-size:10.5px!important;
    font-weight:780!important;
    letter-spacing:.105em!important;
    line-height:1.2!important;
    text-transform:uppercase!important;
}
#cwFooter .cw-footer-directions-title{
    margin:0 0 14px!important;
    color:var(--cw-footer-text)!important;
    font-family:inherit!important;
    font-size:clamp(30px,2.35vw,39px)!important;
    font-weight:735!important;
    line-height:1!important;
    letter-spacing:-.038em!important;
    text-transform:none!important;
}
#cwFooter .cw-footer-directions-address{
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
    width:max-content!important;
    max-width:100%!important;
    margin:0!important;
    color:var(--cw-footer-text)!important;
    font-size:13.5px!important;
    font-weight:590!important;
    line-height:1.45!important;
    text-decoration:none!important;
}
#cwFooter .cw-footer-directions-icon{
    display:grid!important;
    place-items:center!important;
    width:24px!important;
    height:24px!important;
    flex:0 0 24px!important;
    border:1px solid color-mix(in srgb,var(--cw-footer-accent) 24%,transparent)!important;
    border-radius:50%!important;
    background:transparent!important;
    color:var(--cw-footer-accent)!important;
}
#cwFooter .cw-footer-directions-icon svg{width:13px!important;height:13px!important}
#cwFooter .cw-footer-map-link{
    display:inline-flex!important;
    align-items:center!important;
    gap:7px!important;
    width:max-content!important;
    margin-top:10px!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:none!important;
    box-shadow:none!important;
    color:var(--cw-footer-accent)!important;
    font-size:11px!important;
    font-weight:780!important;
    letter-spacing:.075em!important;
    line-height:1.2!important;
    text-decoration:none!important;
    text-transform:uppercase!important;
}
#cwFooter .cw-footer-map-link svg{width:13px!important;height:13px!important;transition:transform .25s cubic-bezier(.16,1,.3,1)!important}
#cwFooter .cw-footer-map-link:hover svg{transform:translate(2px,-2px)!important}

#cwFooter .cw-footer-transit{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:24px!important;
    padding:24px 0 0!important;
    border-top:1px solid var(--cw-footer-border)!important;
}
#cwFooter .cw-footer-transit-group{min-width:0!important}
#cwFooter .cw-footer-transit-label{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    margin:0 0 8px!important;
    color:var(--cw-footer-text)!important;
    font-size:10.5px!important;
    font-weight:780!important;
    letter-spacing:.095em!important;
    line-height:1.2!important;
    text-transform:uppercase!important;
}
#cwFooter .cw-footer-transit-icon{
    display:grid!important;
    place-items:center!important;
    width:19px!important;
    height:19px!important;
    flex:0 0 19px!important;
    color:var(--cw-footer-accent)!important;
    font-size:10.5px!important;
    font-weight:820!important;
}
#cwFooter .cw-footer-transit-icon svg{width:16px!important;height:16px!important}
#cwFooter .cw-footer-transit-note{
    margin:0 0 9px!important;
    max-width:none!important;
    color:var(--cw-footer-muted)!important;
    font-size:11.5px!important;
    line-height:1.45!important;
}
#cwFooter .cw-footer-metro-list{display:grid!important;gap:0!important}
#cwFooter .cw-footer-metro-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:14px!important;
    min-width:0!important;
    padding:10px 0!important;
    border:0!important;
    border-bottom:1px solid color-mix(in srgb,var(--cw-footer-text) 8%,transparent)!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--cw-footer-text)!important;
    text-decoration:none!important;
    box-shadow:none!important;
    transition:color .18s ease!important;
}
#cwFooter .cw-footer-metro-row:first-child{padding-top:4px!important}
#cwFooter .cw-footer-metro-row:last-child{border-bottom:0!important;padding-bottom:0!important}
#cwFooter .cw-footer-metro-row:hover{color:var(--cw-footer-accent)!important}
#cwFooter .cw-footer-metro-copy{display:grid!important;gap:2px!important;min-width:0!important}
#cwFooter .cw-footer-metro-copy strong{
    color:inherit!important;
    font-size:13px!important;
    font-weight:680!important;
    line-height:1.25!important;
}
#cwFooter .cw-footer-metro-copy>span{
    color:var(--cw-footer-muted)!important;
    font-size:11.5px!important;
    font-weight:520!important;
    line-height:1.3!important;
}
#cwFooter .cw-footer-metro-distance{
    color:var(--cw-footer-muted)!important;
    font-size:10.5px!important;
    font-weight:620!important;
    white-space:nowrap!important;
}
#cwFooter .cw-footer-bus-lines{
    margin:0!important;
    max-width:none!important;
    color:var(--cw-footer-muted)!important;
    font-size:11.7px!important;
    font-weight:520!important;
    line-height:1.65!important;
}
#cwFooter .cw-footer-bus-lines>span{color:var(--cw-footer-text)!important;font-weight:680!important;margin-right:5px!important}

#cwFooter .cw-footer-map-panel{
    display:grid!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    gap:10px!important;
    min-width:0!important;
    min-height:360px!important;
}
#cwFooter .cw-footer-map{
    position:relative!important;
    width:100%!important;
    min-height:340px!important;
    overflow:hidden!important;
    border:1px solid color-mix(in srgb,var(--cw-footer-text) 10%,transparent)!important;
    border-radius:20px!important;
    background:color-mix(in srgb,var(--cw-footer-text) 3%,var(--cw-footer-bg))!important;
    box-shadow:none!important;
    isolation:isolate!important;
}
#cwFooter .cw-footer-map:focus-visible{outline:2px solid color-mix(in srgb,var(--cw-footer-accent) 58%,transparent)!important;outline-offset:3px!important}
#cwFooter .cw-footer-map-placeholder{
    position:absolute!important;
    inset:0!important;
    z-index:500!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    padding:24px!important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--cw-footer-accent) 5%,var(--cw-footer-bg)),var(--cw-footer-bg))!important;
    color:var(--cw-footer-muted)!important;
    font-size:12px!important;
    text-align:center!important;
    transition:opacity .25s ease,visibility .25s ease!important;
}
#cwFooter .cw-footer-map.is-ready .cw-footer-map-placeholder{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#cwFooter .cw-footer-map.is-error .cw-footer-map-placeholder{opacity:1!important;visibility:visible!important}
#cwFooter .cw-footer-map-placeholder strong{color:var(--cw-footer-text)!important;font-size:13px!important}
#cwFooter .cw-footer-map-placeholder a{color:var(--cw-footer-accent)!important;text-decoration:none!important;font-weight:700!important}
#cwFooter .cw-footer-map-placeholder-pin{
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    border-radius:50% 50% 50% 14px!important;
    background:var(--cw-footer-accent)!important;
    color:#fff!important;
    font-size:12px!important;
    font-weight:820!important;
    transform:rotate(-45deg)!important;
}
#cwFooter .cw-footer-map-placeholder-pin>span{display:block!important;transform:rotate(45deg)!important}
#cwFooter .cw-footer-map-meta{
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:12px 18px!important;
    min-width:0!important;
    color:var(--cw-footer-muted)!important;
    font-size:10.5px!important;
    line-height:1.3!important;
}
#cwFooter .cw-footer-map-meta>span{display:inline-flex!important;align-items:center!important;gap:6px!important}
#cwFooter .cw-footer-map-hint{margin-left:auto!important}
#cwFooter .cw-footer-map-key{display:inline-block!important;width:8px!important;height:8px!important;border-radius:50%!important}
#cwFooter .cw-footer-map-key--clinic{background:var(--cw-footer-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--cw-footer-accent) 14%,transparent)!important}
#cwFooter .cw-footer-map-key--metro{background:var(--cw-footer-text)!important;opacity:.72!important}

/* Leaflet dentro del componente */
#cwFooter .cw-footer-map .leaflet-container{font-family:inherit!important;background:transparent!important}
#cwFooter .cw-footer-map .leaflet-control-attribution{
    padding:2px 6px!important;
    border-radius:7px 0 0 0!important;
    background:color-mix(in srgb,var(--cw-footer-bg) 88%,transparent)!important;
    color:var(--cw-footer-muted)!important;
    font-size:8.5px!important;
    backdrop-filter:blur(8px)!important;
}
#cwFooter .cw-footer-map .leaflet-control-attribution a{color:var(--cw-footer-text)!important}
#cwFooter .cw-footer-map .leaflet-control-zoom{
    margin:0 12px 12px 0!important;
    overflow:hidden!important;
    border:1px solid color-mix(in srgb,var(--cw-footer-text) 13%,transparent)!important;
    border-radius:10px!important;
    box-shadow:none!important;
}
#cwFooter .cw-footer-map .leaflet-control-zoom a{
    width:34px!important;
    height:32px!important;
    line-height:31px!important;
    border:0!important;
    border-bottom:1px solid color-mix(in srgb,var(--cw-footer-text) 10%,transparent)!important;
    background:color-mix(in srgb,var(--cw-footer-bg) 92%,transparent)!important;
    color:var(--cw-footer-text)!important;
    font-family:inherit!important;
    font-size:17px!important;
}
#cwFooter .cw-footer-map .leaflet-control-zoom a:last-child{border-bottom:0!important}
#cwFooter .cw-footer-map .leaflet-control-zoom a:hover{background:var(--cw-footer-bg)!important;color:var(--cw-footer-accent)!important}
#cwFooter .cw-footer-map .leaflet-popup-content-wrapper{
    border:1px solid color-mix(in srgb,var(--cw-footer-text) 11%,transparent)!important;
    border-radius:14px!important;
    background:var(--cw-footer-bg)!important;
    color:var(--cw-footer-text)!important;
    box-shadow:0 12px 32px rgba(8,18,18,.12)!important;
}
#cwFooter .cw-footer-map .leaflet-popup-tip{background:var(--cw-footer-bg)!important;box-shadow:none!important}
#cwFooter .cw-footer-map .leaflet-popup-content{margin:14px 16px!important;min-width:150px!important}
#cwFooter .cw-map-popup{display:grid!important;gap:4px!important}
#cwFooter .cw-map-popup__eyebrow{color:var(--cw-footer-accent)!important;font-size:8.5px!important;font-weight:800!important;letter-spacing:.1em!important;text-transform:uppercase!important}
#cwFooter .cw-map-popup__title{font-size:13px!important;font-weight:720!important;line-height:1.2!important}
#cwFooter .cw-map-popup__meta{color:var(--cw-footer-muted)!important;font-size:10.5px!important;line-height:1.35!important}
#cwFooter .cw-map-popup__link{margin-top:3px!important;color:var(--cw-footer-accent)!important;font-size:10px!important;font-weight:720!important;text-decoration:none!important}
#cwFooter .cw-map-div-icon{background:none!important;border:0!important}
#cwFooter .cw-map-pin{
    position:relative!important;
    display:grid!important;
    place-items:center!important;
    width:100%!important;
    height:100%!important;
    border-radius:50% 50% 50% 14px!important;
    box-shadow:0 5px 18px rgba(8,18,18,.16)!important;
    transform:rotate(-45deg)!important;
}
#cwFooter .cw-map-pin>span{display:block!important;transform:rotate(45deg)!important;font-family:inherit!important;font-weight:820!important;line-height:1!important}
#cwFooter .cw-map-pin--clinic{background:var(--cw-footer-accent)!important;border:2px solid rgba(255,255,255,.88)!important;color:#fff!important}
#cwFooter .cw-map-pin--clinic>span{font-size:10px!important}
#cwFooter .cw-map-pin--metro{background:var(--cw-footer-bg)!important;border:2px solid color-mix(in srgb,var(--cw-footer-text) 68%,transparent)!important;color:var(--cw-footer-text)!important}
#cwFooter .cw-map-pin--metro>span{font-size:10px!important}

/* Dark mode: el board de marcas pasa a ser una sola isla neutra, no dos cajas
   blancas flotando sobre el footer. Los logos mantienen sus colores originales. */
html[data-theme="dark"] #cwFooter .cw-footer-credentials,
body[data-theme="dark"] #cwFooter .cw-footer-credentials{
    --cw-credential-panel-bg:#f4f7f6!important;
    --cw-credential-panel-ink:#193033!important;
    padding:34px 28px 28px!important;
    border:1px solid rgba(255,255,255,.05)!important;
    border-radius:24px!important;
    background:#f4f7f6!important;
}
html[data-theme="dark"] #cwFooter .cw-footer-credentials-group,
body[data-theme="dark"] #cwFooter .cw-footer-credentials-group{
    background:transparent!important;
    border-color:rgba(25,48,51,.13)!important;
}
html[data-theme="dark"] #cwFooter .cw-footer-credentials-heading,
body[data-theme="dark"] #cwFooter .cw-footer-credentials-heading{
    background:#f4f7f6!important;
}

@media (max-width:1020px){
    #cwFooter .cw-footer-directions{grid-template-columns:minmax(285px,.78fr) minmax(0,1.22fr)!important;gap:32px!important}
    #cwFooter .cw-footer-map{min-height:320px!important}
}
@media (max-width:760px){
    #cwFooter .cw-footer-directions{
        grid-template-columns:1fr!important;
        gap:24px!important;
        padding:28px 0!important;
    }
    #cwFooter .cw-footer-directions-copy{gap:22px!important}
    #cwFooter .cw-footer-directions-title{font-size:29px!important}
    #cwFooter .cw-footer-map-panel{min-height:0!important}
    #cwFooter .cw-footer-map{min-height:270px!important;border-radius:17px!important}
    #cwFooter .cw-footer-map-meta{gap:10px 14px!important}
    #cwFooter .cw-footer-map-hint{width:100%!important;margin-left:0!important}
    html[data-theme="dark"] #cwFooter .cw-footer-credentials,
    body[data-theme="dark"] #cwFooter .cw-footer-credentials{padding:30px 18px 22px!important;border-radius:20px!important}
}
@media (max-width:520px){
    #cwFooter .cw-footer-map{min-height:245px!important}
    #cwFooter .cw-footer-metro-row{gap:10px!important}
    #cwFooter .cw-footer-metro-distance{font-size:10px!important}
}
@media (hover:none),(pointer:coarse){
    #cwFooter .cw-footer-map-link:hover svg{transform:none!important}
    #cwFooter .cw-footer-metro-row:hover{color:var(--cw-footer-text)!important}
}
@media (prefers-reduced-motion:reduce){
    #cwFooter .cw-footer-map-link svg,
    #cwFooter .cw-footer-map-placeholder{transition:none!important}
}


/* ========================================================================
   v1.1.60 · OpenStreetMap sin API + responsive real de Cómo llegar
   - Tiles oficiales de OSM: no requieren API key.
   - En oscuro la cartografía se adapta por CSS, sin otro proveedor.
   - En móvil el orden pasa a: cabecera → mapa → transporte.
   - El bloque de transporte gana jerarquía y respiración táctil.
   - El board de marcas se integra mejor sobre footer oscuro.
   ======================================================================== */

/* OSM conserva una sola fuente de tiles en ambos modos. Solo la representación
   visual cambia en oscuro; marcadores, controles y atribución no se filtran. */
html[data-theme="dark"] #cwFooter .cw-footer-map .leaflet-tile-pane,
body[data-theme="dark"] #cwFooter .cw-footer-map .leaflet-tile-pane{
    filter:invert(91%) hue-rotate(180deg) brightness(.73) contrast(.92) saturate(.62)!important;
}
html[data-theme="dark"] #cwFooter .cw-footer-map,
body[data-theme="dark"] #cwFooter .cw-footer-map{
    background:#17292b!important;
    border-color:color-mix(in srgb,var(--cw-footer-text) 13%,transparent)!important;
}

/* El mapa deja de sentirse como un widget externo y comparte radio/ritmo con el footer. */
#cwFooter .cw-footer-map-panel{
    align-self:stretch!important;
}
#cwFooter .cw-footer-map{
    min-height:352px!important;
    border-radius:18px!important;
}
#cwFooter .cw-footer-map-meta{
    padding-inline:2px!important;
}

/* Dark mode: una única superficie de marcas, menos brillante y sin efecto
   de dos rectángulos blancos desconectados del footer. */
html[data-theme="dark"] #cwFooter .cw-footer-credentials,
body[data-theme="dark"] #cwFooter .cw-footer-credentials{
    --cw-credential-panel-bg:#e9efed!important;
    --cw-credential-panel-ink:#193033!important;
    background:#e9efed!important;
    border-color:rgba(255,255,255,.07)!important;
    box-shadow:none!important;
}
html[data-theme="dark"] #cwFooter .cw-footer-credentials-group,
body[data-theme="dark"] #cwFooter .cw-footer-credentials-group{
    background:transparent!important;
    border-color:rgba(25,48,51,.12)!important;
}
html[data-theme="dark"] #cwFooter .cw-footer-credentials-heading,
body[data-theme="dark"] #cwFooter .cw-footer-credentials-heading{
    background:#e9efed!important;
}

@media (max-width:760px){
    /* display:contents permite intercalar el mapa entre cabecera y transporte
       sin duplicar contenido ni alterar la semántica del HTML. */
    #cwFooter .cw-footer-directions{
        display:grid!important;
        grid-template-columns:1fr!important;
        grid-template-areas:
            "directions-head"
            "directions-map"
            "directions-transit"!important;
        gap:18px!important;
        padding:26px 0 30px!important;
        margin-bottom:34px!important;
    }
    #cwFooter .cw-footer-directions-copy{
        display:contents!important;
    }
    #cwFooter .cw-footer-directions-head{
        grid-area:directions-head!important;
        min-width:0!important;
    }
    #cwFooter .cw-footer-map-panel{
        grid-area:directions-map!important;
        width:100%!important;
        min-width:0!important;
        gap:8px!important;
    }
    #cwFooter .cw-footer-transit{
        grid-area:directions-transit!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        padding:0!important;
        border-top:0!important;
    }
    #cwFooter .cw-footer-directions-kicker{
        margin-bottom:7px!important;
        font-size:9.5px!important;
    }
    #cwFooter .cw-footer-directions-title{
        margin-bottom:12px!important;
        font-size:clamp(27px,8vw,31px)!important;
        line-height:1.02!important;
    }
    #cwFooter .cw-footer-directions-address{
        width:auto!important;
        align-items:flex-start!important;
        font-size:13px!important;
    }
    #cwFooter .cw-footer-map-link{
        margin-top:8px!important;
        font-size:10.5px!important;
    }
    #cwFooter .cw-footer-map{
        min-height:250px!important;
        border-radius:16px!important;
    }
    #cwFooter .cw-footer-map-meta{
        display:grid!important;
        grid-template-columns:auto auto 1fr!important;
        gap:7px 12px!important;
        font-size:9.5px!important;
    }
    #cwFooter .cw-footer-map-hint{
        justify-self:end!important;
        width:auto!important;
        margin:0!important;
        text-align:right!important;
    }
    #cwFooter .cw-footer-transit-group{
        padding:15px 16px 14px!important;
        border:1px solid color-mix(in srgb,var(--cw-footer-text) 9%,transparent)!important;
        border-radius:14px!important;
        background:color-mix(in srgb,var(--cw-footer-text) 2.4%,var(--cw-footer-bg))!important;
    }
    #cwFooter .cw-footer-transit-label{
        margin-bottom:6px!important;
        font-size:10px!important;
    }
    #cwFooter .cw-footer-transit-note{
        margin-bottom:7px!important;
        font-size:11px!important;
    }
    #cwFooter .cw-footer-metro-row{
        padding:10px 0!important;
        gap:10px!important;
    }
    #cwFooter .cw-footer-metro-row:first-child{padding-top:5px!important}
    #cwFooter .cw-footer-metro-copy strong{font-size:12.5px!important}
    #cwFooter .cw-footer-metro-copy>span{font-size:11px!important}
    #cwFooter .cw-footer-metro-distance{font-size:9.5px!important}
    #cwFooter .cw-footer-bus-lines{
        font-size:11.5px!important;
        line-height:1.7!important;
    }
    html[data-theme="dark"] #cwFooter .cw-footer-transit-group,
    body[data-theme="dark"] #cwFooter .cw-footer-transit-group{
        background:color-mix(in srgb,var(--cw-footer-text) 3.5%,var(--cw-footer-bg))!important;
        border-color:color-mix(in srgb,var(--cw-footer-text) 11%,transparent)!important;
    }
}

@media (max-width:520px){
    #cwFooter .cw-footer-directions{gap:16px!important}
    #cwFooter .cw-footer-map{min-height:228px!important}
    #cwFooter .cw-footer-map-meta{
        grid-template-columns:auto auto!important;
    }
    #cwFooter .cw-footer-map-hint{
        display:none!important;
    }
    #cwFooter .cw-footer-metro-row{
        grid-template-columns:minmax(0,1fr) auto!important;
    }
    html[data-theme="dark"] #cwFooter .cw-footer-credentials,
    body[data-theme="dark"] #cwFooter .cw-footer-credentials{
        background:#e9efed!important;
    }
}

/* ========================================================================
   v1.1.61 · Footer móvil: 30 px reales + transporte legible
   - Todo el footer respeta el mismo gutter lateral de 30 px de la web.
   - Metro deja de heredar alineaciones derechas del tema.
   - Nombre, líneas y distancia conservan una jerarquía clara sin cortes
     innecesarios en pantallas pequeñas.
   ======================================================================== */
@media (max-width:760px){
    #cwFooter.cw-site-footer,
    .cw-site-footer#cwFooter{
        --cw-footer-px:30px!important;
        padding-left:30px!important;
        padding-right:30px!important;
    }

    #cwFooter .cw-footer-directions,
    #cwFooter .cw-footer-directions-copy,
    #cwFooter .cw-footer-directions-head,
    #cwFooter .cw-footer-transit,
    #cwFooter .cw-footer-transit-group,
    #cwFooter .cw-footer-metro-list,
    #cwFooter .cw-footer-bus-lines,
    #cwFooter .cw-footer-transit-note{
        text-align:left!important;
    }

    #cwFooter .cw-footer-transit-group{
        width:100%!important;
        min-width:0!important;
    }

    #cwFooter .cw-footer-metro-row{
        grid-template-columns:minmax(0,1fr) max-content!important;
        justify-items:start!important;
        align-items:center!important;
        width:100%!important;
        min-width:0!important;
        text-align:left!important;
    }

    #cwFooter .cw-footer-metro-copy{
        width:100%!important;
        min-width:0!important;
        justify-items:start!important;
        align-items:start!important;
        text-align:left!important;
    }

    #cwFooter .cw-footer-metro-copy strong,
    #cwFooter .cw-footer-metro-copy>span{
        max-width:100%!important;
        text-align:left!important;
        word-break:normal!important;
        overflow-wrap:normal!important;
        hyphens:none!important;
    }

    #cwFooter .cw-footer-metro-copy>span{
        white-space:nowrap!important;
    }

    #cwFooter .cw-footer-metro-distance{
        justify-self:end!important;
        align-self:center!important;
        text-align:right!important;
        white-space:nowrap!important;
    }

    #cwFooter .cw-footer-bus-lines{
        text-align:left!important;
        word-break:normal!important;
        overflow-wrap:normal!important;
    }

    #cwFooter .cw-footer-main-container{
        width:100%!important;
        margin-inline:0!important;
    }
}

@media (max-width:520px){
    #cwFooter.cw-site-footer,
    .cw-site-footer#cwFooter{
        --cw-footer-px:30px!important;
        padding-left:30px!important;
        padding-right:30px!important;
    }
    #cwFooter .cw-footer-metro-row{
        grid-template-columns:minmax(0,1fr) max-content!important;
    }
}

/* ========================================================================
   v1.1.64 · Footer móvil: colaboraciones horizontales + orden funcional
   Orden solicitado: AHORA | SERVICIOS / INFORMACIÓN | CONTACTO.
   Las dos colaboraciones permanecen lado a lado también en teléfonos.
   ======================================================================== */
@media (max-width:760px){
    #cwFooter .cw-footer-main-container{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        grid-auto-flow:row!important;
        gap:28px 20px!important;
    }
    #cwFooter .cw-footer-schedule{
        order:1!important;
        grid-column:auto!important;
    }
    #cwFooter .cw-footer-col2-col{
        order:2!important;
        grid-column:auto!important;
    }
    #cwFooter .cw-footer-col3-col{
        order:3!important;
        grid-column:auto!important;
    }
    #cwFooter .cw-footer-contact-col{
        order:4!important;
        grid-column:auto!important;
    }

    #cwFooter .cw-footer-credentials-group--collaborations .cw-footer-logo-matrix--collaborations,
    #cwFooter .cw-footer-logo-matrix--collaborations{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        grid-template-rows:1fr!important;
        align-items:center!important;
        gap:10px!important;
        width:100%!important;
        max-width:none!important;
    }
    #cwFooter .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell{
        width:100%!important;
        min-width:0!important;
        height:64px!important;
    }
    #cwFooter .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img{
        width:132px!important;
        height:56px!important;
        max-width:100%!important;
        object-fit:contain!important;
    }
}

@media (max-width:420px){
    #cwFooter .cw-footer-main-container{
        gap:26px 16px!important;
    }
    #cwFooter .cw-footer-logo-matrix--collaborations{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:8px!important;
    }
    #cwFooter .cw-footer-logo-matrix--collaborations .cw-footer-logo-cell img{
        width:118px!important;
        height:52px!important;
    }
}


/* ========================================================================
   v1.1.65 · Footer móvil: jerarquía por bloques + ritmo uniforme
   AHORA (100%) → SERVICIOS (100%) → INFORMACIÓN | CONTACTO.
   The schedule uses the same heading-to-content spacing as every other footer
   column; no inherited flex gap or negative badge margin may create a void.
   ======================================================================== */
@media (max-width:760px){
    #cwFooter .cw-footer-main-container{
        display:grid!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        grid-auto-flow:row!important;
        align-items:start!important;
        gap:30px 18px!important;
        width:100%!important;
    }

    #cwFooter .cw-footer-schedule{
        order:1!important;
        grid-column:1 / -1!important;
        width:100%!important;
        gap:0!important;
        align-items:flex-start!important;
    }
    #cwFooter .cw-footer-col2-col{
        order:2!important;
        grid-column:1 / -1!important;
        width:100%!important;
    }
    #cwFooter .cw-footer-col3-col{
        order:3!important;
        grid-column:1!important;
        width:100%!important;
    }
    #cwFooter .cw-footer-contact-col{
        order:4!important;
        grid-column:2!important;
        width:100%!important;
    }

    /* AHORA: same 12px heading/content rhythm as Servicios/Información. */
    #cwFooter .cw-footer-schedule > .cw-footer-heading{
        margin:0 0 12px!important;
    }
    #cwFooter .cw-schedule-status-box{
        margin:0 0 14px!important;
        padding:0!important;
        min-height:0!important;
        width:100%!important;
    }
    #cwFooter .cw-sched-status-container{
        margin:0!important;
        padding:0!important;
        gap:6px!important;
        align-items:flex-start!important;
    }
    #cwFooter .cw-sched-badge{
        margin:0!important;
    }
    #cwFooter .cw-footer-hours{
        margin:0!important;
    }

    /* Servicios has the full row but remains compact rather than becoming a
       second long vertical column. */
    #cwFooter .cw-footer-col2-col .cw-footer-list{
        display:grid!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:9px 18px!important;
        width:100%!important;
    }
    #cwFooter .cw-footer-col2-col .cw-footer-list > li,
    #cwFooter .cw-footer-col2-col .cw-footer-list-link{
        min-width:0!important;
        max-width:100%!important;
    }
}

@media (max-width:380px){
    #cwFooter .cw-footer-main-container{gap:28px 14px!important}
    #cwFooter .cw-footer-col2-col .cw-footer-list{gap:9px 12px!important}
}


/* ========================================================================
   v1.1.66 · Footer móvil: aprovechar el ancho real
   AHORA y SERVICIOS usan toda la fila; los horarios permanecen en una sola
   línea cuando caben y Servicios reserva más ancho al enlace más largo.
   ======================================================================== */
@media (max-width:760px){
    #cwFooter .cw-footer-main-container{
        gap:26px 18px!important;
    }

    #cwFooter .cw-footer-hours-row{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) max-content!important;
        align-items:center!important;
        justify-content:stretch!important;
        column-gap:14px!important;
        row-gap:0!important;
        width:100%!important;
        padding-bottom:7px!important;
        font-size:11.5px!important;
    }
    #cwFooter .cw-footer-hours-row dt,
    #cwFooter .cw-footer-hours-row dd{
        min-width:0!important;
        margin:0!important;
        line-height:1.35!important;
    }
    #cwFooter .cw-footer-hours-row dt{
        white-space:nowrap!important;
        overflow:visible!important;
    }
    #cwFooter .cw-footer-hours-row dd{
        justify-self:end!important;
        white-space:nowrap!important;
        text-align:right!important;
    }

    #cwFooter .cw-footer-col2-col .cw-footer-list{
        grid-template-columns:max-content max-content!important;
        justify-content:space-between!important;
        column-gap:12px!important;
        row-gap:9px!important;
    }
    #cwFooter .cw-footer-col2-col .cw-footer-list-link{
        width:max-content!important;
        max-width:100%!important;
        white-space:nowrap!important;
        overflow-wrap:normal!important;
        word-break:normal!important;
    }
}

@media (max-width:340px){
    #cwFooter .cw-footer-hours-row{column-gap:9px!important;font-size:11px!important}
    #cwFooter .cw-footer-col2-col .cw-footer-list{grid-template-columns:max-content max-content!important;justify-content:space-between!important;column-gap:8px!important}
    #cwFooter .cw-footer-col2-col .cw-footer-list-link{font-size:11.5px!important}
}
.cw-footer-social-link .cw-brand-icon{width:18px;height:18px}

/* v1.1.130 · Estado del horario y cuenta atrás siempre en la misma fila.
   El texto puede partirse dentro de su columna en móviles muy estrechos. */
#cwFooter .cw-schedule-status-box .cw-sched-status-container {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 9px !important;
    width: 100% !important;
    min-width: 0 !important;
}
#cwFooter .cw-schedule-status-box .cw-sched-badge {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    white-space: nowrap !important;
}
#cwFooter .cw-schedule-status-box .cw-sched-hint {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 11.5px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
}
@media (max-width: 760px) {
    #cwFooter .cw-schedule-status-box .cw-sched-status-container { gap: 10px !important; }
    #cwFooter .cw-schedule-status-box .cw-sched-hint { font-size: 12px !important; }
}


/* v1.1.131 · Servicios: títulos largos sin desbordamiento en móviles.
   No forzamos las columnas a max-content ni los enlaces a una sola línea. */
@media (max-width: 760px) {
    #cwFooter .cw-footer-col2-col .cw-footer-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        justify-content: stretch !important;
        gap: 13px 18px !important;
        width: 100% !important;
    }
    #cwFooter .cw-footer-col2-col .cw-footer-list > li {
        min-width: 0 !important;
    }
    #cwFooter .cw-footer-col2-col .cw-footer-list-link {
        width: auto !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        line-height: 1.5 !important;
        display: block !important;
    }
}
@media (max-width: 380px) {
    #cwFooter .cw-footer-col2-col .cw-footer-list { column-gap: 12px !important; }
}


/* ========================================================================
   v1.1.132 · Columnas proporcionadas por contenido y ritmo del horario.
   Escritorio: Contacto no absorbe un cuarto innecesario del ancho;
   Servicios recibe más espacio para los nombres largos.
   ======================================================================== */
@media (min-width: 1021px) {
    #cwFooter .cw-footer-main-container {
        grid-template-columns: minmax(165px, .73fr) minmax(250px, 1.36fr) minmax(170px, .9fr) minmax(245px, 1.12fr) !important;
        column-gap: clamp(25px, 2.8vw, 42px) !important;
        align-items: start !important;
    }
}
@media (min-width: 761px) and (max-width: 1020px) {
    #cwFooter .cw-footer-main-container {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 35px 40px !important;
    }
}
/* El encabezado de Ahora sigue exactamente el mismo ritmo que los demás.
   Se anula el gap de 15px heredado del contenedor flex (causa del salto).
   La cápsula y la cuenta atrás permanecen juntos sin margen negativo. */
#cwFooter .cw-dynamic-schedule-container {
    gap: 0 !important;
}
#cwFooter .cw-footer-schedule > h2.cw-footer-heading {
    margin: 0 0 20px !important;
}
#cwFooter .cw-footer-schedule > .cw-schedule-status-box {
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 0 15px !important;
}
#cwFooter .cw-footer-schedule > .cw-footer-hours {
    margin-top: 0 !important;
}
#cwFooter .cw-footer-contact-col .cw-footer-social {
    margin-top: 12px;
}
@media (max-width: 760px) {
    #cwFooter .cw-footer-schedule > h2.cw-footer-heading {
        margin-bottom: 12px !important;
    }
    #cwFooter .cw-footer-schedule > .cw-schedule-status-box {
        margin-bottom: 14px !important;
    }
}

/* ========================================================================
   v1.1.134 · Sello colegial sin título ni tarjeta estática.
   Solo el texto bajo el emblema se aclara en el recurso nocturno, conservando
   las cuatro áreas cromáticas y sus trazos negros originales.
   ======================================================================== */
#cwFooter .cw-footer-college {
    min-width: 0;
    width: auto;
    align-self: start;
    justify-self: start;
}
#cwFooter .cw-footer-college-inner {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: flex-start;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
#cwFooter .cw-footer-college-link {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    border-radius: 6px;
}
#cwFooter .cw-footer-college-link:focus-visible {
    outline: 2px solid var(--cw-footer-accent);
    outline-offset: 5px;
}
#cwFooter .cw-footer-college-logo {
    display: block;
    width: 138px;
    max-width: 100%;
    height: auto;
    aspect-ratio: 174 / 220;
    object-fit: contain;
    filter: none !important;
    opacity: 1 !important;
    mix-blend-mode: normal !important;
}
#cwFooter .cw-footer-college-logo--dark { display: none; }
[data-theme="dark"] #cwFooter .cw-footer-college-logo--dark { display: block; }
[data-theme="dark"] #cwFooter .cw-footer-college-logo--light { display: none; }

@media (min-width: 1181px) {
    #cwFooter.has-professional-college.has-schedule .cw-footer-main-container {
        display: grid !important;
        grid-template-columns: minmax(142px,.88fr) minmax(218px,1.34fr) minmax(145px,.85fr) minmax(207px,1.17fr) minmax(130px,.8fr) !important;
        column-gap: clamp(16px,2.15vw,30px) !important;
        align-items: start !important;
    }
    #cwFooter.has-professional-college:not(.has-schedule) .cw-footer-main-container {
        grid-template-columns: minmax(155px,.9fr) minmax(240px,1.35fr) minmax(180px,1fr) minmax(145px,.75fr) !important;
        column-gap: clamp(22px,2.5vw,34px) !important;
    }
}
@media (min-width: 761px) and (max-width: 1180px) {
    #cwFooter.has-professional-college .cw-footer-main-container {
        grid-template-columns: minmax(0,.95fr) minmax(0,1.25fr) minmax(0,1fr) !important;
        gap: 32px clamp(22px,3vw,36px) !important;
        align-items: start !important;
    }
    #cwFooter.has-professional-college.has-schedule .cw-footer-contact-col { grid-column: 1; grid-row: 1; }
    #cwFooter.has-professional-college.has-schedule .cw-footer-col2-col { grid-column: 2; grid-row: 1; }
    #cwFooter.has-professional-college.has-schedule .cw-footer-col3-col { grid-column: 3; grid-row: 1; }
    #cwFooter.has-professional-college.has-schedule .cw-footer-schedule { grid-column: 1 / span 2; grid-row: 2; }
    #cwFooter.has-professional-college.has-schedule .cw-footer-college { grid-column: 3; grid-row: 2; }
    #cwFooter .cw-footer-college-logo { width: 126px; }
}
@media (max-width: 760px) {
    /* Servicios pasa a una lista vertical: sin 2 columnas ni truncado. */
    #cwFooter .cw-footer-col2-col .cw-footer-list {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        grid-template-columns: none !important;
        gap: 11px !important;
        width: 100% !important;
    }
    #cwFooter .cw-footer-col2-col .cw-footer-list > li,
    #cwFooter .cw-footer-col2-col .cw-footer-list-link {
        width: 100% !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
    }
    #cwFooter .cw-footer-college {
        order: 5 !important;
        grid-column: 1 / -1 !important;
        justify-self: center !important;
        width: 100% !important;
        padding-top: 24px;
        border-top: 1px solid var(--cw-footer-border);
    }
    #cwFooter .cw-footer-college-inner {
        width: max-content;
        max-width: 100%;
        justify-content: center;
        margin-inline: auto;
    }
    #cwFooter .cw-footer-college-logo { width: 132px; }
}


/* v1.1.135 · El sello cierra el ancho del mismo grid del footer en escritorio,
   sin alterar su distribución móvil ni dejar un margen sobrante a la derecha. */
@media (min-width: 761px) {
    #cwFooter.has-professional-college .cw-footer-main-container > .cw-footer-college {
        justify-self: end !important;
        margin-inline-start: auto !important;
        text-align: right;
    }
    #cwFooter .cw-footer-college-inner,
    #cwFooter .cw-footer-college-link {
        margin-inline-start: auto !important;
        justify-content: flex-end !important;
    }
}
@media (max-width: 760px) {
    #cwFooter.has-professional-college .cw-footer-main-container > .cw-footer-college {
        justify-self: center !important;
        text-align: center;
        margin-inline: auto !important;
    }
    #cwFooter .cw-footer-college-inner,
    #cwFooter .cw-footer-college-link {
        justify-content: center !important;
        margin-inline: auto !important;
    }
}

/* Tres zonas independientes: el enlace de cookies queda verdaderamente
   centrado incluso si los textos de los extremos tienen longitudes distintas. */
#cwFooter .cw-footer-bottom {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    align-items: center;
    column-gap: clamp(12px, 2vw, 28px);
}
#cwFooter .cw-footer-bottom-copyright { justify-self: start; min-width: 0; }
#cwFooter .cw-footer-bottom-credits { justify-self: end; min-width: 0; text-align: right; }
#cwFooter .cw-footer-cookie-settings {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: center;
    gap: 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 7px 10px;
    margin: 0;
    width: max-content;
    max-width: 100%;
    background: transparent;
    color: var(--cw-footer-muted);
    font: inherit;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
#cwFooter .cw-footer-cookie-settings svg {
    flex: none;
    width: 19px;
    height: 19px;
    display: block;
}
#cwFooter .cw-footer-cookie-settings:hover {
    color: var(--cw-footer-accent);
    background: color-mix(in srgb, var(--cw-footer-accent) 8%, transparent);
}
#cwFooter .cw-footer-cookie-settings:focus-visible {
    outline: 2px solid var(--cw-footer-accent);
    outline-offset: 3px;
}
@media (max-width: 900px) {
    #cwFooter .cw-footer-bottom {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 10px;
        text-align: center;
    }
    #cwFooter .cw-footer-bottom-copyright,
    #cwFooter .cw-footer-bottom-credits,
    #cwFooter .cw-footer-cookie-settings {
        justify-self: center;
        text-align: center;
    }
}


/* ========================================================================
   v1.1.136 · Orden móvil solicitado para footer Punto Fisio.
   AHORA (ancho completo)
   INFORMACIÓN | CONTACTO
   SERVICIOS   | COLEGIO (sello centrado en su celda)
   No altera las cinco columnas de escritorio ni los enlaces existentes.
   ======================================================================== */
@media (max-width:760px) {
    #cwFooter .cw-footer-main-container {
        display:grid!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        column-gap:clamp(12px,4vw,22px)!important;
        row-gap:clamp(24px,6vw,36px)!important;
        grid-auto-flow:row!important;
        align-items:start!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-col {
        min-width:0!important;
        max-width:100%!important;
        margin:0!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-schedule {
        grid-column:1/-1!important;
        grid-row:1!important;
        order:0!important;
        width:100%!important;
        padding-bottom:clamp(18px,4vw,24px)!important;
        border-bottom:1px solid var(--cw-footer-border)!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-col3-col {
        grid-column:1!important;grid-row:2!important;order:1!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-contact-col {
        grid-column:2!important;grid-row:2!important;order:2!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-col2-col {
        grid-column:1!important;grid-row:3!important;order:3!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-college {
        grid-column:2!important;grid-row:3!important;order:4!important;
        align-self:start!important;justify-self:center!important;
        display:flex!important;align-items:flex-start!important;
        justify-content:center!important;
        width:100%!important;
        padding:0!important;
        border:0!important;
        text-align:center!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-college .cw-footer-college-inner {
        margin:0 auto!important;max-width:100%!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-college .cw-footer-college-logo {
        width:clamp(100px,32vw,130px)!important;
        max-width:100%!important;height:auto!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-col2-col .cw-footer-list {
        display:flex!important;flex-direction:column!important;
        grid-template-columns:none!important;gap:11px!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-col2-col .cw-footer-list-link {
        white-space:normal!important;overflow-wrap:anywhere!important;
    }
    #cwFooter .cw-footer-main-container > .cw-footer-col3-col .cw-footer-list-link,
    #cwFooter .cw-footer-main-container > .cw-footer-contact-col .cw-footer-list-link {
        font-size:clamp(11.5px,3vw,12.5px)!important;
        overflow-wrap:anywhere!important;white-space:normal!important;
    }
    /* Si la sección Ahora está desactivada, evitar una fila invisible. */
    #cwFooter .cw-footer-main-container:not(:has(> .cw-footer-schedule)) > .cw-footer-col3-col,
    #cwFooter .cw-footer-main-container:not(:has(> .cw-footer-schedule)) > .cw-footer-contact-col {grid-row:1!important;}
    #cwFooter .cw-footer-main-container:not(:has(> .cw-footer-schedule)) > .cw-footer-col2-col,
    #cwFooter .cw-footer-main-container:not(:has(> .cw-footer-schedule)) > .cw-footer-college {grid-row:2!important;}
    #cwFooter .cw-footer-main-container > .cw-footer-images {grid-column:1/-1!important;grid-row:auto!important;}
}

/* Compatibilidad visual con el diálogo de preferencias de Custom Maintenance
   Suite 2.1.1. El gestor mantiene el consentimiento, bloqueo y eventos JS.
   Nunca ocultamos una columna con datos para disimular el desbordamiento. */
@media (max-width:760px) {
    html body .cwcc-root {
        box-sizing:border-box!important;max-width:100vw!important;width:100%!important;
        padding:10px!important;overflow-x:clip!important;
    }
    html body .cwcc-root .cwcc-banner {
        box-sizing:border-box!important;width:100%!important;max-width:100%!important;
        min-width:0!important;overflow-wrap:anywhere!important;
    }
    html body .cwcc-root .cwcc-banner__copy,
    html body .cwcc-root .cwcc-banner__actions,
    html body .cwcc-root .cwcc-banner__actions .cwcc-btn {
        min-width:0!important;max-width:100%!important;
    }
    html body .cwcc-root .cwcc-banner__actions {
        display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
    html body .cwcc-modal {
        box-sizing:border-box!important;
        width:100%!important;max-width:100vw!important;
        padding:12px!important;overflow-x:clip!important;
    }
    html body .cwcc-modal .cwcc-panel {
        box-sizing:border-box!important;
        min-width:0!important;width:100%!important;max-width:100%!important;
        max-height:calc(100dvh - 24px)!important;
        padding:28px 18px 20px!important;
        overflow-x:hidden!important;overflow-y:auto!important;
        overscroll-behavior:contain;
    }
    html body .cwcc-modal .cwcc-panel > *,
    html body .cwcc-modal .cwcc-option > div {
        box-sizing:border-box!important;max-width:100%!important;min-width:0!important;
        overflow-wrap:anywhere!important;
    }
    html body .cwcc-modal .cwcc-option {
        display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
        gap:12px!important;align-items:center!important;
        width:100%!important;min-width:0!important;
    }
    html body .cwcc-modal .cwcc-option .cwcc-required {
        max-width:90px!important;white-space:normal!important;overflow-wrap:break-word!important;
        text-align:right!important;
    }
    html body .cwcc-modal .cwcc-panel__actions {
        display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
        width:100%!important;min-width:0!important;
    }
    html body .cwcc-modal .cwcc-panel__actions .cwcc-btn {
        box-sizing:border-box!important;min-width:0!important;max-width:100%!important;
        white-space:normal!important;overflow-wrap:break-word!important;
    }
}

/* v1.1.137 · AHORA: la cuenta atrás llega al borde derecho del bloque.
   Mantener la cápsula a la izquierda y alinear «Abre/Cierra en…» al mismo
   extremo que los valores horarios, incluso si el texto ocupa dos líneas. */
#cwFooter .cw-schedule-status-box .cw-sched-hint {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    margin-inline-start: auto !important;
    text-align: right !important;
    align-self: center !important;
}

/* Accessibility: expose expanded metro distance to assistive technology without layout changes. */
.cw-footer-visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
