/* Banner de consentimiento de cookies (tema "legal-y-cookies", 2026-10-27).
   Colores desde Sistema → Legal (--c3d-bg / --c3d-fg, contraste ≥ 4.5:1
   validado al guardar). Los tres botones comparten UNA sola regla: mismo
   tamaño, peso y estilo con cualquier combinación de colores — "Rechazar"
   nunca queda como enlace gris ni más chico que "Aceptar todas". */

.c3d-consent {
  --c3d-bg: #1f2328;
  --c3d-fg: #ffffff;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1065;            /* sobre el banner de Anuncios (1060), bajo el carrito (1070) */
  background: var(--c3d-bg);
  color: var(--c3d-fg);
  box-shadow: 0 -4px 18px rgba(0, 0, 0, .18);
  padding: 1rem;
  font-size: .9rem;
  line-height: 1.5;
  /* Zoom 400% / pantallas muy bajas: la barra nunca rebasa media pantalla y
     se puede desplazar por dentro (WCAG 1.4.10) */
  max-height: 50vh;
  max-height: 50dvh;
  overflow-y: auto;
}
.c3d-consent[hidden] { display: none; }

/* Mientras se pide consentimiento, el banner de Anuncios (también fijo
   abajo) no se apila encima de la barra */
.c3d-consent-open .ann-banner { visibility: hidden; }
/* El modal de Anuncios (pantalla completa, 1060) sí queda ENCIMA de la barra:
   si no, en móvil la barra tapa su mitad inferior y su botón. Al cerrarlo, la
   barra sigue ahí esperando la decisión. Bajo el carrito (1070). */
.c3d-consent-open .ann-modal { z-index: 1066; }

/* Dentro del admin (vista previa) el banner no flota */
.c3d-consent--static { position: static; box-shadow: none; border-radius: .5rem; max-height: none; }

.c3d-consent__inner {
  max-width: 1140px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem 1.5rem;
}
.c3d-consent__text {
  flex: 1 1 22rem;
  margin: 0;
}
.c3d-consent__text a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.c3d-consent__actions {
  flex: 0 1 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(8.5rem, 1fr));
  gap: .5rem;
}

.c3d-consent__btn {
  min-height: 44px;
  padding: .55rem 1rem;
  border: 2px solid var(--c3d-fg);
  border-radius: .5rem;
  background: var(--c3d-fg);
  color: var(--c3d-bg);
  font: inherit;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: transform 120ms ease-out, opacity 120ms ease-out;
}
.c3d-consent__btn:hover { opacity: .9; }
.c3d-consent__btn:active { transform: scale(.97); }
.c3d-consent__btn:focus-visible,
.c3d-consent__text a:focus-visible {
  outline: 3px solid var(--c3d-fg);
  outline-offset: 2px;
}

@media (max-width: 575.98px) {
  .c3d-consent__actions { grid-template-columns: 1fr; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .c3d-consent__btn { transition: none; }
  .c3d-consent__btn:active { transform: none; }
}

/* Videos de YouTube/Vimeo en espera de consentimiento de publicidad */
.c3d-embed-blocked {
  aspect-ratio: 16 / 9;
  max-width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  border-radius: .5rem;
  background: #f1f3f5;
  color: #343a40;
  text-align: center;
  font-size: .9rem;
}
.c3d-embed-blocked p { margin: 0; max-width: 28rem; }
.c3d-embed-blocked .btn-link { color: #0a58ca; text-decoration: underline; font-size: inherit; }   /* 5.6:1 sobre #f1f3f5 */
