/* =============================================================================
   VHOLI — Odontologia e Estética Avançada
   Folha de estilo única. Sem WordPress, sem Elementor, sem frameworks.

   Os valores (cores, tamanhos, espaçamentos, larguras percentuais) foram
   portados um a um do site original e conferidos por medição no navegador.

   Sumário
     1. Fontes
     2. Variáveis
     3. Base
     4. Peças reutilizadas (botão, título de seção, carrossel, sanfona)
     5. Seções, na ordem da página
     6. Celular (≤767px)
   ========================================================================== */


/* =============================================================================
   1. FONTES
   Outfit ocupa o lugar da AnteCf ("Vholi oficial"), a fonte da marca, cujos
   arquivos se perderam junto com o servidor original. Para trocá-la depois,
   basta substituir os dois @font-face abaixo e o arquivo .woff2 — o resto do
   CSS referencia apenas a variável --fonte-titulo.
   ========================================================================== */

@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/outfit-var-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/outfit-var-latinext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 200; font-display: swap; src: url(assets/fonts/poppins-200-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 200; font-display: swap; src: url(assets/fonts/poppins-200-latinext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 300; font-display: swap; src: url(assets/fonts/poppins-300-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 300; font-display: swap; src: url(assets/fonts/poppins-300-latinext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/poppins-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/poppins-400-latinext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url(assets/fonts/poppins-500-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url(assets/fonts/poppins-500-latinext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url(assets/fonts/poppins-700-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url(assets/fonts/poppins-700-latinext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/montserrat-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/montserrat-400-latinext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(assets/fonts/roboto-300-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 300; font-display: swap; src: url(assets/fonts/roboto-300-latinext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }


/* =============================================================================
   2. VARIÁVEIS
   ========================================================================== */

:root {
  /* Tipografia */
  --fonte-titulo: 'Outfit', sans-serif;   /* no lugar da AnteCf */
  --fonte-texto:  'Poppins', sans-serif;
  --fonte-apoio:  'Montserrat', sans-serif;
  --fonte-nota:   'Roboto', sans-serif;

  /* Paleta.
     --claro era #D5EEF7/#DEF6FF (azul) no site publicado; a troca para #F2F2F2
     foi feita no CSS de ajuste e é a versão vigente. */
  --laranja:        #DD8526;
  --laranja-fundo:  #F3B777;
  --laranja-escuro: #B8752E;
  --rosa:           #FFD2D3;
  --claro:          #F2F2F2;
  /* O azul original foi trocado por #F2F2F2 em quase toda a página, mas dois
     elementos ficaram para trás no ajuste. Mantidos como estavam. */
  --azul-claro:     #DEF6FF;
  --rosa-check:     #FFD2D3;
  --branco:         #FFFFFF;
  --marrom:         #4D2B00;
  --marrom-cta:     #412201;
  --marrom-faq:     #BB6C16;
  --azul-botao:     #00304B;
  --nota:           #E7E4DF;
  --ponto:          #FDEBDF;
  --ponto-ativo:    #CFA284;

  /* Medidas */
  --largura: 1140px;   /* faixa útil de conteúdo */
  --respiro: 20px;     /* espaço padrão entre blocos */
}


/* =============================================================================
   3. BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background-color: var(--claro);
  color: #111111;
  font-family: var(--fonte-texto);
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -0.1px;   /* o tema original aplicava isso em toda a página */
  overflow-x: hidden;   /* impede rolagem lateral no celular */
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, p, ul, figure { margin: 0; padding: 0; }
/* evita linhas orfas — o tema original fazia o mesmo */
h1, h2, h3, h4, h5, h6, p, blockquote, figcaption { text-wrap: pretty; }
ul { list-style: none; }
img, svg, iframe { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }

.visualmente-oculto {
  position: absolute; width: 1px; height: 1px;
  margin: -1px; padding: 0; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap; border: 0;
}

.pular {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--branco); color: var(--laranja);
  padding: 12px 20px; font-weight: 500; text-decoration: none;
}
.pular:focus { left: 8px; top: 8px; }

/* Faixa útil centralizada — o "container" do site original. */
.inner { max-width: var(--largura); margin-inline: auto; width: 100%; }

/* Seções que trazem arte de fundo em tela cheia. */
.secao-arte {
  position: relative;
  z-index: 1;
  background-color: var(--laranja-fundo);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}


/* =============================================================================
   4. PEÇAS REUTILIZADAS
   ========================================================================== */

/* ---- Botão ---------------------------------------------------------------- */

.botao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 15px;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  background-size: 400% 200%;
  animation: textura 3.4s cubic-bezier(0.2, 0.5, 0.9, 0.6) 2s infinite;
  transition: transform 0.3s, background 1.6s cubic-bezier(0.55, 0.1, 0.47, 0.94);
}
.botao__icone { display: flex; align-items: center; }
.botao__icone svg { width: 1em; height: 1em; fill: currentColor; }
.botao__texto { display: inline-block; }

@keyframes textura {
  0%   { background-position: 0 0; }
  100% { background-position: 100% 0; }
}

/* Botão claro com contorno — hero e convite. */
.botao--whats {
  font-family: var(--fonte-titulo);
  font-weight: 500;
  color: var(--azul-botao);
  padding: 16px 40px;
  border: 2px solid var(--claro);
  border-radius: 16px;
  box-shadow: 0 0 10px 0 rgba(155, 18, 18, 0.5);
  background-image: linear-gradient(45deg, var(--claro), var(--branco), var(--claro));
}
.botao--whats:hover { transform: scale(1.1); }

/* Botão verde do bloco final. */
.botao--verde {
  font-family: var(--fonte-apoio);
  font-size: 18px;
  font-weight: 400;
  color: var(--branco);
  padding: 15px 30px;
  border: 0;
  border-radius: 25px;
  box-shadow: 0 0 10px 0 rgba(9, 0, 109, 0.16);
  background-image: linear-gradient(160deg, #0AB100 0%, #008831 50%);
  transition-duration: 0.5s;
}
.botao--verde:hover { transform: scale(0.9); }

/* ---- Título de seção (laranja, centralizado) ------------------------------ */

.titulo-secao {
  font-family: var(--fonte-titulo);
  font-size: 38px;
  font-weight: 600;
  line-height: 35px;
  color: var(--laranja);
  text-align: center;
}

.corpo {
  font-family: var(--fonte-texto);
  font-size: 16px;
  font-weight: 300;
  line-height: 1;
}
.corpo--marrom { color: var(--marrom); font-weight: 200; }

/* ---- Carrossel ------------------------------------------------------------ */

.carrossel { width: 100%; }

/* As imagens sangram 10px para cada lado de propósito. No celular isso passava
   da borda da tela e fazia a página andar de lado ao arrastar — o recorte
   abaixo mantém a sangria e elimina a rolagem. */
.resultados,
.depoimentos { overflow-x: clip; }

.carrossel__janela {
  overflow: hidden;
  margin-inline: -10px;   /* sangra 10px para cada lado, como no original */
}

.carrossel__trilha {
  display: flex;
  will-change: transform;
}

.carrossel__slide {
  flex: 0 0 auto;
  margin-right: var(--espaco, 8px);
}
.carrossel__slide img { width: 100%; height: auto; }

/* Esmaecimento nas laterais — só no carrossel de resultados. */
.carrossel--resultados .carrossel__janela {
  -webkit-mask-image: linear-gradient(to right,
    rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 10%, rgba(0,0,0,1) 25%,
    rgba(0,0,0,1) 75%, rgba(0,0,0,0.2) 90%, rgba(0,0,0,0) 100%);
  mask-image: linear-gradient(to right,
    rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 10%, rgba(0,0,0,1) 25%,
    rgba(0,0,0,1) 75%, rgba(0,0,0,0.2) 90%, rgba(0,0,0,0) 100%);
}
.carrossel--resultados .carrossel__slide img { border-radius: 8px; }
.carrossel--depoimentos .carrossel__slide img { border-radius: 10px; }

.carrossel__pontos {
  margin-top: 8.8px;   /* respiro que o original deixava sob as imagens */
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  height: 30px;
}
.carrossel__ponto {
  width: 6px; height: 6px; padding: 0;
  border: 0; border-radius: 50%;
  background: var(--ponto);
  cursor: pointer;
  transition: background 0.3s;
}
.carrossel__ponto[aria-selected='true'] { background: var(--ponto-ativo); }

/* ---- Sanfona (perguntas frequentes) --------------------------------------- */

.sanfona__item { margin-bottom: 15px; }
.sanfona__item:last-child { margin-bottom: 0; }

.sanfona__gatilho {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 15px 0 15px 20px;
  border: 0;
  border-radius: 0;
  background: var(--laranja);
  color: var(--azul-claro);
  font: inherit;
  letter-spacing: inherit;   /* <button> zera isso por padrão no navegador */
  line-height: 22px;
  text-align: left;
  cursor: pointer;
}
.sanfona__icone {
  display: flex;
  align-items: center;
  flex: 0 0 22px;
  margin-left: -5px;
  margin-right: 5px;
  color: var(--claro);   /* o ícone é #F2F2F2; o texto ficou no azul claro */
}
.sanfona__icone svg { width: 22px; height: 22px; fill: currentColor; }
.sanfona__icone--aberto  { display: none; }
.sanfona__gatilho[aria-expanded='true'] .sanfona__icone--fechado { display: none; }
.sanfona__gatilho[aria-expanded='true'] .sanfona__icone--aberto  { display: block; }
.sanfona__gatilho[aria-expanded='true'] { color: var(--rosa); }

.sanfona__titulo {
  font-family: var(--fonte-titulo);
  font-size: 18px;
  font-weight: 400;
  line-height: 18px;
}

.sanfona__painel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
  background: rgba(253, 168, 0, 0.122);   /* #FDA8001F */
}
.sanfona__painel.aberto { grid-template-rows: 1fr; }
.sanfona__conteudo { overflow: hidden; }
.sanfona__conteudo p {
  padding: 10px 30px 10px 15px;
  color: var(--marrom-faq);
  font-family: var(--fonte-texto);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;
}

/* ---- Revelação ao rolar --------------------------------------------------- */

[data-revelar] { opacity: 0; transition: opacity 1s ease; }
[data-revelar].revelado { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  [data-revelar] { opacity: 1; transition: none; }
  .botao, .espelho__foto, .cartao__selo { animation: none !important; }
}


/* =============================================================================
   5. SEÇÕES
   ========================================================================== */

/* ---- 5.1 Topo ------------------------------------------------------------- */

.hero {
  padding: 200px 0 200px 25px;
  background-image: url(assets/img/hero-bg.webp);
}
.hero__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--respiro);
}
.hero__titulo {
  width: 45.695%;
  font-family: var(--fonte-titulo);
  font-size: 49px;
  font-weight: 500;
  line-height: 42px;
  color: var(--claro);
}
.hero__sub {
  width: 43.003%;
  margin-top: -5px;
  font-family: var(--fonte-titulo);
  font-size: 21px;
  font-weight: 300;
  line-height: 1;
  color: var(--claro);
}
.hero__acao { display: flex; }

/* ---- 5.2 Resultados ------------------------------------------------------- */

.resultados { padding: 60px 0 20px; }
.resultados__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--respiro);
}
.resultados__titulo { width: 40%; margin-bottom: var(--respiro); }
.carrossel--resultados { --espaco: 8px; }

/* ---- 5.3 Faixas decorativas ---------------------------------------------- */

.faixa {
  height: 435px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
}
.faixa--1 { background-image: url(assets/img/faixa-1.webp); }
.faixa--2 { background-image: url(assets/img/faixa-2.webp); }

/* ---- 5.4 "Você não quer mudar quem você é" -------------------------------- */

.espelho { padding: 20px 0; }
.espelho__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
}
.espelho__foto {
  width: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px 16px;   /* 20px 6px do widget + 10px da coluna */
  animation: levitar 3s ease-in-out infinite;
  -webkit-mask-image: linear-gradient(to top,
    rgba(0,0,0,0) 0%, rgba(0,0,0,0.1) 10%, rgba(0,0,0,1) 25%, rgba(0,0,0,1) 100%);
  mask-image: linear-gradient(to top,
    rgba(0,0,0,0) 0%, rgba(0,0,0,0.1) 10%, rgba(0,0,0,1) 25%, rgba(0,0,0,1) 100%);
}
.espelho__foto img { max-height: 420px; width: auto; }

@keyframes levitar {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}

.espelho__texto {
  width: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--respiro);
}
.espelho__texto .titulo-secao { text-align: left; }
.espelho__texto .corpo { width: 72.963%; margin-top: -5px; }

/* ---- 5.5 "Prazer, Roberta Borges" ---------------------------------------- */

.sobre {
  padding: 180px 0 120px 25px;
  background-image: url(assets/img/sobre-bg.webp);
}
.sobre__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--respiro);
}
.sobre__titulo {
  width: 40%;
  font-family: var(--fonte-titulo);
  font-size: 36px;
  font-weight: 600;
  line-height: 35px;
  color: var(--claro);
}
.sobre__texto {
  width: 40.091%;
  margin-top: -5px;
  font-family: var(--fonte-texto);
  font-size: 16px;
  font-weight: 300;
  line-height: 1;
  color: var(--claro);
}

.lista-check {
  width: 45.812%;
  margin-top: -5px;
}
.lista-check li { display: flex; align-items: center; }
.lista-check__icone { display: flex; flex: 0 0 14px; margin-right: 3.5px; }
.lista-check__icone svg { width: 14px; height: 14px; fill: var(--rosa-check); }
.lista-check__texto {
  padding-left: 5px;
  font-family: var(--fonte-texto);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4;
  color: var(--claro);
}

/* ---- 5.6 Depoimentos ------------------------------------------------------ */

.depoimentos { padding: 40px 0; }
.depoimentos__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--respiro);
}
.depoimentos__titulo { width: 60.169%; margin-bottom: var(--respiro); }
.carrossel--depoimentos { --espaco: 15px; }

/* ---- 5.7 Diferenciais ----------------------------------------------------- */

.diferenciais { padding: 60px 0; }
.diferenciais__inner {
  /* o bloco todo ocupa 51% da faixa de 1140px, centralizado */
  max-width: 581.4px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--respiro);
}
.diferenciais__titulo {
  width: 90.952%;
  margin-bottom: var(--respiro);
}

.cartoes {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);   /* as quatro caixas com a mesma altura */
  gap: 30px;
  padding: 10px;
}
.cartao {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--respiro);
  padding: 25px 10px 18px;
  border: 2px solid var(--branco);
  background: var(--rosa);
}
.cartao--1 { border-radius: 120px 45px 30px 30px; }
.cartao--2 { border-radius: 45px 120px 30px 30px; }
.cartao--3 { border-radius: 30px 45px 30px 120px; }
.cartao--4 { border-radius: 45px 30px 120px 30px; }

/* O selo não ocupa altura no fluxo: a caixa interna tem margens negativas que
   somam mais do que sua altura e transborda para cima do cartão. É o que dá ao
   cartão a mesma altura do original. */
.cartao__selo {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cartao__selo-caixa {
  margin: -55px 0 -15px;
  padding: 8px 12px 16.8px;   /* o original deixava 8,8px de folga sob o ícone */
  border-radius: 15px;
  background: var(--laranja);
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
  animation: levitar-selo 3s ease-in-out infinite;
}
.cartao__selo-caixa svg { width: 40px; height: 40px; fill: var(--claro); }

@keyframes levitar-selo {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

.cartao__titulo {
  width: 65.571%;
  font-family: var(--fonte-titulo);
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  color: var(--laranja);
  text-align: center;
}
.cartao--2 .cartao__titulo { width: 80.885%; }
.cartao--3 .cartao__titulo { width: 96.261%; }
.cartao--4 .cartao__titulo { width: 89.353%; }

.cartao__texto {
  width: 80.885%;
  margin-top: -10px;
  font-family: var(--fonte-texto);
  font-size: 16px;
  font-weight: 300;
  line-height: 1;
  color: var(--laranja);
  text-align: center;
}
.cartao--4 .cartao__texto { width: 77.73%; }

/* ---- 5.8 "Você já pensou em fazer algo por você" -------------------------- */

.convite {
  margin-top: -5px;
  padding: 130px 0 130px 25px;
  background-image: url(assets/img/convite-bg.webp);
}
.convite__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
}
.convite__vazio { width: 56%; }
.convite__conteudo {
  width: 44%;
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.convite__titulo {
  width: 85%;
  margin-bottom: 10px;
  font-family: var(--fonte-titulo);
  font-size: 32px;
  font-weight: 600;
  line-height: 30px;
  color: var(--claro);
  text-align: center;
}
.convite__texto {
  width: 81.66%;
  margin-bottom: var(--respiro);
  font-family: var(--fonte-texto);
  font-size: 17px;
  font-weight: 400;
  line-height: 1;
  color: var(--claro);
  text-align: center;
}
.convite__acao { display: flex; width: 75.374%; }

/* ---- 5.9 "A sua transformação começa com uma escolha" --------------------- */

.escolha {
  margin-top: 10px;
  padding: 130px 0 240px 25px;
  background-image: url(assets/img/escolha-bg.webp);
}
.escolha__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
  gap: var(--respiro);
}
.escolha__conteudo,
.escolha__vazio {
  flex: 1 1 0;
  padding-left: 80px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: var(--respiro);
}
.escolha__titulo {
  width: 97.96%;
  font-family: var(--fonte-titulo);
  font-size: 33px;
  font-weight: 600;
  line-height: 35px;
  color: var(--laranja);
}
.escolha__texto {
  width: 74.996%;
  font-family: var(--fonte-texto);
  font-size: 18px;
  font-weight: 300;
  line-height: 1;
  color: var(--laranja);
}

/* ---- 5.10 Perguntas frequentes ------------------------------------------- */

.faq { padding: 90px 0 30px; }
.faq__inner {
  max-width: var(--largura);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--respiro);
}
.faq__titulo { width: 63.936%; }
.faq__sub {
  width: 38.02%;
  font-family: var(--fonte-texto);
  font-size: 16px;
  font-weight: 300;
  line-height: 1;
  color: var(--laranja);
  text-align: center;
}
.sanfona { width: 60.954%; }

/* ---- 5.11 Chamada final --------------------------------------------------- */

.cta {
  position: relative;
  padding: 70px 0;
  background-image: linear-gradient(160deg, var(--laranja-fundo) 0%, var(--laranja-escuro) 51%);
  box-shadow: 0 0 22px 0 rgba(0, 0, 0, 0.86);
}
.cta__textura {
  position: absolute;
  inset: 0;
  background-image: url(assets/img/cta-textura.webp);
  opacity: 0.06;
  pointer-events: none;
}
.cta__inner {
  position: relative;
  max-width: var(--largura);
  margin-inline: auto;
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cta__titulo {
  width: 66.734%;
  margin: -15px 0 -5px;
  font-family: var(--fonte-titulo);
  font-size: 41px;
  font-weight: 600;
  line-height: 40px;
  letter-spacing: 0.5px;
  color: var(--marrom-cta);
  text-align: center;
}
.cta__sub {
  width: 100%;
  margin: 5px 0 15px;
  font-family: var(--fonte-texto);
  font-size: 17px;
  font-weight: 300;
  line-height: 30px;
  letter-spacing: 0.5px;
  color: var(--marrom-cta);
  text-align: center;
}
.cta__acao { display: flex; margin-top: -5px; }

/* ---- 5.12 Mapa ------------------------------------------------------------ */

.mapa { overflow-x: hidden; }
.mapa iframe { width: 100%; height: 420px; border: 0; }

/* ---- 5.13 Rodapé ---------------------------------------------------------- */

.rodape {
  position: relative;
  padding: 30px 0 40px;
  background-color: #F5F5F5;
  background-image: url(assets/img/rodape-bg.webp);
  background-repeat: no-repeat;
  background-size: cover;
}
.rodape::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: var(--laranja);
  opacity: 0.85;
}
.rodape__inner {
  position: relative;
  max-width: var(--largura);
  margin-inline: auto;
  padding-block: 10px;
  display: flex;
  gap: var(--respiro);
}
.rodape__coluna {
  flex: 1 1 0;
  padding: 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--respiro);
}
.rodape__coluna--logo { align-items: center; }
.rodape__coluna--seg  { justify-content: flex-start; }   /* esta coluna alinha pelo topo */
.rodape__logo { width: 72.25%; }   /* 80.275% do widget × 90% da imagem */

.rodape__titulo {
  font-family: var(--fonte-texto);
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -1px;
  color: var(--branco);
  margin: -5px 0 -10px;
}
.rodape__coluna--info .rodape__lista { width: 88.575%; }
.rodape__coluna--seg  .rodape__lista { width: 88.218%; }

.rodape__lista li { display: flex; align-items: center; }
.rodape__lista--info li:not(:last-child) { padding-bottom: 9px; }
.rodape__lista--info li:not(:first-child) { margin-top: 9px; }
.rodape__icone { display: flex; flex: 0 0 24px; margin-right: 6px; }
.rodape__icone svg { width: 24px; height: 24px; fill: #f4d4e4; }
.rodape__texto {
  padding-left: 5px;
  font-family: var(--fonte-apoio);
  font-size: 13px;
  font-weight: 400;
  line-height: 17px;
  color: var(--branco);
}
.rodape__lista--seg .rodape__texto { font-size: 15px; }

.rodape__redes { display: flex; }
.rodape__rede {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px; height: 30px;
  padding: 2.5px;
  border-radius: 10%;
}
.rodape__rede svg { width: 25px; height: 25px; fill: var(--claro); }

/* ---- 5.14 Créditos -------------------------------------------------------- */

.creditos {
  padding: 15px 10px 0;
  background-image: linear-gradient(180deg, #3A3737 0%, #000000 100%);
}
.creditos__inner {
  max-width: 1200px;
  margin-inline: auto;
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.creditos__aviso {
  width: 70.784%;
  letter-spacing: 0.5px;
  margin-bottom: 40px;
  font-family: var(--fonte-nota);
  font-size: 18px;
  font-weight: 300;
  line-height: 1;
  color: var(--nota);
  text-align: center;
}
.creditos__agencia { display: block; margin-bottom: 20px; }
.creditos__agencia img { width: 55%; margin-inline: auto; }
.creditos__direitos {
  width: 100%;
  letter-spacing: 0.5px;
  font-family: var(--fonte-nota);
  font-size: 18px;
  font-weight: 300;
  line-height: 1;
  color: var(--nota);
  text-align: center;
}


/* =============================================================================
   6. CELULAR (≤767px)
   ========================================================================== */

@media (max-width: 767px) {

  /* ---- Topo ---- */
  .hero {
    padding: 320px 20px 70px;
    background-image: url(assets/img/hero-bg-mobile.webp);
    background-position: top center;
  }
  .hero__inner { align-items: center; justify-content: center; }
  .hero__titulo {
    width: 100%; max-width: 336.889px;
    font-size: 25px; line-height: 1em; text-align: center;
  }
  .hero__sub {
    width: 100%; max-width: 328.997px;
    font-size: 15px; text-align: center; align-self: center;
  }
  .hero__acao { width: 100%; max-width: 286.656px; align-self: center; }

  /* ---- Resultados ---- */
  .resultados { padding: 80px 0 70px; }
  .resultados__titulo { width: 100%; max-width: 278px; font-size: 25px; line-height: 1em; }

  /* ---- Faixas ---- */
  .faixa { height: 160px; }

  /* ---- Espelho ---- */
  .espelho { padding: 30px 0 70px; }
  .espelho__inner { flex-direction: column; }
  .espelho__foto, .espelho__texto { width: 100%; }
  .espelho__texto { align-items: center; }
  .espelho__texto .titulo-secao {
    width: 100%; font-size: 25px; line-height: 1em; text-align: center;
  }
  .espelho__texto .corpo {
    width: 100%; max-width: 307px; margin-inline: auto;
    font-size: 15px; text-align: center;
  }

  /* ---- Sobre ---- */
  .sobre {
    padding: 320px 20px 80px;
    background-image: url(assets/img/sobre-bg-mobile.webp);
    background-position: top center;
  }
  .sobre__inner { align-items: center; }
  .sobre__titulo { width: 100%; font-size: 25px; line-height: 1em; text-align: center; }
  .sobre__texto {
    width: 100%; max-width: 307px;
    font-size: 15px; text-align: center; align-self: center;
  }
  .lista-check { width: 100%; max-width: 307px; align-self: center; }

  /* ---- Depoimentos ---- */
  .depoimentos { padding: 80px 0 70px; }
  .depoimentos__titulo { width: 100%; max-width: 312.976px; font-size: 25px; line-height: 1em; }
  .carrossel__pontos { margin-top: 6.8px; }   /* o respiro era menor no celular */
  .carrossel--depoimentos { padding-inline: 10px; }
  .carrossel--depoimentos .carrossel__janela { margin-inline: 0; }

  /* ---- Diferenciais ---- */
  .diferenciais { padding: 90px 0 70px; }
  .diferenciais__titulo { width: 100%; max-width: 340px; font-size: 25px; line-height: 1em; }
  .cartoes { width: 100%; grid-template-columns: 1fr; }
  .cartao { border-radius: 90px !important; }
  .cartao__titulo,
  .cartao__texto {
    width: 100% !important; max-width: 307px;
    margin-top: -5px; font-size: 15px;
  }

  /* ---- Convite ---- */
  .convite {
    padding: 320px 20px 60px;
    background-image: url(assets/img/convite-bg-mobile.webp);
    background-position: top center;
  }
  .convite__inner { flex-direction: column; }
  .convite__vazio { display: none; }
  .convite__conteudo { width: 100%; padding: 0; }
  .convite__titulo { width: 100%; max-width: 318.545px; font-size: 24px; line-height: 1em; }
  .convite__texto {
    width: 100%; max-width: 324px; margin-bottom: 15px;
    padding-inline: 20px; font-size: 15px;
  }
  .convite__acao { width: 100%; max-width: 286.656px; align-self: center; justify-content: center; }

  /* ---- Escolha ---- */
  .escolha {
    padding: 320px 20px 80px;
    background-image: url(assets/img/escolha-bg-mobile.webp);
    background-position: top center;
  }
  .escolha__inner { flex-direction: column; }
  .escolha__vazio { padding: 0; }
  .escolha__conteudo {
    width: 100%; margin-top: -40px; padding: 10px;
    align-items: center;
  }
  .escolha__titulo { width: 100%; font-size: 25px; line-height: 1em; text-align: center; }
  .escolha__texto {
    width: 100%; max-width: 316.141px;
    font-size: 15px; text-align: center; align-self: center;
  }

  /* ---- Perguntas frequentes ---- */
  .faq { padding: 80px 0 70px; }
  .faq__titulo { width: 100%; max-width: 320px; font-size: 25px; line-height: 1em; }
  .faq__sub { width: 100%; max-width: 326.997px; margin-top: -5px; font-size: 15px; }
  .sanfona { width: 100%; margin-bottom: 30px; padding-inline: 10px; }
  .sanfona__item { margin-bottom: 10px; }
  .sanfona__gatilho { padding: 10px 20px; line-height: 18px; }
  .sanfona__icone { flex-basis: 18px; }
  .sanfona__icone svg { width: 18px; height: 18px; }
  .sanfona__conteudo p { font-size: 16px; }

  /* ---- Chamada final ---- */
  .cta__titulo { width: 100%; max-width: 265px; margin: -5px 0 0; font-size: 30px; line-height: 1em; }
  .cta__sub { width: 100%; max-width: 254px; margin: 15px 0 0; font-size: 16px; line-height: 1em; }
  .cta__acao { margin-top: 15px; }
  .botao--verde { font-size: 16px; border-radius: 15px; padding: 15px; }

  /* ---- Mapa ---- */
  .mapa iframe { margin: -10px; width: calc(100% + 20px); }

  /* ---- Rodapé ---- */
  /* no celular o container ganha 10px laterais, que na largura de desktop
     não tinham efeito porque a faixa de 1140px já cabia folgada */
  .rodape__inner { flex-direction: column; padding-inline: 10px; }
  .rodape__coluna--logo { padding: 0; }
  .rodape__logo { width: 159.3px; }   /* 90% de uma caixa de 177px */
  .rodape__coluna--info { margin-top: -50px; }
  .rodape__coluna--seg { align-items: center; justify-content: center; }
  .rodape__titulo { text-align: center; }
  .rodape__coluna--info .rodape__lista { width: 100%; }
  .rodape__lista--info li:not(:last-child) { padding-bottom: 7.5px; }
  .rodape__lista--info li:not(:first-child) { margin-top: 7.5px; }
  .rodape__lista--seg { width: 176px; }
  .rodape__lista--seg .rodape__texto { font-size: 13px; }
  .rodape__lista li { flex-direction: row-reverse; justify-content: flex-end; }
  .rodape__icone { margin-right: 0; margin-left: 6px; }

  /* ---- Créditos ---- */
  .creditos__aviso { width: 100%; margin-bottom: 20px; font-size: 14px; }
  .creditos__agencia { margin-bottom: 15px; }
  .creditos__agencia img { width: 36%; }
  .creditos__direitos { font-size: 14px; }
}
