/* Autos em Dia, página de vendas. Fonte Inter servida pelo próprio site (licença SIL OFL 1.1), sem framework. */

/* O build troca /fontes/<nome>.woff2 pelo endereço com hash. */
@font-face { font-family: "Inter"; src: url("/fontes/inter-400.9c01679a.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/fontes/inter-600.fec91b23.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter Display"; src: url("/fontes/inter-display-800.1d03d615.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
/* Fontes de reserva: a Arial com as medidas ajustadas às da Inter, para o texto não mudar de lugar quando a fonte chega. */
@font-face { font-family: "Inter reserva"; src: local("Arial"); size-adjust: 105.9%; ascent-override: 91.5%; descent-override: 22.8%; line-gap-override: 0%; }
@font-face { font-family: "Inter Display reserva"; src: local("Arial Bold"), local("Arial-BoldMT"); font-weight: 800; size-adjust: 97.4%; ascent-override: 99.5%; descent-override: 24.8%; line-gap-override: 0%; }

:root {
  /* Azul da parede da foto de abertura: o fundo da abertura, da barra e do rodapé emenda com a foto. */
  --noite: #0C172C;
  /* As cores abaixo são as da própria planilha. */
  --marinho: #172338;
  --marinho-2: #24375A;
  --ouro: #D4A537;
  --ouro-claro: #E2BA54;
  --linha: #D5DBE5;
  --verde: #1E8449;
  --papel: #F4F6F9;
  --branco: #FFFFFF;
  --tinta: #1B2636;
  --tinta-2: #566275;
  --claro: #E3E8F0;     /* texto sobre fundo escuro */
  --claro-2: #B3BDCE;   /* texto secundário sobre fundo escuro */
  --raio: .625rem;
  --largura: 72.5rem;
  --margem: 1.25rem;
  --titulo: "Inter Display", "Inter Display reserva", "Inter", system-ui, sans-serif;
  --texto: "Inter", "Inter reserva", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 1rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  font-family: var(--texto);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--tinta);
  background: var(--papel);
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 { margin: 0; font-family: var(--titulo); font-weight: 800; line-height: 1.12; letter-spacing: -.02em; color: var(--marinho); text-wrap: balance; }
h1 { font-size: clamp(2.25rem, 1.5rem + 3.6vw, 3.75rem); line-height: 1.04; letter-spacing: -.028em; }
h2 { font-size: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem); }
h3 { font-size: 1.3125rem; line-height: 1.22; letter-spacing: -.012em; }
h4 { font-family: var(--texto); font-weight: 600; font-size: 1.0625rem; line-height: 1.35; letter-spacing: 0; }
p, ul, ol, dl { margin: 0 0 1em; }
ul, ol { padding-left: 1.3rem; }
li { margin-bottom: .4em; }
strong, b { font-weight: 600; }
a { color: var(--marinho-2); text-underline-offset: .15em; }
a:hover { color: var(--marinho); }
small { font-size: .9em; }

:focus-visible { outline: 3px solid var(--marinho-2); outline-offset: 3px; }
.barra :focus-visible, .abertura :focus-visible, .secao--escura :focus-visible, .preco :focus-visible, .final :focus-visible,
.rodape :focus-visible, .topo :focus-visible, .compra-fixa :focus-visible, .ampliacao :focus-visible { outline-color: #fff; }

.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.pular {
  position: absolute; left: 1rem; top: -5rem; z-index: 50;
  background: var(--ouro); color: var(--marinho);
  padding: .6rem 1rem; border-radius: var(--raio); font-weight: 600; text-decoration: none;
}
.pular:focus { top: 1rem; }

.caixa { width: min(100% - 2 * var(--margem), var(--largura)); margin-inline: auto; }
.texto { max-width: 70ch; }

/* Botões. O dourado fica reservado para o nome do produto, a ação de compra e o vencimento no exemplo do cálculo. */
.botao {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3.25rem; padding: .8rem 1.75rem; min-width: 15rem;
  background: var(--ouro); color: var(--marinho);
  font: 600 1.0625rem/1.2 var(--texto); text-align: center; text-decoration: none;
  border: 0; border-radius: var(--raio); cursor: pointer;
  transition: background-color .15s ease;
}
.botao:hover { background: var(--ouro-claro); color: var(--marinho); }
.botao[disabled] { background: var(--linha); color: var(--tinta); cursor: not-allowed; }
.botao--compacto { min-height: 2.5rem; min-width: 0; padding: .5rem 1.1rem; font-size: .9375rem; }
.botao--secundario { background: transparent; color: var(--marinho); box-shadow: inset 0 0 0 2px var(--marinho); min-width: 0; min-height: 2.75rem; padding: .5rem 1.1rem; font-size: 1rem; }
.botao--secundario:hover { background: var(--papel); }
@media (max-width: 30em) { .botao { width: 100%; min-width: 0; } .botao--compacto, .botao--secundario { width: auto; } }

/* Barras de compra (a do topo e a fixa do celular). O pagina.js põe a classe "com-js" na raiz assim que roda e passa a
   mostrar ou esconder as barras. Antes disso elas esperam um segundo para aparecer, e assim não piscam na abertura da
   página. Sem JavaScript, aparecem depois dessa espera e ficam à vista. */
@keyframes surgir { from { opacity: 0; visibility: hidden; } to { opacity: 1; visibility: visible; } }
html:not(.com-js) .barra-compra, html:not(.com-js) .compra-fixa { animation: surgir .2s ease 1s both; }

/* Barra do topo. Repete a barra de abas da planilha: fundo escuro, nome em dourado à esquerda. */
.barra { background: var(--noite); color: #fff; }
.barra-linha { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 3.5rem; }
.marca { font: 800 1.0625rem/1 var(--titulo); letter-spacing: .06em; text-transform: uppercase; color: var(--ouro); text-decoration: none; }
.marca:hover { color: var(--ouro-claro); }
.barra-nav, .barra-compra { display: none; }
.barra-atalho { color: var(--claro); font-size: .9375rem; }
.barra-atalho:hover { color: #fff; }
@media (min-width: 60em) {
  html { scroll-padding-top: 3.75rem; }
  .barra { position: sticky; top: 0; z-index: 30; box-shadow: 0 1px 0 rgba(255, 255, 255, .08); }
  .barra-linha { min-height: 3.75rem; justify-content: flex-start; gap: 2rem; }
  .barra-atalho { display: none; }
  .barra-nav { display: flex; gap: 1.75rem; margin-left: 1rem; }
  .barra-nav a { color: var(--claro); font-size: .9375rem; text-decoration: none; }
  .barra-nav a:hover { color: #fff; text-decoration: underline; }
  .barra-compra { display: flex; align-items: center; gap: 1rem; margin: 0 0 0 auto; transition: opacity .2s ease, visibility 0s; }
  .barra-preco { font-size: .9375rem; font-weight: 600; white-space: nowrap; }
  /* Enquanto um botão de compra da própria página está à vista, o da barra some (classe posta pelo pagina.js). */
  .botao-a-vista .barra-compra { opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility 0s .2s; }
}

/* 1. Abertura */
.abertura { position: relative; overflow: hidden; background: var(--noite); color: var(--claro); }
.abertura-chamada, .abertura-compra { position: relative; z-index: 1; }
.abertura-chamada { padding-top: 2rem; }
.abertura-compra { padding-bottom: 2.75rem; }
.abertura h1 { color: #fff; max-width: 13ch; }
.abertura .chamada { margin: 1.1rem 0 0; max-width: 34rem; font-size: clamp(1.0625rem, .98rem + .45vw, 1.25rem); line-height: 1.55; }
.abertura .acao { margin: 0 0 1rem; }
/* Preço à vista e parcelado: um só tamanho de letra na linha inteira (Decreto nº 5.903/2006, art. 9º, I). */
.abertura .preco-linha { margin: 0 0 .35rem; color: #fff; font-size: 1.25rem; font-weight: 600; line-height: 1.35; }
.abertura .parcelamento { margin: 0; max-width: 34rem; font-size: 1rem; line-height: 1.5; }
.junto { white-space: nowrap; }
.fatos { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin: 1.5rem 0 0; padding: 0; max-width: 34rem; font-size: .9375rem; }
.fatos li { position: relative; margin: 0; padding-left: 1.05rem; }
.fatos li::before { content: ""; position: absolute; left: 0; top: .58em; width: .45rem; height: .45rem; border-radius: 1px; background: var(--claro-2); }
.no-celular { margin: 1.5rem 0 0; padding-left: .9rem; border-left: 2px solid var(--marinho-2); max-width: 34rem; font-size: .9375rem; color: var(--claro-2); }
/* A foto termina na parede azul, e uma máscara desfaz as bordas: em tela estreita, em cima e embaixo; em tela larga, à esquerda. */
.abertura-cena { margin: .5rem 0 .75rem; }
.abertura-cena img {
  width: 100%; max-height: 27rem; object-fit: cover; object-position: 60% 62%;
  -webkit-mask-image: linear-gradient(to bottom, transparent 1%, #000 26%, #000 91%, transparent);
  mask-image: linear-gradient(to bottom, transparent 1%, #000 26%, #000 91%, transparent);
}
@media (min-width: 60em) {
  .abertura { min-height: 41rem; display: flex; flex-direction: column; justify-content: center; padding-block: 4.5rem 5rem; }
  .abertura-chamada { padding-top: 0; }
  .abertura-compra { padding-bottom: 0; margin-top: 2rem; }
  /* O texto nunca passa de 46% da caixa, para não entrar na foto. */
  .abertura .abertura-chamada > *, .abertura .abertura-compra > * { max-width: min(34rem, 46%); }
  .no-celular { display: none; }
  .abertura-cena { position: absolute; inset: 0 0 0 auto; width: min(56%, 62rem); margin: 0; }
  .abertura-cena img {
    height: 100%; max-height: none; object-position: 100% 100%;
    -webkit-mask-image: linear-gradient(to right, transparent 3%, #000 36%);
    mask-image: linear-gradient(to right, transparent 3%, #000 36%);
  }
}

/* Seções */
.secao { padding-block: 3rem; }
.secao--clara { background: var(--branco); }
.secao--escura { background: var(--marinho); color: var(--claro); }
.secao--escura h2, .secao--escura h3, .secao--escura h4 { color: #fff; }
.secao h2 { margin-bottom: 1.5rem; max-width: 24ch; }
@media (min-width: 60em) { .secao { padding-block: 6rem; } .secao h2 { margin-bottom: 2rem; } }

/* Listas */
.lista-marcada { list-style: none; padding: 0; }
.lista-marcada li { position: relative; margin-bottom: .6em; padding-left: 1.5rem; }
.lista-marcada li::before { content: ""; position: absolute; left: .1rem; top: .58em; width: .5rem; height: .5rem; border-radius: 1px; background: var(--marinho-2); }
.secao--escura .lista-marcada li::before { background: var(--claro-2); }
.lista-marcada--sim li::before {
  left: .2rem; top: .32em; width: .42rem; height: .78rem; border-radius: 0; background: none;
  border: solid var(--verde); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
/* Linhas separadas por fios, como as linhas de uma planilha. */
.linhas { list-style: none; margin: 1rem 0 1.5rem; padding: 0; border-top: 1px solid var(--linha); }
.linhas li { margin: 0; padding: .85rem 0; border-bottom: 1px solid var(--linha); }

/* 2. A rotina sem a planilha */
.antes-grade { display: grid; gap: 2.25rem; align-items: center; }
.antes .virada { margin: 0; font-size: 1.125rem; font-weight: 600; line-height: 1.5; color: var(--marinho); }
.foto { margin: 0; }
.foto img { width: 100%; border-radius: var(--raio); }
@media (min-width: 60em) { .antes-grade { grid-template-columns: minmax(0, 1fr) 36rem; gap: 4.5rem; } }

/* 3. O que ela faz */
.dica-toque { margin: -.5rem 0 2.5rem; max-width: 62ch; font-size: .9375rem; color: var(--tinta-2); }
/* Nome da aba da planilha, com a aparência da barra de abas dela. */
.aba { display: inline-block; margin: 0 0 .7rem; padding: .22rem .6rem; border-radius: .3rem; background: var(--marinho); color: #fff; font-size: .8125rem; font-weight: 600; line-height: 1.4; }
.funcao h3 { margin-bottom: .6rem; }
.funcao p { margin: 0 0 .8rem; }
.funcao > p:last-child { margin-bottom: 0; }

/* Quadro com um trecho da tela. A imagem aparece pela metade do tamanho da captura, e o que não cabe fica escondido à direita. */
.janela { margin: 0; overflow: hidden; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); }
.janela a { position: relative; display: block; overflow: hidden; padding: .75rem 0 .75rem .75rem; cursor: zoom-in; }
/* O contorno de foco fica por dentro do quadro, que esconde o que passa da borda. */
.janela a:focus-visible { outline-offset: -3px; }
.janela a::after { content: ""; position: absolute; inset: 0 0 0 auto; width: 2.5rem; background: linear-gradient(to right, rgba(255, 255, 255, 0), #fff); pointer-events: none; }
.janela img { max-width: none; }
.janela figcaption { padding: .6rem .9rem; border-top: 1px solid var(--linha); font-size: .875rem; line-height: 1.45; color: var(--tinta-2); }

.funcao--painel { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; margin-bottom: 3.5rem; }
.funcao--painel h3 { margin: 0; font-size: clamp(1.3125rem, 1.1rem + 1vw, 1.75rem); }
.funcao--painel .funcao-corpo p { margin: 0; }
.funcao--painel .janela a { padding: 0; }
.situacoes { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 0; padding: 0; font-size: .8125rem; font-weight: 600; line-height: 1.4; }
.situacoes li { margin: 0; padding: .2rem .6rem; border-radius: .25rem; }
.s-vencido { background: #FADBD8; color: #A93226; }
.s-hoje { background: #FDEBD0; color: #A04000; }
.s-3 { background: #FCF3CF; color: #7D6608; }
.s-7 { background: #D6EAF8; color: #1B4F72; }
.s-ok { background: var(--papel); color: var(--tinta); box-shadow: inset 0 0 0 1px var(--linha); }

.funcoes-grade { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; }
/* O quadro não passa da largura do recorte (488 px mais a margem). Se sobrar quadro, a borda direita da imagem se desfaz. */
.funcoes-grade .janela { max-width: 31.25rem; margin-bottom: 1.25rem; }
.funcoes-grade .janela img {
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 3rem), transparent);
  mask-image: linear-gradient(to right, #000 calc(100% - 3rem), transparent);
}
.funcoes-grade .janela a { height: 11.875rem; }

.numeros { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 3.5rem 0 0; overflow: hidden; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--linha); }
.numeros > div { padding: 1.1rem 1.1rem 1.2rem; background: var(--branco); }
.numeros dt { font: 800 1.25rem/1.2 var(--titulo); letter-spacing: -.015em; color: var(--marinho); }
.numeros dd { margin: .4rem 0 0; font-size: .9375rem; line-height: 1.45; color: var(--tinta-2); }
.todas-telas { margin: 1.5rem 0 0; max-width: 70ch; font-size: .9375rem; color: var(--tinta-2); }
.todas-telas a { cursor: zoom-in; }

@media (min-width: 60em) {
  .funcao--painel { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.75rem 4rem; align-items: end; margin-bottom: 4.5rem; }
  .funcao--painel .janela { grid-column: 1 / -1; }
  .funcao--painel .janela a::after { content: none; }
  .funcao--painel .janela img { width: 100%; max-width: 100%; }
  .funcoes-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
  .numeros { grid-template-columns: repeat(4, 1fr); margin-top: 4.5rem; }
  .numeros > div { padding: 1.4rem 1.5rem 1.5rem; }
  .numeros dt { font-size: 1.5rem; }
}

/* 4. Como o prazo é calculado */
.calculo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.calculo-texto p, .calculo-texto ul { max-width: 34rem; }
.aviso { margin-top: 2rem; max-width: 34rem; padding: .2rem 0 .2rem 1.1rem; border-left: 3px solid var(--claro-2); }
.aviso h3 { margin-bottom: .35rem; font-family: var(--texto); font-weight: 600; font-size: 1.0625rem; letter-spacing: 0; }
.aviso p { margin: 0; }
.exemplo { padding: 1.25rem; border: 1px solid rgba(255, 255, 255, .14); border-radius: 1rem; background: rgba(255, 255, 255, .05); }
.exemplo > h3 { margin-bottom: 1.5rem; }
.exemplo .nota { margin: 1.5rem 0 0; font-size: .9375rem; color: var(--claro-2); }
.passos { list-style: none; counter-reset: passo; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; margin: 0; padding: 0; }
.passos > li { counter-increment: passo; margin: 0; min-width: 0; }
.passos h4 { display: flex; align-items: center; gap: .65rem; margin-bottom: .85rem; }
.passos h4::before {
  content: counter(passo); flex: none; width: 1.65rem; height: 1.65rem; border-radius: 50%;
  background: var(--marinho-2); color: #fff; font: 800 .875rem/1.65rem var(--titulo); text-align: center;
}
.passos .janela { border-color: transparent; }
/* Em tela bem estreita o recorte encolhe um pouco, para os valores dos campos não ficarem escondidos. */
.passos .janela img { width: min(27rem, 100% + 6rem); }
.resultado { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .7rem; margin: 0 0 .85rem; }
.resultado strong { font: 800 clamp(1.75rem, 1.45rem + 1.4vw, 2.25rem)/1.1 var(--titulo); letter-spacing: -.015em; color: var(--ouro); font-variant-numeric: tabular-nums; }

/* Calendário do exemplo. Os dias contados acendem em sequência quando o exemplo aparece (pagina.js). */
/* A tabela avança .25rem para cada lado: o espaço entre as células (border-spacing) também existe nas bordas. */
.calendario { width: calc(100% + .5rem); margin: 0 -.25rem; table-layout: fixed; border-collapse: separate; border-spacing: .25rem; font-variant-numeric: tabular-nums; }
.calendario caption { caption-side: top; padding: 0 .25rem .6rem; text-align: left; font-size: .875rem; line-height: 1.4; color: var(--claro-2); }
.calendario th { padding: 0 0 .15rem; font-size: .75rem; font-weight: 600; text-align: center; color: var(--claro-2); }
.calendario abbr { text-decoration: none; }
.calendario td {
  position: relative; height: 3.4rem; padding: .32rem .35rem; vertical-align: top; overflow: hidden;
  border-radius: .4rem; background: rgba(255, 255, 255, .1);
  transition: background-color .3s ease;
}
.calendario .data { display: block; font-size: .6875rem; line-height: 1; white-space: nowrap; color: var(--claro-2); }
.calendario .n { position: absolute; inset: auto 0 .42rem; text-align: center; font: 800 1.25rem/1 var(--titulo); color: #fff; transition: opacity .3s ease, transform .3s ease; }
.calendario .feriado { position: absolute; inset: auto 0 .5rem; text-align: center; font-size: .625rem; line-height: 1; color: var(--claro-2); }
.calendario .curto { display: none; }
@media (max-width: 24em) { .calendario .mes, .calendario .extenso { display: none; } .calendario .curto { display: inline; } }
.calendario .fora { background: none; }
/* Dias fora da contagem: mais apagados, mas ainda com contraste de leitura (4,5:1 sobre o fundo do exemplo). */
.calendario .fora .data { color: #96A0B3; }
.calendario .pula, .l-pula { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .09) 0 3px, transparent 3px 7px); }
.calendario .inicio, .l-inicio { background: none; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6); }
.calendario .inicio .data { color: #fff; }
.calendario .vence, .l-vence { background: var(--ouro); }
.calendario .vence .data, .calendario .vence .n { color: var(--marinho); }
.calendario.contando .conta:not(.contado), .calendario.contando .vence:not(.contado) { background: rgba(255, 255, 255, .04); }
.calendario.contando .vence:not(.contado) .data { color: var(--claro-2); }
.calendario.contando td:not(.contado) .n { opacity: 0; transform: scale(.6); }
.legenda { list-style: none; display: grid; gap: .4rem 1rem; margin: .9rem 0 0; padding: 0; font-size: .875rem; line-height: 1.4; }
.legenda li { display: flex; align-items: center; gap: .55rem; margin: 0; }
.legenda i { flex: none; width: 1rem; height: 1rem; border-radius: .2rem; }
.l-conta { background: rgba(255, 255, 255, .28); }
.explica { margin: 1rem 0 0; font-size: .9375rem; }
@media (prefers-reduced-motion: reduce) { .calendario td, .calendario .n { transition: none; } }
@media (min-width: 30em) { .legenda { grid-template-columns: 1fr 1fr; } }
@media (min-width: 60em) {
  .calculo { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 5rem; align-items: start; }
  .calculo-texto { position: sticky; top: 6.5rem; }
  .exemplo { padding: 2rem; }
  .calendario td { height: 3.9rem; padding: .4rem .5rem; }
  .calendario .data { font-size: .75rem; }
  .calendario .n { font-size: 1.4375rem; }
}

/* 5. Para quem é, o que você recebe */
.duas { display: grid; gap: 3.5rem; }
.duas h2 { margin-bottom: 1.25rem; }
.apresentacao { font-size: 1.1875rem; line-height: 1.5; }
.arquivos { list-style: none; margin: 0 0 1.5rem; padding: 0; border-top: 1px solid var(--linha); }
.arquivos li { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); gap: 1rem; align-items: start; margin: 0; padding: .9rem 0; border-bottom: 1px solid var(--linha); }
.tipo { margin-top: .12rem; border-radius: .25rem; background: #A93226; color: #fff; font-size: .6875rem; font-weight: 600; line-height: 1.5rem; letter-spacing: .04em; text-align: center; }
.tipo--planilha { background: var(--verde); }
@media (min-width: 60em) { .duas { grid-template-columns: 1fr 1fr; gap: 6rem; } }

/* 6. Preço e garantia */
.oferta { display: grid; gap: 2.5rem; align-items: start; }
.preco { padding: 1.75rem 1.5rem; border-radius: 1rem; background: var(--marinho); color: var(--claro); }
.preco .rotulo { margin: 0 0 .9rem; font-weight: 600; color: #fff; }
/* Um só tamanho de letra na linha inteira do preço (Decreto nº 5.903/2006, art. 9º, I). */
.preco .valor { margin: 0; font: 800 2.75rem/1.1 var(--titulo); letter-spacing: -.02em; color: #fff; }
.preco .valor .pendente { font-size: 1.1rem; }
.preco .valor--parcelado { font-size: clamp(1.4375rem, 1.2rem + 1vw, 1.6875rem); line-height: 1.25; letter-spacing: -.015em; }
.preco .parcelamento { margin: .8rem 0 .6rem; font-size: 1rem; line-height: 1.5; }
.preco .condicao { margin: 0 0 1.4rem; }
.preco .botao { width: 100%; margin-bottom: 1.1rem; }
.preco .nota { margin: 0 0 .4rem; font-size: .9375rem; line-height: 1.5; color: var(--claro-2); }
.preco .nota:last-child { margin-bottom: 0; }
.preco a:not(.botao) { color: #fff; }
.garantia h3 { margin-bottom: .6rem; }
.garantia p { max-width: 62ch; }
.garantia p + h3 { margin-top: 2rem; }
.garantia p:last-child { margin-bottom: 0; }
@media (min-width: 60em) {
  .oferta { grid-template-columns: 27rem minmax(0, 1fr); gap: 5rem; }
  .preco { padding: 2.25rem; }
  .garantia { padding-top: .5rem; }
}

/* 7. Perguntas frequentes */
.faq { max-width: 50rem; border-top: 1px solid var(--linha); }
.faq details { border-bottom: 1px solid var(--linha); }
.faq summary { position: relative; list-style: none; cursor: pointer; padding: 1.05rem 2.75rem 1.05rem 0; font-weight: 600; line-height: 1.4; color: var(--marinho); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after {
  content: ""; position: absolute; right: .4rem; top: 50%; width: .875rem; height: 2px; margin-top: -1px;
  background: var(--marinho-2); transition: transform .2s ease;
}
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0deg); }
.faq summary:hover { color: var(--marinho-2); }
.faq .resposta { padding: 0 2.75rem 1.2rem 0; }
.faq .resposta p { margin: 0; max-width: 62ch; }
@media (prefers-reduced-motion: reduce) { .faq summary::before, .faq summary::after { transition: none; } }

/* 8. Requisitos e limites */
.limites { display: grid; gap: 2.25rem; }
.limites h3 { margin-bottom: 0; padding-bottom: .65rem; border-bottom: 2px solid var(--marinho); font-family: var(--texto); font-weight: 600; font-size: 1.0625rem; letter-spacing: 0; }
.limites ul { list-style: none; margin: 0; padding: 0; }
.limites li { margin: 0; padding: .7rem 0; border-bottom: 1px solid var(--linha); font-size: 1rem; line-height: 1.5; }
@media (min-width: 60em) { .limites { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; } }

/* 9. Condições da compra */
.condicoes { margin: 0 0 1rem; border-top: 2px solid var(--marinho); }
.condicoes > div { display: grid; gap: .2rem 2rem; padding: .95rem 0; border-bottom: 1px solid var(--linha); }
.condicoes dt { font-weight: 600; color: var(--marinho); }
.condicoes dd { margin: 0; max-width: 70ch; }
@media (min-width: 48em) { .condicoes > div { grid-template-columns: 11rem minmax(0, 1fr); } }

/* 10. Chamada final */
.final { padding-block: 3.5rem; background: var(--noite); color: var(--claro); }
.final h2 { max-width: 20ch; color: #fff; }
.final p { margin: 1rem 0 0; }
.final-compra { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: 1.75rem; }
.final-compra p { margin: 0; max-width: 26rem; font-size: .9688rem; }
.final-compra strong { color: #fff; }
@media (min-width: 60em) { .final { padding-block: 5.5rem; } }

/* Rodapé */
.rodape { padding-block: 2.25rem 2.5rem; background: var(--noite); color: var(--claro-2); font-size: .9375rem; border-top: 1px solid rgba(255, 255, 255, .1); }
.rodape p { margin: 0 0 .8rem; max-width: 85ch; }
.rodape strong { color: #fff; }
.rodape a { color: #fff; }
.rodape .legal { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .1); }
.rodape .legal p:last-child { margin-bottom: 0; }
.pendente { background: #FFF3C4; color: var(--tinta); padding: 0 .3em; border-radius: 3px; font-weight: 600; }

/* Barra fixa de compra, só em tela estreita. Some enquanto um botão de compra da página está à vista (pagina.js). */
.compra-fixa {
  position: fixed; inset: auto 0 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .6rem var(--margem) calc(.6rem + env(safe-area-inset-bottom, 0px));
  background: var(--noite); color: var(--claro);
  box-shadow: 0 -1px 0 rgba(255, 255, 255, .12), 0 -10px 30px rgba(12, 23, 44, .3);
  transition: transform .25s ease, visibility 0s;
}
.compra-fixa p { margin: 0; font-size: .9375rem; white-space: nowrap; }
.compra-fixa .botao { white-space: nowrap; }
.compra-fixa strong { font: 800 1.1875rem/1 var(--titulo); color: #fff; }
.botao-a-vista .compra-fixa { transform: translateY(105%); visibility: hidden; transition: transform .25s ease, visibility 0s .25s; }
.consentimento:not([hidden]) ~ .compra-fixa { display: none; }
@media (max-width: 59.99em) { .rodape { padding-bottom: 6.5rem; } }
@media (min-width: 60em) { .compra-fixa { display: none; } }
@media (prefers-reduced-motion: reduce) { .compra-fixa, .botao-a-vista .compra-fixa { transition: none; } }

/* Páginas internas (privacidade e 404) */
.topo { padding: 1.1rem 0; background: var(--noite); }
.topo a { font: 800 1.0625rem/1 var(--titulo); letter-spacing: .06em; text-transform: uppercase; color: var(--ouro); text-decoration: none; }
.topo a:hover { color: var(--ouro-claro); }
.pagina-interna { padding-block: 2.5rem 3rem; }
.pagina-interna .texto { padding: 1.5rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--branco); }
.pagina-interna h1 { margin-bottom: .6em; font-size: clamp(1.8rem, 1.3rem + 2.4vw, 2.4rem); line-height: 1.12; letter-spacing: -.02em; }
.pagina-interna h2 { margin: 1.6em 0 .5em; font-size: 1.25rem; letter-spacing: -.012em; }
.pagina-interna ~ .rodape { padding-bottom: 2.5rem; }
@media (min-width: 48em) { .pagina-interna .texto { padding: 2.5rem; } }

/* Ampliação das telas (só com JavaScript; sem ele, o link abre a imagem) */
.ampliacao { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; }
.ampliacao::backdrop { background: rgba(12, 23, 44, .95); }
.ampliacao-quadro { width: 100%; height: 100%; overflow: auto; padding: 3.75rem 1rem 1rem; }
.ampliacao img { width: clamp(1100px, 100%, 1600px); max-width: none; margin: 0 auto; background: var(--branco); }
.ampliacao-fechar {
  position: fixed; top: .75rem; right: .75rem; z-index: 2;
  padding: .55rem 1rem; border: 0; border-radius: var(--raio);
  background: var(--ouro); color: var(--marinho); font: 600 1rem/1.2 var(--texto); cursor: pointer;
}

/* Aviso de cookies (só existe quando há rastreamento configurado) */
.consentimento {
  position: fixed; inset-inline: 0; bottom: 0; z-index: 40;
  padding: 1rem var(--margem) calc(1rem + env(safe-area-inset-bottom, 0px));
  background: var(--branco); border-top: 1px solid var(--linha);
  box-shadow: 0 -6px 24px rgba(12, 23, 44, .12);
}
.consentimento[hidden] { display: none; }
.consentimento p { margin: 0 0 .6rem; max-width: 80ch; }
.consentimento .acoes { display: flex; flex-wrap: wrap; gap: .5rem; }
.consentimento .botao { min-width: 0; min-height: 2.75rem; width: auto; padding: .5rem 1.1rem; font-size: 1rem; }
