/* Consentimento de cookies (RGPD/ePrivacy) - banner opt-in, nunca opt-out:
   nada de não-essencial (hoje só o analytics próprio, ver assets/js/
   cookie-consent.js) carrega antes de uma escolha explícita do visitante.
   Ver content/politica-cookies.html para a tabela de categorias/duração. */

.cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 300;
  background: var(--navy-900);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 -12px 30px -12px rgba(0, 0, 0, 0.5);
  padding: var(--space-5);
  transform: translateY(100%);
  transition: transform var(--duration-base) var(--ease-out);
}
.cookie-consent.is-visible { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .cookie-consent { transition: none; }
}

.cookie-consent-inner { max-width: var(--container-max); margin-inline: auto; }

/* Esconde o botão flutuante do WhatsApp enquanto o banner está visível -
   mesma técnica já usada para `.mobile-nav.is-open ~ .whatsapp-float`
   (ver components.css), evita os dois elementos fixos colidirem no
   canto inferior. */
.cookie-consent.is-visible ~ .whatsapp-float { display: none; }

.cookie-consent-bar {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  flex-wrap: wrap;
}
.cookie-consent-text { color: var(--text-on-dark-muted); font-size: var(--fs-200); flex: 1 1 320px; margin: 0; }
.cookie-consent-text a { color: var(--sky-500); text-decoration: underline; text-underline-offset: 2px; }
.cookie-consent-text a:hover { color: var(--white); }

.cookie-consent-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); flex-shrink: 0; }

/* [hidden] tem de vencer o display:flex acima - especificidade igual
   (0,1,0) mas o browser aplica a última regra em empate; sem isto, alternar
   entre a barra e as preferências (JS: showView()) mostrava as duas ao
   mesmo tempo em vez de trocar. */
.cookie-consent-bar[hidden],
.cookie-consent-prefs[hidden] { display: none; }
/* As 3 ações têm o mesmo tamanho de botão - só a cor muda - para nenhuma
   ficar visualmente escondida/diminuída face às outras (nunca "Aceitar
   todos" em destaque e "Recusar" como link discreto). */
.cookie-consent-actions .btn { white-space: nowrap; }

.cookie-consent-prefs h2 { color: var(--white); font-size: var(--fs-400); margin-bottom: var(--space-4); }
.cookie-consent-category {
  padding: var(--space-4) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.cookie-consent-category:last-of-type { border-bottom: none; }
.cookie-consent-category-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--white);
  margin-bottom: var(--space-2);
}
.cookie-consent-category p { color: var(--text-on-dark-muted); font-size: var(--fs-200); margin: 0; }
.cookie-consent-always-on { font-size: var(--fs-100); font-weight: 600; color: var(--text-on-dark-muted); text-transform: uppercase; letter-spacing: 0.04em; }

/* Interruptor da categoria "Analíticos" - por omissão SEMPRE desligado (o
   oposto de opt-out): só fica "true" se o visitante o ligar ele próprio e
   guardar. Mesmo padrão visual do .admin-switch (admin.css), redefinido
   aqui porque o backoffice e o site público não partilham stylesheet. */
.cookie-consent-switch { display: inline-flex; align-items: center; cursor: pointer; flex-shrink: 0; }
.cookie-consent-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.cookie-consent-switch-track {
  width: 40px;
  height: 22px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  position: relative;
  transition: background-color var(--duration-fast) var(--ease-out);
}
.cookie-consent-switch-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--white);
  transition: transform var(--duration-fast) var(--ease-out);
}
.cookie-consent-switch input:checked + .cookie-consent-switch-track { background: var(--sky-500); }
.cookie-consent-switch input:checked + .cookie-consent-switch-track .cookie-consent-switch-thumb { transform: translateX(18px); }
.cookie-consent-switch input:focus-visible + .cookie-consent-switch-track { outline: 2px solid var(--sky-500); outline-offset: 2px; }

.cookie-consent-prefs-actions { display: flex; justify-content: flex-end; gap: var(--space-3); margin-top: var(--space-5); flex-wrap: wrap; }

@media (max-width: 699px) {
  .cookie-consent-bar { flex-direction: column; align-items: stretch; }
  .cookie-consent-actions { justify-content: stretch; }
  .cookie-consent-actions .btn { flex: 1; justify-content: center; }
}
