/* ==========================================================================
   Casa das Cartas — v2 "A mesa à meia-luz"
   Direção: terroso escuro, luz de vela caindo no breu.
   Fraunces (eixos SOFT/WONK) para display · Source Sans 3 para corpo
   · mono do sistema para etiquetas (zero download)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,SOFT,WONK@9..144,600,60,1;9..144,700,60,1&family=Source+Sans+3:wght@400;600&display=swap');

/* --- Tokens ------------------------------------------------------------- */
:root {
  /* raios — escala fechada: 0 filetes · 8 botões e cards · 16 fotos · pílula em selos */
  --r-acao: 8px;
  --r-midia: 16px;

  /* superfícies, do breu para a luz */
  --breu:       #12100E;
  --terra:      #1A1613;
  --barro:      #241D18;
  --borda:      #33291F;

  /* tinta */
  --osso:       #EDE3D2;
  --fumo:       #A2917C;

  /* luz de vela */
  --ambar:      #C8974A;
  --ambar-alto: #E3BE7C;

  /* tensão */
  --sangue:     #8C3A24;

  --verde-wa:       #1E8449;
  --verde-wa-alto:  #23A05E;

  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans:  'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --mono:  ui-monospace, 'SF Mono', 'Cascadia Mono', Menlo, Consolas, monospace;

  /* curvas: nenhuma ease-in em lugar nenhum */
  --saida:  cubic-bezier(0.23, 1, 0.32, 1);
  --suave:  cubic-bezier(0.77, 0, 0.175, 1);

  --largura: 1140px;
  --gutter: 22px;
}

/* --- Reset -------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--breu);
  color: var(--osso);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, svg { max-width: 100%; display: block; }
h1, h2, h3 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.018em;
  font-variation-settings: 'SOFT' 60, 'WONK' 1;
}
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--ambar-alto); outline-offset: 3px; }

/* --- Atmosfera: grão de papel velho + vinheta ---------------------------- */
body::before,
body::after { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 999; }

/* grão: textura fotográfica real, quase imperceptível */
body::before {
  background-image: url("data:image/jpeg;base64,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");
  background-size: 420px;
  opacity: 0.085;
  mix-blend-mode: overlay;
}
/* vinheta: a luz não alcança as bordas */
body::after {
  background: radial-gradient(125% 95% at 50% 32%, transparent 42%, rgba(0,0,0,.62) 100%);
}

/* --- Utilitários -------------------------------------------------------- */
.wrap { width: 100%; max-width: var(--largura); margin: 0 auto; padding: 0 var(--gutter); position: relative; z-index: 1; }
.secao { padding: 78px 0; position: relative; }

/* etiqueta: mono do sistema, ar de ficha de investigação */
.kicker {
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ambar);
  margin-bottom: 20px;
}

/* --- Botão WhatsApp ----------------------------------------------------- */
.wa {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-height: 56px;
  padding: 15px 30px;
  background: var(--verde-wa);
  color: #fff;
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  border-radius: var(--r-acao);
  cursor: pointer;
  transition: background 180ms var(--saida), transform 140ms var(--saida);
}
.wa:active { transform: scale(0.97); }
.wa svg { width: 20px; height: 20px; flex: none; fill: currentColor; }
.wa--bloco { width: 100%; }

@media (hover: hover) and (pointer: fine) {
  .wa:hover { background: var(--verde-wa-alto); }
}

.microcopy { margin-top: 14px; font-size: 14.5px; color: var(--fumo); }

/* --- Entrada no scroll -------------------------------------------------- */
.js .reveal { opacity: 0; transform: translateY(14px); transition: opacity 380ms var(--saida), transform 380ms var(--saida); }
.js .reveal.visivel { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .js .reveal { transform: none; transition: opacity 200ms linear; }
  .wa:active { transform: none; }
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ==========================================================================
   Barra superior
   ========================================================================== */
.barra-topo {
  position: relative; z-index: 2;
  background: #0C0A09;
  border-bottom: 1px solid var(--borda);
  color: var(--fumo);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
  padding: 10px 12px;
  white-space: nowrap;
}
@media (min-width: 560px) {
  .barra-topo { font-size: 11.5px; letter-spacing: .12em; padding: 10px var(--gutter); }
}
.barra-topo b { font-weight: 500; color: var(--osso); }
.barra-topo .sep { color: var(--ambar); margin: 0 7px; }

/* ==========================================================================
   Hero — a mesa à meia-luz
   ========================================================================== */
.hero { position: relative; padding: 56px 0 68px; overflow: hidden; }

.hero__ceu { position: absolute; inset: 0; z-index: 0; }
/* a mesa: madeira em penumbra, só na base, dissolvendo para cima */
.hero__ceu::before {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 64%;
  background-image: url("fundo.jpg");
  background-size: cover;
  background-position: 50% 62%;
  opacity: .55;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 52%, #000 100%);
          mask-image: linear-gradient(180deg, transparent 0%, #000 52%, #000 100%);
}
/* a luz cai para o breu nas bordas e na base */
.hero__ceu::after {
  content: '';
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(18,16,14,.92) 0%, rgba(18,16,14,.55) 42%, transparent 78%),
    linear-gradient(180deg, transparent 62%, var(--breu) 100%),
    radial-gradient(46% 44% at 74% 40%, rgba(214,160,80,.20) 0%, rgba(200,151,74,.07) 46%, transparent 72%);
}

.hero__grid { display: grid; gap: 34px; }

.hero__marca { margin-bottom: 38px; }
.hero__marca b {
  display: block;
  font-family: var(--serif);
  font-variation-settings: 'SOFT' 60, 'WONK' 1;
  font-size: 20px; font-weight: 600; letter-spacing: .05em;
}
.hero__marca span {
  display: block; margin-top: 4px;
  font-family: var(--mono); font-size: 10.5px; font-weight: 400;
  letter-spacing: .2em; text-transform: uppercase; color: var(--fumo);
}

.hero h1 {
  font-size: clamp(2.2rem, 8.4vw, 3.75rem);
  font-optical-sizing: auto;
  max-width: 14ch;
  text-wrap: balance;
}
.hero__sub { margin-top: 22px; font-size: 18px; line-height: 1.62; color: var(--fumo); max-width: 45ch; }
.hero__cta { margin-top: 32px; }

.confianca {
  margin-top: 36px; padding-top: 24px;
  border-top: 1px solid var(--borda);
  display: grid; grid-template-columns: 1fr 1fr; gap: 13px 20px;
  max-width: 520px;
}
.confianca li { position: relative; padding-left: 18px; font-size: 14.5px; color: var(--fumo); }
.confianca li::before {
  content: ''; position: absolute; left: 0; top: .6em;
  width: 6px; height: 6px; background: var(--ambar); transform: rotate(45deg);
}

.hero__arte { display: none; }

/* ==========================================================================
   Cabeça de seção
   ========================================================================== */
.cabeca { max-width: 34ch; margin-bottom: 48px; }
.cabeca h2 { font-size: clamp(1.75rem, 5.6vw, 2.5rem); text-wrap: balance; }
.cabeca__sub { margin-top: 15px; font-size: 16.5px; color: var(--fumo); max-width: 46ch; }

/* filete que nasce forte e se apaga, como luz caindo */
.secao::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, rgba(200,151,74,.42) 0%, rgba(200,151,74,.06) 38%, transparent 72%);
}

/* ==========================================================================
   Como funciona — sequência real, por isso numerada
   ========================================================================== */
.secao--passos { background: var(--terra); }

.passos { display: grid; }
.passo { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 18px; padding-bottom: 32px; }
.passo:last-child { padding-bottom: 0; }
.passo::before {
  content: '';
  position: absolute; left: 24px; top: 42px; bottom: -2px; width: 1px;
  background: linear-gradient(180deg, var(--borda), transparent);
}
.passo:last-child::before { display: none; }

.passo__num {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  width: 49px; height: 49px;
  border: 1px solid var(--borda);
  border-radius: 50%;
  background: var(--breu);
  font-family: var(--mono); font-size: 12.5px; letter-spacing: .06em;
  color: var(--ambar);
  box-shadow: inset 0 0 14px rgba(200,151,74,.14);
}
.passo__corpo { padding-top: 8px; }
.passo__corpo h3 { font-size: 20px; margin-bottom: 7px; }
.passo__corpo p { color: var(--fumo); font-size: 16px; max-width: 52ch; }

/* ==========================================================================
   Fotografia — blocos contidos, nunca decoração de fundo (ref. Pipe / Stocksy)
   ========================================================================== */
.foto-bloco { margin: 0 0 42px; }
.foto-bloco img { width: 100%; height: auto; border-radius: var(--r-midia); display: block; }
.foto-bloco figcaption {
  margin-top: 11px;
  font-family: var(--mono); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--fumo);
}

/* Revelação por clip-path: a imagem é descoberta de baixo para cima, como uma
   carta sendo virada. Serve ao assunto, não é enfeite. Marketing, por isso
   pode passar do orçamento de 300ms da UI. */
.js .foto-reveal img,
.js .foto-reveal { --recorte: inset(0 0 100% 0); }
.js .foto-reveal img {
  clip-path: var(--recorte);
  transition: clip-path 620ms var(--saida);
}
.js .foto-reveal.visivel img { --recorte: inset(0 0 0 0); }
.js .foto-reveal figcaption { opacity: 0; transition: opacity 380ms var(--saida) 260ms; }
.js .foto-reveal.visivel figcaption { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .js .foto-reveal img { clip-path: none; transition: opacity 200ms linear; }
  .js .foto-reveal figcaption { transition: opacity 200ms linear; }
}

/* ==========================================================================
   CTA final — faixa fotográfica sob a manchete
   ========================================================================== */
.cta-final { position: relative; overflow: hidden; }
.cta-final__foto {
  position: absolute; inset: 0;
  background-image: url("tiragem.jpg");
  background-size: cover;
  background-position: 50% 58%;
  opacity: .55;
  /* o desfoque já vem assado no arquivo: sem custo de render e sem borda */
}
.cta-final__foto::after {
  content: '';
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, var(--breu) 0%, rgba(18,16,14,.34) 38%, rgba(18,16,14,.88) 100%),
    radial-gradient(52% 56% at 50% 50%, rgba(18,16,14,.82) 0%, rgba(18,16,14,.34) 62%, transparent 100%);
}
.cta-final__box { position: relative; z-index: 1; }

/* ==========================================================================
   Quem atende — fotografia contida, não decorativa (ref. Pipe / Stocksy)
   ========================================================================== */
.secao--quem { background: var(--terra); }
.quem { display: grid; gap: 34px; }

.quem__foto { position: relative; margin: 0; }
.quem__foto figcaption { position: absolute; }
.quem__foto img {
  width: 100%; height: auto; aspect-ratio: 680 / 829;
  border-radius: var(--r-midia);
  display: block;
}
.quem__foto figcaption {
  position: absolute; left: 12px; bottom: 12px;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 13px 7px 10px;
  border-radius: 9999px;
  background: rgba(12,10,9,.74);
  border: 1px solid rgba(237,227,210,.14);
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--osso);
}
.quem__ponto { width: 6px; height: 6px; border-radius: 50%; background: var(--ambar); flex: none; }

.quem__texto h2 { font-size: clamp(1.72rem, 5.4vw, 2.35rem); text-wrap: balance; }
.quem__corpo { margin-top: 16px; font-size: 16.5px; color: var(--fumo); max-width: 48ch; }

.quem__fatos { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px 34px; }
.quem__fatos li { font-size: 14px; color: var(--fumo); }
.quem__fatos b {
  display: block;
  font-family: var(--serif); font-variation-settings: 'SOFT' 60, 'WONK' 1;
  font-size: 25px; font-weight: 700; color: var(--osso); letter-spacing: -.01em;
}

/* ==========================================================================
   Diferenciais — sem caixa, só o filete de luz
   ========================================================================== */
.difs { display: grid; grid-template-columns: 1fr 1fr; gap: 34px 26px; }
.dif { padding-top: 18px; border-top: 1px solid var(--ambar); }
.dif h3 { font-size: 18.5px; margin-bottom: 9px; }
.dif p { font-size: 15.5px; color: var(--fumo); }

/* ==========================================================================
   Depoimentos
   ========================================================================== */
.secao--dep { background: var(--terra); }
.deps { display: grid; gap: 34px; }

.dep {
  position: relative; margin: 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--borda);
}
.dep blockquote { margin: 14px 0 18px; font-size: 16.5px; line-height: 1.62; color: var(--osso); }
.dep blockquote::before { content: '\201C'; }
.dep blockquote::after  { content: '\201D'; }
.dep figcaption { font-family: var(--serif); font-size: 16px; font-weight: 600; font-variation-settings: 'SOFT' 60, 'WONK' 1; }
.dep figcaption span {
  display: block; margin-top: 2px;
  font-family: var(--mono); font-size: 11.5px; font-weight: 400;
  letter-spacing: .1em; color: var(--fumo);
}

.estrelas { display: flex; gap: 4px; }
.estrelas i {
  width: 14px; height: 14px; background: var(--borda);
  clip-path: polygon(50% 0%, 61.8% 35.5%, 100% 35.5%, 69% 57.5%, 80.9% 100%, 50% 73%, 19.1% 100%, 31% 57.5%, 0% 35.5%, 38.2% 35.5%);
}
.estrelas i.on { background: var(--fumo); }

/* ==========================================================================
   CTA do meio — o vermelho seco só aqui
   ========================================================================== */
.cta-meio { position: relative; padding: 74px 0; background: #0C0A09; overflow: hidden; }

/* a foto do estado que a frase descreve: madrugada, remoendo */
.cta-meio::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("noite.jpg");
  background-size: cover;
  background-position: 50% 44%;
  opacity: 1;
}
/* escurece para a leitura e mantém a brasa de sangue seco por cima */
.cta-meio::after {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(46% 50% at 50% 50%, rgba(12,10,9,.66) 0%, rgba(12,10,9,.12) 70%, transparent 100%),
    linear-gradient(180deg, #0C0A09 0%, rgba(12,10,9,.04) 30%, rgba(12,10,9,.6) 100%),
    radial-gradient(62% 78% at 50% 0%, rgba(140,58,36,.30) 0%, transparent 68%);
}
.cta-meio__box { position: relative; z-index: 1; text-align: center; max-width: 640px; margin: 0 auto; }
.cta-meio__orn { color: var(--ambar); font-size: 13px; letter-spacing: .55em; text-indent: .55em; margin-bottom: 22px; opacity: .8; }
.cta-meio h2 { font-size: clamp(1.62rem, 5.4vw, 2.3rem); text-wrap: balance; }
.cta-meio__sub { margin: 18px auto 30px; font-size: 16.5px; color: var(--fumo); max-width: 44ch; }

/* ==========================================================================
   Serviços
   ========================================================================== */
.servs { display: grid; gap: 22px; }
.serv {
  position: relative; display: flex; flex-direction: column;
  padding: 28px 24px 24px;
  background: var(--barro);
  border: 1px solid var(--borda);
  border-radius: var(--r-acao);
  transition: border-color 220ms var(--saida), transform 220ms var(--saida);
}
@media (hover: hover) and (pointer: fine) {
  .serv:hover { border-color: rgba(200,151,74,.42); transform: translateY(-2px); }
}
.serv__num {
  font-family: var(--mono); font-size: 11px; letter-spacing: .2em;
  color: var(--ambar); margin-bottom: 12px;
}
.serv h3 { font-size: 21px; margin-bottom: 10px; }
.serv p { font-size: 15.5px; color: var(--fumo); margin-bottom: 24px; flex: 1 1 auto; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.secao--faq { background: var(--terra); }
.faq { border-top: 1px solid var(--borda); max-width: 800px; }
.faq__item { border-bottom: 1px solid var(--borda); }
.faq__item h3 { margin: 0; font-family: var(--sans); font-weight: 400; }

.faq__btn {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  width: 100%; min-height: 56px; padding: 19px 2px;
  background: none; border: 0; text-align: left; cursor: pointer;
  font-family: var(--serif); font-size: 17.5px; font-weight: 600; line-height: 1.35;
  font-variation-settings: 'SOFT' 60, 'WONK' 1;
  color: var(--osso);
  transition: color 180ms var(--saida);
}
@media (hover: hover) and (pointer: fine) { .faq__btn:hover { color: var(--ambar-alto); } }

.faq__sinal { position: relative; flex: none; width: 15px; height: 15px; }
.faq__sinal::before, .faq__sinal::after {
  content: ''; position: absolute; left: 0; top: 7px;
  width: 15px; height: 1px; background: var(--ambar);
  transition: transform 220ms var(--saida);
}
.faq__sinal::after { transform: rotate(90deg); }
.faq__btn[aria-expanded="true"] .faq__sinal::after { transform: rotate(0deg); }

.faq__painel { overflow: hidden; transition: height 220ms var(--saida); }
.js .faq__painel[hidden] { display: block; height: 0; }
.faq__painel p { padding: 0 40px 22px 2px; font-size: 16px; color: var(--fumo); max-width: 62ch; }

.faq__rodape { margin-top: 30px; font-size: 16px; color: var(--fumo); }
.link-wa {
  color: var(--ambar-alto); font-weight: 600; text-decoration: none;
  border-bottom: 1px solid rgba(200,151,74,.4); padding-bottom: 1px;
  transition: border-color 180ms var(--saida);
}
@media (hover: hover) and (pointer: fine) { .link-wa:hover { border-bottom-color: var(--ambar-alto); } }

/* ==========================================================================
   CTA final
   ========================================================================== */
.cta-final { padding: 84px 0; }
.cta-final__box { text-align: center; max-width: 620px; margin: 0 auto; }
.cta-final h2 { font-size: clamp(1.62rem, 5.4vw, 2.35rem); margin-bottom: 30px; text-wrap: balance; }
.orn { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 24px; color: var(--ambar); font-size: 10px; }
.orn span { display: block; width: 54px; height: 1px; background: linear-gradient(90deg, transparent, var(--ambar)); }
.orn span:last-child { background: linear-gradient(90deg, var(--ambar), transparent); }

/* ==========================================================================
   Rodapé
   ========================================================================== */
.rodape { background: #0C0A09; border-top: 1px solid var(--borda); padding: 52px 0 44px; text-align: center; }
.rodape__marca { font-family: var(--serif); font-size: 21px; font-weight: 600; letter-spacing: .05em; font-variation-settings: 'SOFT' 60, 'WONK' 1; }
.rodape__tag { margin-top: 6px; font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ambar); }
.rodape__aviso { margin: 28px auto 0; max-width: 60ch; font-size: 12.5px; line-height: 1.65; color: #9C8B79; }
.rodape__copy { margin-top: 22px; font-size: 12.5px; color: #8F7F6F; }

/* ==========================================================================
   Barra fixa de WhatsApp no celular
   ========================================================================== */
.sticky-wa {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
  padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(180deg, rgba(12,10,9,0) 0%, rgba(12,10,9,.94) 34%);
  transform: translateY(110%);
  opacity: 0;
  transition: transform 260ms var(--saida), opacity 260ms var(--saida);
}
.sticky-wa[data-visivel="true"] { transform: translateY(0); opacity: 1; }
@media (min-width: 900px) { .sticky-wa { display: none; } }
@media (prefers-reduced-motion: reduce) { .sticky-wa { transition: opacity 200ms linear; transform: none; } }

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (min-width: 640px) {
  .deps { grid-template-columns: 1fr 1fr; column-gap: 48px; row-gap: 40px; }
  .servs { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 900px) {
  .secao { padding: 108px 0; }
  .hero { padding: 68px 0 92px; }
  .hero__grid { grid-template-columns: 1.06fr .94fr; align-items: center; gap: 48px; }
  .hero__arte { display: block; }
  .hero__sub { font-size: 19px; }
  .cabeca { margin-bottom: 60px; max-width: 44ch; }

  .passos { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, auto); grid-auto-flow: column; column-gap: 56px; }
  .passo { padding-bottom: 40px; }
  .passo:nth-child(3)::before, .passo:nth-child(6)::before { display: none; }
  .passo:nth-child(3), .passo:nth-child(6) { padding-bottom: 0; }

  .quem { grid-template-columns: .82fr 1.18fr; gap: 56px; align-items: center; }
  .difs { grid-template-columns: repeat(4, 1fr); gap: 32px; }
  .dep { padding: 24px 0 0; }
  .servs { grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .cta-meio { padding: 96px 0; }
  .cta-final { padding: 104px 0; }
}

/* ==========================================================================
   Fotografia — contenção (acrescentado ao final: vence por ordem)
   ========================================================================== */
.foto-bloco { max-width: 520px; }

@media (min-width: 900px) {
  /* a foto ocupa uma coluna própria e acompanha a rolagem dos passos */
  .secao--passos .wrap {
    display: grid;
    grid-template-columns: 1fr 330px;
    column-gap: 60px;
    align-items: start;
  }
  .secao--passos .cabeca  { grid-column: 1; }
  .secao--passos .passos  { grid-column: 1; }
  .secao--passos .foto-bloco {
    grid-column: 2; grid-row: 1 / span 2;
    max-width: none; margin: 6px 0 0;
    position: sticky; top: 48px;
  }
}

/* ==========================================================================
   Prova social — prints reais em coluna quebrada
   ========================================================================== */
/* Carrossel: deslocamento contínuo e lento. Movimento ambiente, não
   interação — por isso keyframes lineares, e não transição. */
.carrossel {
  position: relative;
  margin-left: calc(50% - 50vw);
  width: 100vw;
  overflow: hidden;
  /* a trilha some nas bordas em vez de cortar seco */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.carrossel__trilho {
  display: flex;
  gap: 18px;
  width: max-content;
  padding: 4px 0;
}
.prova { margin: 0; flex: none; }
.prova img {
  height: 380px; width: auto; display: block;
  border-radius: var(--r-midia);
  border: 1px solid var(--borda);
}

/* Rolagem nativa: o dedo arrasta, o trackpad rola, e o JS empurra sozinho
   quando ninguém está mexendo. A trilha tem duas voltas idênticas, então
   dar a volta no meio fecha o laço sem emenda visível. */
.carrossel {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  touch-action: pan-x pan-y;
}
.carrossel::-webkit-scrollbar { display: none; }
.carrossel[data-arrastando="true"] { cursor: grabbing; }
.carrossel[data-arrastando="true"] .prova { user-select: none; }
.carrossel:focus-visible { outline: 2px solid var(--ambar-alto); outline-offset: -4px; }

.prova img { pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
  .carrossel { mask-image: none; -webkit-mask-image: none; }
}

/* ==========================================================================
   Serviços — três níveis com preço
   ========================================================================== */
.serv__selo {
  align-self: flex-start;
  margin-bottom: 12px;
  padding: 5px 11px;
  border-radius: 9999px;
  background: rgba(200,151,74,.16);
  border: 1px solid rgba(200,151,74,.42);
  font-family: var(--mono); font-size: 10px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ambar-alto);
}
.serv--destaque { border-color: rgba(200,151,74,.45); background: #2A211A; }

.serv__preco { margin: 2px 0 16px; }
.serv__preco b {
  font-family: var(--serif); font-variation-settings: 'SOFT' 60, 'WONK' 1;
  font-size: 40px; font-weight: 700; color: var(--osso); letter-spacing: -.02em;
}
.serv__itens { margin: 0 0 16px; display: grid; gap: 7px; }
.serv__itens li {
  position: relative; padding-left: 17px;
  font-size: 14.5px; color: var(--osso);
}
.serv__itens li::before {
  content: ''; position: absolute; left: 0; top: .6em;
  width: 5px; height: 5px; background: var(--ambar); transform: rotate(45deg);
}
.serv__nota {
  margin-top: 30px; max-width: 62ch;
  font-size: 14.5px; color: var(--fumo);
  padding-top: 18px; border-top: 1px solid var(--borda);
}


@media (min-width: 900px) {
  .prova img { height: 440px; }
  /* três níveis, não quatro cards */
  .servs { grid-template-columns: repeat(3, 1fr); gap: 26px; }
}

/* ==========================================================================
   Wizard — dois passos antes da conversa
   ========================================================================== */
.wiz { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-end; justify-content: center; }
.wiz[hidden] { display: none; }
@media (min-width: 640px) { .wiz { align-items: center; } }

.wiz__fundo { position: absolute; inset: 0; background: rgba(8,7,6,.82); }

.wiz__caixa {
  position: relative;
  width: 100%; max-width: 460px;
  max-height: 92vh; overflow-y: auto; overflow-x: hidden;
  padding: 30px 24px calc(26px + env(safe-area-inset-bottom, 0px));
  background: var(--terra);
  border: 1px solid var(--borda);
  border-radius: var(--r-midia) var(--r-midia) 0 0;
  transform: translateY(14px);
  opacity: 0;
  transition: transform 260ms var(--saida), opacity 260ms var(--saida);
}
.wiz[data-aberto="true"] .wiz__caixa { transform: none; opacity: 1; }
@media (min-width: 640px) { .wiz__caixa { border-radius: var(--r-midia); padding: 34px 30px 28px; } }

.wiz__x {
  position: absolute; top: 10px; right: 12px;
  width: 44px; height: 44px;
  background: none; border: 0; cursor: pointer;
  font-size: 26px; line-height: 1; color: var(--fumo);
}
.wiz__x:hover { color: var(--osso); }

.wiz__caixa h2 { font-size: clamp(1.4rem, 5.6vw, 1.72rem); text-wrap: balance; }
.wiz__sub { margin: 12px 0 18px; font-size: 15.5px; color: var(--fumo); }

.wiz__campo { display: block; margin-bottom: 16px; }
.wiz__campo span {
  display: block; margin-bottom: 7px;
  font-family: var(--mono); font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ambar);
}
.wiz__campo input {
  width: 100%; min-height: 52px;
  padding: 13px 15px;
  background: var(--breu);
  border: 1px solid var(--borda);
  border-radius: var(--r-acao);
  color: var(--osso);
  font-family: var(--sans); font-size: 16px;   /* 16px evita zoom no iOS */
}
.wiz__campo input::placeholder { color: #6E6154; }
.wiz__campo input:focus { outline: 2px solid var(--ambar); outline-offset: 1px; border-color: transparent; }

.wiz__caixa .wa { margin-top: 6px; }

.wiz__pular {
  display: block; width: 100%;
  min-height: 48px; margin-top: 10px;
  background: none; border: 0; cursor: pointer;
  font-family: var(--sans); font-size: 15px; color: var(--fumo);
  text-decoration: underline; text-underline-offset: 3px;
}
.wiz__pular:hover { color: var(--osso); }

.wiz__nota { margin-top: 14px; font-size: 12.5px; color: #8A7C6C; text-align: center; }

/* As opções são cartas de verdade do baralho, com o número que elas têm
   no Lenormand. Escolher o tema vira virar uma carta. */
.wiz__temas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.wiz__carta {
  position: relative;
  min-width: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 7px;
  aspect-ratio: 5 / 5.8;
  padding: 14px 6px 13px;
  cursor: pointer;
  background: linear-gradient(168deg, #F5ECDA 0%, #E0D2B6 100%);
  border: 1px solid #C9B893;
  border-radius: 7px;
  color: #3A2E22;
  box-shadow: 0 6px 16px -10px rgba(0,0,0,.85);
  transition: transform 160ms var(--saida), box-shadow 160ms var(--saida);
}
.wiz__carta-arte { width: 52px; height: 52px; color: #6B563A; }
.wiz__carta-nome {
  font-family: var(--sans); font-size: 12.5px; font-weight: 600;
  line-height: 1.2; text-align: center; color: #3A2E22;
  text-wrap: balance;
}
.wiz__carta:active { transform: translateY(1px) scale(0.98); }
.wiz__carta:focus-visible { outline: 3px solid var(--ambar); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
  .wiz__carta:hover { transform: translateY(-3px); box-shadow: 0 12px 22px -10px rgba(0,0,0,.9); }
}



@media (prefers-reduced-motion: reduce) {
  .wiz__caixa { transform: none; transition: opacity 200ms linear; }
  .wiz__carta:active { transform: none; }
}
