/* ═══════════════════════════════════════════════════════════════════════
   cookies.css — Banner y panel de consentimiento de cookies (v1.9.5)
   Reutiliza las variables :root de trivialista.css. Prefijos tv-cookie / tvcc
   para no colisionar. Se carga en todas las páginas (el banner es global).
═══════════════════════════════════════════════════════════════════════ */

/* ─── Banner inferior ─── */
.tv-cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:9000;
  max-width:1100px; margin:0 auto;
  background:#fff; border:1px solid var(--border); border-radius:16px;
  box-shadow:0 24px 60px rgba(13,27,42,.22);
  padding:20px 22px;
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  font-family:var(--font-head);
}
.tv-cookie-banner[hidden]{display:none;}
.tv-cookie-txt{flex:1; min-width:260px}
.tv-cookie-txt b{display:block; font-size:1rem; font-weight:800; margin-bottom:4px; color:var(--text)}
.tv-cookie-txt p{color:var(--muted); font-size:.86rem; line-height:1.5; margin:0}
.tv-cookie-txt a{color:var(--blue); font-weight:600; text-decoration:none}
.tv-cookie-txt a:hover{text-decoration:underline}

.tv-cookie-actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.tvcc-btn{
  font-family:var(--font-head); font-weight:700; font-size:.88rem;
  border-radius:11px; padding:11px 20px; cursor:pointer; border:none; transition:.18s;
  white-space:nowrap;
}
/* Aceptar y Rechazar con el MISMO peso visual (exigencia AEPD): ambos sólidos,
   mismo tamaño. No se "esconde" rechazar ni se resalta sólo aceptar. */
.tvcc-btn-accept{background:var(--teal); color:var(--dark); box-shadow:0 6px 16px rgba(6,214,160,.3)}
.tvcc-btn-accept:hover{transform:translateY(-2px)}
.tvcc-btn-reject{background:var(--dark); color:#fff}
.tvcc-btn-reject:hover{transform:translateY(-2px); opacity:.92}
.tvcc-btn-config{background:transparent; color:var(--text); border:1.5px solid var(--border)}
.tvcc-btn-config:hover{border-color:var(--muted); background:var(--bg)}

/* ─── Panel de configuración (modal) ─── */
.tv-cookie-panel{
  position:fixed; inset:0; z-index:9100;
  background:rgba(13,27,42,.55); backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.tv-cookie-panel[hidden]{display:none;}
.tv-cookie-dialog{
  background:#fff; border-radius:18px; max-width:560px; width:100%;
  max-height:88vh; overflow-y:auto; box-shadow:0 24px 70px rgba(13,27,42,.4);
  font-family:var(--font-head);
}
.tv-cookie-dialog-head{padding:22px 24px 0}
.tv-cookie-dialog-head h2{font-size:1.3rem; font-weight:800; margin:0 0 6px}
.tv-cookie-dialog-head p{color:var(--muted); font-size:.86rem; line-height:1.5; margin:0}
.tv-cookie-dialog-body{padding:18px 24px}

.tvcc-cat{
  border:1px solid var(--border); border-radius:14px; padding:16px;
  margin-bottom:12px; display:flex; gap:14px; align-items:flex-start;
}
.tvcc-cat-info{flex:1}
.tvcc-cat-info b{font-size:.95rem; font-weight:700; display:block; margin-bottom:3px}
.tvcc-cat-info p{color:var(--muted); font-size:.8rem; line-height:1.45; margin:0}
.tvcc-cat-fixed{font-size:.74rem; font-weight:700; color:var(--teal); white-space:nowrap; padding-top:2px}

/* Toggle switch */
.tvcc-switch{position:relative; width:46px; height:26px; flex-shrink:0}
.tvcc-switch input{opacity:0; width:0; height:0; position:absolute}
.tvcc-slider{
  position:absolute; inset:0; background:var(--border); border-radius:99px;
  cursor:pointer; transition:.2s;
}
.tvcc-slider::before{
  content:""; position:absolute; height:20px; width:20px; left:3px; top:3px;
  background:#fff; border-radius:50%; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.tvcc-switch input:checked + .tvcc-slider{background:var(--teal)}
.tvcc-switch input:checked + .tvcc-slider::before{transform:translateX(20px)}

.tv-cookie-dialog-foot{
  padding:16px 24px 22px; display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap;
  border-top:1px solid var(--border); margin-top:4px;
}

/* ─── Responsive ─── */
@media (max-width: 600px){
  .tv-cookie-banner{flex-direction:column; align-items:stretch; padding:18px; gap:14px}
  .tv-cookie-actions{flex-direction:column}
  .tvcc-btn{width:100%}
  .tv-cookie-dialog-foot{flex-direction:column}
  .tv-cookie-dialog-foot .tvcc-btn{width:100%}
}

/* ═══════════════ FOOTER COMÚN (v1.9.5a) ═══════════════
   Clases tv-ftr (no lp-): el footer aparece en TODAS las páginas, así que sus
   estilos viven aquí (cookies.css se carga globalmente vía _header.php), no en
   landing.css (que solo carga la home). */
.tv-ftr{border-top:1px solid var(--border);background:#fff;margin-top:48px;font-family:var(--font-head)}
.tv-ftr-inner{max-width:1320px;margin:0 auto;padding:26px 24px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.tv-ftr-brand{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.tv-ftr-brand img{height:28px;width:auto;max-width:none}
.tv-ftr-brand .logo-text{font-family:var(--font-head);font-weight:800;font-size:1.15rem}
.tv-ftr-brand p{color:var(--muted);font-size:.85rem;margin:0}
.tv-ftr-links{display:flex;gap:20px;flex-wrap:wrap}
.tv-ftr-links a{color:var(--muted);font-size:.85rem;font-weight:600;text-decoration:none}
.tv-ftr-links a:hover{color:var(--blue)}
.tv-ftr-legal{max-width:1320px;margin:0 auto;padding:14px 24px;border-top:1px solid var(--border);
  color:var(--muted);font-size:.78rem}
@media (max-width: 600px){
  .tv-ftr-inner{flex-direction:column;align-items:flex-start;gap:14px}
}

/* ═══════════════ STICKY FOOTER (v1.9.5b) ═══════════════
   Pega el footer al fondo cuando el contenido no llena la pantalla (evita el
   hueco en blanco bajo el footer en páginas de poco contenido). body ya tiene
   min-height:100vh (trivialista.css); aquí lo hacemos columna flex y empujamos
   el footer con margin-top:auto. Solo afecta a páginas con footer tv-ftr. */
body{display:flex;flex-direction:column}
body > .tv-ftr{margin-top:auto}
