/* Nuvel cookie banner (LGPD), shared by the home, /precos and /cadastro; markup and behavior in
   consent.v1.js. Self-contained on purpose: every rule is scoped under .nv-consent and sets what it
   needs, so it neither depends on the page's CSS (the home's own sheet, or Tailwind CDN and its
   preflight on the other pages) nor leaks into it. The font family and letter spacing come from the
   element the banner is mounted in, so it speaks the typography of each page. The home's look is the
   reference (values of home.v1.css); .dark (theme class of /precos and /cadastro) only recolors it.
   .htaccess caches CSS for a month: on any change, bump the version in the file name and in every page. */

.nv-consent {
  --nvc-bg: #fff;
  --nvc-bg-hover: #f6f8fb;
  --nvc-ink: #0f172a;
  --nvc-ink-2: #475569;
  --nvc-line: rgba(15, 23, 42, 0.18);
  --nvc-chip: #eef1f6;
  position: fixed; z-index: 60; left: 0; right: 0; bottom: 0;
  background: var(--nvc-bg); border-top: 1px solid var(--nvc-line); box-shadow: 0 -12px 32px -18px rgba(15, 23, 42, 0.35);
}
.dark .nv-consent {
  --nvc-bg: #131e2e;
  --nvc-bg-hover: #1c2a3e;
  --nvc-ink: #eaf0f8;
  --nvc-ink-2: #b4c0ce;
  --nvc-line: rgba(234, 240, 248, 0.16);
  --nvc-chip: rgba(234, 240, 248, 0.1);
  box-shadow: 0 -12px 32px -18px rgba(0, 0, 0, 0.7);
}
.nv-consent, .nv-consent *, .nv-consent *::before, .nv-consent *::after { box-sizing: border-box; }
.nv-consent[hidden], .nv-consent [hidden] { display: none !important; }
.nv-consent :focus-visible { outline: 2px solid var(--nvc-ink); outline-offset: 3px; border-radius: 4px; }

.nv-consent-in { display: flex; align-items: center; gap: 28px; max-width: 1200px; margin: 0 auto; padding: 18px 24px; }
.nv-consent-txt { flex: 1; min-width: 0; margin: 0; font-size: 14px; line-height: 1.5; color: var(--nvc-ink-2); }
.nv-consent-txt b { color: var(--nvc-ink); font-weight: 600; }
.nv-consent-links { white-space: nowrap; }
.nv-consent-link {
  margin: 0; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; letter-spacing: normal; text-transform: none;
  color: var(--nvc-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.nv-consent-txt a { font-weight: 600; color: var(--nvc-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.nv-consent-txt a:hover { color: var(--nvc-ink); text-decoration-thickness: 2px; }

/* "Rejeitar não necessários" and "Aceitar"/"Salvar escolhas": one style, same weight. */
.nv-consent-act { display: flex; align-items: center; gap: 10px; flex: none; }
.nv-consent-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; margin: 0; padding: 0 18px; border-radius: 8px; border: 1.5px solid var(--nvc-ink);
  background: var(--nvc-bg); color: var(--nvc-ink);
  font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1; letter-spacing: 0; text-transform: none;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color 0.18s ease-out, color 0.18s ease-out, border-color 0.18s ease-out;
}
.nv-consent-btn:hover { background: var(--nvc-bg-hover); }

.nv-consent-opts { display: grid; gap: 10px; margin: 10px 0 2px; }
.nv-consent-opt { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--nvc-ink-2); }
.nv-consent-opt input { width: 20px; height: 20px; margin: 1px 0 0; padding: 0; accent-color: var(--nvc-ink); flex: none; }
.nv-consent-opt b { color: var(--nvc-ink); font-weight: 600; }
.nv-consent-fixed {
  font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1;
  padding: 4px 7px; border-radius: 5px; background: var(--nvc-chip); color: var(--nvc-ink-2); flex: none; margin-top: 1px;
}

/* Space kept at the end of pages that load consent.v1.js with data-reserve (height set by the script). */
.nv-consent-space { display: block; flex: none; }

@media (max-width: 640px) {
  .nv-consent-in { flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 16px 10px; }
  .nv-consent-txt { font-size: 13px; line-height: 1.4; }
  .nv-consent-act { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .nv-consent-btn { width: 100%; padding: 0 10px; font-size: 14px; white-space: normal; line-height: 1.15; text-align: center; }
  /* Touch targets of at least 44 px for the text links. */
  .nv-consent-link, .nv-consent-txt a { display: inline-flex; align-items: center; min-height: 44px; }
}
