:root{
  --verde:#3F6B3C; --verde-escuro:#2E5230; --petroleo:#3A8CA6; --laranja:#E8641C; --laranja-hover:#C9530F;
  --texto:#23282B; --texto-suave:#55605F; --fundo:#F6F9F8; --superficie:#FFFFFF; --linha:#DCE5E1;
  --titulo:"Bricolage Grotesque", "Trebuchet MS", system-ui, sans-serif;
  --corpo:"Atkinson Hyperlegible", Verdana, system-ui, sans-serif;
  --largura:1120px;
}
:root{color-scheme:only light}
html,body{background:#F6F9F8}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--fundo);color:var(--texto);font-family:var(--corpo);font-size:1.125rem;line-height:1.6}
img{max-width:100%;display:block}
a{color:var(--petroleo)}
:focus-visible{outline:3px solid var(--laranja);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--titulo);line-height:1.1;margin:0;color:var(--verde)}
.container{max-width:var(--largura);margin:0 auto;padding:0 1.5rem}
.pular{position:absolute;left:-999px}.pular:focus{left:1rem;top:1rem;background:var(--superficie);padding:.5rem 1rem;z-index:99}

/* Cabeçalho */
.topo{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--fundo) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--linha)}
.topo .container{display:flex;align-items:center;justify-content:space-between;height:76px;gap:1rem}
.marca{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--texto)}
.marca svg{width:44px;height:44px}
.marca span{font-family:var(--titulo);font-weight:700;font-size:1.2rem;line-height:1}
.marca small{display:block;font-family:var(--corpo);font-weight:400;font-size:.8rem;color:var(--texto-suave)}
.menu{display:flex;align-items:center;gap:1.75rem}
.menu a{text-decoration:none;color:var(--texto);font-weight:700;font-size:1rem}
.menu a:hover{color:var(--verde)}
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--laranja);color:#fff!important;text-decoration:none;font-weight:700;padding:.8rem 1.4rem;border-radius:999px;transition:background .2s}
.btn:hover{background:var(--laranja-hover)}
.btn svg{width:20px;height:20px}
.abrir-menu{display:none;background:none;border:0;color:var(--texto);padding:.5rem;cursor:pointer}
.abrir-menu svg{width:28px;height:28px}

/* Hero */
.hero{padding:4.5rem 0 5rem}
.hero .container{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:3rem}
.hero h1{font-size:clamp(2.6rem,5.5vw,4.4rem);font-weight:700;letter-spacing:-.02em;max-width:12ch}
.hero p{font-size:1.25rem;color:var(--texto-suave);max-width:36ch;margin:1.25rem 0 2rem}
.hero .acoes{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem}
.hero .fone{color:var(--texto);font-weight:700;text-decoration:none}
.anel{position:relative;aspect-ratio:1;max-width:460px;width:100%;justify-self:center}
.anel svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.anel .traco{fill:none;stroke-linecap:round}
.anel .t1{stroke:var(--verde);stroke-width:10;stroke-dasharray:1000;stroke-dashoffset:1000;animation:desenha 1.8s ease-out .2s forwards}
.anel .t2{stroke:var(--petroleo);stroke-width:5;stroke-dasharray:1000;stroke-dashoffset:1000;animation:desenha 1.8s ease-out .6s forwards}
.anel .t3{stroke:var(--laranja);stroke-width:5;stroke-dasharray:1000;stroke-dashoffset:1000;animation:desenha 1.4s ease-out 1s forwards}
@keyframes desenha{to{stroke-dashoffset:0}}
.foto{position:absolute;inset:13%;border-radius:50%;overflow:hidden;box-shadow:0 0 0 6px var(--fundo);background:linear-gradient(160deg,#cfe0d2,#a9c9d4);display:grid;place-items:center;color:#2E5230;text-align:center;font-size:.95rem}

/* Serviços */
section{scroll-margin-top:90px}
.servicos{background:var(--superficie);padding:5rem 0;border-block:1px solid var(--linha)}
.cabeca{max-width:44rem;margin-bottom:3rem}
.cabeca h2{font-size:clamp(2rem,3.5vw,2.8rem)}
.cabeca p{color:var(--texto-suave);margin:.75rem 0 0}
.lista{display:grid;grid-template-columns:1fr 1fr;gap:0 4rem;margin:0;padding:0;list-style:none}
.lista li{padding:1.75rem 0;border-top:2px solid var(--linha)}
.lista h3{font-size:1.5rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.6rem}
.lista h3::before{content:"";width:14px;height:14px;border-radius:50%;border:3px solid var(--verde);flex:none}
.lista li.agua h3::before{border-color:var(--petroleo)}
.lista p{margin:0;color:var(--texto-suave);max-width:48ch}
.areas{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 0;padding:0;list-style:none}
.areas li{border:0;padding:.25rem .75rem;background:color-mix(in srgb,var(--verde) 12%,transparent);color:var(--texto);border-radius:999px;font-size:.9rem}

/* Quem somos */
.sobre{padding:5.5rem 0}
.sobre .container{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:start}
.fachada{width:100%;object-fit:cover;object-position:70% center;aspect-ratio:4/5;border-radius:24px 24px 240px 24px;background:linear-gradient(200deg,#d9e6dc,#b8d3db);display:grid;place-items:center;color:#2E5230;font-size:.95rem}
.sobre h2{font-size:clamp(2rem,3.5vw,2.8rem);margin-bottom:1rem}
.sobre .texto p{max-width:52ch}
.equipe{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem}
.pessoa{text-align:center;text-decoration:none;color:inherit}
.pessoa img.rosto{width:100%;height:auto;object-fit:cover;object-position:center 20%}
.pessoa:hover h3{color:var(--verde)}
.pessoa .rosto{aspect-ratio:1;border-radius:50%;background:color-mix(in srgb,var(--petroleo) 18%,var(--superficie));border:4px solid var(--superficie);box-shadow:0 0 0 2px var(--verde);display:grid;place-items:center;font-family:var(--titulo);font-size:1.8rem;color:var(--verde);margin:0 auto .9rem;max-width:150px}
.pessoa h3{font-size:1.15rem;color:var(--texto)}
.pessoa p{font-size:.95rem;color:var(--texto-suave);margin:.35rem 0 0;line-height:1.45}
.link-mais{display:inline-block;margin-top:2rem;font-weight:700}

/* Contato */
.contato{background:var(--verde-escuro);color:#EAF2EC;padding:5rem 0 2rem}
.contato h2{color:#fff;font-size:clamp(2rem,3.5vw,2.8rem)}
.contato .intro{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.15)}
.contato .grade{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:3rem 0}
.contato h3{color:#fff;font-size:1.1rem;margin-bottom:.6rem}
.contato p{margin:0}
.contato a{color:#fff}
.rodape{font-size:.9rem;color:rgba(234,242,236,.7);padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.15)}

/* WhatsApp fixo */
.whats-fixo{position:fixed;right:1.25rem;bottom:1.25rem;z-index:30;width:60px;height:60px;border-radius:50%;background:var(--laranja);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.whats-fixo:hover{background:var(--laranja-hover)}
.whats-fixo svg{width:30px;height:30px}


/* Para quem é */
.paraquem{padding:1rem 0 5rem}
.situacoes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:0;padding:0;list-style:none}
.situacoes li{display:flex;gap:1rem;align-items:flex-start;padding:1.4rem;background:var(--superficie);border:1px solid var(--linha);border-radius:18px}
.situacoes li:nth-child(2){border-radius:18px 18px 60px 18px}
.situacoes li:nth-child(4){border-radius:18px 60px 18px 18px}
.situacoes svg{width:52px;height:52px;flex:none}
.situacoes h3{font-size:1.15rem;color:var(--texto);margin-bottom:.25rem}
.situacoes p{margin:0;font-size:1rem;color:var(--texto-suave);line-height:1.45}
/* Como funciona */
.passos-sec{padding:5rem 0}
.passos{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:0;padding:0;list-style:none;counter-reset:p;position:relative}
.passos::before{content:"";position:absolute;top:28px;left:28px;right:12%;height:3px;background:repeating-linear-gradient(90deg,var(--verde) 0 10px,transparent 10px 18px);opacity:.5}
.passos li{position:relative;counter-increment:p}
.passos li::before{content:counter(p);display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--fundo);border:3px solid var(--verde);font-family:var(--titulo);font-weight:700;font-size:1.4rem;color:var(--verde);margin-bottom:1rem;position:relative}
.passos li:last-child::before{background:var(--laranja);border-color:var(--laranja);color:#fff}
.passos h3{font-size:1.2rem;color:var(--texto);margin-bottom:.35rem}
.passos p{margin:0;font-size:1rem;color:var(--texto-suave)}
/* Domiciliar */
.domiciliar{background:var(--petroleo);color:#fff;overflow:hidden}
.domiciliar .container{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:3rem;padding-block:4rem}
.domiciliar h2{color:#fff;font-size:clamp(1.9rem,3.2vw,2.6rem);margin-bottom:1rem}
.domiciliar p{max-width:46ch;margin:0 0 1.75rem;color:#EAF6FA}
.domiciliar svg{width:100%;max-width:320px;justify-self:center}
.btn-claro{background:#fff;color:#1F5A6C!important}
.btn-claro:hover{background:#EAF6FA}
/* Dúvidas */
.duvidas{padding:5rem 0}
.duvidas .container{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem}
details{border-top:2px solid var(--linha);padding:1.1rem 0}
details:last-child{border-bottom:2px solid var(--linha)}
summary{cursor:pointer;font-family:var(--titulo);font-weight:700;font-size:1.2rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--verde);font-size:1.5rem;line-height:1;transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{margin:.75rem 0 0;color:var(--texto-suave);max-width:60ch}
@media (max-width:900px){
  .situacoes{grid-template-columns:1fr 1fr}
  .passos{grid-template-columns:1fr 1fr;row-gap:2.5rem}.passos::before{display:none}
  .domiciliar .container,.duvidas .container{grid-template-columns:1fr}
  .domiciliar svg{max-width:220px;order:-1}
}
@media (max-width:560px){.situacoes{grid-template-columns:1fr}}


/* Estrutura */
.estrutura{padding:5rem 0}
.galeria{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:.9rem;grid-auto-flow:dense}
.g-item{margin:0;position:relative;border-radius:16px;overflow:hidden;background:var(--linha)}
.g-item button{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.g-item button:focus-visible{outline:3px solid var(--laranja);outline-offset:-3px}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.g-item:hover img{transform:scale(1.04)}
.g-item figcaption{position:absolute;left:.7rem;bottom:.7rem;background:rgba(20,30,28,.72);color:#fff;font-size:.88rem;font-weight:700;padding:.3rem .75rem;border-radius:999px;pointer-events:none}
.g-grande{grid-column:span 2;grid-row:span 2;border-radius:16px 16px 16px 120px}
.g-alta{grid-row:span 2}
.g-larga{grid-column:span 2}
.visor{border:0;padding:0;background:transparent;max-width:min(92vw,1000px)}
.visor::backdrop{background:rgba(10,15,14,.88)}
.visor img{width:100%;max-height:80vh;object-fit:contain;border-radius:12px}
.visor p{color:#fff;text-align:center;margin:.75rem 0 0;font-weight:700}
.visor .fechar{position:fixed;top:1rem;right:1rem;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:#23282B;font-size:1.6rem;cursor:pointer}
.visor .nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.9);font-size:1.5rem;cursor:pointer}
.visor .ant{left:1rem}.visor .prox{right:1rem}
@media (max-width:900px){.galeria{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.g-grande{border-radius:16px 16px 16px 70px}}


/* Corpo clínico */
.corpo{background:var(--superficie);padding:5rem 0;border-block:1px solid var(--linha)}
.profs{display:grid;gap:1.5rem}
.prof{display:grid;grid-template-columns:170px 1fr;gap:2rem;align-items:center;padding:1.75rem;border:1px solid var(--linha);border-radius:24px;background:var(--fundo)}
.prof img{width:170px;height:170px;border-radius:50%;object-fit:cover;object-position:center 20%;border:5px solid var(--superficie);box-shadow:0 0 0 3px var(--verde)}
.prof:nth-child(2) img{box-shadow:0 0 0 3px var(--petroleo)}
.prof:nth-child(3) img{box-shadow:0 0 0 3px var(--laranja)}
.prof h3{font-size:1.5rem;color:var(--texto)}
.prof p{margin:.3rem 0 1rem;color:var(--texto-suave)}
.prof h4{margin:0;font-size:.95rem;color:var(--verde)}
.prof .areas{margin-top:.5rem}
@media (max-width:640px){.prof{grid-template-columns:1fr;text-align:center;justify-items:center}.prof .areas{justify-content:center}.prof img{width:140px;height:140px}}

/* Responsivo */
@media (max-width:900px){
  .abrir-menu{display:block}
  .menu{position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--superficie);border-bottom:1px solid var(--linha);display:none;padding:.5rem 1.5rem 1.25rem}
  .menu.aberto{display:flex}
  .menu a{padding:.9rem 0;border-bottom:1px solid var(--linha);font-size:1.1rem}
  .menu .btn{justify-content:center;margin-top:1rem;border:0}
  .hero{padding:2.5rem 0 3.5rem}
  .hero .container,.sobre .container{grid-template-columns:1fr;gap:2.5rem}
  .anel{max-width:340px;order:-1}
  .lista{grid-template-columns:1fr}
  .fachada{aspect-ratio:16/10;border-radius:24px 24px 120px 24px}
  .contato .grade{grid-template-columns:1fr}
}
@media (max-width:520px){
  .equipe{grid-template-columns:1fr 1fr}
  .marca small{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .anel .traco{animation:none;stroke-dashoffset:0}
}
