/* Recanto Vale Manso — Clínica de Reabilitação em Muriaé - MG
   Assinatura desta cidade: hero texto-sobre-tint com foto flutuante que invade
   a seção seguinte; carrossel scroll-snap horizontal na estrutura; nav topo
   branco com filete de cor embaixo; máscara circular recortada nas fotos
   pequenas. Não repetir em nenhuma irmã da rede. */

/* Par de fontes proprio do Muriae, exigido pelo Lucio na revisao da PR
   (09/09/2026): Faustina no display + Manrope no corpo. Conferido contra
   a frota pra nao repetir: Araxa=Spectral/PublicSans, Itabira=Bitter/Karla,
   Sabara=Fraunces/Archivo, Unai=Newsreader/Epilogue (invertido),
   TratamentoDrogasBH=SourceSans3. Latin subset auto-hospedado, ~14,5 KB
   os 4 arquivos somados. */
@font-face{font-family:'Faustina';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/faustina-600-latin.woff2') format('woff2')}
@font-face{font-family:'Faustina';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/faustina-700-latin.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/manrope-400-latin.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/manrope-600-latin.woff2') format('woff2')}

:root{
  --verde:#116917;
  --verde-acao:#0C4F12; /* tom mais escuro p/ texto/link sobre fundo tintado (contraste AA) */
  --verde-fundo:#EFF6EF;
  --ink:#122015;
  --ink-suave:#4B5A4D;
  --papel:#FFFFFF;
  --linha:#DCE7DC;
  --sombra:0 6px 28px rgb(12 32 15 / .08);
  --corpo:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --display:'Faustina',Georgia,'Times New Roman',serif;
  --gut:clamp(1.25rem,4vw,2.5rem);
  --secao-y:clamp(3rem,7vw,5.5rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;font:400 1rem/1.6 var(--corpo);color:var(--ink);background:var(--papel);-webkit-font-smoothing:antialiased;overflow-x:hidden}
/* overflow-x:hidden no body e proposital: o carrossel de .estrutura tem
   itens que naturalmente vazam a viewport em 320px (e o motivo dele
   existir - scroll horizontal). Sem isso aqui, esse vazamento intencional
   dentro de .carrossel{overflow-x:auto} empurra document.documentElement
   inteiro pra scrollWidth maior, criando scroll horizontal na PAGINA
   toda. Achado 09/09/2026, medido: sem isso scrollWidth 338 vs
   clientWidth 320 em 320px. */
img{max-width:100%;display:block}
a{color:var(--verde-acao)}
a{text-decoration:none}
.fonte a,.legal a{text-decoration:underline}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.15;margin:0 0 .6em;color:var(--ink)}
p{margin:0 0 1em}
strong,b{font-weight:600}
.limite{width:min(1180px,100% - var(--gut)*2);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.olho{font:700 .78rem/1 var(--corpo);letter-spacing:.12em;text-transform:uppercase;color:var(--verde-acao);margin:0 0 .6em}

/* ---------- topo: nav branca sticky com filete de cor embaixo ---------- */
.topo{position:sticky;top:0;z-index:40;background:var(--papel);border-bottom:3px solid var(--verde);transition:box-shadow .25s ease}
.topo.rolou{box-shadow:0 2px 14px rgb(12 32 15 / .1)}
.topo__interno{width:min(1180px,100% - var(--gut)*2);margin-inline:auto;display:flex;align-items:center;gap:1rem;min-height:72px}
.marca{display:flex;align-items:center;gap:.65rem;color:var(--ink);flex:0 0 auto}
.marca:hover{text-decoration:none}
.marca__logo{width:40px;height:40px;object-fit:contain}
.marca__texto{display:flex;flex-direction:column;line-height:1.15}
.marca__texto strong{font-family:var(--display);font-size:1.02rem}
.marca__texto em{font-style:normal;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-suave)}
.menu{margin-left:auto;display:flex;align-items:center;gap:1.75rem}
.menu__lista{display:flex;gap:1.75rem;list-style:none;margin:0;padding:0}
.menu__lista a{color:var(--ink);font-weight:600;font-size:.92rem}
.menu__lista a:hover{color:var(--verde-acao);text-decoration:underline}
.menu__botao{display:none}
.botao{display:inline-flex;align-items:center;gap:.5rem;font:700 .95rem/1 var(--corpo);padding:.85rem 1.4rem;border-radius:999px;transition:background-color .2s ease,color .2s ease;cursor:pointer;border:2px solid transparent}
.botao:hover{text-decoration:none}
.botao--solido{background:var(--verde);color:#fff}
.botao--solido:hover{background:var(--verde-acao)}
.botao--linha{background:transparent;color:var(--verde-acao);border-color:var(--verde)}
.botao--linha:hover{background:var(--verde-fundo)}
.botao--mini{flex:0 0 auto;padding:.6rem 1.1rem;font-size:.88rem;background:var(--verde);color:#fff;margin-left:.75rem}
.botao--mini:hover{background:var(--verde-acao)}

/* ---------- hero: tint + foto que invade a seção seguinte ---------- */
.hero{position:relative;background:var(--verde-fundo);padding-top:clamp(2.5rem,6vw,4.5rem)}
.hero__grade{width:min(1180px,100% - var(--gut)*2);margin-inline:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}
.hero__texto{padding-block:clamp(1rem,3vw,2rem)}
.hero__h1{font-size:clamp(2rem,4vw,2.9rem);max-width:16em}
.hero__linha{font-size:clamp(1.02rem,1.2vw,1.15rem);color:var(--ink-suave);max-width:34em}
.hero__acoes{display:flex;flex-wrap:wrap;gap:.75rem;margin:.6rem 0 1rem}
.hero__nota{font-size:.885rem;color:var(--ink-suave);margin:0;max-width:32em}
.hero__foto-caixa{position:relative;margin-bottom:-9rem}
.hero__foto{width:100%;aspect-ratio:4/5;border-radius:22px;object-fit:cover;box-shadow:var(--sombra)}
.hero__foto.placa{background:repeating-linear-gradient(135deg,var(--verde-fundo),var(--verde-fundo) 12px,#e2ede2 12px,#e2ede2 24px);display:grid;place-items:center;color:var(--verde-acao);font:700 .85rem/1.3 var(--corpo);text-align:center;padding:1rem}
.hero__selo{position:absolute;left:-1.25rem;bottom:1.5rem;background:var(--verde);color:#fff;border-radius:16px;padding:.9rem 1.2rem;box-shadow:var(--sombra);max-width:12rem}
.hero__selo strong{display:block;font-family:var(--display);font-size:1.3rem;line-height:1}
.hero__selo span{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.9;margin-top:.2rem}
.hero__espaco{height:9rem}

/* ---------- seções ---------- */
.secao{padding-block:var(--secao-y)}
.secao--tinta{background:var(--verde-fundo)}
.secao--acao{background:var(--verde);color:#fff;text-align:center}
.secao--acao h2,.secao--acao p{color:#fff;margin-inline:auto}
.secao--acao .botao--linha{color:#fff;border-color:#fff}
.secao--acao .botao--linha:hover{background:rgb(255 255 255 / .12)}
.secao__cabecalho{max-width:42em;margin-bottom:2.5rem}
.secao__cabecalho.centro{margin-inline:auto;text-align:center}

/* cartões de tratamento */
.grade-cartoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.25rem}
.cartao{background:var(--papel);border:1px solid var(--linha);border-radius:18px;padding:1.6rem;box-shadow:0 1px 0 rgb(12 32 15 / .04)}
.cartao h3{font-size:1.08rem;margin-bottom:.5rem}
.cartao p{color:var(--ink-suave);font-size:.94rem;margin:0}

/* estrutura: carrossel scroll-snap horizontal */
/* full-bleed sem depender da largura calculada do pai (margem negativa
   baseada em --gut estourava 320px em 18px - achado 09/09/2026 no build
   local do Muriae, mesma familia de bug do overflow-x da rede) */
.carrossel{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.75rem;width:100vw;margin-left:calc(50% - 50vw);padding-inline:var(--gut)}
.carrossel::-webkit-scrollbar{height:8px}
.carrossel::-webkit-scrollbar-thumb{background:var(--linha);border-radius:99px}
.carrossel__item{scroll-snap-align:start;flex:0 0 min(78vw,22rem);position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--sombra)}
.carrossel__item img{aspect-ratio:4/3;object-fit:cover;width:100%}
.carrossel__item img.placa{background:repeating-linear-gradient(135deg,var(--verde-fundo),var(--verde-fundo) 12px,#e2ede2 12px,#e2ede2 24px);display:grid;place-items:center;color:var(--verde-acao);font:700 .8rem/1.3 var(--corpo);text-align:center;padding:1rem}
.carrossel__rotulo{position:absolute;left:.9rem;bottom:.9rem;background:rgb(17 34 21 / .78);color:#fff;font:600 .8rem/1 var(--corpo);padding:.5rem .85rem;border-radius:999px}
.carrossel__aviso{font-size:.85rem;color:var(--ink-suave);margin-top:1rem}

/* fotos pequenas com máscara circular recortada (shape motif desta cidade) */
.circulo-recortado{width:5.5rem;height:5.5rem;border-radius:50%;object-fit:cover;border:3px solid var(--papel);box-shadow:0 2px 10px rgb(12 32 15 / .18)}

/* diferenciais */
.lista-check{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.lista-check li{display:flex;gap:.75rem;align-items:flex-start}
.lista-check li::before{content:"";flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--verde);margin-top:.45rem}
.lista-check strong{color:var(--ink)}

/* FAQ (details nativo, sem JS) */
.faq{border-top:1px solid var(--linha)}
.faq__item{border-bottom:1px solid var(--linha)}
.faq__item summary{cursor:pointer;padding:1.1rem 0;font-weight:700;display:flex;justify-content:space-between;align-items:center;list-style:none}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-size:1.3rem;color:var(--verde-acao);transition:transform .2s ease}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item p{color:var(--ink-suave);padding-bottom:1.1rem;margin:0}

/* mapa */
.mapa__caixa{border-radius:20px;overflow:hidden;box-shadow:var(--sombra);aspect-ratio:16/10}
.mapa__caixa iframe{width:100%;height:100%;border:0}
.mapa__legenda{font-size:.9rem;color:var(--ink-suave);margin-top:.9rem}

/* zap flutuante — sempre no primeiro quadro, nunca animado, com clareza do
   hero (contentor tem espaco reservado abaixo do hero para nao cobrir nada) */
.zap{position:fixed;right:1rem;bottom:1rem;z-index:50;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:#1F8A3B;color:#fff;box-shadow:0 3px 12px rgb(12 32 15 / .28)}
.zap:hover{background:#1A7632;text-decoration:none}
.zap svg{width:26px;height:26px}

/* revelação de seção ao rolar — só transform/opacity, nunca no H1 nem no hero */
.revela{opacity:0;transform:translateY(14px);transition:opacity .35s ease-out,transform .35s ease-out}
.revela.dentro{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.revela{opacity:1;transform:none;transition:none}}

/* rodapé */
.rodape{background:var(--papel);border-top:1px solid var(--linha);padding-block:2.5rem;font-size:.9rem;color:var(--ink-suave)}
.rodape strong{color:var(--ink)}
.rodape__links{display:flex;gap:1.2rem;flex-wrap:wrap;margin:.8rem 0}
.fonte{border-top:1px solid var(--linha);margin-top:1rem;padding-top:.8rem;font-size:.82rem;color:var(--ink-suave)}

/* ---------- mobile ---------- */
@media (max-width:64rem){
  .hero__grade{grid-template-columns:1fr}
  .hero__foto-caixa{margin-bottom:0;order:-1}
  .hero__espaco{display:none}
  .hero__selo{left:1rem;bottom:-1.5rem}
}
@media (max-width:56.25rem){
  .menu__lista{display:none}
  .menu__botao{
    display:inline-flex;align-items:center;gap:.5rem;font:600 .88rem/1 var(--corpo);
    background:transparent;border:1px solid var(--linha);border-radius:999px;
    color:var(--ink);padding:.6rem 1rem;cursor:pointer;margin-left:auto
  }
  .menu__barras{width:15px;height:9px;border-top:2px solid var(--verde);border-bottom:2px solid var(--verde)}
  .menu__lista{position:absolute;left:0;right:0;top:100%;background:var(--papel);border-bottom:1px solid var(--linha);flex-direction:column;gap:0;padding:.4rem var(--gut) .9rem}
  .menu__lista.aberto{display:flex}
  .menu__lista li{border-top:1px solid var(--linha)}
  .menu__lista a{display:block;padding:.8rem 0}
  .topo__interno{position:relative}
  .hero__foto-caixa{margin-top:1.5rem}
  /* o zap fixo (56px, right/bottom:1rem) pode cobrir o final do hero em
     telas estreitas — reserva de espaco extra depois do bloco de acoes,
     licao aprendida no Araxa (09/09/2026): nunca deixar a nota final do
     hero terminar dentro da faixa do botao flutuante. */
  .hero__nota{margin-bottom:4.5rem}
}
@media (max-width:28rem){
  .marca__texto{display:none}
  .botao--mini{margin-left:auto}
}
