/*
 * horizons APED Builder — cabecera y pie propios (desde la 3.1.0).
 *
 * El plugin pinta su propia cabecera para que se vea igual con ASAP, Astra o cualquier
 * tema. Una sola marca HTML para todos los diseños; lo que cambia son las clases del
 * <header class="hpc ...">:
 *   hpc-d1..hpc-d5   cómo se ve en escritorio (desde 921px, el mismo corte que Astra)
 *   hpc-m1..hpc-m5   cómo se ve en el celular (hasta 920px)
 *   hpc-estilo-*     cómo se pintan los enlaces del menú (capsulas, subrayado, bloques,
 *                    degradado, borde, animado)
 *   hpc-borde-*      el borde de abajo de la cabecera (ninguno, linea, grueso, degradado, sombra)
 *   hpc-menu-*       izq, centro o der: dónde va el menú en escritorio (sin clase, el del diseño)
 *
 * --hpc-logo-alto (24-120 px) es el alto máximo del logo; lo elige el editor.
 *
 * Los dos colores llegan como --hpc-c1 (fondo) y --hpc-c2 (acento), y el texto legible
 * encima de cada uno como --hpc-t1 / --hpc-t2 (blanco o casi negro, lo calcula el plugin).
 * Todo va bajo .hpc: el contenido del sitio queda como lo deja el tema.
 */

:root {
    --hpc-c1: #1e3a8a;
    --hpc-c2: #f59e0b;
    --hpc-t1: #ffffff;
    --hpc-t2: #111827;
}

html.hpc-sin-scroll { overflow: hidden; }

.hpc, .hpc * { box-sizing: border-box; }

.hpc, .hpp {
    --hpc-ancho: 1200px;
    --hpc-osc: color-mix(in srgb, var(--hpc-c1) 86%, #000);
    --hpc-suave: color-mix(in srgb, var(--hpc-t1) 14%, transparent);
    --hpc-linea: color-mix(in srgb, var(--hpc-t1) 22%, transparent);
    /* Copias fijas de los colores, para poder invertirlos en una franja (ver hpc-d5). */
    --hpc-k1: var(--hpc-c1);
    --hpc-k2: var(--hpc-c2);
    --hpc-u1: var(--hpc-t1);
    --hpc-u2: var(--hpc-t2);
}
.hpc {
    position: relative;
    z-index: 990;
    background: var(--hpc-c1);
    color: var(--hpc-t1);
    font-size: 16px;
    line-height: 1.3;
}
.hpc a { color: inherit; text-decoration: none; }
.hpc ul { list-style: none; margin: 0; padding: 0; }
.hpc button {
    font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0;
    cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: normal;
}
.hpc svg {
    display: block; width: 20px; height: 20px;
    fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round;
}

/* ── Barra superior ─────────────────────────────────────────────────────────── */
.hpc-barra { background: var(--hpc-osc); font-size: 13px; }
.hpc-barra-in {
    max-width: var(--hpc-ancho); margin: 0 auto; padding: 7px 20px;
    display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.hpc-barra-links { display: flex; gap: 18px; }
.hpc-barra-links a { opacity: .85; }
.hpc-barra-links a:hover { opacity: 1; text-decoration: underline; }

/* ── Fila principal ─────────────────────────────────────────────────────────── */
.hpc-in {
    position: relative; max-width: var(--hpc-ancho); margin: 0 auto; padding: 0 20px;
    min-height: 72px; display: grid; align-items: center; column-gap: 20px;
}
.hpc-logo {
    grid-area: logo; display: inline-flex; align-items: center; padding: 10px 0;
    font-weight: 800; font-size: 1.45em; letter-spacing: -.01em; white-space: nowrap;
}
/* El logo nunca pasa de su sitio en la cabecera (min-width y max-width) y guarda su
   proporción: con alto y ancho en auto, el navegador respeta los dos topes a la vez
   aunque WordPress ponga width/height en la etiqueta. */
.hpc-logo { min-width: 0; max-width: 100%; }
.hpc-logo img { display: block; width: auto; height: auto; max-height: var(--hpc-logo-alto, 48px); max-width: min(100%, 340px); object-fit: contain; }
.hpc-nav { grid-area: nav; min-width: 0; }
.hpc-acc { grid-area: acc; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }

.hpc-hamb {
    grid-area: hamb; width: 44px; height: 44px; display: none;
    align-items: center; justify-content: center; border-radius: 10px;
}
.hpc-hamb span, .hpc-hamb span::before, .hpc-hamb span::after {
    display: block; width: 22px; height: 2px; border-radius: 2px;
    background: currentColor; transition: transform .25s, background .25s;
}
.hpc-hamb span { position: relative; }
.hpc-hamb span::before, .hpc-hamb span::after { content: ""; position: absolute; left: 0; }
.hpc-hamb span::before { top: -7px; }
.hpc-hamb span::after { top: 7px; }

.hpc-lupa {
    grid-area: lupa; width: 42px; height: 42px; display: inline-flex;
    align-items: center; justify-content: center; border-radius: 50%; transition: background .2s;
}
.hpc-lupa:hover, .hpc-buscando .hpc-lupa { background: var(--hpc-suave); }

.hpc .hpc-boton {
    grid-area: boton; display: inline-flex; align-items: center; justify-content: center;
    padding: 10px 18px; border-radius: 999px; background: var(--hpc-c2); color: var(--hpc-t2);
    font-weight: 700; font-size: .92em; white-space: nowrap; transition: transform .2s, box-shadow .2s;
}
.hpc .hpc-boton:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0, 0, 0, .18); }

/* ── Buscador ───────────────────────────────────────────────────────────────── */
.hpc-buscar {
    grid-area: busca; display: none; align-items: center; background: #fff;
    border-radius: 999px; overflow: hidden; box-shadow: 0 1px 2px rgba(0, 0, 0, .08);
}
.hpc .hpc-buscar input {
    flex: 1; min-width: 0; height: 42px; border: 0; outline: 0; margin: 0; padding: 0 16px;
    font: inherit; font-size: 15px; color: #1f2937; background: transparent; box-shadow: none;
}
.hpc .hpc-buscar button {
    flex: none; width: 46px; height: 42px; display: flex; align-items: center; justify-content: center;
    background: var(--hpc-c2); color: var(--hpc-t2); border-radius: 0;
}

/* ── Menú (común) ───────────────────────────────────────────────────────────── */
.hpc-menu a { display: block; }
.hpc-cerrar, .hpc-li-boton, .hpc-velo { display: none; }

/* ── Bordes de la cabecera ──────────────────────────────────────────────────── */
.hpc::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 0; pointer-events: none;
}
/* Con .hpc delante: el pie (.hpp) lleva las mismas clases de borde y las pinta arriba. */
.hpc.hpc-borde-linea::after { height: 1px; background: var(--hpc-linea); }
.hpc.hpc-borde-grueso::after { height: 4px; background: var(--hpc-c2); }
.hpc.hpc-borde-degradado::after {
    height: 4px;
    background: linear-gradient(90deg, var(--hpc-c2), color-mix(in srgb, var(--hpc-c2) 30%, var(--hpc-c1)), var(--hpc-c2));
}
.hpc.hpc-borde-sombra { box-shadow: 0 6px 20px rgba(0, 0, 0, .14); }

/* ═══════════════════════════════════════════════════════════════════════════
   ESCRITORIO
   ═══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 921px) {
    .hpc-menu { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
    .hpc-menu > li { position: relative; }
    .hpc .hpc-menu > li.hpc-li-boton { display: none; } /* la copia del botón es solo para el panel del celular */
    .hpc-menu > li > a {
        position: relative; padding: 10px 14px; border-radius: 8px; font-weight: 600; font-size: .95em;
        transition: background-color .25s, background-size .35s, color .25s, border-color .25s, box-shadow .25s;
    }
    .hpc-menu > li > a:hover, .hpc-menu > li.hpc-actual > a { background-color: var(--hpc-suave); }
    .hpc-menu > li.hpc-tiene-sub > a { padding-right: 28px; }
    .hpc-menu > li.hpc-tiene-sub::after {
        content: ""; position: absolute; right: 12px; top: 50%; width: 6px; height: 6px;
        border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
        transform: translateY(-70%) rotate(45deg); opacity: .75; pointer-events: none;
    }
    .hpc-sub {
        position: absolute; top: 100%; left: 0; min-width: 220px; padding: 8px; z-index: 5;
        background: var(--hpc-osc); color: var(--hpc-t1); border-radius: 12px;
        box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
        opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s;
    }
    .hpc-menu li:hover > .hpc-sub, .hpc-menu li:focus-within > .hpc-sub { opacity: 1; visibility: visible; transform: none; }
    .hpc-sub a { padding: 9px 12px; border-radius: 8px; font-size: .92em; }
    .hpc-sub a:hover { background: var(--hpc-suave); }

    .hpc-buscando .hpc-buscar {
        display: flex; position: absolute; top: calc(100% + 8px); right: 20px; z-index: 6;
        width: min(380px, 90vw); box-shadow: 0 12px 30px rgba(0, 0, 0, .22);
    }

    /* 1 · Clásica: logo a la izquierda, menú y acciones a la derecha. */
    .hpc-d1 .hpc-in { grid-template-columns: auto 1fr auto; grid-template-areas: "logo nav acc"; }
    .hpc-d1 .hpc-menu { justify-content: flex-end; }

    /* 2 · Centrada: logo grande al centro y el menú en una franja más oscura debajo. */
    .hpc-d2 .hpc-in { grid-template-columns: 1fr auto 1fr; grid-template-areas: ". logo acc" "nav nav nav"; }
    .hpc-d2 .hpc-logo { font-size: 2.1em; padding: 18px 0; }
    .hpc-d2 .hpc-logo img { max-height: calc(var(--hpc-logo-alto, 48px) * 1.33); }
    .hpc-d2 .hpc-nav { background: var(--hpc-osc); border-image: linear-gradient(var(--hpc-osc), var(--hpc-osc)) fill 0 / 0 / 0 100vw; }
    .hpc-d2 .hpc-menu { justify-content: center; padding: 6px 0; }

    /* 3 · Logo al centro: menú a la izquierda, logo en medio y acciones a la derecha. */
    .hpc-d3 .hpc-in { grid-template-columns: 1fr auto 1fr; grid-template-areas: "nav logo acc"; min-height: 80px; }
    .hpc-d3 .hpc-logo { font-size: 1.7em; }
    .hpc-d3 .hpc-menu { justify-content: flex-start; }

    /* 4 · Flotante: una píldora de color que flota sobre la página. */
    .hpc-d4 { background: transparent; padding: 14px 16px 0; }
    .hpc-d4 .hpc-barra { margin: -14px -16px 14px; }
    .hpc-d4 .hpc-in {
        grid-template-columns: auto 1fr auto; grid-template-areas: "logo nav acc";
        min-height: 64px; padding: 0 10px 0 28px; border-radius: 999px;
        background: var(--hpc-c1); box-shadow: 0 10px 30px rgba(0, 0, 0, .16);
    }
    .hpc-d4 .hpc-menu { justify-content: center; }
    .hpc-d4::after { display: none; }
    .hpc-d4.hpc-borde-sombra { box-shadow: none; }
    .hpc-d4.hpc-borde-linea .hpc-in { box-shadow: 0 0 0 1px var(--hpc-linea), 0 10px 30px rgba(0, 0, 0, .16); }
    .hpc-d4.hpc-borde-grueso .hpc-in { box-shadow: 0 0 0 3px var(--hpc-c2), 0 10px 30px rgba(0, 0, 0, .16); }
    .hpc-d4.hpc-borde-degradado .hpc-in {
        border: 3px solid transparent;
        background: linear-gradient(var(--hpc-c1), var(--hpc-c1)) padding-box,
                    linear-gradient(90deg, var(--hpc-c2), var(--hpc-c1), var(--hpc-c2)) border-box;
    }
    .hpc-d4.hpc-borde-ninguno .hpc-in { box-shadow: none; }

    /* 5 · Revista: buscador grande arriba y el menú en una franja del color 2. */
    .hpc-d5 .hpc-in { grid-template-columns: auto 1fr; grid-template-areas: "logo acc" "nav nav"; }
    .hpc-d5 .hpc-acc { gap: 16px; }
    .hpc-d5 .hpc-lupa { display: none; }
    .hpc-d5 .hpc-buscar { display: flex; flex: 1; max-width: 520px; margin: 0 auto 0 32px; }
    .hpc-d5 .hpc-nav {
        --hpc-c1: var(--hpc-k2); --hpc-c2: var(--hpc-k1);
        --hpc-t1: var(--hpc-u2); --hpc-t2: var(--hpc-u1);
        --hpc-osc: color-mix(in srgb, var(--hpc-c1) 86%, #000);
        --hpc-suave: color-mix(in srgb, var(--hpc-t1) 14%, transparent);
        --hpc-linea: color-mix(in srgb, var(--hpc-t1) 22%, transparent);
        background: var(--hpc-c1); color: var(--hpc-t1);
        border-image: linear-gradient(var(--hpc-c1), var(--hpc-c1)) fill 0 / 0 / 0 100vw;
    }
    .hpc-d5 .hpc-menu { padding: 5px 0; }

    /* ── Dónde va el menú (elige el editor; sin clase, el del diseño) ───────── */
    .hpc.hpc.hpc-menu-izq .hpc-menu, .hpc.hpc.hpc-menu-izq.hpc-estilo-bloques .hpc-nav { justify-content: flex-start; }
    .hpc.hpc.hpc-menu-centro .hpc-menu, .hpc.hpc.hpc-menu-centro.hpc-estilo-bloques .hpc-nav { justify-content: center; }
    .hpc.hpc.hpc-menu-der .hpc-menu, .hpc.hpc.hpc-menu-der.hpc-estilo-bloques .hpc-nav { justify-content: flex-end; }

    /* ── Estilos del menú ─────────────────────────────────────────────────── */
    /* Cápsulas */
    .hpc-estilo-capsulas .hpc-menu > li > a { border-radius: 999px; }
    .hpc-estilo-capsulas .hpc-menu > li.hpc-actual > a { background-color: var(--hpc-c2); color: var(--hpc-t2); }

    /* Subrayado */
    .hpc-estilo-subrayado .hpc-menu > li > a:hover,
    .hpc-estilo-subrayado .hpc-menu > li.hpc-actual > a { background-color: transparent; }
    .hpc-estilo-subrayado .hpc-menu > li > a::after {
        content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px; height: 3px; border-radius: 3px;
        background: var(--hpc-c2); transform: scaleX(0); transition: transform .25s;
    }
    .hpc-estilo-subrayado .hpc-menu > li.hpc-tiene-sub > a::after { right: 28px; }
    .hpc-estilo-subrayado .hpc-menu > li > a:hover::after,
    .hpc-estilo-subrayado .hpc-menu > li.hpc-actual > a::after { transform: scaleX(1); }

    /* Bloques */
    .hpc-estilo-bloques .hpc-menu { gap: 0; align-self: stretch; }
    .hpc-estilo-bloques .hpc-nav { align-self: stretch; display: flex; }
    .hpc-estilo-bloques .hpc-menu { align-items: stretch; }
    .hpc-estilo-bloques .hpc-menu > li { display: flex; }
    .hpc-estilo-bloques .hpc-menu > li + li { border-left: 1px solid var(--hpc-linea); }
    .hpc-estilo-bloques .hpc-menu > li > a { display: flex; align-items: center; border-radius: 0; padding: 16px 18px; }
    .hpc-estilo-bloques .hpc-menu > li.hpc-tiene-sub > a { padding-right: 30px; }
    .hpc-estilo-bloques .hpc-menu > li > a:hover,
    .hpc-estilo-bloques .hpc-menu > li.hpc-actual > a { background-color: var(--hpc-c2); color: var(--hpc-t2); }
    .hpc-estilo-bloques .hpc-menu > li:hover::after,
    .hpc-estilo-bloques .hpc-menu > li.hpc-actual::after { color: var(--hpc-t2); }
    .hpc-estilo-bloques .hpc-sub { border-radius: 0 0 10px 10px; }
    .hpc-d1.hpc-estilo-bloques .hpc-menu { justify-content: flex-end; }
    .hpc-d2.hpc-estilo-bloques .hpc-menu, .hpc-d4.hpc-estilo-bloques .hpc-menu { justify-content: center; padding: 0; }
    .hpc-d2.hpc-estilo-bloques .hpc-nav, .hpc-d4.hpc-estilo-bloques .hpc-nav { justify-content: center; }
    .hpc-d1.hpc-estilo-bloques .hpc-nav { justify-content: flex-end; }
    .hpc-d5.hpc-estilo-bloques .hpc-menu { padding: 0; }

    /* Degradado */
    .hpc-estilo-degradado .hpc-menu > li > a { border-radius: 10px; }
    .hpc-estilo-degradado .hpc-menu > li > a:hover,
    .hpc-estilo-degradado .hpc-menu > li.hpc-actual > a {
        background-image: linear-gradient(135deg, var(--hpc-c2), color-mix(in srgb, var(--hpc-c2) 62%, var(--hpc-c1)));
        color: var(--hpc-t2); box-shadow: 0 6px 16px color-mix(in srgb, var(--hpc-c2) 35%, transparent);
    }

    /* Borde */
    .hpc-estilo-borde .hpc-menu { gap: 8px; }
    .hpc-estilo-borde .hpc-menu > li > a { border: 2px solid var(--hpc-linea); border-radius: 8px; padding: 8px 14px; }
    .hpc-estilo-borde .hpc-menu > li.hpc-tiene-sub > a { padding-right: 28px; }
    .hpc-estilo-borde .hpc-menu > li > a:hover,
    .hpc-estilo-borde .hpc-menu > li.hpc-actual > a { background-color: transparent; border-color: var(--hpc-c2); }

    /* Animado: el color 2 barre el enlace y los elementos entran escalonados al cargar */
    .hpc-estilo-animado .hpc-menu > li > a {
        background-image: linear-gradient(var(--hpc-c2), var(--hpc-c2));
        background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 100%;
    }
    .hpc-estilo-animado .hpc-menu > li > a:hover,
    .hpc-estilo-animado .hpc-menu > li.hpc-actual > a {
        background-color: transparent; background-size: 100% 100%; color: var(--hpc-t2);
    }
    .hpc-estilo-animado .hpc-menu > li { animation: hpc-entra .5s both; }
    .hpc-estilo-animado .hpc-menu > li:nth-child(2) { animation-delay: .07s; }
    .hpc-estilo-animado .hpc-menu > li:nth-child(3) { animation-delay: .14s; }
    .hpc-estilo-animado .hpc-menu > li:nth-child(4) { animation-delay: .21s; }
    .hpc-estilo-animado .hpc-menu > li:nth-child(5) { animation-delay: .28s; }
    .hpc-estilo-animado .hpc-menu > li:nth-child(n+6) { animation-delay: .35s; }
    .hpc-estilo-animado .hpc-sub li { transition: transform .2s; }
    .hpc-estilo-animado .hpc-sub li:hover { transform: translateX(4px); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   CELULAR
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 920px) {
    .hpc-in { min-height: 60px; column-gap: 6px; padding: 0 12px; }
    .hpc-acc { display: contents; }
    .hpc-hamb { display: inline-flex; }
    .hpc-logo { font-size: 1.25em; }
    .hpc-logo img { max-height: min(var(--hpc-logo-alto, 48px), 44px); max-width: 100%; }
    .hpc-acc .hpc-boton { display: none; }
    .hpc-barra-links { display: none; }
    .hpc-barra-in { justify-content: center; text-align: center; padding: 6px 12px; font-size: 12px; }
    .hpc-buscando .hpc-buscar { display: flex; margin: 0 0 10px; }
    .hpc .hpc-buscar input { font-size: 16px; }

    /* Panel lateral (diseños 1, 2 y 4) */
    .hpc-nav {
        position: fixed; top: 0; bottom: 0; right: 0; z-index: 1000; width: min(86vw, 340px);
        padding: 64px 18px 24px; overflow-y: auto; background: var(--hpc-c1); color: var(--hpc-t1);
        transform: translateX(105%); transition: transform .3s ease, visibility .3s; box-shadow: -10px 0 30px rgba(0, 0, 0, .25);
        visibility: hidden; /* cerrado no asoma su sombra ni deja sus enlaces al tabulador */
    }
    .hpc-abierto .hpc-nav { transform: none; visibility: visible; }
    .hpc-cerrar {
        display: flex; position: absolute; top: 12px; right: 12px; width: 42px; height: 42px;
        align-items: center; justify-content: center; border-radius: 50%; font-size: 28px; line-height: 1;
    }
    .hpc-cerrar:hover { background: var(--hpc-suave); }
    .hpc-abierto .hpc-velo { display: block; position: fixed; inset: 0; z-index: 999; background: rgba(0, 0, 0, .45); }
    .hpc-menu a { padding: 13px 6px; border-bottom: 1px solid var(--hpc-linea); font-weight: 600; }
    .hpc-menu > li.hpc-actual > a { box-shadow: inset 3px 0 0 var(--hpc-c2); padding-left: 12px; }
    .hpc-sub { padding-left: 14px; }
    .hpc-sub a { font-weight: 500; font-size: .95em; opacity: .9; }
    .hpc-li-boton { display: block; margin-top: 18px; }
    .hpc .hpc-li-boton a { display: flex; border-bottom: 0; padding: 13px 18px; }

    /* 1 · Clásica: logo, lupa y menú lateral desde la derecha. */
    .hpc-m1 .hpc-in { grid-template-columns: 1fr auto auto; grid-template-areas: "logo lupa hamb" "busca busca busca"; }

    /* 2 · Centrada: menú a la izquierda, logo al centro y lupa a la derecha. */
    .hpc-m2 .hpc-in { grid-template-columns: 48px 1fr 48px; grid-template-areas: "hamb logo lupa" "busca busca busca"; }
    .hpc-m2 .hpc-logo { justify-self: center; }
    .hpc-m2 .hpc-lupa { justify-self: end; }
    .hpc-m2 .hpc-nav { right: auto; left: 0; transform: translateX(-105%); box-shadow: 10px 0 30px rgba(0, 0, 0, .25); }
    .hpc-m2.hpc-abierto .hpc-nav { transform: none; }

    /* 3 · Pestañas: logo al centro y el menú en pestañas que se deslizan con el dedo. */
    .hpc-m3 .hpc-in { grid-template-columns: 48px 1fr 48px; grid-template-areas: ". logo lupa" "nav nav nav" "busca busca busca"; }
    .hpc-m3 .hpc-hamb, .hpc-m3 .hpc-cerrar, .hpc-m3 .hpc-sub, .hpc-m3 .hpc-li-boton { display: none; }
    .hpc-m3.hpc-abierto .hpc-velo { display: none; }
    .hpc-m3 .hpc-logo { justify-self: center; }
    .hpc-m3 .hpc-lupa { justify-self: end; }
    .hpc-m3 .hpc-nav {
        position: static; transform: none; width: auto; background: none; box-shadow: none; visibility: visible;
        margin: 0 -12px; padding: 2px 12px 10px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
    }
    .hpc-m3 .hpc-nav::-webkit-scrollbar { display: none; }
    .hpc-m3 .hpc-menu { display: flex; gap: 8px; width: max-content; }
    .hpc-m3 .hpc-menu > li > a {
        padding: 7px 14px; border: 1px solid var(--hpc-linea); border-radius: 999px;
        font-size: .9em; white-space: nowrap;
    }
    .hpc-m3 .hpc-menu > li.hpc-actual > a {
        box-shadow: none; padding-left: 14px; border-color: transparent;
        background: var(--hpc-c2); color: var(--hpc-t2);
    }

    /* 4 · Con buscador: logo y menú arriba, la barra de búsqueda siempre a la vista. */
    .hpc-m4 .hpc-in { grid-template-columns: 1fr auto; grid-template-areas: "logo hamb" "busca busca"; }
    .hpc-m4 .hpc-lupa { display: none; }
    .hpc-m4 .hpc-buscar { display: flex; margin: 0 0 10px; }

    /* 5 · Pantalla completa: botón a la vista y el menú ocupa toda la pantalla con degradado. */
    .hpc-m5 .hpc-in { grid-template-columns: 1fr auto auto auto; grid-template-areas: "logo lupa boton hamb" "busca busca busca busca"; }
    .hpc-m5 .hpc-acc .hpc-boton { display: inline-flex; padding: 7px 12px; font-size: .8em; margin-left: 4px; }
    .hpc-m5 .hpc-nav {
        inset: 0; width: auto; transform: none; box-shadow: none; opacity: 0; visibility: hidden;
        transition: opacity .3s, visibility .3s; display: flex; flex-direction: column; justify-content: center;
        padding: 70px 28px; text-align: center;
        background: linear-gradient(160deg, var(--hpc-c1), color-mix(in srgb, var(--hpc-c1) 55%, var(--hpc-c2)));
    }
    .hpc-m5.hpc-abierto .hpc-nav { opacity: 1; visibility: visible; }
    .hpc-m5.hpc-abierto .hpc-velo { display: none; }
    .hpc-m5 .hpc-menu > li > a { border: 0; padding: 10px 0; font-size: 1.5em; font-weight: 800; }
    .hpc-m5 .hpc-menu > li.hpc-actual > a {
        box-shadow: none; padding-left: 0; text-decoration: underline;
        text-decoration-color: var(--hpc-c2); text-decoration-thickness: 3px; text-underline-offset: 6px;
    }
    .hpc-m5 .hpc-sub { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 0 0 8px; }
    .hpc-m5 .hpc-sub a { border: 0; padding: 5px 12px; border-radius: 999px; background: var(--hpc-suave); }
    .hpc-m5 .hpc-li-boton { display: flex; justify-content: center; }
    .hpc-m5 .hpc-menu > li.hpc-li-boton > a { padding: 12px 30px; font-size: 1.05em; }
    .hpc-m5.hpc-abierto .hpc-menu > li { animation: hpc-sube .4s both; }
    .hpc-m5.hpc-abierto .hpc-menu > li:nth-child(2) { animation-delay: .05s; }
    .hpc-m5.hpc-abierto .hpc-menu > li:nth-child(3) { animation-delay: .1s; }
    .hpc-m5.hpc-abierto .hpc-menu > li:nth-child(4) { animation-delay: .15s; }
    .hpc-m5.hpc-abierto .hpc-menu > li:nth-child(5) { animation-delay: .2s; }
    .hpc-m5.hpc-abierto .hpc-menu > li:nth-child(n+6) { animation-delay: .25s; }

    /* La hamburguesa se vuelve X mientras el menú está abierto (se ve en el diseño 5). */
    .hpc-abierto .hpc-hamb span { background: transparent; }
    .hpc-abierto .hpc-hamb span::before { transform: translateY(7px) rotate(45deg); }
    .hpc-abierto .hpc-hamb span::after { transform: translateY(-7px) rotate(-45deg); }
    .hpc-m5 .hpc-hamb { position: relative; z-index: 1001; }
    .hpc-m5 .hpc-cerrar { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PIE  (<footer class="hpp hpp-p1 hpc-estilo-* hpc-borde-*">)
   Mismos colores y mismas clases de estilo y borde que la cabecera, para que
   los dos vayan a juego. hpp-p1 columnas, hpp-p2 centrado, hpp-p3 dos tonos.
   ═══════════════════════════════════════════════════════════════════════════ */
.hpp, .hpp * { box-sizing: border-box; }
.hpp {
    position: relative; background: var(--hpc-c1); color: var(--hpc-t1);
    font-size: 15px; line-height: 1.6; text-align: left;
}
.hpp a { color: inherit; text-decoration: none; }
.hpp ul { list-style: none; margin: 0; padding: 0; }
.hpp-in {
    max-width: var(--hpc-ancho); margin: 0 auto; padding: 48px 20px 40px;
    display: grid; gap: 32px 40px; align-items: start;
}
.hpp-logo { display: inline-flex; align-items: center; font-weight: 800; font-size: 1.5em; line-height: 1.2; }
.hpp-logo { max-width: 100%; }
.hpp-logo img { display: block; width: auto; height: auto; max-height: 64px; max-width: min(100%, 260px); object-fit: contain; }
.hpp-lema { margin: 10px 0 0; opacity: .82; }
.hpp-h {
    position: relative; margin: 0 0 14px; padding: 0 0 10px; font-size: 1.02em; font-weight: 700;
    line-height: 1.3; color: inherit; letter-spacing: .01em;
}
.hpp-h::after {
    content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px;
    border-radius: 3px; background: var(--hpc-c2);
}
.hpp-lista li { margin: 0 0 9px; line-height: 1.4; }
.hpp-lista a { opacity: .88; }
.hpp-lista a:hover {
    opacity: 1; text-decoration: underline; text-decoration-color: var(--hpc-c2);
    text-decoration-thickness: 2px; text-underline-offset: 3px;
}
.hpp-aviso p { margin: 0; opacity: .82; font-size: .93em; }
.hpp .hpp-boton { display: none; }

.hpp-legal { background: var(--hpc-osc); font-size: 13.5px; }
.hpp-legal-in {
    max-width: var(--hpc-ancho); margin: 0 auto; padding: 14px 20px;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px;
}
.hpp-legal-links { display: flex; flex-wrap: wrap; gap: 6px 8px; }
.hpp-legal-links a {
    position: relative; padding: 4px 10px; border-radius: 6px; opacity: .9;
    transition: background-color .25s, background-size .35s, color .25s, border-color .25s, opacity .25s;
}
.hpp-legal-links a:hover { opacity: 1; background-color: var(--hpc-suave); }
.hpp-copy { opacity: .8; }

/* Borde: el mismo que eligió la cabecera, pero arriba del pie. */
.hpp::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 0; pointer-events: none; }
.hpp.hpc-borde-linea::before { height: 1px; background: var(--hpc-linea); }
.hpp.hpc-borde-grueso::before { height: 4px; background: var(--hpc-c2); }
.hpp.hpc-borde-degradado::before {
    height: 4px;
    background: linear-gradient(90deg, var(--hpc-c2), color-mix(in srgb, var(--hpc-c2) 30%, var(--hpc-c1)), var(--hpc-c2));
}
.hpp.hpc-borde-sombra { box-shadow: 0 -6px 20px rgba(0, 0, 0, .12); }

/* Estilo de los enlaces legales: el mismo que el menú de la cabecera. */
.hpp.hpc-estilo-capsulas .hpp-legal-links a { border-radius: 999px; }
.hpp.hpc-estilo-subrayado .hpp-legal-links a:hover { background-color: transparent; }
.hpp.hpc-estilo-subrayado .hpp-legal-links a::after {
    content: ""; position: absolute; left: 10px; right: 10px; bottom: 1px; height: 2px; border-radius: 2px;
    background: var(--hpc-c2); transform: scaleX(0); transition: transform .25s;
}
.hpp.hpc-estilo-subrayado .hpp-legal-links a:hover::after { transform: scaleX(1); }
.hpp.hpc-estilo-bloques .hpp-legal-links { gap: 0; }
.hpp.hpc-estilo-bloques .hpp-legal-links a { border-radius: 0; padding: 4px 14px; }
.hpp.hpc-estilo-bloques .hpp-legal-links a + a { border-left: 1px solid var(--hpc-linea); }
.hpp.hpc-estilo-bloques .hpp-legal-links a:hover { background-color: var(--hpc-c2); color: var(--hpc-t2); }
.hpp.hpc-estilo-degradado .hpp-legal-links a { border-radius: 8px; }
.hpp.hpc-estilo-degradado .hpp-legal-links a:hover {
    background-image: linear-gradient(135deg, var(--hpc-c2), color-mix(in srgb, var(--hpc-c2) 62%, var(--hpc-c1)));
    color: var(--hpc-t2);
}
.hpp.hpc-estilo-borde .hpp-legal-links a { border: 1px solid var(--hpc-linea); }
.hpp.hpc-estilo-borde .hpp-legal-links a:hover { background-color: transparent; border-color: var(--hpc-c2); }
.hpp.hpc-estilo-animado .hpp-legal-links a {
    background-image: linear-gradient(var(--hpc-c2), var(--hpc-c2));
    background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 100%;
}
.hpp.hpc-estilo-animado .hpp-legal-links a:hover { background-color: transparent; background-size: 100% 100%; color: var(--hpc-t2); }

/* 1 · Columnas: marca, lo último, categorías y aviso. */
.hpp-p1 .hpp-in { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; }

/* 2 · Centrado: solo marca, aviso y enlaces legales, todo al centro. */
.hpp-p2 .hpp-in { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 16px; padding: 44px 20px 28px; }
.hpp-p2 .hpp-recientes, .hpp-p2 .hpp-categorias, .hpp-p2 .hpp-aviso .hpp-h { display: none; }
.hpp-p2 .hpp-aviso { max-width: 680px; }
.hpp-p2 .hpp-legal-in { flex-direction: column; justify-content: center; text-align: center; }
.hpp-p2 .hpp-legal-links { justify-content: center; }

/* 3 · Dos tonos: franja del color 2 con la marca y el botón; debajo, las columnas. */
.hpp-p3 .hpp-in {
    grid-template-columns: 1fr 1fr 1.2fr;
    grid-template-areas: "marca marca marca" "recientes categorias aviso";
    padding-top: 0;
}
.hpp-p3 .hpp-marca {
    grid-area: marca;
    --hpc-c1: var(--hpc-k2); --hpc-c2: var(--hpc-k1);
    --hpc-t1: var(--hpc-u2); --hpc-t2: var(--hpc-u1);
    background: var(--hpc-c1); color: var(--hpc-t1);
    border-image: linear-gradient(var(--hpc-c1), var(--hpc-c1)) fill 0 / 0 / 0 100vw;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px;
    padding: 28px 0;
}
.hpp-p3 .hpp-recientes { grid-area: recientes; }
.hpp-p3 .hpp-categorias { grid-area: categorias; }
.hpp-p3 .hpp-aviso { grid-area: aviso; }
.hpp-p3 .hpp-lema { margin-top: 4px; }
.hpp.hpp-p3 .hpp-boton {
    display: inline-flex; align-items: center; padding: 11px 22px; border-radius: 999px; font-weight: 700;
    background: var(--hpc-c2); color: var(--hpc-t2); transition: transform .2s, box-shadow .2s;
}
.hpp.hpp-p3 .hpp-boton:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0, 0, 0, .18); }

@media (max-width: 920px) {
    .hpp-p1 .hpp-in { grid-template-columns: 1fr 1fr; }
    .hpp-p1 .hpp-marca { grid-column: 1 / -1; }
    .hpp-p3 .hpp-in { grid-template-columns: 1fr 1fr; grid-template-areas: "marca marca" "recientes categorias" "aviso aviso"; }
    .hpp-legal-in { flex-direction: column; justify-content: center; text-align: center; }
    .hpp-legal-links { justify-content: center; }
}
@media (max-width: 600px) {
    .hpp-in { gap: 26px; padding: 36px 16px 30px; }
    .hpp-p1 .hpp-in { grid-template-columns: 1fr; }
    .hpp-p3 .hpp-in { grid-template-columns: 1fr; grid-template-areas: "marca" "recientes" "categorias" "aviso"; padding-top: 0; }
    .hpp-p3 .hpp-marca { flex-direction: column; text-align: center; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PIE EXTRA  (<section class="hpx">, 3.1.1): franja encima del pie con el HTML
   del editor. Fondo con un tinte suave del color 1; los marcadores
   [hp_ultimas], [hp_entradas] y [hp_categorias] salen como tarjetas y pastillas.
   ═══════════════════════════════════════════════════════════════════════════ */
.hpx, .hpx * { box-sizing: border-box; }
.hpx {
    background: color-mix(in srgb, var(--hpc-c1) 6%, #fff); color: #1f2937;
    border-top: 1px solid color-mix(in srgb, var(--hpc-c1) 14%, #fff);
}
.hpx-in { max-width: 1200px; margin: 0 auto; padding: 36px 20px; }
.hpx-in > :first-child { margin-top: 0; }
.hpx-in > :last-child { margin-bottom: 0; }
.hpx h2, .hpx h3 { margin: 0 0 14px; color: color-mix(in srgb, var(--hpc-c1) 80%, #000); line-height: 1.25; }
.hpx a { color: color-mix(in srgb, var(--hpc-c1) 80%, #000); }
.hpx-entradas { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; margin: 0 0 22px; }
.hpx-entrada { display: flex; flex-direction: column; gap: 8px; color: inherit; text-decoration: none; }
.hpx .hpx-entrada { color: #1f2937; text-decoration: none; }
.hpx-img { display: block; aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; background: color-mix(in srgb, var(--hpc-c1) 12%, #e5e7eb); }
.hpx-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.hpx-entrada:hover .hpx-img img { transform: scale(1.04); }
.hpx-titulo { font-weight: 700; line-height: 1.35; }
.hpx-entrada:hover .hpx-titulo { text-decoration: underline; text-decoration-color: var(--hpc-c2); text-underline-offset: 3px; }
.hpx-categorias { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.hpx .hpx-cat {
    display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px;
    background: var(--hpc-c1); color: var(--hpc-t1); font-weight: 600; font-size: .92em; text-decoration: none;
}
.hpx .hpx-cat:hover { background: var(--hpc-c2); color: var(--hpc-t2); }
.hpx-cat span { opacity: .75; font-weight: 500; }
@media (max-width: 600px) { .hpx-in { padding: 28px 16px; } .hpx-entradas { grid-template-columns: 1fr 1fr; gap: 12px; } }

@keyframes hpc-entra { from { opacity: 0; transform: translateY(-6px); } }
@keyframes hpc-sube { from { opacity: 0; transform: translateY(14px); } }

@media (prefers-reduced-motion: reduce) {
    .hpc *, .hpc *::before, .hpc *::after, .hpp *, .hpp *::before, .hpp *::after { transition: none !important; animation: none !important; }
}
