/* Morais Barbearia · a base é o preto e o creme, e o acento é o cobre (ver CORES.md):
   o escuro #111111 dos 79 posts P&B do feed (o lado rock), o preto #000 do logo, o creme #FEF5F2
   das letras dos reels de 2026 e o cobre #9E682C da cadeira antiga. O cobre é o único acento e só
   vai em coisa grande (o destaque do título, estrela, preço, "aberto agora"): passa de 4:1 sobre
   o escuro e sobre o creme. Fotos e vídeo em cor. O passe-partout dos quadros é branco.
   Letra: Oswald nos títulos, a grotesca condensada dos reels ("SIGA NOSSO PERFIL", "COMUNICADO");
   Inter no texto. Formas: o quadro de moldura preta com passe-partout, e a mão da placa. */
:root{
  --preto:#000; --tinta:#111; --creme:#FEF5F2; --cobre:#9E682C; --branco:#fff;
  /* cada seção escolhe o seu tema; o padrão é o escuro */
  --fundo:var(--tinta); --cor:var(--creme); --cor-2:rgba(254,245,242,.8); --cor-3:rgba(254,245,242,.58); --fio:rgba(254,245,242,.18);
  --acento:var(--cobre);
  --titulo:'Oswald','Arial Narrow',Impact,sans-serif; --texto:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --lado:clamp(18px,5.5vw,88px);
  --topo:64px; --previa:0px; --barra:0px; --tela:calc(100svh - var(--topo));
  /* grão de papel impresso nas seções claras: ruído em SVG, sem arquivo */
  --grao:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
.tema-creme{--fundo:var(--creme); --cor:var(--tinta); --cor-2:rgba(17,17,17,.78); --cor-3:rgba(17,17,17,.6); --fio:rgba(17,17,17,.16)}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px;background:var(--preto)}
body{background:var(--preto);color:var(--creme);font-family:var(--texto);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
/* títulos em caixa alta, como os letreiros e os reels da casa */
h1,h2,h3{font-family:var(--titulo);font-weight:600;letter-spacing:.005em;text-transform:uppercase;line-height:1.02}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.so-leitor{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
section{position:relative;background:var(--fundo);color:var(--cor)}
/* o creme tem o grão de papel impresso */
.tema-creme::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--grao);opacity:.1;mix-blend-mode:multiply}
section > *{position:relative}

/* ─── faixa de prévia ─── */
.previa{display:flex;flex-wrap:wrap;gap:.3em 1.4em;align-items:center;justify-content:center;
  padding:8px var(--lado);background:#222;color:rgba(254,245,242,.84);font-size:12.5px;text-align:center}
.previa b{color:var(--branco);font-weight:600}
.previa a{color:var(--branco);font-weight:600;text-underline-offset:3px}

/* o que falta confirmar: a pauta da reunião, visível mas discreta */
.conferir{display:inline-block;padding:0 .6em;border:1px dashed currentColor;border-radius:3px;
  font-family:var(--texto);font-size:.62em;font-style:normal;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  line-height:1.8;vertical-align:.16em;white-space:nowrap;opacity:.75}

.sobre{font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--cor-3)}
/* a segunda metade do título vem no cobre, mais leve */
h1 em,h2 em{font-style:normal;font-weight:400;color:var(--acento)}

/* ─── topo ─── */
.topo{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:2rem;padding:10px var(--lado);
  /* sem backdrop-filter: o iPhone recalcula o desfoque a cada quadro da rolagem */
  background:#000;border-bottom:1px solid rgba(254,245,242,.12)}
.logo{display:block;margin-right:auto;color:var(--branco);line-height:0}
.logo svg{display:block;height:46px;width:74px;fill:currentColor}
.topo nav{display:flex;gap:1.8rem;font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.topo nav a{text-decoration:none;color:rgba(254,245,242,.72);padding:4px 0;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
@media (hover:hover){.topo nav a:hover{color:var(--branco);border-bottom-color:var(--branco)}}
.bt-topo{display:inline-flex;align-items:center;gap:.55em;text-decoration:none;font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:11px 18px;background:var(--branco);color:#000;border:1px solid var(--branco);border-radius:999px;transition:background .2s,color .2s}
.bt-topo svg{width:17px;height:17px;fill:none}
@media (hover:hover){.bt-topo:hover{background:transparent;color:var(--branco)}}

/* ─── botões: pílula, como a etiqueta "Savassi" dos reels ─── */
.acoes{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:1.8rem}
.bt{display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:54px;padding:0 26px;border-radius:999px;
  text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  border:1.5px solid var(--cor);transition:background .2s,color .2s}
.bt svg{width:19px;height:19px;flex:none;fill:none}
.bt-cheio{background:var(--cor);color:var(--fundo)}
.bt-linha{color:var(--cor)}
@media (hover:hover){
  .bt-cheio:hover{background:transparent;color:var(--cor)}
  .bt-linha:hover{background:var(--cor);color:var(--fundo)}
}

/* ─── o quadro: moldura preta com passe-partout branco, como os pôsteres da parede do salão ─── */
.quadro{position:relative;margin:0;background:var(--preto);padding:clamp(8px,.9vw,14px);box-shadow:0 18px 40px -18px rgba(0,0,0,.6),0 2px 0 rgba(0,0,0,.25)}
.quadro > .pp{position:relative;height:100%;background:var(--branco);padding:clamp(8px,1vw,16px)}
.quadro > .pp > :is(img,video){display:block;width:100%;height:100%;object-fit:cover;background:#0B0908}

/* ─── a mão da placa da calçada (traçada da foto de 29/04/2021) ─── */
/* a silhueta é clara (atributo no desenho); a tinta segue a cor do texto */
.mao{display:block;color:#111}
.mao.dir{transform:scaleX(-1)}

/* ─── capa: o quadro com o vídeo, pendurado no escuro, e o texto ─── */
.capa{display:grid}
.capa-texto{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(28px,5vh,64px) var(--lado)}
.capa .sobre{display:inline-flex;align-items:center;gap:.7em}
.capa h1{margin-top:clamp(14px,2.4vh,26px);font-size:clamp(44px,6vw,100px);line-height:.98;letter-spacing:-.02em;max-width:7em;font-weight:600}
.lead{max-width:27em;margin-top:clamp(12px,2vh,20px);font-size:clamp(16.5px,1.35vw,20px);color:var(--cor-2)}
.capa .acoes .mao{width:74px;height:auto;margin-right:4px}
.selos{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:1.6rem;font-size:13.5px;color:var(--cor-2)}
.selos > span,.selos > a{display:inline-flex;align-items:center;gap:.6em;text-decoration:none}
.ponto{flex:none;width:9px;height:9px;border-radius:50%;background:var(--acento);box-shadow:0 0 0 3px rgba(158,104,44,.28)}
.ponto.fechado{background:transparent;border:1.5px solid currentColor;box-shadow:none}
.estrelas{letter-spacing:.12em;color:var(--acento)}
.capa-quadro{align-self:center;justify-self:center}
.capa-video{pointer-events:none;-webkit-user-select:none;user-select:none}
.capa-video::-webkit-media-controls,.capa-video::-webkit-media-controls-panel,.capa-video::-webkit-media-controls-overlay-play-button,.capa-video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}
/* o título se escreve enquanto o vídeo passa; até o vídeo começar o texto fica inteiro */
.capa.tocando .l{visibility:hidden}
.capa.tocando .l.on{visibility:visible}
.capa .l.cursor{box-shadow:.05em 0 0 currentColor;animation:pisca .8s steps(1) infinite}
@keyframes pisca{50%{box-shadow:none}}
@media (prefers-reduced-motion:no-preference){
  .js .capa .sobre,.js .capa .acoes,.js .capa .selos{animation:sobe .8s cubic-bezier(.2,.7,.2,1) both}
  .js .capa .acoes{animation-delay:.25s}
  .js .capa .selos{animation-delay:.35s}
  /* a mão dá um empurrão no botão quando o título termina de se escrever, uma vez só */
  .capa.escrito .acoes .mao{animation:aponta .9s cubic-bezier(.3,.6,.3,1) 2}
}
@keyframes sobe{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes aponta{50%{transform:scaleX(-1) translateX(-8px)}}

/* ─── blocos ─── */
.bloco{padding:clamp(60px,7.5vw,104px) var(--lado)}
.cab{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px 40px;margin-bottom:clamp(28px,3.6vw,48px)}
.cab .sobre{grid-column:1 / -1}
.cab h2,.marcelo h2,.local h2,.duvidas h2{font-size:clamp(34px,4vw,62px);line-height:1.02;max-width:14em}
.cab-nota{font-size:14.5px;color:var(--cor-3);padding-bottom:8px;max-width:26em}

/* ─── a casa: três palavras, cada uma com a fala de um cliente ─── */
.pilares{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--fio)}
.pilares li{display:flex;flex-direction:column;padding:clamp(18px,2.4vw,32px) clamp(16px,2vw,32px) 0 0}
.pilares li + li{padding-left:clamp(16px,2vw,32px);border-left:1px solid var(--fio)}
.pilares small{font-size:12px;letter-spacing:.2em;color:var(--cor-3)}
.pilares b{display:block;margin:clamp(20px,5vh,64px) 0 .25em;font-family:var(--titulo);font-weight:600;text-transform:uppercase;
  font-size:clamp(40px,4.6vw,76px);line-height:1;letter-spacing:.01em}
.pilares p{max-width:21em;font-size:16px;color:var(--cor-2)}
.pilares blockquote{margin-top:auto;padding-top:clamp(16px,3vh,28px);max-width:22em}
.pilares blockquote{border-left:3px solid var(--acento);padding-left:14px}
.pilares blockquote p{font-size:16px;font-weight:500;line-height:1.45;color:var(--cor)}
.pilares cite{display:block;margin-top:6px;font-style:normal;font-size:12.5px;letter-spacing:.06em;color:var(--cor-3)}

/* ─── tabela da casa: o quadro de preços, com linha pontilhada entre o nome e o valor ─── */
.abas{display:none}
.tabela{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,3.4vw,56px)}
.grupo h3{display:flex;align-items:baseline;gap:.6em;padding-bottom:6px;margin:0 0 2px;border-bottom:2px solid var(--cor);
  font-size:clamp(19px,1.5vw,23px);font-weight:500;letter-spacing:.04em}
.grupo h3.segue{margin-top:clamp(14px,2.6vh,26px)}
.grupo ul{list-style:none}
.grupo a{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px;padding:clamp(7px,1.3vh,11px) 0;
  text-decoration:none;border-bottom:1px solid var(--fio);transition:background .25s,padding .25s}
.grupo a::after{content:"";grid-column:2;grid-row:1;align-self:end;margin-bottom:.45em;min-width:12px;border-bottom:1.5px dotted var(--cor-3)}
.grupo .nome{grid-column:1;grid-row:1;font-weight:500;font-size:16px}
.grupo .nome small{margin-left:.5em;font-weight:400;font-size:12.5px;color:var(--cor-3);letter-spacing:.02em;white-space:nowrap}
.grupo .valor{grid-column:3;grid-row:1;font-family:var(--titulo);font-size:21px;font-weight:500;white-space:nowrap;color:var(--acento)}
.grupo .valor sup{font-family:var(--texto);font-size:.52em;font-weight:500;margin-right:.2em;vertical-align:.55em;letter-spacing:.04em}
.grupo .valor i{font-family:var(--texto);font-style:normal;font-size:.5em;font-weight:500;text-transform:uppercase;letter-spacing:.08em;margin-right:.35em;color:var(--cor-3)}
@media (hover:hover){.grupo a:hover{background:rgba(254,245,242,.07);padding-left:10px;padding-right:10px}}
.tabela-pe{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:clamp(18px,3vh,28px);font-size:14px;color:var(--cor-3)}
.tabela-pe a{font-weight:600;color:var(--cor);text-underline-offset:3px}

/* ─── por dentro: o carrossel de quadros ─── */
.carrossel{position:relative;margin:0 calc(-1 * var(--lado))}
/* só anda quando a pessoa manda: arrastando, nas setas ou nas bolinhas. Cada foto encaixa na borda. */
.trilho{display:flex;gap:clamp(14px,1.6vw,24px);overflow-x:auto;padding:6px var(--lado) 24px;
  scroll-snap-type:x mandatory;scroll-padding:0 var(--lado);overscroll-behavior-x:contain;
  scrollbar-width:none;outline:none}
.trilho::-webkit-scrollbar{display:none}
.trilho:focus-visible{outline:1px solid var(--cor);outline-offset:-2px}
.trilho figure{flex:0 0 auto;margin:0;scroll-snap-align:start}
.trilho .quadro{width:clamp(230px,23vw,320px);aspect-ratio:4/5;padding:9px}
.trilho .quadro > .pp{padding:9px}
.trilho img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.trilho .pp{overflow:hidden}
@media (hover:hover){.trilho figure:hover img{transform:scale(1.04)}}
.trilho figcaption{margin-top:12px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cor-2)}
.carrossel-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:6px}
.carrossel-nav[hidden]{display:none}
.seta-foto{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid var(--fio);border-radius:50%;
  background:none;color:var(--cor);cursor:pointer;transition:background .2s,color .2s,border-color .2s,opacity .2s}
.seta-foto svg{width:20px;height:20px;fill:none}
@media (hover:hover){.seta-foto:hover:not(:disabled){background:var(--cor);border-color:var(--cor);color:var(--fundo)}}
.seta-foto:disabled{opacity:.3;cursor:default}
.pontos{display:flex;justify-content:center;gap:10px}
.pontos button{width:8px;height:8px;padding:0;border:0;border-radius:999px;cursor:pointer;background:var(--fio);transition:background .2s,width .2s}
.pontos button[aria-current="true"]{width:22px;background:var(--cor)}

/* ─── o Marcelo ─── */
.marcelo{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:center}
.marcelo .quadro{width:min(100%,420px);aspect-ratio:2/3}
.marcelo h2{margin:.35em 0 0}
.marcelo-texto > p:not(.sobre){max-width:30em;margin-top:clamp(12px,2.2vh,20px);color:var(--cor-2)}
.marcelo-texto > p b{color:var(--cor);font-weight:600}
.notas{display:flex;flex-wrap:wrap;gap:14px 36px;margin-top:clamp(20px,4vh,36px)}
.nota{display:inline-flex;align-items:center;gap:14px;text-decoration:none}
.nota b{font-family:var(--titulo);font-weight:500;font-size:54px;line-height:1}
.nota > span{display:grid;font-size:13.5px;line-height:1.45;color:var(--cor-2)}
.marcelo .acoes{margin-top:clamp(20px,4vh,32px)}

/* ─── avaliações: falas reais, com nome e de onde vieram ─── */
.falas{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
.falas li{display:flex;flex-direction:column;padding:clamp(20px,2.4vw,32px);border:1px solid var(--fio);border-top:3px solid var(--acento);border-radius:4px;background:var(--branco)}
.falas .estrelas{font-size:13px}
.falas blockquote{margin-top:12px;flex:1}
.falas blockquote p{font-size:clamp(17px,1.35vw,20px);font-weight:500;line-height:1.45}
.falas cite{display:block;margin-top:16px;font-style:normal;font-size:13px;letter-spacing:.04em;color:var(--cor-3)}
.falas cite b{color:var(--cor-2);font-weight:600}

/* ─── horário e endereço: o texto e a mão da placa apontando para ele ─── */
.local{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:clamp(24px,4vw,64px)}
.local-texto{padding:clamp(60px,7.5vw,104px) 0 clamp(60px,7.5vw,104px) var(--lado)}
.local h2{margin:.4em 0 0}
.local .sub{margin-top:10px;font-size:17px;color:var(--cor-2)}
.status-linha{display:inline-flex;align-items:center;gap:.7em;margin-top:18px;font-weight:600;font-size:15.5px}
.dados{margin:20px 0 26px;max-width:500px;border-bottom:1px solid var(--fio)}
.dados > div{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:12px 0;border-top:1px solid var(--fio)}
.dados dt{font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--cor-3);padding-top:4px}
.dados dd{font-size:16px}
.dados small{display:block;font-size:13px;color:var(--cor-3)}
#horarios > span{display:block}
#horarios .hoje{font-weight:600}
#horarios .hoje::after{content:"hoje";margin-left:.8em;padding:1px 8px;border-radius:999px;background:var(--cor);color:var(--fundo);
  font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;vertical-align:.1em}
.local{overflow:hidden}
/* a mão sai da borda direita da tela, como a placa sai da árvore: o corte reto do punho fica fora */
.placa{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:22px;padding:clamp(28px,4vw,56px) 0}
.placa .mao{width:min(100%,600px);height:auto;margin-right:-4px;filter:drop-shadow(0 14px 22px rgba(0,0,0,.28))}
.placa figure{align-self:flex-start}
.placa figure{display:flex;align-items:center;gap:16px;margin:0;max-width:520px}
.placa figure .quadro{flex:none;width:118px;aspect-ratio:1;padding:6px}
.placa figure .quadro > .pp{padding:5px}
.placa figcaption{font-size:14px;line-height:1.5;color:var(--cor-2)}

/* ─── dúvidas ─── */
.duvidas{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,80px);align-items:start}
.duvidas h2{margin-top:.4em}
.faq{border-bottom:1px solid var(--fio)}
.faq details{border-top:1px solid var(--fio)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:18px 0;font-weight:600;font-size:clamp(17px,1.35vw,20px);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--fio);border-radius:50%;
  font-family:var(--texto);font-weight:300;font-size:20px;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 0 20px;color:var(--cor-2);max-width:42em}
.faq p a{font-weight:600;text-underline-offset:3px}

/* ─── contato: o logo inteiro, grande ─── */
.contato{display:grid;justify-items:center;text-align:center;gap:clamp(18px,3vh,30px);padding:clamp(64px,9vw,120px) var(--lado)}
.logo-grande{display:block;width:min(78vw,440px);height:auto;fill:var(--branco)}
.contato h2{font-size:clamp(26px,2.8vw,42px);line-height:1.1;font-weight:400;color:var(--cor-2)}
.contato .acoes{justify-content:center;margin-top:0}
.redes{display:flex;justify-content:center;gap:12px}
.redes a{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--fio);color:var(--cor);
  transition:background .25s,color .25s,border-color .25s}
@media (hover:hover){.redes a:hover{background:var(--cor);border-color:var(--cor);color:var(--fundo)}}
.redes svg{width:20px;height:20px;fill:none}
.rodape{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding:20px var(--lado) calc(24px + var(--barra));
  font-size:12.5px;letter-spacing:.02em;color:rgba(254,245,242,.5);background:var(--preto);border-top:1px solid rgba(254,245,242,.12)}

/* ─── barra do celular: WhatsApp e agenda on-line sempre à mão ─── */
.barra-m{display:none}

/* ─── menu: abaixo de 1061px as seções do topo viram um ícone que abre uma lista ─── */
.abre-menu{display:none;position:relative;flex:none;width:44px;height:44px;margin-right:-8px;background:none;border:0;cursor:pointer;color:var(--branco)}
.abre-menu span{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform .3s,top .3s,opacity .2s}
.abre-menu span:nth-child(1){top:15px}
.abre-menu span:nth-child(2){top:21px}
.abre-menu span:nth-child(3){top:27px}
.menu-aberto .abre-menu span:nth-child(1){top:21px;transform:rotate(45deg)}
.menu-aberto .abre-menu span:nth-child(2){opacity:0}
.menu-aberto .abre-menu span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* ─── telas menores ─── */
@media (max-width:1060px){
  .topo{gap:14px}
  .abre-menu{display:block}
  .topo nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:6px var(--lado) 18px;
    background:#000;font-size:15px;border-bottom:1px solid rgba(254,245,242,.12)}
  .menu-aberto .topo nav{display:flex}
  .topo nav a{padding:15px 0;border-bottom:1px solid rgba(254,245,242,.1)}
  .topo nav a:last-child{border-bottom:0}
  .duvidas{grid-template-columns:1fr}
  .tabela{grid-template-columns:repeat(2,minmax(0,1fr))}
  .capa-quadro{height:min(60svh,640px);aspect-ratio:4/5;margin-top:clamp(20px,3vh,36px)}
}
@media (max-width:860px){
  .cab{grid-template-columns:1fr}
  .pilares{grid-template-columns:1fr;border-top:0}
  .pilares li,.pilares li + li{display:grid;grid-template-columns:2.6em 1fr;column-gap:8px;padding:16px 0;border-left:0;border-top:1px solid var(--fio)}
  .pilares small{grid-row:1 / 4;padding-top:.8em}
  .pilares b{margin:0 0 .1em;font-size:clamp(34px,10vw,50px)}
  .pilares blockquote{padding-top:8px}
  .marcelo{grid-template-columns:1fr}
  .falas{grid-template-columns:1fr}
  .local{grid-template-columns:1fr}
  .local-texto{padding-right:var(--lado)}
  .placa{padding:0 0 48px var(--lado)}
  .placa figure{padding-right:var(--lado)}
}
@media (max-width:640px){
  body{font-size:16px}
  .previa-dica{display:none}
  .topo{gap:10px}
  .bt-topo{padding:10px 14px;font-size:11.5px}
  .bt-topo svg{display:none}
  .logo svg{height:40px;width:66px}
  .acoes .bt{flex:1 1 100%}
  .tabela{grid-template-columns:1fr}
  /* no celular a tabela vira abas: uma categoria por vez, para caber na tela */
  .abas{display:flex;gap:8px;margin:0 calc(-1 * var(--lado)) 14px;padding:0 var(--lado);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
  .abas::-webkit-scrollbar{display:none}
  .abas button{flex:none;min-height:40px;padding:0 16px;border:1.5px solid var(--cor);border-radius:999px;background:none;color:var(--cor);
    font:600 12px/1 var(--texto);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
  .abas button[aria-selected="true"]{background:var(--cor);color:var(--fundo)}
  .js .tabela .grupo[hidden]{display:none}
  .js .grupo h3:first-child{display:none}
  .grupo h3.segue{margin-top:16px;font-size:20px}
  .grupo .nome{font-size:15.5px}
  .grupo a{padding:7px 0;line-height:1.4}
  /* forma de pagamento está nas dúvidas, e a agenda na barra de baixo */
  .tabela-pe{display:none}
  .grupo .valor{font-size:19px}
  .trilho{gap:12px}
  .trilho .quadro{width:68vw}
  .carrossel-nav{margin-top:0}
  .seta-foto{display:none}
  .pontos{gap:0}
  .pontos button{box-sizing:content-box;padding:6px;background-clip:content-box}
  .dados > div{grid-template-columns:1fr;gap:2px}
  .falas li{padding:18px}
  .falas blockquote p{font-size:18px}
  .nota b{font-size:42px}
  .barra-m{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#000;border-top:1px solid rgba(254,245,242,.14);
    transition:transform .3s}
  .barra-m a{display:flex;align-items:center;justify-content:center;gap:.5em;min-height:46px;border-radius:999px;text-decoration:none;
    font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border:1.5px solid var(--branco);color:var(--branco)}
  .barra-m a:first-child{background:var(--branco);color:#000}
  .barra-m svg{width:18px;height:18px;fill:none}
  .no-fim .barra-m{transform:translateY(110%)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .trilho img,.grupo a{transition:none}
  .abre-menu span,.barra-m{transition:none}
}

/* ─── telas: uma seção por tela, no molde do Puramô ───
   Cada .tela tem a altura da janela menos o topo, e a primeira desconta também a faixa de
   prévia (--previa, medida pelo script logo abaixo dela). A rolagem é livre, sem scroll-snap:
   o que dá a passagem entre as seções é o conteúdo surgindo ao entrar na tela (.revela).
   min-height, e não height: numa janela baixa demais a seção cresce em vez de cortar texto. */
@media (prefers-reduced-motion:no-preference){
  .js .revela{opacity:0;transform:translateY(28px);
    transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--atraso,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--atraso,0s)}
  .js .revela.visto{opacity:1;transform:none}
}
@media (prefers-reduced-motion:no-preference) and (max-width:640px){
  .js .revela{transform:translateY(16px);transition-duration:.55s;transition-delay:calc(var(--atraso,0s) / 2)}
}
@media (min-width:1061px) and (min-height:560px){
  html{scroll-padding-top:var(--topo)}
  .topo{height:var(--topo);padding-top:0;padding-bottom:0}
  .tela{min-height:var(--tela);overflow:hidden}
  .bloco.tela{display:flex;flex-direction:column;justify-content:center;padding-top:clamp(28px,6vh,72px);padding-bottom:clamp(28px,6vh,72px)}
  .cab{margin-bottom:clamp(18px,3.4vh,44px)}
  .cab h2,.marcelo h2,.local h2,.duvidas h2{font-size:clamp(32px,min(4vw,7vh),62px)}

  /* capa: o quadro tem a altura da tela, na proporção do vídeo (4:5), pendurado na parede */
  .capa{scroll-margin-top:var(--previa);min-height:calc(var(--tela) - var(--previa));grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .capa-quadro{order:2;height:calc(var(--tela) - var(--previa) - clamp(40px,9vh,96px));aspect-ratio:4/5;max-width:44vw;margin-right:var(--lado)}
  .capa h1{font-size:clamp(44px,min(6vw,11.5vh),100px)}

  .pilares{flex:1;max-height:370px}
  .pilares b{margin-top:clamp(12px,3vh,40px)}

  .grupo a{padding:clamp(4px,.85vh,10px) 0;line-height:1.45}
  #servicos .cab{margin-bottom:clamp(14px,2.6vh,36px)}

  .trilho .quadro{width:auto;height:clamp(230px,calc(var(--tela) - 410px),520px)}

  .marcelo.tela{display:grid;align-content:center}
  .marcelo .quadro{width:auto;height:min(calc(var(--tela) - clamp(56px,12vh,144px)),640px);max-width:36vw}

  .local-texto{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
    padding-top:clamp(28px,6vh,72px);padding-bottom:clamp(28px,6vh,72px)}
  .dados{margin:clamp(12px,2.4vh,20px) 0 clamp(16px,3vh,26px)}
  .dados > div{padding:clamp(8px,1.5vh,12px) 0}
  /* a mão acompanha a altura da janela, para a seção caber numa tela */
  .placa .mao{width:auto;max-width:100%;height:min(calc(var(--tela) - 270px),470px)}

  .duvidas.tela{display:grid;align-items:center;align-content:center}
  .faq summary{padding:clamp(11px,2.1vh,18px) 0}

  .tela-fim{display:flex;flex-direction:column}
  .tela-fim .contato{flex:1;align-content:center;padding-top:clamp(28px,6vh,72px);padding-bottom:clamp(28px,6vh,72px)}
}

/* encaixe no computador: proximity, nunca mandatory (padrão do CLAUDE.md, visto no SAAT Concept).
   A rolagem segue livre e só completa o resto quando para perto da borda de uma seção, sem sobrar
   pedaço da vizinha na tela; parada no meio de uma seção alta fica onde está. No toque não entra:
   no celular a rolagem é solta. */
@media (min-width:1061px) and (min-height:560px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  html{scroll-snap-type:y proximity}
  .tela{scroll-snap-align:start}
}

/* ─── celular: uma seção por tela também, com a rolagem livre ─── */
@media (max-width:640px){
  :root{--barra:66px}
  html{scroll-padding-top:var(--topo)}
  .topo{height:var(--topo);padding-top:0;padding-bottom:0}
  .tela{min-height:calc(var(--tela) - var(--barra))}
  .bloco.tela{display:flex;flex-direction:column;justify-content:center;padding-top:28px;padding-bottom:28px}

  /* capa: o quadro em cima, o texto embaixo. Sem os botões: a barra de baixo já agenda. */
  .capa{scroll-margin-top:var(--previa);min-height:calc(var(--tela) - var(--previa) - var(--barra));grid-template-rows:auto 1fr}
  .capa-quadro{height:min(39svh,110vw);margin-top:14px;padding:7px}
  .capa-quadro > .pp{padding:7px}
  .capa-texto{justify-content:flex-start;padding:18px var(--lado) 18px}
  .capa h1{font-size:clamp(38px,11.4vw,50px);margin-top:10px}
  .lead{margin-top:8px;font-size:15.5px}
  .capa .acoes{display:none}
  .capa .selos{margin-top:auto;padding-top:14px;flex-direction:column;gap:6px}

  .cab{margin-bottom:18px}
  .cab h2,.marcelo h2,.local h2,.duvidas h2{font-size:clamp(30px,8.6vw,38px)}

  .pilares li,.pilares li + li{padding:12px 0}
  .pilares p{font-size:15px}
  .pilares blockquote p{font-size:15.5px}

  /* o Marcelo: a foto pequena ao lado do título, o texto enxuto */
  .marcelo.tela{gap:18px;padding-top:24px;padding-bottom:24px}
  .marcelo .quadro{width:38vw;padding:6px}
  .marcelo .quadro > .pp{padding:6px}
  .marcelo-texto > p:not(.sobre){margin-top:10px;font-size:15px}
  .notas{gap:12px 24px;margin-top:16px}
  .marcelo .acoes{display:none}

  .local.tela{display:block;min-height:0;padding:0}
  .local-texto{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:28px var(--lado) 18px}

  /* avaliações: uma faixa de arrastar de lado, cada fala encaixando na borda */
  .falas{display:flex;gap:10px;margin:0 calc(-1 * var(--lado));padding:0 var(--lado) 4px;overflow-x:auto;
    scroll-snap-type:x mandatory;scroll-padding:0 var(--lado);overscroll-behavior-x:contain;scrollbar-width:none;outline:none}
  .falas::-webkit-scrollbar{display:none}
  .falas li{flex:0 0 82vw;scroll-snap-align:start}

  /* a casa: a palavra e a fala do cliente; a explicação fica para o computador */
  #casa .cab-nota,.pilares li > p{display:none}
  .pilares blockquote{padding-top:4px}

  .dados .so-pc{display:none}
  .placa figure .quadro{width:84px;padding:5px}
  .placa figure .quadro > .pp{padding:4px}
  .placa figcaption{font-size:13px}
  .placa .mao{display:none}
  .placa{padding:0 var(--lado) 28px}

  .tela-fim{display:flex;flex-direction:column}
  .tela-fim .contato{flex:1;align-content:center;padding-top:36px;padding-bottom:32px;gap:16px}
}
