/* =========================================================
   Footer global – según diseño aprobado
   ========================================================= */
.site-footer { background: #0B1A2E; color: #D5DCE5; font-size: .875rem; line-height: 1.4; }
.site-footer a { color: #D5DCE5; text-decoration: none; transition: color var(--transition-fast); }
.site-footer a:hover { color: #fff; }

/* Fila principal: columnas separadas por líneas verticales */
.footer-main { display: flex; align-items: stretch; padding: 22px 0 20px; }
.footer-col { position: relative; padding: 0 46px; }
.footer-col:first-child { padding-left: 0; }
.footer-col + .footer-col::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 1px; background: rgba(255,255,255,.55); }

/* Marca */
.footer-brand { flex: 0 0 auto; display: flex; flex-direction: column; justify-content: center; padding-right: 100px; }
.footer-logo { display: inline-block; align-self: center; margin-bottom: 8px; }
.footer-logo .psm-lockup { height: 52px; width: auto; }
.footer-logo-img { display: block; max-height: 56px; max-width: 220px; width: auto; height: auto; object-fit: contain; }
.site-footer .psm-lockup circle, .site-footer .psm-lockup path { stroke: #fff; }
.site-footer .psm-lockup rect { fill: #fff; width: 2px; }
.site-footer .psm-lockup text { fill: #fff; }
.footer-tagline { margin: 0; font-size: .9375rem; line-height: 1.3; color: #fff; max-width: 26ch; }
.social-links { display: flex; gap: 8px; margin-top: 12px; }
.social-link { display: inline-flex; padding: 6px; border-radius: 4px; background: rgba(255,255,255,.06); }
.social-link:hover { background: var(--psm-industrial-blue); }

/* Títulos */
.footer-heading { margin: 0 0 4px; font-family: var(--font-body); font-size: .8125rem; font-weight: 700; color: #fff; letter-spacing: 0; }

/* Navegación */
.footer-nav-col { flex: 0 0 auto; }
.footer-nav { list-style: none; margin: 0; padding: 0; }
.footer-nav li { margin: 0; line-height: 1.45; font-size: .8125rem; }

/* Contacto: título a la izquierda, lista a la derecha */
.footer-contact-col { flex: 0 0 auto; display: flex; gap: 34px; align-items: flex-start; padding-right: 58px; }
.contact-list { list-style: none; margin: 0; padding: 0; }
.contact-list li { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 5px; font-size: .875rem; line-height: 1.35; color: #fff; }
.contact-list li:last-child { margin-bottom: 0; }
.contact-list a { color: #fff; }
.footer-icon { flex-shrink: 0; margin-top: 0; color: #fff; width: 17px; height: 17px; }

/* Mapa + claim */
.footer-graphic { flex: 1 1 auto; display: flex; align-items: center; justify-content: flex-end; min-width: 0; padding-right: 0; }
.footer-map { position: absolute; left: 34px; top: 50%; transform: translateY(-50%); width: 215px; max-width: calc(100% - 60px); height: auto; opacity: .5; pointer-events: none; }
.footer-claim { position: relative; z-index: 1; margin: 0; padding-left: 28px; font-size: .6875rem; font-weight: 500; line-height: 1.55; letter-spacing: .04em; text-transform: uppercase; color: #fff; max-width: 27ch; }
.footer-claim::before { content: ""; position: absolute; left: 7px; top: 50%; width: 4px; height: 26px; background: var(--psm-performance-amber); transform: translateY(-50%) skewX(-22deg); }

/* Barra inferior */
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.14); padding: 14px 0 22px; font-size: .6875rem; }
.footer-copy { margin: 0; color: #D5DCE5; }
.footer-legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.footer-legal li + li { border-left: 1px solid rgba(255,255,255,.6); margin-left: 12px; padding-left: 12px; }
.footer-legal a { color: #D5DCE5; }

/* Deja libre la zona del botón flotante de WhatsApp cuando el contenedor llega al borde */
@media (max-width: 1439px) and (min-width: 768px) { .footer-bottom { padding-right: 72px; } }

/* Tablet: 2 × 2 (marca | navegación / contacto | mapa) */
@media (max-width: 1180px) and (min-width: 768px) {
    .footer-main { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr); row-gap: 28px; }
    .footer-brand { padding-right: 46px; }
    .footer-contact-col { padding-left: 0; }
    .footer-contact-col::before { display: none; }
    .footer-graphic { min-height: 110px; }
}
/* Mobile */
@media (max-width: 767px) {
    .footer-main { flex-direction: column; gap: 26px; padding-top: 30px; }
    .footer-col { padding: 0; }
    .footer-col + .footer-col::before { display: none; }
    .footer-brand { align-items: flex-start; padding-right: 0; }
    .footer-logo { align-self: flex-start; }
    .footer-contact-col { flex-direction: column; gap: 8px; padding-right: 0; }
    .footer-heading { margin-bottom: 8px; }
    .footer-nav li { font-size: .9375rem; line-height: 1.7; }
    .contact-list li { gap: 14px; margin-bottom: 9px; }
    .footer-graphic { min-height: 110px; }
    .footer-map { width: 240px; max-width: 100%; opacity: .25; }
    .footer-claim { margin-left: auto; }
    .footer-bottom { flex-direction: column; align-items: flex-start; padding-bottom: 88px; } /* libre del botón WhatsApp */
}
