/* consentimiento.css — Banner y diálogo de preferencias de cookies.
   Autónomo con fallbacks: funciona aunque la página no cargue css/styles.css. */
.acg-cookies {
  --acg-c-verde: var(--verde, #003427);
  --acg-c-amarillo: var(--amarillo, #f59d1f);
  --acg-c-naranja: var(--naranja, #e83d19);
  --acg-c-crema: var(--crema, #f4e8ba);
  --acg-c-radius: var(--radius-lg, 12px);
  --acg-c-radius-btn: var(--radius-md, 8px);
  --acg-c-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;

  position: fixed;
  left: 50%;
  bottom: 1rem;
  transform: translate(-50%, 0);
  z-index: 2147483000;
  width: calc(100% - 2rem);
  max-width: 960px;
  background: var(--acg-c-verde);
  color: var(--acg-c-crema);
  font-family: var(--acg-c-font);
  border-radius: var(--acg-c-radius);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
  padding: 1.25rem;
  box-sizing: border-box;
  animation: acg-cookies-in 300ms ease-out both;
}

@media (prefers-reduced-motion: reduce) {
  .acg-cookies { animation: none; }
}

@keyframes acg-cookies-in {
  from { opacity: 0; transform: translate(-50%, 16px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

.acg-cookies__texto {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  line-height: 1.55;
}

.acg-cookies__texto a {
  color: var(--acg-c-amarillo);
  text-decoration: underline;
}

.acg-cookies__botones {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.acg-cookies button {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  min-height: 44px;
  min-width: 44px;
  padding: 0.6rem 1.2rem;
  border-radius: var(--acg-c-radius-btn);
  border: 1.5px solid rgba(244, 232, 186, 0.5);
  background: transparent;
  color: var(--acg-c-crema);
  transition: transform 200ms ease, background 200ms ease, border-color 200ms ease;
}

.acg-cookies button:hover {
  background: rgba(244, 232, 186, 0.08);
  border-color: var(--acg-c-crema);
}

.acg-cookies button:focus-visible {
  outline: 3px solid var(--acg-c-amarillo);
  outline-offset: 2px;
}

.acg-cookies__aceptar {
  background: var(--acg-c-amarillo);
  color: var(--acg-c-verde);
  border-color: var(--acg-c-amarillo);
}

.acg-cookies__aceptar:hover {
  background: #ffb545;
  border-color: #ffb545;
}

@media (max-width: 480px) {
  .acg-cookies { bottom: 0.5rem; width: calc(100% - 1rem); padding: 1rem; }
  .acg-cookies__botones { flex-direction: column; }
  .acg-cookies__botones button { width: 100%; }
}

/* Deja espacio para el botón flotante de WhatsApp/CTA si la página lo tiene.
   --acg-cookies-alto lo calcula consentimiento.js a partir del alto real
   del banner (offsetHeight); 92px es un valor de respaldo antes de esa medición.
   !important es necesario: estos botones suelen tener su propia animación de
   entrada/hover sobre `transform` (p. ej. `.floating-cta` en index.html), y una
   animación de la propia página gana por cascada a una regla normal aunque
   venga después en el archivo o con más especificidad. */
body.acg-cookies-visible .acg-whatsapp-flotante,
body.acg-cookies-visible .whatsapp-float,
body.acg-cookies-visible .floating-cta {
  transform: translateY(calc(-1 * var(--acg-cookies-alto, 92px))) !important;
}

@media (prefers-reduced-motion: reduce) {
  body.acg-cookies-visible .acg-whatsapp-flotante,
  body.acg-cookies-visible .whatsapp-float,
  body.acg-cookies-visible .floating-cta {
    transform: none !important;
  }
}

/* ── Diálogo de preferencias ── */
.acg-cookies-dialogo {
  --acg-c-verde: var(--verde, #003427);
  --acg-c-amarillo: var(--amarillo, #f59d1f);
  --acg-c-crema: var(--crema, #f4e8ba);

  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: var(--acg-c-crema);
  background: var(--acg-c-verde);
  border: none;
  border-radius: var(--radius-lg, 12px);
  padding: 0;
  width: min(480px, calc(100vw - 2rem));
  max-width: calc(100vw - 2rem);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
}

.acg-cookies-dialogo::backdrop {
  background: rgba(14, 14, 14, 0.6);
}

.acg-cookies-dialogo[data-fallback] {
  position: fixed;
  inset: 0;
  margin: auto;
  z-index: 2147483001;
}

.acg-cookies-dialogo__respaldo {
  position: fixed;
  inset: 0;
  background: rgba(14, 14, 14, 0.6);
  z-index: 2147483000;
}

.acg-cookies-dialogo__cuerpo {
  padding: 1.5rem;
  max-height: 85vh;
  overflow-y: auto;
  box-sizing: border-box;
}

.acg-cookies-dialogo h2 {
  margin: 0 0 1rem;
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 1.4rem;
  color: var(--acg-c-crema);
}

.acg-cookies-fila {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 0;
  border-top: 1px solid rgba(244, 232, 186, 0.15);
}

.acg-cookies-fila:first-of-type { border-top: none; }

.acg-cookies-fila__texto strong {
  display: block;
  font-size: 0.95rem;
  margin-bottom: 0.2rem;
}

.acg-cookies-fila__texto span {
  display: block;
  font-size: 0.82rem;
  color: rgba(244, 232, 186, 0.75);
  line-height: 1.4;
}

/* Interruptor accesible construido sobre un checkbox real.
   El contenedor mide 44×44 (objetivo táctil AA); la pista visual (46×26)
   queda centrada dentro, y el input cubre todo el contenedor como área de toque. */
.acg-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
}

.acg-switch input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.acg-switch__pista {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 46px;
  height: 26px;
  transform: translate(-50%, -50%);
  background: rgba(244, 232, 186, 0.25);
  border-radius: 999px;
  transition: background 200ms ease;
  pointer-events: none;
}

.acg-switch__pista::before {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--acg-c-crema);
  transition: transform 200ms ease;
}

.acg-switch input:checked + .acg-switch__pista {
  background: var(--acg-c-amarillo);
}

.acg-switch input:checked + .acg-switch__pista::before {
  transform: translateX(20px);
}

.acg-switch input:disabled + .acg-switch__pista {
  opacity: 0.6;
  cursor: not-allowed;
}

.acg-switch input:focus-visible + .acg-switch__pista {
  outline: 3px solid var(--acg-c-amarillo);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .acg-switch__pista,
  .acg-switch__pista::before {
    transition: none;
  }
}

.acg-cookies-dialogo__acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1.5rem;
}

.acg-cookies-dialogo__acciones button {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  min-height: 44px;
  padding: 0.6rem 1.2rem;
  border-radius: var(--radius-md, 8px);
  border: 1.5px solid rgba(244, 232, 186, 0.5);
  background: transparent;
  color: var(--acg-c-crema);
  flex: 1 1 auto;
}

.acg-cookies-dialogo__acciones button:focus-visible {
  outline: 3px solid var(--acg-c-amarillo);
  outline-offset: 2px;
}

.acg-cookies-dialogo__guardar {
  background: var(--acg-c-amarillo);
  color: var(--acg-c-verde);
  border-color: var(--acg-c-amarillo);
}

@media (max-width: 480px) {
  .acg-cookies-dialogo__acciones { flex-direction: column; }
}

/* Enlace del pie de página, coherente con el resto de enlaces del footer. */
.acg-cookies-link {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
