/* ==========================================================================
   SINAIS DESIGN SYSTEM — FONTES OFICIAIS (@font-face local)
   ========================================================================== */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/assets/fonts/Archivo.woff2') format('woff2');
}

@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/SpaceMono-Regular.woff2') format('woff2');
}

@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/SpaceMono-Bold.woff2') format('woff2');
}

/* ===========================================================================
   Sinais Design System · tokens.css · v1.0.0
   ---------------------------------------------------------------------------
   Camada única de decisões visuais do ecossistema Sinais Data.
   Consumida por Astro, por Workers que montam HTML em string e pelo gerador
   Python — por isso é CSS puro, sem build, sem pré-processador.

   REGRA DE USO
   Componentes e páginas consomem APENAS tokens semânticos (--sd-color-*,
   --sd-text-*, --sd-space-*). Tokens primitivos (--sd-_*) existem só para
   alimentar os semânticos e nunca aparecem em código de página.
   =========================================================================== */

:root {
  color-scheme: light;

  /* =========================================================================
     1. PRIMITIVOS — matéria-prima. Não usar diretamente.
     ========================================================================= */

  /* Tinta e papel */
  --sd-_ink-900:#14161A;
  --sd-_ink-700:#3A3F47;
  --sd-_ink-500:#5A5F68;
  --sd-_ink-400:#6F747D;
  --sd-_ink-300:#B4B8BE;
  --sd-_paper:#FBFBF9;
  --sd-_surface:#FFFFFF;
  --sd-_rule:#E4E2DC;
  --sd-_rule-strong:#D2CFC7;
  --sd-_wash:#F3F2EE;

  /* Sinal institucional */
  --sd-_signal-900:#0B4F49;
  --sd-_signal-700:#0F766E;
  --sd-_signal-100:#D6EFEC;
  --sd-_signal-bright:#4FD1C5;   /* só sobre fundo escuro */

  /* Estados */
  --sd-_positive-700:#15803D;  --sd-_positive-100:#DCFAE4;
  --sd-_attention-700:#B45309; --sd-_attention-100:#FBECD6;
  --sd-_critical-700:#B91C1C;  --sd-_critical-100:#FBE3E3;
  --sd-_info-700:#1D4ED8;      --sd-_info-100:#E2E9FD;

  /* Verticais — ver 11-IDENTIDADE-VISUAL §3 */
  --sd-_v-transporte:#B45309;
  --sd-_v-empresas:#0F766E;
  --sd-_v-aero:#1E3A5F;
  --sd-_v-fiscal:#7C2D12;
  --sd-_v-saude:#065F46;
  --sd-_v-obras:#78350F;
  --sd-_v-agro:#3F6212;
  --sd-_v-capital:#1E293B;
  --sd-_v-licitacao:#4C1D95;
  --sd-_v-telecom:#155E75;

  /* =========================================================================
     2. SEMÂNTICOS — o que o código usa.
     ========================================================================= */

  /* Superfície */
  --sd-color-canvas:var(--sd-_paper);
  --sd-color-surface:var(--sd-_surface);
  --sd-color-surface-sunken:var(--sd-_wash);
  --sd-color-surface-inverse:var(--sd-_ink-900);

  /* Texto */
  --sd-color-text:var(--sd-_ink-900);
  --sd-color-text-muted:var(--sd-_ink-500);
  --sd-color-text-subtle:var(--sd-_ink-400);
  --sd-color-text-inverse:var(--sd-_paper);
  --sd-color-text-link:var(--sd-_ink-900);
  --sd-color-text-accent:var(--sd-_signal-700);

  /* Fio — a elevação deste sistema é régua, não sombra */
  --sd-color-rule:var(--sd-_rule);
  --sd-color-rule-strong:var(--sd-_rule-strong);
  --sd-color-focus:var(--sd-_ink-900);

  /* Acento do contexto. Sobrescrito por [data-vertical] — nunca hardcoded. */
  --sd-color-accent:var(--sd-_signal-700);
  --sd-color-accent-wash:var(--sd-_signal-100);

  /* Estado de dado — SEMPRE acompanhado de rótulo textual, nunca sozinho */
  --sd-color-positive:var(--sd-_positive-700);   --sd-color-positive-wash:var(--sd-_positive-100);
  --sd-color-attention:var(--sd-_attention-700); --sd-color-attention-wash:var(--sd-_attention-100);
  --sd-color-critical:var(--sd-_critical-700);   --sd-color-critical-wash:var(--sd-_critical-100);
  --sd-color-info:var(--sd-_info-700);           --sd-color-info-wash:var(--sd-_info-100);
  --sd-color-neutral:var(--sd-_ink-500);         --sd-color-neutral-wash:var(--sd-_wash);

  /* =========================================================================
     3. TIPOGRAFIA
     Archivo = leitura e interpretação. Space Mono = dado oficial.
     A regra é semântica: se o valor veio da fonte, é mono.
     ========================================================================= */
  --sd-font-sans:'Archivo','Archivo Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --sd-font-mono:'Space Mono','Space Mono Fallback',ui-monospace,'SF Mono',Menlo,monospace;

  --sd-text-display:clamp(2rem,1.45rem + 2.6vw,3.25rem);
  --sd-text-h1:clamp(1.6rem,1.3rem + 1.5vw,2.25rem);
  --sd-text-h2:clamp(1.3rem,1.15rem + .7vw,1.6rem);
  --sd-text-h3:1.125rem;
  --sd-text-body:1rem;
  --sd-text-body-sm:.9375rem;
  --sd-text-caption:.8125rem;
  --sd-text-label:.6875rem;          /* eyebrow/rótulo em mono, caixa alta */

  --sd-leading-tight:1.1;
  --sd-leading-snug:1.3;
  --sd-leading-normal:1.55;
  --sd-leading-relaxed:1.7;          /* corpo longo de artigo */

  --sd-weight-regular:400;
  --sd-weight-medium:500;
  --sd-weight-semibold:600;
  --sd-weight-bold:700;

  --sd-tracking-tight:-.022em;       /* display */
  --sd-tracking-normal:0;
  --sd-tracking-label:.14em;         /* rótulo em caixa alta */

  --sd-measure:66ch;                 /* largura máxima de leitura */
  --sd-measure-narrow:52ch;

  /* =========================================================================
     4. ESPAÇO — base 4
     ========================================================================= */
  --sd-space-0:0;      --sd-space-1:.25rem; --sd-space-2:.5rem;
  --sd-space-3:.75rem; --sd-space-4:1rem;   --sd-space-5:1.5rem;
  --sd-space-6:2rem;   --sd-space-7:2.5rem; --sd-space-8:3rem;
  --sd-space-9:4rem;   --sd-space-10:5rem;  --sd-space-11:6rem;
  --sd-space-12:8rem;

  --sd-section-y:clamp(3rem,2rem + 4vw,6rem);
  --sd-gutter:clamp(1rem,.5rem + 2vw,1.5rem);

  /* =========================================================================
     5. LAYOUT
     ========================================================================= */
  --sd-container:1120px;
  --sd-container-prose:720px;
  --sd-container-wide:1320px;
  --sd-container-form:440px;

  /* =========================================================================
     6. FORMA — raio pequeno; o sistema é reto, não arredondado
     ========================================================================= */
  --sd-radius-none:0;
  --sd-radius-sm:2px;
  --sd-radius-md:4px;
  --sd-radius-lg:6px;
  --sd-radius-app:22%;               /* ícone de aplicativo */
  --sd-radius-pill:999px;            /* só em badge de status */

  --sd-border-hairline:1px;
  --sd-border-strong:2px;
  --sd-border-accent:3px;            /* fio do vertical sob o header */

  /* Sombra: uma só, exclusiva de camada flutuante (dropdown, popover).
     Card, painel e seção NÃO usam sombra — usam fio. */
  --sd-shadow-overlay:0 1px 2px rgba(20,22,26,.06),0 8px 24px rgba(20,22,26,.10);

  /* =========================================================================
     7. MOVIMENTO
     ========================================================================= */
  --sd-duration-fast:120ms;
  --sd-duration-base:200ms;
  --sd-duration-slow:500ms;          /* só a animação do símbolo */
  --sd-ease-standard:cubic-bezier(.2,0,.2,1);
  --sd-ease-signal:cubic-bezier(.2,.7,.3,1);

  /* =========================================================================
     8. FOCO E ALVO — piso de acessibilidade, não decoração
     ========================================================================= */
  --sd-focus-width:2px;
  --sd-focus-offset:2px;
  --sd-target-min:44px;

  /* =========================================================================
     9. CAMADAS
     ========================================================================= */
  --sd-z-base:0; --sd-z-sticky:100; --sd-z-dropdown:200;
  --sd-z-overlay:300; --sd-z-modal:400; --sd-z-toast:500;
}

/* ===========================================================================
   TEMA POR VERTICAL
   Aplicar no <body> ou no wrapper: <body data-vertical="transporte">
   O acento muda; papel, tinta e fio NUNCA mudam.
   =========================================================================== */
[data-vertical="transporte"]{--sd-color-accent:var(--sd-_v-transporte);--sd-color-accent-wash:#FBECD6}
[data-vertical="empresas"]  {--sd-color-accent:var(--sd-_v-empresas);  --sd-color-accent-wash:var(--sd-_signal-100)}
[data-vertical="aero"]      {--sd-color-accent:var(--sd-_v-aero);      --sd-color-accent-wash:#E3E9F1}
[data-vertical="fiscal"]    {--sd-color-accent:var(--sd-_v-fiscal);    --sd-color-accent-wash:#F6E3DA}
[data-vertical="saude"]     {--sd-color-accent:var(--sd-_v-saude);     --sd-color-accent-wash:#D9F2E7}
[data-vertical="obras"]     {--sd-color-accent:var(--sd-_v-obras);     --sd-color-accent-wash:#F5E7D6}
[data-vertical="agro"]      {--sd-color-accent:var(--sd-_v-agro);      --sd-color-accent-wash:#E8F1D8}
[data-vertical="capital"]   {--sd-color-accent:var(--sd-_v-capital);   --sd-color-accent-wash:#E4E8ED}
[data-vertical="licitacao"] {--sd-color-accent:var(--sd-_v-licitacao); --sd-color-accent-wash:#EBE4FA}
[data-vertical="telecom"]   {--sd-color-accent:var(--sd-_v-telecom);   --sd-color-accent-wash:#DDEEF3}

/* ===========================================================================
   ESTADO DE DADO OFICIAL
   Mapeamento único de situação cadastral → cor. Vale para RFB, ANTT e ANAC.
   A cor é redundância visual; o rótulo textual é obrigatório e suficiente.
   =========================================================================== */
[data-estado="ativa"],[data-estado="ativo"]     {--sd-estado:var(--sd-color-positive); --sd-estado-wash:var(--sd-color-positive-wash)}
[data-estado="pendente"]                        {--sd-estado:var(--sd-color-attention);--sd-estado-wash:var(--sd-color-attention-wash)}
[data-estado="suspensa"],[data-estado="inapta"] {--sd-estado:var(--sd-color-critical); --sd-estado-wash:var(--sd-color-critical-wash)}
[data-estado="baixada"],[data-estado="nula"]    {--sd-estado:var(--sd-color-neutral);  --sd-estado-wash:var(--sd-color-neutral-wash)}
[data-estado="nao-informado"]                   {--sd-estado:var(--sd-color-text-subtle);--sd-estado-wash:transparent}

/* ===========================================================================
   PISO — vale em todas as propriedades, públicas e internas
   =========================================================================== */
*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--sd-color-canvas);
  color:var(--sd-color-text);
  font-family:var(--sd-font-sans);
  font-size:var(--sd-text-body);
  line-height:var(--sd-leading-normal);
  -webkit-font-smoothing:antialiased;
}

:where(a){color:var(--sd-color-text-link);text-underline-offset:.18em}

:where(:focus-visible){
  outline:var(--sd-focus-width) solid var(--sd-color-focus);
  outline-offset:var(--sd-focus-offset);
  border-radius:var(--sd-radius-sm);
}

/* Dado oficial em mono, sempre — tabular para alinhar coluna numérica */
:where(.sd-dado,[data-dado]){
  font-family:var(--sd-font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
}

/* Alvo mínimo de toque em qualquer controle */
:where(button,[role="button"],input[type="submit"],.sd-btn){min-height:var(--sd-target-min)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
}

/* Impressão: o dado precisa sobreviver ao papel — a cor não vai junto */
@media print{
  :root{--sd-color-canvas:#fff}
  body{font-size:11pt}
  .sd-no-print{display:none !important}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}


/* ==========================================================================
   SINAIS DESIGN SYSTEM — APPSHELL & HEADER UNIFICADO
   ========================================================================== */

/* FAIXA ECOSSISTEMA */
.sd-faixa, .faixa-ecossistema {
  background-color: var(--sd-color-surface-inverse, #14161A);
  border-bottom: 1px solid var(--sd-color-rule-strong, #D2CFC7);
  font-size: var(--sd-text-caption, 0.8125rem);
  font-family: var(--sd-font-sans);
  line-height: 1;
}
.sd-faixa__inner, .faixa-inner {
  max-width: var(--sd-container, 1120px);
  margin: 0 auto;
  padding: 0.4rem var(--sd-gutter, 1.5rem);
  display: flex;
  align-items: center;
  gap: var(--sd-space-2, 0.5rem);
}
.sd-faixa__brand, .faixa-wordmark {
  color: var(--sd-color-surface, #FFFFFF);
  font-weight: 700;
  text-decoration: none;
  letter-spacing: -0.01em;
}
.sd-faixa__brand:hover, .faixa-wordmark:hover {
  color: var(--sd-color-accent, #0F766E);
}
.sd-faixa__sep, .faixa-sep {
  color: var(--sd-color-text-subtle, #6F747D);
}
.sd-faixa__label, .faixa-lbl {
  color: var(--sd-color-text-subtle, #6F747D);
  font-size: 0.75rem;
}
.sd-faixa__verticais, .faixa-verticais {
  display: flex;
  gap: var(--sd-space-2, 0.5rem);
  margin-left: auto;
}
.sd-faixa__link, .faixa-link {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  padding: 0.2rem 0.45rem;
  border-radius: var(--sd-radius-sm, 2px);
  font-size: 0.75rem;
  font-weight: 500;
  transition: color 0.15s, background-color 0.15s;
}
.sd-faixa__link:hover, .faixa-link:hover {
  color: #FFFFFF;
  background-color: rgba(255, 255, 255, 0.08);
}
.sd-faixa__link--active, .faixa-link--ativo {
  color: #FFFFFF;
  background-color: rgba(255, 255, 255, 0.15);
  font-weight: 600;
}

/* HEADER PADRONIZADO / TOPBAR */
.sd-header, .topbar {
  position: sticky;
  top: 0;
  z-index: var(--sd-z-sticky, 100);
  background-color: rgba(251, 251, 249, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--sd-color-rule, #E4E2DC);
  font-family: var(--sd-font-sans);
}
.sd-header__nav, .topbar .wrap {
  max-width: var(--sd-container, 1120px);
  margin: 0 auto;
  padding: 0 var(--sd-gutter, 1.5rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  gap: 1rem;
}
.sd-header__logo, .topbar .brand {
  display: flex;
  align-items: center;
  gap: var(--sd-space-2, 0.5rem);
  font-family: var(--sd-font-sans);
  font-weight: 700;
  font-size: var(--sd-text-h3, 1.125rem);
  color: var(--sd-color-text, #14161A);
  text-decoration: none;
  letter-spacing: -0.01em;
}
.sd-header__logo-dot {
  width: 8px;
  height: 8px;
  border-radius: var(--sd-radius-pill, 999px);
  background-color: var(--sd-color-accent, #0F766E);
}
.sd-header__logo:hover, .topbar .brand:hover {
  color: var(--sd-color-accent, #0F766E);
  text-decoration: none;
}
.brand-name {
  color: var(--sd-color-text, #14161A);
  font-weight: 700;
  font-size: var(--sd-text-h3, 1.125rem);
}
.brand-tag {
  background: var(--sd-color-surface-wash, #F3F2EE);
  color: var(--sd-color-text-subtle, #6F747D);
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  text-transform: uppercase;
}

/* SEARCH IN HEADER (se presente) */
.sd-header__search, .topbar-search {
  display: flex;
  align-items: center;
  background: var(--sd-color-surface, #FFFFFF);
  border: 1px solid var(--sd-color-rule, #E4E2DC);
  border-radius: var(--sd-radius-md, 4px);
  padding: 0.25rem 0.5rem;
}
.sd-header__search input, .topbar-search input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--sd-color-text, #14161A);
  font-size: var(--sd-text-caption, 0.8125rem);
  padding: 0.2rem 0.4rem;
  width: 190px;
  font-family: var(--sd-font-mono);
}
.sd-header__search input:focus, .topbar-search input:focus {
  border-color: var(--sd-color-accent, #0F766E);
}
.sd-header__search button, .topbar-search button {
  background: transparent;
  border: none;
  color: var(--sd-color-text-subtle, #6F747D);
  cursor: pointer;
  padding: 0.1rem 0.3rem;
}

/* NAV LINKS */
.sd-header__right, .topbar-nav {
  display: flex;
  align-items: center;
  gap: var(--sd-space-4, 1rem);
}
.sd-header__links {
  display: flex;
  align-items: center;
  gap: var(--sd-space-1, 0.25rem);
  list-style: none;
  margin: 0;
  padding: 0;
}
.sd-header__link, .topbar-nav a:not(.nav-cta):not(.nav-login) {
  display: inline-flex;
  align-items: center;
  padding: var(--sd-space-2, 0.5rem) var(--sd-space-3, 0.75rem);
  color: var(--sd-color-text-muted, #5A5F68);
  font-size: var(--sd-text-body-sm, 0.9375rem);
  font-weight: 500;
  border-radius: var(--sd-radius-md, 4px);
  text-decoration: none;
  transition: color 0.15s, background-color 0.15s;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
}
.sd-header__link:hover, .topbar-nav a:not(.nav-cta):not(.nav-login):hover {
  color: var(--sd-color-text, #14161A);
  background-color: var(--sd-color-surface-wash, #F3F2EE);
  text-decoration: none;
}
.sd-header__cta, .nav-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--sd-space-2, 0.5rem) var(--sd-space-4, 1rem);
  font-size: var(--sd-text-caption, 0.8125rem);
  font-weight: 600;
  border-radius: var(--sd-radius-md, 4px);
  background-color: var(--sd-color-accent, #0F766E);
  color: var(--sd-color-surface, #FFFFFF) !important;
  text-decoration: none;
  transition: opacity 0.15s;
  white-space: nowrap;
}
.sd-header__cta:hover, .nav-cta:hover {
  opacity: 0.9;
  text-decoration: none;
}
.sd-header__entrar, .nav-login {
  display: inline-flex;
  align-items: center;
  color: var(--sd-color-text-muted, #5A5F68);
  font-size: var(--sd-text-body-sm, 0.9375rem);
  font-weight: 500;
  text-decoration: none;
  padding: var(--sd-space-2, 0.5rem) var(--sd-space-2, 0.5rem);
  white-space: nowrap;
  transition: color 0.15s;
}
.sd-header__entrar:hover, .nav-login:hover {
  color: var(--sd-color-accent, #0F766E);
  text-decoration: none;
}

/* DROPDOWN */
.sd-nav-dropdown { position: relative; }
.sd-nav-dropdown-content {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--sd-color-surface, #FFFFFF);
  border: 1px solid var(--sd-color-rule, #E4E2DC);
  border-radius: var(--sd-radius-md, 4px);
  box-shadow: var(--sd-shadow-overlay);
  min-width: 170px;
  padding: var(--sd-space-1, 0.25rem) 0;
  z-index: var(--sd-z-dropdown, 200);
}
.sd-nav-dropdown:hover .sd-nav-dropdown-content,
.sd-nav-dropdown:focus-within .sd-nav-dropdown-content {
  display: block;
}
.sd-nav-dropdown-item {
  display: block;
  padding: var(--sd-space-2, 0.5rem) var(--sd-space-4, 1rem);
  color: var(--sd-color-text, #14161A) !important;
  font-size: var(--sd-text-body-sm, 0.9375rem);
  text-decoration: none;
  white-space: nowrap;
}
.sd-nav-dropdown-item:hover {
  background: var(--sd-color-canvas, #FBFBF9);
  color: var(--sd-color-accent, #0F766E) !important;
  text-decoration: none;
}

/* CONSENT BANNER & MODAL (GLOBAL) */
.sd-consent-banner, .consent-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: var(--sd-z-toast, 500);
  background-color: var(--sd-color-surface-inverse, #14161A);
  color: var(--sd-color-surface, #FFFFFF);
  padding: var(--sd-space-4, 1rem) var(--sd-gutter, 1.5rem);
  border-top: 1px solid var(--sd-color-rule-strong, #D2CFC7);
  font-family: var(--sd-font-sans);
}
.sd-consent-banner[hidden], .consent-banner[hidden] {
  display: none !important;
}
.sd-consent-banner__inner, .consent-banner__inner {
  max-width: var(--sd-container, 1120px);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sd-space-4, 1rem);
  flex-wrap: wrap;
}
.sd-consent-banner__texto, .consent-banner__texto {
  margin: 0;
  font-size: var(--sd-text-body-sm, 0.9375rem);
  line-height: 1.5;
  max-width: 680px;
  color: rgba(255, 255, 255, 0.9);
}
.sd-consent-banner__acoes, .consent-banner__acoes {
  display: flex;
  align-items: center;
  gap: var(--sd-space-2, 0.5rem);
  flex-wrap: wrap;
}
.sd-consent-btn, .consent-banner__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--sd-space-2, 0.5rem) var(--sd-space-4, 1rem);
  border-radius: var(--sd-radius-md, 4px);
  font-size: var(--sd-text-caption, 0.8125rem);
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
  min-height: 38px;
  text-decoration: none;
  border: 1px solid transparent;
}
.sd-consent-btn--primary, .consent-banner__btn--primario {
  background-color: var(--sd-color-accent, #0F766E);
  color: #FFFFFF !important;
  border-color: var(--sd-color-accent, #0F766E);
}
.sd-consent-btn--primary:hover, .consent-banner__btn--primario:hover {
  filter: brightness(1.1);
}
.sd-consent-btn--outline, .consent-banner__btn--outline {
  background-color: transparent;
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.4);
}
.sd-consent-btn--outline:hover, .consent-banner__btn--outline:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: #FFFFFF;
}
.sd-consent-btn--subtle, .consent-banner__btn--link {
  background-color: transparent;
  color: rgba(255, 255, 255, 0.75) !important;
  border-color: transparent;
}
.sd-consent-btn--subtle:hover, .consent-banner__btn--link:hover {
  color: #FFFFFF !important;
  text-decoration: underline;
}

/* MODAL PREFERENCIAS */
.sd-consent-modal-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(0, 0, 0, 0.65);
  z-index: var(--sd-z-modal, 400);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sd-space-4, 1rem);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.sd-consent-modal-overlay[hidden] {
  display: none !important;
}
.sd-consent-modal {
  background-color: var(--sd-color-surface, #FFFFFF);
  color: var(--sd-color-text, #14161A);
  width: 100%;
  max-width: 560px;
  border-radius: var(--sd-radius-lg, 6px);
  box-shadow: var(--sd-shadow-overlay);
  border: 1px solid var(--sd-color-rule, #E4E2DC);
  font-family: var(--sd-font-sans);
  overflow: hidden;
}
.sd-consent-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sd-space-4, 1rem) var(--sd-space-6, 1.5rem);
  border-bottom: 1px solid var(--sd-color-rule, #E4E2DC);
}
.sd-consent-modal__title {
  margin: 0;
  font-size: var(--sd-text-h3, 1.125rem);
  font-weight: 700;
}
.sd-consent-modal__close {
  background: transparent;
  border: none;
  font-size: 1.25rem;
  cursor: pointer;
  color: var(--sd-color-text-muted, #5A5F68);
}
.sd-consent-modal__body {
  padding: var(--sd-space-6, 1.5rem);
  display: flex;
  flex-direction: column;
  gap: var(--sd-space-4, 1rem);
  max-height: 70vh;
  overflow-y: auto;
}
.sd-consent-modal__desc {
  margin: 0 0 var(--sd-space-2, 0.5rem) 0;
  font-size: var(--sd-text-body-sm, 0.9375rem);
  color: var(--sd-color-text-muted, #5A5F68);
  line-height: 1.5;
}
.sd-consent-option {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--sd-space-4, 1rem);
  padding: var(--sd-space-3, 0.75rem);
  border: 1px solid var(--sd-color-rule, #E4E2DC);
  border-radius: var(--sd-radius-md, 4px);
  background-color: var(--sd-color-canvas, #FBFBF9);
}
.sd-consent-option__info strong {
  display: block;
  font-size: var(--sd-text-body-sm, 0.9375rem);
  margin-bottom: 0.25rem;
}
.sd-consent-option__info p {
  margin: 0;
  font-size: var(--sd-text-caption, 0.8125rem);
  color: var(--sd-color-text-muted, #5A5F68);
  line-height: 1.4;
}
.sd-consent-option__toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.sd-tag-required {
  font-size: 0.75rem;
  color: var(--sd-color-text-subtle, #6F747D);
  font-weight: 500;
}
.sd-consent-modal__footer {
  padding: var(--sd-space-4, 1rem) var(--sd-space-6, 1.5rem);
  border-top: 1px solid var(--sd-color-rule, #E4E2DC);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sd-space-3, 0.75rem);
  background-color: var(--sd-color-surface-wash, #F3F2EE);
}
