/* ==========================================================================
   MAIS RODAPÉ — abertura v4 · carrossel inteiro com tarja sólida
   A foto atravessa a tela. A promessa da marca fica no alto sobre um véu
   leve; o texto de CADA foto mora na tarja preta do pé, onde a leitura não
   depende do que a imagem tem atrás. Nada de placa flutuando no miolo.
   Carregado depois de site.css e site-conversion.css.
   ========================================================================== */

/* ------------------------------------------- 1. cantos retos ---------- */
/* O site tem identidade de prancha técnica: cota em mono, planta, corte em
   escala. Canto arredondado e botão em pílula brigam com isso. */

:root {
  --raio: 0px;
  --raio-p: 0px;
  --raio-g: 0px;
}

.btn,
.gancho,
.prancha,
.abas,
.abas button,
.campo input,
.campo select,
.cartao,
input,
select,
textarea {
  border-radius: 0;
}

/* ------------------------------- 2. correção da faixa de benefícios --- */
/* A faixa foi clareada para #f4f0e8 mas as cores do texto continuaram as do
   fundo escuro: branco a 78% sobre creme, ou seja, invisível. */

.beneficios {
  background: var(--branco);
  border-block: 1px solid var(--fio);
}

.beneficios .ben {
  border-inline-start: 1px solid var(--fio);
}

.beneficios .ben:first-child {
  border-inline-start: 0;
}

.beneficios .ben b {
  color: var(--grafite);
}

.beneficios .ben svg {
  color: var(--mel);
  opacity: 1;
}

.beneficios .ben span span,
.beneficios .ben small {
  color: var(--cinza);
}

/* ---------------------------------------------------- 3. a cena ------- */

.cena {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: 1fr auto;
  min-block-size: clamp(560px, 74vh, 720px);
  overflow: hidden;
  background: var(--grafite);
  touch-action: pan-y;
}

.cena-palco {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.cena-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.03);
  transition: opacity .65s var(--e), transform 7s linear, visibility 0s linear .65s;
}

.cena-slide[data-ativo="1"] {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition: opacity .65s var(--e), transform 7s linear, visibility 0s;
}

.cena-slide img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  /* O rodapé vive no terço de baixo da foto: o corte protege o produto. */
  object-position: center 72%;
}

/* Véu leve, só no alto e à esquerda, onde o título encosta. */
.cena-veu {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(158deg, rgba(13, 12, 10, .72) 0%, rgba(13, 12, 10, .32) 36%, rgba(13, 12, 10, .05) 58%, transparent 74%),
    linear-gradient(0deg, rgba(13, 12, 10, .34), transparent 32%),
    radial-gradient(130% 92% at 50% 42%, transparent 52%, rgba(13, 12, 10, .26) 100%);
  pointer-events: none;
}

/* --------------------------------------------- 4. promessa no alto --- */

.cena-topo {
  position: relative;
  z-index: 3;
  inline-size: 100%;
  max-inline-size: var(--max);
  margin-inline: auto;
  padding: clamp(38px, 5.2vh, 64px) var(--gutter) clamp(30px, 4vh, 48px);
  align-self: start;
}

.cota-clara {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: var(--mel);
  filter: brightness(1.45);
  font-family: var(--cota);
  font-size: .64rem;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.cota-clara::before {
  content: "";
  inline-size: 24px;
  block-size: 1px;
  background: currentColor;
  opacity: .7;
}

.titulo-claro {
  margin: 15px 0 0;
  max-inline-size: 13ch;
  color: #fff;
  font-family: var(--placa);
  font-weight: 800;
  font-stretch: 104%;
  font-size: clamp(2.6rem, 4vw, 4.1rem);
  line-height: .96;
  letter-spacing: -.042em;
  text-wrap: balance;
  text-shadow: 0 2px 30px rgba(0, 0, 0, .3);
}

.titulo-claro em {
  font-style: normal;
  color: var(--mel);
  filter: brightness(1.35);
}

.lede-clara {
  margin: 16px 0 0;
  max-inline-size: 42ch;
  color: rgba(255, 255, 255, .82);
  font-family: var(--texto);
  font-size: clamp(16px, 1.1vw, 17.5px);
  line-height: 1.58;
  text-shadow: 0 1px 16px rgba(0, 0, 0, .35);
}

.cena-acoes {
  display: flex;
  flex-wrap: wrap;
  /* stretch, não center: o botão e o card de preço tinham 4px de diferença
     de altura e a linha ficava torta. */
  align-items: stretch;
  gap: 14px;
  margin-block-start: 30px;
}

.cena-acoes .btn {
  padding-inline: 26px;
}

.gancho-escuro {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 12px;
  padding: 11px 20px;
  border: 1px solid rgba(255, 255, 255, .2);
  background: rgba(12, 11, 9, .38);
  backdrop-filter: blur(14px) saturate(1.1);
}

.gancho-escuro i {
  font-style: normal;
  font-size: 13px;
  color: var(--mel);
  filter: brightness(1.5);
}

.gancho-escuro strong {
  color: #fff;
  font-family: var(--placa);
  font-weight: 800;
  font-stretch: 104%;
  font-size: clamp(26px, 2.2vw, 31px);
  line-height: 1;
  letter-spacing: -.03em;
}

.gancho-escuro span {
  font-size: 13px;
  color: rgba(255, 255, 255, .74);
}

.gancho-escuro b {
  color: #7fd3a8;
  font-weight: 700;
}

/* "Sob consulta" é texto, não número: não pode usar o corpo de 31px. */
.gancho-escuro[data-sem-preco="1"] strong {
  font-size: clamp(1.15rem, 1.5vw, 1.4rem);
  letter-spacing: -.01em;
}

/* ------------------------------------------------- 5. a tarja -------- */

.cena-tarja {
  position: relative;
  z-index: 4;
  align-self: end;
  background: #100f0d;
}

/* Nenhum controle sobre a foto: a imagem fica limpa e toda a navegação
   mora na tarja, alinhada ao índice. */
.cena-controles {
  display: flex;
  align-items: stretch;
  gap: 18px;
}

.cena-nav {
  display: flex;
  gap: 1px;
  /* Ancoradas na base, alinhadas com a linha dos rótulos do índice. */
  align-self: end;
  margin-block-end: 2px;
}

.seta {
  display: grid;
  place-items: center;
  inline-size: 40px;
  block-size: 40px;
  border: 1px solid rgba(255, 255, 255, .16);
  background: transparent;
  color: rgba(255, 255, 255, .72);
  transition: background .18s var(--e), color .18s var(--e), border-color .18s var(--e);
}

.seta:hover {
  background: rgba(255, 255, 255, .1);
  border-color: rgba(255, 255, 255, .34);
  color: #fff;
}

.seta:active {
  background: var(--mel);
  border-color: var(--mel);
  color: #fff;
}

.cena-tarja-dentro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(22px, 4vw, 56px);
  max-inline-size: var(--max);
  margin-inline: auto;
  padding: clamp(20px, 2.4vw, 28px) var(--gutter);
}

/* ---- 5.1 o texto que pertence à foto ---- */

.cena-legendas {
  position: relative;
  min-block-size: 8.2rem;
  display: grid;
  align-content: center;
}

@keyframes cenaSobe {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

.cena-legenda > * {
  animation: cenaSobe .55s var(--e) both;
}

.cena-legenda > *:nth-child(2) { animation-delay: .06s; }
.cena-legenda > *:nth-child(3) { animation-delay: .12s; }

.cena-legenda .cota {
  display: block;
  color: var(--mel);
  filter: brightness(1.45);
  font-family: var(--cota);
  font-size: .6rem;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.cena-legenda strong {
  display: block;
  margin-block: 9px 7px;
  max-inline-size: 30ch;
  color: #fff;
  font-family: var(--placa);
  font-size: clamp(1.4rem, 2vw, 1.95rem);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.024em;
  text-wrap: balance;
}

.cena-elo {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-block-start: 11px;
  padding-block-end: 3px;
  color: #fff;
  font-family: var(--placa);
  font-size: .8rem;
  font-weight: 700;
  border-block-end: 1px solid rgba(255, 255, 255, .34);
  transition: color .2s var(--e), border-color .2s var(--e);
}

.cena-elo svg {
  transition: transform .2s var(--e);
}

.cena-elo:hover {
  color: var(--mel);
  border-block-end-color: var(--mel);
  filter: brightness(1.2);
}

.cena-elo:hover svg {
  transform: translateX(3px);
}

.cena-elo:focus-visible {
  outline: 2px solid var(--mel);
  outline-offset: 3px;
}

.cena-legenda small {
  display: block;
  max-inline-size: 58ch;
  color: rgba(255, 255, 255, .64);
  font-size: .86rem;
  line-height: 1.5;
}

/* ---- 5.2 índice de produtos: navega e vende ---- */

.cena-indice {
  display: flex;
  align-items: stretch;
}

/* Cada item é só texto sob um filete. O filete do item ativo é também a
   barra de tempo: enche até a próxima troca. Um elemento, duas funções. */
.cena-item {
  position: relative;
  display: grid;
  gap: 4px;
  align-content: center;
  padding: 12px 22px 12px 0;
  margin-inline-end: 22px;
  text-align: start;
  border-block-start: 1px solid rgba(255, 255, 255, .16);
}

.cena-item::after {
  content: "";
  position: absolute;
  inset-block-start: -1px;
  inset-inline-start: 0;
  block-size: 2px;
  inline-size: 0;
  background: var(--mel);
}

.cena-item[aria-selected="true"]::after {
  inline-size: var(--andamento, 0%);
  transition: inline-size .16s linear;
}

.cena-item i {
  font-style: normal;
  font-family: var(--cota);
  font-size: .56rem;
  letter-spacing: .14em;
  color: rgba(255, 255, 255, .36);
  transition: color .2s var(--e);
}

.cena-item span {
  color: rgba(255, 255, 255, .56);
  font-family: var(--placa);
  font-size: .84rem;
  font-weight: 600;
  white-space: nowrap;
  transition: color .2s var(--e);
}

.cena-item:hover span {
  color: rgba(255, 255, 255, .88);
}

.cena-item[aria-selected="true"] i {
  color: var(--mel);
  filter: brightness(1.4);
}

.cena-item[aria-selected="true"] span {
  color: #fff;
}

/* Foco visível para quem navega por teclado — antes não havia nenhum. */
.cena-item:focus-visible,
.seta:focus-visible,
.cena-acoes .btn:focus-visible {
  outline: 2px solid var(--mel);
  outline-offset: 3px;
}

/* --------------------------------- 6. ponte para a calculadora ------- */

.palco-ponte {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2vw, 26px);
  margin-block-start: clamp(30px, 3.6vw, 52px);
  padding: 16px clamp(18px, 2.2vw, 26px);
  border: 1px solid color-mix(in srgb, var(--grafite) 16%, var(--fio));
  border-block-end: 0;
  background: linear-gradient(180deg, var(--branco), color-mix(in srgb, var(--mel-fundo) 42%, var(--branco)));
  transition: background .25s var(--e);
}

.palco-ponte:hover {
  background: linear-gradient(180deg, var(--branco), color-mix(in srgb, var(--mel-fundo) 78%, var(--branco)));
}

.palco-ponte-cota {
  flex: none;
  padding: 5px 10px;
  border: 1px solid var(--mel-linha);
  color: var(--mel-forte);
  font-family: var(--cota);
  font-size: .58rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.palco-ponte-texto {
  display: grid;
  gap: 2px;
  margin-inline-end: auto;
}

.palco-ponte-texto strong {
  color: var(--grafite);
  font-family: var(--placa);
  font-size: clamp(.95rem, 1.15vw, 1.08rem);
  font-weight: 700;
  letter-spacing: -.01em;
}

.palco-ponte-texto span {
  color: var(--cinza);
  font-size: .78rem;
}

.palco-ponte-seta {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 40px;
  block-size: 40px;
  background: var(--mel);
  color: #fff;
  transition: transform .25s var(--e);
}

.palco-ponte:hover .palco-ponte-seta {
  transform: translateY(3px);
}

.abertura:has(.palco-ponte) {
  padding-block: 0 clamp(44px, 5vw, 70px);
}

.abertura:has(.palco-ponte) .prancha {
  margin-block-start: 0;
}

/* ------------------------------------------ 7. telas intermediárias -- */

@media (max-width: 1080px) {
  .cena {
    min-block-size: clamp(520px, 80vh, 680px);
  }

  .titulo-claro {
    max-inline-size: 15ch;
    font-size: clamp(2.4rem, 5.2vw, 3.4rem);
  }

  .cena-tarja-dentro {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .cena-legendas {
    min-block-size: 0;
  }

  /* O índice vira uma fila rolável, sem espremer os rótulos. */
  .cena-indice {
    flex: 1;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .cena-indice::-webkit-scrollbar {
    display: none;
  }

  .cena-item {
    flex: 0 0 auto;
  }

  .cena-nav {
    flex: none;
  }
}

/* -------------------------------------------------- 8. celular ------ */

@media (max-width: 720px) {
  .cena {
    min-block-size: 0;
  }

  .cena-veu {
    background:
      linear-gradient(180deg, rgba(13, 12, 10, .72) 0%, rgba(13, 12, 10, .3) 42%, rgba(13, 12, 10, .1) 70%),
      linear-gradient(0deg, rgba(13, 12, 10, .4), transparent 34%);
  }

  .cena-topo {
    padding: 30px var(--gutter) 34px;
    min-block-size: 78vw;
  }

  .titulo-claro {
    max-inline-size: 14ch;
    font-size: clamp(2.2rem, 9.4vw, 3rem);
  }

  .lede-clara {
    font-size: 15.5px;
    max-inline-size: none;
  }

  .cena-acoes {
    gap: 12px;
    margin-block-start: 22px;
  }

  .cena-acoes .btn {
    inline-size: 100%;
    justify-content: center;
  }

  .gancho-escuro {
    inline-size: 100%;
  }

  .seta {
    inline-size: 42px;
    block-size: 42px;
  }

  .cena-tarja-dentro {
    padding: 20px var(--gutter) 18px;
    gap: 16px;
  }

  .cena-legenda strong {
    font-size: 1.3rem;
    max-inline-size: none;
  }

  .cena-legenda small {
    font-size: .82rem;
  }

  /* No celular os controles dividem uma linha só: índice rolável e as
     setas ancoradas na direita, sempre alcançáveis com o polegar. */
  .cena-controles {
    align-items: center;
    gap: 12px;
  }

  .cena-indice {
    flex: 1;
    margin-inline-start: calc(var(--gutter) * -1);
    padding-inline-start: var(--gutter);
  }

  .cena-item {
    padding-block: 10px;
    margin-inline-end: 18px;
  }

  .cena-nav {
    flex: none;
    align-self: center;
  }

  .palco-ponte {
    flex-wrap: wrap;
    gap: 10px 14px;
    padding: 14px 16px;
  }

  .palco-ponte-texto {
    flex: 1 1 100%;
    order: 2;
  }

  .palco-ponte-seta {
    order: 3;
    margin-inline-start: auto;
  }
}

/* ---------------------------------------------- 9. menos movimento -- */

@media (prefers-reduced-motion: reduce) {
  .cena-slide {
    transform: none;
    transition: opacity .01ms;
  }

  .cena-slide[data-ativo="1"] {
    transform: none;
  }

  .cena-legenda > * {
    animation: none;
  }

  .cena-item::after {
    display: none;
  }
}

/* ------------------------------ 10. chegada em um perfil pelo link ---- */
/* Sem isto, o salto deixa a pessoa olhando uma grade de cards iguais sem
   saber qual deles era o alvo. */
@keyframes pecaDestaque {
  0%   { box-shadow: 0 0 0 2px var(--mel), 0 0 0 10px color-mix(in srgb, var(--mel) 22%, transparent); }
  100% { box-shadow: 0 0 0 2px transparent, 0 0 0 10px transparent; }
}

#grade .peca.destacar {
  animation: pecaDestaque 2.4s var(--e) both;
}

@media (prefers-reduced-motion: reduce) {
  #grade .peca.destacar {
    animation: none;
    box-shadow: 0 0 0 2px var(--mel);
  }
}
