/*
 * Estilos compartilhados das páginas legais (Termos e Privacidade).
 * Escopo principal limitado a #win-pp para evitar vazamentos globais.
 */

#win-pp {
  /* Tokens e cores baseados no tema global com fallbacks seguros */
  --pp-bg: var(--color-bg, #0b1220);
  --pp-bg-alt: var(--color-neutral-0, #0f172a);
  --pp-bg-soft: var(--color-neutral-100, #111827);
  --pp-text: var(--color-text, #e5e7eb);
  --pp-muted: color-mix(in srgb, var(--pp-text, #e5e7eb) 70%, var(--pp-bg, #0b1220));
  --pp-muted-2: color-mix(in srgb, var(--pp-text, #e5e7eb) 55%, var(--pp-bg, #0b1220));
  --pp-border: var(--bs-border-color, color-mix(in srgb, var(--pp-text, #e5e7eb) 12%, var(--pp-bg, #0b1220)));
  --pp-brand: var(--color-primary-600, #21286C);
  --pp-progress: var(--color-accent-400, #22c55e);

  /* Gradiente local com fallback caso o tema global não defina grad-* */
  --pp-grad-start: var(--grad-primary-start, color-mix(in srgb, var(--pp-brand) 90%, #111827));
  --pp-grad-end: var(--grad-primary-end, color-mix(in srgb, var(--pp-brand) 35%, #0b1220));
  --pp-grad-hero: linear-gradient(
    120deg,
    color-mix(in srgb, var(--pp-grad-start) 12%, transparent),
    color-mix(in srgb, var(--pp-grad-end) 12%, transparent)
  );

  --pp-shadow-color: 220 8% 55%;
  --pp-shadow-low:
    0 1px 1.5px hsl(var(--pp-shadow-color) / 0.25),
    0 2px 4px -2px hsl(var(--pp-shadow-color) / 0.22);
  --pp-shadow-med:
    0 1px 1.5px hsl(var(--pp-shadow-color) / 0.28),
    0 6px 12px -4px hsl(var(--pp-shadow-color) / 0.26),
    0 12px 22px -8px hsl(var(--pp-shadow-color) / 0.24);

  --pp-radius: 16px;
  --pp-shell-gap: var(--site-shell-radius, 20px);
  /* Usa 100% para evitar discrepância com barra de rolagem do 100vw */
  --pp-container: max(0px, calc(100% - 2 * var(--pp-shell-gap)));
  --pp-toc-width-min: 220px;
  --pp-toc-width-max: 280px;
  --pp-toc-width: clamp(
    var(--pp-toc-width-min, 220px),
    25vw,
    var(--pp-toc-width-max, 280px)
  );
  --pp-toc-toggle-gap: clamp(8px, 2vw, 12px);

  --pp-fs-xs: 0.84rem;
  --pp-fs-sm: 0.95rem;
  --pp-fs-md: 1rem;
  --pp-fs-lg: 1.15rem;
  --pp-fs-2xl: 2rem;
  --pp-fs-3xl: 2.4rem;

  --pp-scroll-offset: 96px;
  --pp-scroll-offset-mobile: 128px;
  --pp-sticky-gap: 18px;
  --pp-header-offset: 0px;
  --pp-sticky-offset: calc(var(--pp-header-offset, 0px) + var(--pp-sticky-gap, 18px));

  color: var(--pp-text);
  background: transparent;
  font-size: var(--pp-fs-md);
  line-height: 1.7;
  margin-bottom: 0;
}

#win-pp {
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}

#win-pp * {
  min-width: 0;
  max-width: 100%;
}

#win-pp .wpc-card,
#win-pp .wpc-article {
  width: 100%;
  max-width: 100%;
}

#win-pp .wpc-container {
  --wpc-container-inline-padding: min(
    var(--pp-shell-gap, var(--site-shell-radius, 20px)),
    clamp(16px, 4vw, 24px)
  );
  max-width: calc(
    var(--pp-container, 100%)
    + 2 * var(--wpc-container-inline-padding)
  );
  margin-inline: auto;
  padding-inline: var(--wpc-container-inline-padding);
}

/* GRID principal */
#win-pp .wpc-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding: 24px 0 36px;
}

#win-pp[data-toc="disabled"] > .wpc-container.wpc-grid {
  grid-template-columns: 1fr;
}

#win-pp[data-toc="disabled"] .wpc-toc-sticky {
  display: none !important;
  width: 0 !important;
  max-width: none;
}

#win-pp[data-toc="disabled"] #wpcTocToggle {
  display: none !important;
}

#win-pp[data-toc="disabled"] .wpc-article {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

@media (min-width: 992px) {
  #win-pp .wpc-grid {
    grid-template-columns: minmax(
        var(--pp-toc-width-min, 220px),
        var(--pp-toc-width, clamp(220px, 25vw, 280px))
      )
      minmax(0, 1fr);
    gap: clamp(2rem, 3vw, 2.5rem);
  }

  #win-pp[data-toc="disabled"] > .wpc-container.wpc-grid {
    grid-template-columns: 1fr;
  }

  #win-pp .wpc-toc-sticky {
    width: clamp(
      var(--pp-toc-width-min, 220px),
      var(--pp-toc-width, clamp(220px, 25vw, 280px)),
      var(--pp-toc-width-max, 280px)
    );
    max-width: var(--pp-toc-width, clamp(220px, 25vw, 280px));
    min-width: var(--pp-toc-width-min, 220px);
  }

  #win-pp .wpc-toc-sticky > .wpc-card {
    width: clamp(
      var(--pp-toc-width-min, 220px),
      var(--pp-toc-width, clamp(220px, 25vw, 280px)),
      var(--pp-toc-width-max, 280px)
    );
  }
}

@media (min-width: 1440px) {
  #win-pp {
    --pp-toc-width: clamp(220px, 20vw, 260px);
  }
}

/* TOC */
#win-pp .wpc-toc-sticky {
  position: sticky;
  top: var(--pp-sticky-offset, 18px);
  align-self: start;
}

#win-pp .wpc-card {
  background: var(--pp-bg-alt);
  border: 1px solid var(--pp-border);
  border-radius: 16px;
  padding: 16px;
  box-shadow: var(--pp-shadow-med);
}

#win-pp .wpc-toc-title {
  margin: 0 0 10px;
  font-size: var(--pp-fs-lg);
  font-weight: 800;
}

#win-pp .wpc-toc {
  list-style: none;
  padding: 0;
  margin: 0;
  border-left: 2px solid var(--pp-border);
}

#win-pp .wpc-toc li {
  min-width: 0;
}

#win-pp .wpc-toc a {
  display: block;
  padding: 8px 12px;
  color: var(--pp-muted);
  font-size: var(--pp-fs-sm);
  border-left: 2px solid transparent;
  margin-left: -2px;
  border-radius: 0 8px 8px 0;
  transition: color 0.18s, background-color 0.18s, border-color 0.18s;
  text-decoration: none;
  overflow-wrap: anywhere;
}

#win-pp .wpc-toc a:hover {
  color: var(--pp-brand);
  background: color-mix(in srgb, var(--pp-brand) 6%, transparent);
}

#win-pp .wpc-toc a.is-active {
  color: var(--pp-brand);
  border-left-color: var(--pp-brand);
  font-weight: 700;
}

#win-pp .wpc-bc {

  --pp-breadcrumb-gap: 6px;
  display: inline-block;
  max-width: min(64ch, 100%);

  font-size: 0.9rem;
  color: var(--pp-muted);
  margin-top: 10px;
  white-space: normal;
}

#win-pp .wpc-bc > * {
  display: inline;
  min-width: 0;
  vertical-align: baseline;
}

#win-pp .wpc-bc > *:not(:last-child) {
  white-space: nowrap;
}

#win-pp .wpc-bc > :last-child {
  overflow-wrap: anywhere;
  word-break: break-word;

}

#win-pp .wpc-bc a {
  color: var(--pp-muted-2);
  text-decoration: none;
}

#win-pp .wpc-bc a:hover {
  color: var(--pp-brand);
  text-decoration: underline;
}

#win-pp .wpc-bc span[aria-hidden="true"] {

  display: inline;

  margin-inline: var(--pp-breadcrumb-gap, 6px);
  color: currentColor;
}

/* TOC: responsividade */
#wpcTocToggle {
  display: none;
}

@media (min-width: 992px) {
  #wpcTocToggle {
    display: none !important;
  }
}

@media (max-width: 991.98px) {
  #win-pp .wpc-toc-sticky {
    position: static;
  }

  #win-pp .wpc-card {
    padding: 12px;
  }

  /* Garante largura plena do TOC quando empilhado em 1 coluna */
  #win-pp .wpc-toc-sticky,
  #win-pp .wpc-toc-sticky > .wpc-card,
  #win-pp .wpc-card {
    width: 100%;
    max-width: none;
    min-width: 0;
    box-sizing: border-box;
  }

  #wpcTocToggle {
    display: block;
    width: 100%;
    text-align: center;
    cursor: pointer;
    background: var(--pp-bg-soft);
    color: var(--pp-text);
    border: 1px solid var(--pp-border);
    border-radius: 10px;
    padding: 10px 12px;
    font-size: var(--pp-fs-sm);
    margin-top: var(--pp-toc-toggle-gap, 10px);
  }

  #win-pp .wpc-toc-title {
    display: none;
  }

  #win-pp .wpc-card .wpc-toc {
    display: none;
    max-height: 40vh;
    overflow: auto;
    margin-top: 8px;
  }

  #win-pp .wpc-card.is-open .wpc-toc {
    display: block;
  }
}

/* ARTIGO */
#win-pp .wpc-article {
  background: var(--pp-bg-alt);
  border: 1px solid var(--pp-border);
  border-top: 0;
  border-radius: 16px;
  padding: clamp(1rem, 2vw, 1.5rem) clamp(1rem, 3vw, 2rem);
  box-shadow: var(--pp-shadow-med);
}

#win-pp .wpc-article section + section {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--pp-border);
}

#win-pp .wpc-article h2 {
  font-size: var(--pp-fs-2xl);
  font-weight: 800;
  line-height: 1.2;
  margin: 0 0 0.35rem;
}

#win-pp .wpc-article h3 {
  font-size: var(--pp-fs-lg);
  margin: 1.25rem 0 0.35rem;
  font-weight: 700;
}

#win-pp .wpc-article p,
#win-pp .wpc-article ul,
#win-pp .wpc-article ol {
  color: var(--pp-muted);
  margin: 0 0 0.65rem;
}

#win-pp .wpc-article ul,
#win-pp .wpc-article ol {
  padding-left: 1.2rem;
}

#win-pp .wpc-article a {
  color: var(--pp-brand);
  text-decoration: underline;
  text-underline-offset: 2px;
}

#win-pp .wpc-article a:hover {
  color: var(--color-primary-700);
}

/* Deslocamento de âncoras considerando header fixo do site */
#win-pp .wpc-article section,
#win-pp .wpc-article [data-pp-heading="true"] {
  scroll-margin-top: var(--pp-scroll-offset, 96px);
}

@media (max-width: 991.98px) {
  #win-pp .wpc-article section,
  #win-pp .wpc-article [data-pp-heading="true"] {
    scroll-margin-top: var(--pp-scroll-offset-mobile, 128px);
  }
}

#win-pp .wpc-article [data-pp-heading="true"] {
  display: block;
}

#win-pp .wpc-article [data-pp-heading="true"]:not([data-pp-heading-first="true"]) {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--pp-border);
}

/* Botão "voltar ao topo" */
.wpc-top {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--color-primary-600, #21286C) 70%, #000);
  background: var(--color-primary-600, #21286C);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: 0.18s;
  z-index: 9999;
}

.wpc-top:hover {
  background: var(--color-primary-700, #1B214F);
}

.wpc-top:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.wpc-top.is-vis {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .wpc-top {
    transition: none;
  }
}

/* Banner legal (CNPJ + transparência LGPD) */
#win-pp .wpc-banner {
  margin: 24px 0 0;
  margin-bottom: 0;
  background: linear-gradient(90deg, var(--pp-grad-start), var(--pp-grad-end));
  color: #fff;
  box-shadow: var(--pp-shadow-low);
}

#win-pp .wpc-banner .wpc-container {
  --wpc-container-inline-padding: min(
    var(--pp-shell-gap, var(--site-shell-radius, 20px)),
    clamp(16px, 5vw, 24px)
  );
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-block: 12px;
  padding-inline: var(--wpc-container-inline-padding);
}

#win-pp .wpc-banner p {
  margin: 0;
  text-align: center;
}

#win-pp .wpc-banner-title{
  margin-top: 0;
}

#win-pp .wpc-banner a {
  color: #fff;
  text-decoration: underline;
}

#win-pp .wpc-banner a:hover {
  opacity: 0.9;
}

/* Remove o espaçamento padrão do footer global nessas páginas */
footer.mt-4 {
  margin-top: 1.5rem!important;
}

/* ================= Neumorphic variant (reaproveita tokens do Contato) ================= */
/* Ativado quando as páginas legais estão dentro do wrapper de Contato e o win-pp recebe data-variant="neo" */
#win-contact #win-pp[data-variant="neo"]{
  /* Mantém o texto herdado do tema claro do Contato */
  color: var(--pp-text, #111827);
  background: transparent;
}

#win-contact #win-pp[data-variant="neo"] .wpc-card,
#win-contact #win-pp[data-variant="neo"] .wpc-article{
  background: var(--pp-neumorphic-base, #e0e5ec);
  border: none;
  border-radius: 20px;
  box-shadow: inset 4px 4px 8px var(--pp-shadow-dark, #b8bfcb),
              inset -4px -4px 8px var(--pp-shadow-light, #ffffff);
}

#win-contact #win-pp[data-variant="neo"] .wpc-toc{
  border-left: 2px solid var(--bs-border-color, #e5e7eb);
}

#win-contact #win-pp[data-variant="neo"] .wpc-toc a{
  color: var(--pp-text, #111827);
  background: transparent;
}


/* ====== Layout dentro do card global (#win-contact) ====== */
#win-contact #win-pp{ width:100%; }
#win-contact #win-pp .wpc-container{
  --wpc-container-inline-padding: min(
    var(--wpc-shell-gap, var(--site-shell-radius, 20px)),
    clamp(20px, 6vw, 28px)
  );
  width:100%;
  max-width: calc(
    var(--pp-container, 100%)
    + 2 * var(--wpc-container-inline-padding)
  );
  margin-inline:auto;
  padding-inline: var(--wpc-container-inline-padding);
  box-sizing:border-box;
}
#win-contact #win-pp .wpc-grid{
  width:100%;
  min-width:0;
  padding:0 0 0;
}
#win-contact #win-pp .wpc-toc-sticky,
#win-contact #win-pp .wpc-card,
#win-contact #win-pp .wpc-article{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
#win-contact #win-pp .wpc-card{
  max-width:100%;
}
#win-contact #win-pp .wpc-article{
  overflow-wrap:break-word;
  word-break:break-word;
}
#win-contact #win-pp .wpc-article > *{
  max-width:100%;
}
#win-contact #win-pp .wpc-article :where(img,svg,video,iframe,embed,object){
  display:block;
  max-width:100%;
  height:auto;
}
#win-contact #win-pp .wpc-article :where(pre){
  overflow-x:auto;
  white-space:pre-wrap;
}
#win-contact #win-pp .wpc-article :where(table){
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
}
#win-contact #win-pp .wpc-article :where(blockquote){
  margin-inline:0;
}

@media (max-width: 320px){
  #win-pp {
    overflow-x: hidden;
  }

  #win-pp .wpc-card,
  #win-pp .wpc-article {
    width: 100%;
    max-width: 100%;
  }
}
@media (max-width:445px){
  #win-contact #win-pp .wpc-container{
    --wpc-container-inline-padding: min(
      var(--wpc-shell-gap, var(--site-shell-radius, 20px)),
      clamp(14px, 7vw, 20px)
    );
  }
  #win-contact #win-pp .wpc-grid{
    padding:18px 0 28px;
    gap:1.1rem;
  }
  #win-contact #win-pp .wpc-card,
  #win-contact #win-pp .wpc-article{
  padding:clamp(.85rem,4.5vw,1.2rem);
  border-radius:14px;
}
  #win-contact #win-pp .wpc-toc{ border-left-width:1px; }
  #win-contact #win-pp .wpc-banner .wpc-container{
    --wpc-container-inline-padding: min(
      var(--wpc-shell-gap, var(--site-shell-radius, 20px)),
      clamp(14px, 7vw, 20px)
    );
  }
}

@media (min-width:1024px){
  #win-contact #win-pp .wpc-toc-sticky{
    width:clamp(
      var(--pp-toc-width-min, 220px),
      var(--pp-toc-width, clamp(220px, 25vw, 280px)),
      var(--pp-toc-width-max, 280px)
    );
    max-width:var(--pp-toc-width, clamp(220px, 25vw, 280px));
    min-width:var(--pp-toc-width-min, 220px);
  }

  #win-contact #win-pp .wpc-toc-sticky > .wpc-card{
    width:clamp(
      var(--pp-toc-width-min, 220px),
      var(--pp-toc-width, clamp(220px, 25vw, 280px)),
      var(--pp-toc-width-max, 280px)
    );
    max-width:var(--pp-toc-width, clamp(220px, 25vw, 280px));
  }
}
#win-contact #win-pp[data-variant="neo"] .wpc-toc a:hover{
  color: var(--pp-brand, var(--color-primary-600, #21286C));
  background: color-mix(in srgb, var(--pp-brand, var(--color-primary-600, #21286C)) 6%, transparent);
}

#win-contact #win-pp[data-variant="neo"] .wpc-toc a.is-active{
  color: var(--pp-brand, var(--color-primary-600, #21286C));
  border-left-color: var(--pp-brand, var(--color-primary-600, #21286C));
}

/* Banner legal adapta-se ao estilo do Contato */
#win-contact #win-pp[data-variant="neo"] .wpc-banner{
  margin: 24px 0 0;
  background: var(--pp-neumorphic-base, #e0e5ec);
  color: var(--pp-text, #111827);
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}

#win-contact #win-pp[data-variant="neo"] .wpc-banner a{
  color: var(--pp-brand, var(--color-primary-600, #21286C));
}

#win-contact #win-pp[data-variant="neo"] .wpc-banner a:hover{
  filter: brightness(1.05);
}
