/* /root/consent-system/shared/css/banner.css
 * Override variables do Orestbida cookieconsent v3.
 * Sites podem sobrepor via CSS custom properties no :root.
 */

#cc-main {
  /* Cores base — sites podem override definindo --cc-site-accent no :root */
  --cc-bg: #ffffff;
  --cc-primary-color: #1a1a1a;
  --cc-secondary-color: #5a5a5a;

  /* Font fallback com suporte a emojis (Roboto sozinho não renderiza 🙂) */
  --cc-font-family: Roboto, system-ui, -apple-system, "Segoe UI",
    "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;

  /* Botão aceitar — destaque visual (legal ANPD: tamanho+posição iguais, cor diferencia) */
  --cc-btn-primary-bg: var(--cc-site-accent, #0c7a3e);
  --cc-btn-primary-color: #ffffff;
  --cc-btn-primary-border-color: var(--cc-site-accent, #0c7a3e);
  --cc-btn-primary-hover-bg: #095e30;
  --cc-btn-primary-hover-color: #ffffff;
  --cc-btn-primary-hover-border-color: #095e30;

  /* Botão rejeitar/preferências — outline neutro (classe secondary do Orestbida v3) */
  --cc-btn-secondary-bg: transparent;
  --cc-btn-secondary-color: #5a5a5a;
  --cc-btn-secondary-border-color: #d0d0d0;
  --cc-btn-secondary-hover-bg: #f5f5f5;
  --cc-btn-secondary-hover-color: #1a1a1a;
  --cc-btn-secondary-hover-border-color: #b0b0b0;

  /* Animation */
  --cc-modal-transition-duration: 0.2s;

  /* Z-index: acima de quase tudo, abaixo de toasts críticos */
  --cc-z-index: 9999;
}

/*
 * Bug do Orestbida v3: botão "Accept necessary" (data-role=necessary) NÃO recebe
 * a classe `cm__btn--secondary` — fica com `cm__btn` só, herdando styling primary.
 * Pra diferenciar visualmente "Rejeitar" de "Aceitar todos" (requisito ANPD/LGPD:
 * escolhas equivalentes em facilidade, diferenciadas só pela cor), forçamos aqui
 * o estilo outline via selector data-role.
 */
#cc-main .cm__btn[data-role="necessary"] {
  background: transparent !important;
  color: #5a5a5a !important;
  border: 1px solid #d0d0d0 !important;
}

#cc-main .cm__btn[data-role="necessary"]:hover,
#cc-main .cm__btn[data-role="necessary"]:focus-visible {
  background: #f5f5f5 !important;
  color: #1a1a1a !important;
  border-color: #b0b0b0 !important;
}

/* Micro-animação sutil no botão aceitar — pulse 1x por 200ms quando banner aparece */
@keyframes cc-accept-pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(12, 122, 62, 0.4);
  }
  50% {
    transform: scale(1.03);
    box-shadow: 0 0 0 6px rgba(12, 122, 62, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(12, 122, 62, 0);
  }
}

#cc-main .cm__btn[data-role="all"] {
  animation: cc-accept-pulse 0.2s ease-out 1;
}

/* Consent nudge (Variação A — link sutil próximo ao botão WA) */
.consent-nudge {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 0.8rem;
  color: #666;
  opacity: 0.75;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.15s;
}

.consent-nudge:hover,
.consent-nudge:focus {
  opacity: 1;
  outline: 1px dotted #666;
  outline-offset: 2px;
}

/* Floating button 🍪 (Variação C) — já suportado nativo no Orestbida, só ajustamos tamanho */
#cc-main .cm__manage-btn--floating {
  width: 44px;
  height: 44px;
  font-size: 20px;
  border-radius: 50%;
}

/* Acessibilidade: garantir contraste em focus */
#cc-main *:focus-visible {
  outline: 2px solid #0c7a3e;
  outline-offset: 2px;
}

/*
 * ============================================================================
 * Mobile compact mode (≤768px)
 * ============================================================================
 * Banner padrão do Orestbida v3 ocupa ~300px (35-41% do viewport mobile),
 * obstruindo CTA WhatsApp e prova social. Reduz padding, fontes, line-clamp
 * na descrição, e organiza os 2 .cm__btn-group em row flex compacto.
 *
 * LGPD: mantém os 3 botões essenciais (Aceitar todos / Rejeitar / Preferências)
 * visíveis e equivalentes em facilidade — só a cor diferencia hierarquia.
 */
@media (max-width: 768px) {
  /* Reduz padding externo da barra */
  #cc-main .cm--bar.cm--bottom {
    padding: 0.5rem 0.75rem !important;
  }

  /* Body wrapper: gap menor entre texts e btns */
  #cc-main .cm__body {
    padding: 0 !important;
    gap: 0.5rem !important;
  }

  /* Tira padding-top default do CDN (16px desperdiçados) e margem inferior */
  #cc-main .cm__texts {
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Título compacto */
  #cc-main .cm__title {
    padding: 0 !important;
    margin: 0 0 0.15rem 0 !important;
    font-size: 0.875rem !important;
    line-height: 1.25 !important;
  }

  /* Descrição: line-clamp:2 com box-orient explícito; remove padding/margin do CDN */
  #cc-main .cm__desc {
    padding: 0 !important;
    margin: 0 !important;
    font-size: 0.75rem !important;
    line-height: 1.3 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    max-height: 2.6em !important;
  }

  /* Botões: tira padding default do CDN (16px×2 desperdiçados), force row */
  #cc-main .cm__btns {
    padding: 0 !important;
    margin: 0 !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0.4rem !important;
    align-items: stretch !important;
  }

  #cc-main .cm__btn-group {
    padding: 0 !important;
    margin: 0 !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0.4rem !important;
    flex: 1 1 100% !important;
    width: auto !important;
  }

  /* Botões: compactos, mas área de toque ≥36px */
  #cc-main .cm__btn {
    padding: 0.4rem 0.65rem !important;
    margin: 0 !important;
    font-size: 0.78rem !important;
    min-height: 36px !important;
    line-height: 1.1 !important;
    flex: 1 1 auto !important;
    white-space: nowrap !important;
  }
}

/* Smartphones em portrait (≤480px): esconde descrição (Preferências expande detalhes) */
@media (max-width: 480px) {
  #cc-main .cm--bar.cm--bottom {
    padding: 0.5rem 0.6rem !important;
  }

  #cc-main .cm__title {
    font-size: 0.85rem !important;
    margin: 0 0 0.15rem 0 !important;
  }

  /* Descrição visível mas compactada (não esconde — Opção C: trade-off entre informação e espaço) */
  #cc-main .cm__desc {
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    -webkit-line-clamp: 2 !important;
  }

  #cc-main .cm__btn {
    padding: 0.4rem 0.55rem !important;
    font-size: 0.75rem !important;
    min-height: 36px !important;
  }
}
