/* Consentimiento de cookies de PimpamTicket (20-oct-2026). CSS propio, sin
   Tailwind: así no hay que recompilar la web para cambiarlo. Todo cuelga de .pc-
   para no chocar con nada. Botones y textos a 16 px (si no, el iPhone hace zoom). */
:root {
    --pc-fondo: #ffffff;
    --pc-texto: #10222c;
    --pc-suave: #4b5b66;
    --pc-borde: #d5dde2;
    --pc-acento: #0097ce;
    --pc-acento-oscuro: #007aa8;
}

.pc-raiz, .pc-raiz * { box-sizing: border-box; }
.pc-raiz [hidden] { display: none !important; }
.pc-raiz { font: 16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--pc-texto); }

/* --- banner --- */
.pc-banner {
    position: fixed; z-index: 2147483000; left: 16px; right: 16px; bottom: 16px;
    max-width: 880px; margin: 0 auto; background: var(--pc-fondo); color: var(--pc-texto);
    border: 1px solid var(--pc-borde); border-radius: 14px;
    box-shadow: 0 12px 40px rgba(16, 34, 44, .25); padding: 20px 22px;
}
.pc-banner h2 { margin: 0 0 6px; font-size: 18px; font-weight: 700; }
.pc-banner p { margin: 0; color: var(--pc-suave); font-size: 15px; }
.pc-banner a, .pc-ajustes a { color: var(--pc-acento-oscuro); text-decoration: underline; }
.pc-botones { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

.pc-boton {
    appearance: none; cursor: pointer; font: inherit; font-size: 16px; font-weight: 600;
    min-height: 44px; padding: 10px 20px; border-radius: 10px; border: 2px solid var(--pc-acento);
    background: var(--pc-acento); color: #fff; flex: 1 1 160px; transition: background .15s, color .15s;
}
.pc-boton:hover { background: var(--pc-acento-oscuro); border-color: var(--pc-acento-oscuro); }
/* «Configurar» va como enlace-botón secundario; aceptar y rechazar, iguales. */
.pc-boton.pc-secundario { background: transparent; color: var(--pc-acento-oscuro); }
.pc-boton.pc-secundario:hover { background: #eef8fc; }
.pc-boton:focus-visible, .pc-interruptor input:focus-visible + span, .pc-cerrar:focus-visible {
    outline: 3px solid #ffbf47; outline-offset: 2px;
}

/* --- ajustes --- */
.pc-ajustes {
    position: fixed; inset: 0; z-index: 2147483001; background: rgba(16, 34, 44, .55);
    display: flex; align-items: center; justify-content: center; padding: 16px;
}
.pc-cuadro {
    position: relative; background: var(--pc-fondo); border-radius: 14px; width: 100%; max-width: 620px;
    max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: auto; padding: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}
.pc-cuadro h2 { margin: 0 40px 8px 0; font-size: 20px; }
.pc-cuadro > p { margin: 0 0 16px; color: var(--pc-suave); font-size: 15px; }
.pc-cerrar {
    position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border: 0; border-radius: 50%;
    background: transparent; font-size: 26px; line-height: 1; cursor: pointer; color: var(--pc-suave);
}
.pc-cerrar:hover { background: #eef2f4; }

.pc-categoria { border-top: 1px solid var(--pc-borde); padding: 14px 0; }
.pc-categoria-cabeza { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pc-categoria h3 { margin: 0; font-size: 16px; }
.pc-categoria p { margin: 6px 0 0; color: var(--pc-suave); font-size: 14px; }
.pc-siempre { font-size: 14px; font-weight: 600; color: var(--pc-suave); white-space: nowrap; }

.pc-interruptor { position: relative; display: inline-block; width: 52px; height: 30px; flex: none; }
.pc-interruptor input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.pc-interruptor span { position: absolute; inset: 0; border-radius: 30px; background: #b9c4ca; transition: background .15s; }
.pc-interruptor span::after {
    content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); transition: transform .15s;
}
.pc-interruptor input:checked + span { background: var(--pc-acento); }
.pc-interruptor input:checked + span::after { transform: translateX(22px); }

html.pc-sin-scroll, html.pc-sin-scroll body { overflow: hidden; }

/* Hueco de un contenido de terceros que espera permiso (vídeo, mapa). */
.pc-hueco {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
    text-align: center; padding: 24px; background: #f1f5f7; border: 1px dashed var(--pc-borde);
    border-radius: 10px; color: var(--pc-suave); font: 15px/1.4 system-ui, sans-serif;
}

@media (max-width: 600px) {
    .pc-banner { left: 8px; right: 8px; bottom: 8px; padding: 14px 16px; }
    .pc-banner h2 { font-size: 17px; }
    .pc-banner p { font-size: 14px; line-height: 1.4; }
    .pc-botones { margin-top: 12px; gap: 8px; }
    /* Rechazar y Aceptar en la misma fila, iguales; Configurar debajo. */
    .pc-boton { flex: 1 1 40%; padding: 10px 12px; }
    .pc-boton.pc-secundario { flex-basis: 100%; }
    .pc-ajustes { align-items: flex-end; padding: 0; }
    .pc-cuadro { border-radius: 14px 14px 0 0; max-height: 92vh; max-height: 92dvh; padding: 20px 18px; }
}
