/* =====================================================
   POSEIDON THEME — footer.css
   Grid responsive, colores desde Customizer,
   barra de derechos separada
   ===================================================== */

:root {
    --poseidon-footer-bg:        rgba(17,19,26,1);
    --poseidon-footer-color:     #ffffff;
    --poseidon-footer-lcolor:    rgba(180,180,190,1);
    --poseidon-footer-bar-bg:    rgba(8,9,14,1);
    --poseidon-footer-bar-color: #9ca3af;
    --poseidon-footer-border:    rgba(255,255,255,0.07);
    --poseidon-footer-container: 1280px;
    --poseidon-footer-font:      'Inter', sans-serif;
    --poseidon-footer-speed:     var(--poseidon-speed, 0.25s);
}

/* ── Reset ── */
.poseidon-footer *, .poseidon-footer *::before, .poseidon-footer *::after {
    box-sizing: border-box;
}

/* =====================================================
   ZONA PRINCIPAL
   ===================================================== */
.poseidon-footer { font-family: var(--poseidon-footer-font); }

.poseidon-footer__main {
    background: var(--poseidon-footer-bg);
    color: var(--poseidon-footer-color);
    padding: 64px 0 48px;
}

.poseidon-footer__inner {
    max-width: var(--poseidon-footer-container);
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    gap: 48px;
    align-items: flex-start;
}

/* ── Logo + descripción ── */
.poseidon-footer__brand {
    flex-shrink: 0;
    width: 220px;
}

.poseidon-footer__logo-link { display: inline-block; }

.poseidon-footer__logo {
    max-width: 160px;
    height: auto;
    display: block;
    /* Invertir si el logo es oscuro sobre fondo oscuro */
    filter: brightness(0) invert(1);
    opacity: .9;
}

/* Si el logo viene de the_custom_logo() */
.poseidon-footer__brand .custom-logo-link img {
    max-width: 160px;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: .9;
}

.poseidon-footer__site-name {
    font-size: 20px;
    font-weight: 700;
    color: var(--poseidon-footer-color);
    text-decoration: none;
    letter-spacing: -.4px;
}

.poseidon-footer__desc {
    margin-top: 16px;
    font-size: 13px;
    line-height: 1.65;
    color: var(--poseidon-footer-lcolor);
    max-width: 200px;
}

/* ── Redes sociales ── */
.poseidon-footer__social {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.poseidon-footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: var(--poseidon-footer-color);
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    opacity: .85;
    transition: opacity var(--poseidon-footer-speed),
                transform var(--poseidon-footer-speed),
                background var(--poseidon-footer-speed),
                border-color var(--poseidon-footer-speed);
}

.poseidon-footer__social-link:hover {
    opacity: 1;
    transform: translateY(-3px);
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.28);
}

.poseidon-footer__social-link svg {
    width: 15px;
    height: 15px;
}

/* ── Grid de columnas ── */
.poseidon-footer__grid {
    flex: 1;
    display: grid;
    gap: 40px 32px;
    align-items: flex-start;
}

/* Grid dinámico según columnas activas */
.poseidon-footer__grid--1 { grid-template-columns: 1fr; }
.poseidon-footer__grid--2 { grid-template-columns: repeat(2, 1fr); }
.poseidon-footer__grid--3 { grid-template-columns: repeat(3, 1fr); }
.poseidon-footer__grid--4 { grid-template-columns: repeat(4, 1fr); }

/* ── Cada columna ── */
.poseidon-footer__col { min-width: 0; }

.poseidon-footer__col-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--poseidon-footer-color);
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--poseidon-footer-border);
}

/* ── Menú del footer ── */
.poseidon-footer__menu {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.poseidon-footer__menu-item { list-style: none; }

.poseidon-footer__menu-link {
    display: inline-block;
    padding: 5px 0;
    font-size: 13px;
    font-weight: 400;
    color: var(--poseidon-footer-lcolor);
    text-decoration: none;
    transition: color var(--poseidon-footer-speed), opacity var(--poseidon-footer-speed);
    line-height: 1.4;
}

.poseidon-footer__menu-link:hover,
.poseidon-footer__menu-item.is-active .poseidon-footer__menu-link {
    color: var(--poseidon-footer-color);
}

/* Submenú de 2do nivel */
.poseidon-footer__submenu {
    list-style: none;
    margin: 4px 0 4px 12px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.poseidon-footer__submenu-link {
    display: inline-block;
    padding: 4px 0;
    font-size: 12px;
    color: var(--poseidon-footer-lcolor);
    text-decoration: none;
    opacity: .75;
    transition: color var(--poseidon-footer-speed), opacity var(--poseidon-footer-speed);
}

.poseidon-footer__submenu-link:hover {
    color: var(--poseidon-footer-color);
    opacity: 1;
}

/* ── Bloque de texto libre ── */
.poseidon-footer__text-block {
    font-size: 13px;
    line-height: 1.65;
    color: var(--poseidon-footer-lcolor);
}

.poseidon-footer__text-block a {
    color: var(--poseidon-footer-color);
    text-underline-offset: 3px;
}

.poseidon-footer__text-block a:hover { opacity: .8; }

.poseidon-footer__text-block p { margin: 0 0 10px; }
.poseidon-footer__text-block p:last-child { margin-bottom: 0; }

/* Aviso cuando no hay menú asignado (solo en admin) */
.poseidon-footer__no-menu {
    font-size: 12px;
    color: var(--poseidon-footer-lcolor);
    opacity: .5;
    font-style: italic;
}

.poseidon-footer__no-menu a {
    color: var(--poseidon-footer-lcolor);
    text-decoration: underline;
}

/* =====================================================
   BARRA DE DERECHOS — GRID 3 COLUMNAS
   ===================================================== */
.poseidon-footer__bar {
    background: var(--poseidon-footer-bar-bg);
    color: var(--poseidon-footer-bar-color);
    border-top: 1px solid var(--poseidon-footer-border);
}

.poseidon-footer__bar-inner {
    max-width: var(--poseidon-footer-container);
    margin: 0 auto;
    padding: 18px 24px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 24px;
}

/* Col 1: copyright — alineado a la izquierda */
.poseidon-footer__bar-col--copy {
    font-size: 12px;
    line-height: 1.6;
    color: var(--poseidon-footer-bar-color);
}

.poseidon-footer__bar-col--copy a {
    color: var(--poseidon-footer-bar-color);
    text-decoration: underline;
    text-underline-offset: 3px;
    opacity: .8;
    transition: opacity var(--poseidon-footer-speed);
}

.poseidon-footer__bar-col--copy a:hover { opacity: 1; }

/* Col 2: imagen — centrada */
.poseidon-footer__bar-col--image {
    display: flex;
    justify-content: center;
    align-items: center;
}

.poseidon-footer__bar-img {
    max-height: 28px;
    width: auto;
    max-width: 280px;
    display: block;
    object-fit: contain;
    /* Forzar modo claro para logos de pago sobre fondo oscuro */
    filter: brightness(0) invert(1);
    opacity: .7;
    transition: opacity var(--poseidon-footer-speed);
}

.poseidon-footer__bar-img:hover { opacity: 1; }

/* Col 3: extra text + menú — alineados a la derecha */
.poseidon-footer__bar-col--extra {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}

.poseidon-footer__bar-extra {
    font-size: 12px;
    line-height: 1.5;
    color: var(--poseidon-footer-bar-color);
    text-align: right;
}

.poseidon-footer__bar-extra a {
    color: var(--poseidon-footer-bar-color);
    text-decoration: underline;
    text-underline-offset: 3px;
    opacity: .8;
    transition: opacity var(--poseidon-footer-speed);
}

.poseidon-footer__bar-extra a:hover { opacity: 1; }

/* Links legales */
.poseidon-footer__bar-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    list-style: none;
    margin: 0; padding: 0;
    gap: 0;
}

.poseidon-footer__bar-links li { list-style: none; }

.poseidon-footer__bar-links li a {
    display: block;
    padding: 3px 10px;
    font-size: 12px;
    color: var(--poseidon-footer-bar-color);
    text-decoration: none;
    opacity: .75;
    white-space: nowrap;
    transition: opacity var(--poseidon-footer-speed);
}

.poseidon-footer__bar-links li a:hover { opacity: 1; }

/* Separador entre links */
.poseidon-footer__bar-links li + li {
    border-left: 1px solid rgba(255,255,255,0.12);
}

/* =====================================================
   RESPONSIVE
   ===================================================== */

/* Tablet: 2 columnas max */
@media (max-width: 1024px) {
    .poseidon-footer__inner {
        flex-direction: column;
        gap: 40px;
    }

    .poseidon-footer__brand { width: 100%; }
    .poseidon-footer__desc  { max-width: 360px; }

    .poseidon-footer__grid--3,
    .poseidon-footer__grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Barra: colapsar imagen al centro, links abajo */
    .poseidon-footer__bar-inner {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
    }

    .poseidon-footer__bar-col--image {
        grid-column: 1 / -1;
        order: -1; /* imagen arriba */
    }

    .poseidon-footer__bar-col--extra {
        align-items: flex-end;
    }
}

/* Mobile: 1 columna */
@media (max-width: 640px) {
    .poseidon-footer__main { padding: 48px 0 36px; }

    .poseidon-footer__inner { padding: 0 16px; gap: 32px; }

    .poseidon-footer__grid--1,
    .poseidon-footer__grid--2,
    .poseidon-footer__grid--3,
    .poseidon-footer__grid--4 {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    /* Barra de derechos: una columna, centrada */
    .poseidon-footer__bar-inner {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        padding: 20px 16px;
        gap: 16px;
    }

    .poseidon-footer__bar-col--copy { text-align: center; }

    .poseidon-footer__bar-col--extra {
        align-items: center;
    }

    .poseidon-footer__bar-extra { text-align: center; }

    .poseidon-footer__bar-links { justify-content: center; }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
    .poseidon-footer *, .poseidon-footer *::before, .poseidon-footer *::after {
        transition-duration: .01ms !important;
    }
}

.poseidon-footer__menu-link:focus-visible,
.poseidon-footer__bar-links li a:focus-visible {
    outline: 2px solid var(--poseidon-footer-color);
    outline-offset: 2px;
    border-radius: 2px;
}
