:root{
  --ink:#16232c;
  --steel:#2c5470;
  --steel-deep:#1b3244;
  --accent:#0d6f92;
  --card-blue:#4d7ea0;
  --band-light:#eaf2f6;
  --band-lighter:#f4f9fb;
  --paper:#fbfaf7;
  --text-muted:#55606a;
  --line:#e1e8ec;
  --shadow:0 20px 45px rgba(20,40,55,.14);
  --radius:6px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:700}
p{margin:0 0 1em}
.container{max-width:1180px;margin:0 auto;padding:0 24px}
.ic{width:15px;height:15px;fill:currentColor;vertical-align:-2px;margin-right:5px}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transition:opacity .7s ease, transform .7s ease}
.reveal[data-reveal="fade-up"]{transform:translateY(28px)}
.reveal[data-reveal="fade-right"]{transform:translateX(-24px)}
.reveal[data-reveal="zoom-in"]{transform:scale(.92)}
.reveal.is-visible{opacity:1;transform:none}

/* ---------- pulse mark (assinatura visual, clonado da versão corrigida) ---------- */
.pulse-mark{display:inline-flex;width:26px;height:9px;margin-right:8px;vertical-align:middle}
.pulse-mark svg{width:100%;height:100%;overflow:visible}
.pulse-mark path{
  fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:70;stroke-dashoffset:70;transition:stroke-dashoffset 1.1s ease;
}
.hero-kicker .pulse-mark path,
.reveal.is-visible .pulse-mark path{stroke-dashoffset:0}
.pulse-mark.live path{animation:pulse-travel 2.6s ease-in-out infinite}
@keyframes pulse-travel{
  0%,100%{stroke-dashoffset:0;opacity:1}
  45%{stroke-dashoffset:0;opacity:1}
  50%{opacity:.35}
  55%{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .pulse-mark path{transition:none;stroke-dashoffset:0}
  .pulse-mark.live path{animation:none}
}

/* ================= HEADER ================= */
.site-header{position:sticky;top:0;z-index:50}
.header-info{background:var(--steel-deep);color:#dce8ee}
.header-info-inner{
  max-width:1180px;margin:0 auto;padding:9px 24px;
  display:flex;align-items:center;gap:28px;flex-wrap:wrap;
  font-size:12.5px;letter-spacing:.01em;
}
.info-item a{color:#dce8ee}
.info-item a:hover{color:#fff}
.info-item.social{margin-left:auto;display:flex;gap:10px}
.info-item.social a{opacity:.9}
.info-item.social a:hover{opacity:1}

.navbar{background:#fff;border-bottom:1px solid var(--line)}
.navbar-inner{
  max-width:1180px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.navbar-brand{display:flex;flex-direction:column;line-height:1.25}
.brand-name{font-size:19px;font-weight:400;color:var(--ink)}
.brand-name b{font-weight:700;color:var(--steel-deep)}
.brand-role{font-size:12.5px;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.brand-crm{font-size:11px;color:var(--text-muted)}

.navbar-nav{list-style:none;display:flex;align-items:center;gap:26px;margin:0;padding:0}
.nav-link{font-size:14.5px;font-weight:600;color:var(--ink);padding:4px 0;border-bottom:2px solid transparent;transition:border-color .2s,color .2s}
.nav-link:hover{color:var(--accent);border-color:var(--accent)}
.nav-cta{
  background:var(--steel);color:#fff;padding:10px 20px;border-radius:999px;
  font-size:13.5px;font-weight:700;letter-spacing:.02em;
  transition:background .2s,transform .2s;white-space:nowrap;
}
.nav-cta:hover{background:var(--accent);transform:translateY(-1px)}

.navbar-toggler{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:8px;cursor:pointer}
.navbar-toggler span{width:24px;height:2px;background:var(--ink);display:block}

.mobile-hero{display:none}

/* ================= HERO ================= */
#home{position:relative}
.parallax{
  position:relative;height:680px;
  background-position:center 30%;background-repeat:no-repeat;background-size:cover;
  background-attachment:fixed;
}
@media only screen and (max-device-width:1024px){.parallax{background-attachment:scroll}}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,30,40,.15) 0%,rgba(15,30,40,.35) 55%,rgba(12,24,32,.72) 100%);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 24px 70px;max-width:1180px;margin:0 auto;left:0;right:0;
}
.hero-kicker{
  color:#fff;font-size:14.5px;font-weight:600;letter-spacing:.03em;
  display:flex;align-items:center;margin-bottom:18px;
}
.hero-cta{width:fit-content}

/* Botão CTA "shiny" — clonado da versão hero-animada-versao-corrigida
   (mesma técnica de brilho em conic-gradient), na paleta azul desta versão. */
@property --gradient-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
@property --gradient-angle-offset{syntax:"<angle>";initial-value:0deg;inherits:false}
@property --gradient-percent{syntax:"<percentage>";initial-value:5%;inherits:false}
@property --gradient-shine{syntax:"<color>";initial-value:#eaf2f6;inherits:false}
.cta-shiny{
  --shiny-bg:var(--steel);
  --shiny-bg-subtle:var(--ink);
  --shiny-fg:#fff;
  --shiny-highlight:#5fb8dd;
  --shiny-highlight-subtle:#cdeefa;
  --duration:3s;
  isolation:isolate;position:relative;display:inline-flex;align-items:center;
  overflow:hidden;cursor:pointer;outline-offset:4px;
  padding:15px 28px;font-size:15px;font-weight:700;letter-spacing:.01em;
  text-decoration:none;border:1px solid transparent;border-radius:999px;
  color:var(--shiny-fg);
  background:linear-gradient(var(--shiny-bg),var(--shiny-bg)) padding-box,
    conic-gradient(
      from calc(var(--gradient-angle) - var(--gradient-angle-offset)),
      transparent,
      var(--shiny-highlight) var(--gradient-percent),
      var(--gradient-shine) calc(var(--gradient-percent) * 2),
      var(--shiny-highlight) calc(var(--gradient-percent) * 3),
      transparent calc(var(--gradient-percent) * 4)
    ) border-box;
  box-shadow:inset 0 0 0 1px var(--shiny-bg-subtle), var(--shadow);
  transition:700ms cubic-bezier(.25,1,.5,1);
  transition-property:--gradient-angle-offset,--gradient-percent,--gradient-shine,transform;
}
.cta-shiny::before,.cta-shiny::after,.cta-shiny span::before{
  content:"";pointer-events:none;position:absolute;
  inset-inline-start:50%;inset-block-start:50%;translate:-50% -50%;z-index:-1;
}
.cta-shiny:active{translate:0 1px}
.cta-shiny::before{
  --size:calc(100% - 6px);--position:2px;--space:calc(var(--position) * 2);
  width:var(--size);height:var(--size);
  background:radial-gradient(circle at var(--position) var(--position), var(--shiny-fg) calc(var(--position) / 4), transparent 0) padding-box;
  background-size:var(--space) var(--space);background-repeat:space;
  mask-image:conic-gradient(from calc(var(--gradient-angle) + 45deg), black, transparent 10% 90%, black);
  border-radius:inherit;opacity:.22;z-index:-1;
}
.cta-shiny::after{
  width:100%;aspect-ratio:1;
  background:linear-gradient(-50deg,transparent,var(--shiny-highlight),transparent);
  mask-image:radial-gradient(circle at bottom, transparent 40%, black);
  opacity:.5;
}
.cta-shiny span{z-index:1;display:inline-flex;align-items:center;gap:10px}
.cta-shiny span::before{
  --size:calc(100% + 1rem);width:var(--size);height:var(--size);
  box-shadow:inset 0 -1ex 2rem 4px var(--shiny-highlight);
  opacity:0;transition:opacity 700ms cubic-bezier(.25,1,.5,1);
  animation:cta-breathe 4.5s linear infinite;
}
.cta-shiny,.cta-shiny::before,.cta-shiny::after{
  animation:gradient-angle-spin var(--duration) linear infinite,
    gradient-angle-spin calc(var(--duration) / 0.4) linear infinite reverse paused;
  animation-composition:add;
}
.cta-shiny:is(:hover,:focus-visible){
  --gradient-percent:22%;--gradient-angle-offset:95deg;--gradient-shine:var(--shiny-highlight-subtle);
}
.cta-shiny:is(:hover,:focus-visible),.cta-shiny:is(:hover,:focus-visible)::before,.cta-shiny:is(:hover,:focus-visible)::after{
  animation-play-state:running;
}
.cta-shiny:is(:hover,:focus-visible) span::before{opacity:1}
@keyframes gradient-angle-spin{to{--gradient-angle:360deg}}
@keyframes cta-breathe{from,to{scale:1}50%{scale:1.2}}
.magnetic{will-change:transform}
@media (prefers-reduced-motion:reduce){
  .cta-shiny,.cta-shiny::before,.cta-shiny::after,.cta-shiny span::before{animation:none}
}

.cta-row{display:flex;justify-content:center;margin-top:40px}

.whatsapp-pulse{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}
.whatsapp-pulse svg{width:16px;height:16px;fill:#25d366;position:relative;z-index:2}
.whatsapp-pulse-ring{
  position:absolute;inset:-3px;border-radius:50%;background:#25d366;
  animation:whatsapp-ping 1.8s cubic-bezier(0,0,.3,1) infinite;
}
@keyframes whatsapp-ping{
  0%{transform:scale(.55);opacity:.55}
  70%{transform:scale(1.9);opacity:0}
  100%{transform:scale(1.9);opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .whatsapp-pulse-ring{animation:none;opacity:0}
}

/* ================= SOBRE (credential cards over hero) ================= */
#sobre{margin:-90px 0 90px;position:relative;z-index:2}
#sobre h2{
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;margin-bottom:26px;text-align:center;
}
#sobre .row{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.item-about{
  background:var(--card-blue);color:#fff;border-radius:var(--radius);
  padding:34px 28px 30px;text-align:center;box-shadow:var(--shadow);
}
.item-about .box-img{width:46px;height:46px;margin:0 auto 18px}
.item-about .box-img svg{width:100%;height:100%;fill:#fff}
.item-about h3{font-size:17px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}
.item-about p{font-size:14.5px;line-height:1.65;color:rgba(255,255,255,.92);margin:0}

/* ================= ESPECIALIDADE ================= */
#especialidade{background:var(--band-light);padding:70px 0 0}
#especialidade > .container > h2{
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel);margin-bottom:0;padding-bottom:34px;
}
#especialidade .row.no-gutters{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.col-image{min-height:420px;background-size:cover;background-position:center}
.col-image img{width:100%;height:100%;object-fit:cover;min-height:420px}
.col-text{padding:56px 60px 56px 50px;display:flex;flex-direction:column;justify-content:center}
.col-text p{color:var(--text-muted);font-size:15.5px;line-height:1.85}
.col-text p:last-child{margin-bottom:0;color:var(--steel-deep);font-weight:600}

/* ================= PROCEDIMENTOS ================= */
#procedimentos{padding:90px 0}
#procedimentos h2{
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel);margin-bottom:36px;text-align:center;
}
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 24px}
.item p{margin:14px 0 0;font-size:14px;font-weight:600;text-align:center;color:var(--ink)}
.box-item{
  display:block;width:100%;overflow:hidden;border-radius:var(--radius);
  border:0;padding:0;cursor:pointer;background:var(--band-light);
  aspect-ratio:1/1;position:relative;box-shadow:0 8px 22px rgba(20,40,55,.08);
}
.card-img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.box-item:hover .card-img{transform:scale(1.12)}
.icon-item{display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--steel) 0%,var(--steel-deep) 100%)}
.icon-plate{width:46%;height:46%;display:flex;align-items:center;justify-content:center;transition:transform .4s ease}
.box-item:hover .icon-plate{transform:scale(1.12)}
.icon-plate svg{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.icon-gauge .needle{transform-origin:12px 16px;animation:needle-sweep 3s ease-in-out infinite}
@keyframes needle-sweep{0%,100%{transform:rotate(-26deg)}50%{transform:rotate(26deg)}}
.icon-orbit .orbit-dot{fill:#fff;stroke:none;transform-origin:12px 12px;animation:orbit-spin 4s linear infinite}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
.icon-flow .flow{stroke-dasharray:4 5;animation:flow-move 2.2s linear infinite}
@keyframes flow-move{to{stroke-dashoffset:-18}}
.icon-radar .ping{fill:none;stroke:#fff;stroke-width:1;transform-origin:12px 11px;animation:radar-ping 2.4s ease-out infinite}
.icon-radar .dot{fill:#fff;stroke:none}
@keyframes radar-ping{0%{transform:scale(1);opacity:.9}100%{transform:scale(5);opacity:0}}
.icon-cell .cell{fill:#fff;opacity:.85;mix-blend-mode:screen;animation:cell-pulse 3s ease-in-out infinite}
.icon-cell .cell-b{animation-delay:.6s}
@keyframes cell-pulse{0%,100%{opacity:.65}50%{opacity:1}}

/* ================= AVALIAÇÕES ================= */
#avaliacoes{background:var(--band-lighter);padding:90px 0}
#avaliacoes .section-label{
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel);margin-bottom:14px;
}
#avaliacoes h2{
  font-size:clamp(22px,3.2vw,32px);font-weight:700;letter-spacing:normal;text-transform:none;
  color:var(--ink);text-align:center;margin-bottom:36px;
}
.reviews-score{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:44px;font-size:15px;color:var(--text-muted)}
.google-mark{width:20px;height:20px}
.google-mark svg{width:100%;height:100%}
.stars{color:#f5a623;letter-spacing:2px}
.reviews-score strong{color:var(--ink);font-size:17px}
.reviews-source{font-size:13.5px}
#avaliacoes .row{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post{background:#fff;border-radius:var(--radius);padding:30px 26px;box-shadow:0 10px 26px rgba(20,40,55,.08)}
.post blockquote{margin:14px 0 16px;font-size:14.5px;line-height:1.7;color:var(--ink);font-style:normal}
.post cite{font-size:13px;font-weight:700;color:var(--steel);font-style:normal}
.reviews-note{text-align:center;font-size:13px;color:var(--text-muted);margin:34px 0 0}

/* ================= CONTATO ================= */
#contato{padding:90px 0}
#contato .section-label{
  display:flex;align-items:center;
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel);margin-bottom:14px;
}
#contato h2{
  font-size:clamp(22px,3.2vw,32px);font-weight:700;letter-spacing:normal;text-transform:none;
  color:var(--ink);margin-bottom:36px;max-width:640px;
}
.location-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;margin-bottom:40px}
.location-photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.location-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.location-info dl{margin:0 0 28px;display:flex;flex-direction:column;gap:18px}
.location-info dt{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);margin-bottom:4px}
.location-info dd{margin:0;color:var(--text-muted);font-size:15px;line-height:1.6}
.location-info dd a{text-decoration:underline;text-underline-offset:3px}
.location-info dd a:hover{color:var(--accent)}
.location-actions{display:flex;flex-wrap:wrap;gap:14px}
.map-btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 22px;
  border:1px solid var(--steel);color:var(--steel);font-weight:700;font-size:14px;
  border-radius:999px;transition:background .2s,color .2s;
}
.map-btn:hover{background:var(--steel);color:#fff}
.location-map{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);line-height:0}
.location-map iframe{display:block;width:100%}

/* ================= FAQ ================= */
#perguntas{background:var(--band-light);padding:90px 0}
#perguntas h2{
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel);margin-bottom:36px;
}
.faq-list{max-width:760px;margin:0 auto}
.faq-item{border-top:1px solid var(--line);padding:22px 0}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item summary{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  cursor:pointer;list-style:none;font-size:15.5px;font-weight:600;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";flex:none;font-size:22px;line-height:1;color:var(--steel);
  transition:transform .2s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{margin:14px 0 0;color:var(--text-muted);line-height:1.65;font-size:14.5px}

/* ================= RETURN TO TOP ================= */
#return-to-top{
  position:fixed;bottom:24px;right:24px;width:48px;height:48px;
  background:var(--steel-deep);border-radius:50%;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .25s,transform .25s;
  z-index:40;box-shadow:var(--shadow);
}
#return-to-top.is-visible{opacity:1;pointer-events:auto;transform:none}
#return-to-top svg{width:20px;height:20px;fill:#fff}

/* ================= MODAL ================= */
.modal-procedimento{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.modal-procedimento[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,25,33,.6)}
.modal-panel{
  position:relative;background:#fff;border-radius:10px;max-width:480px;width:100%;
  padding:32px 30px;box-shadow:0 30px 70px rgba(0,0,0,.3);
}
.modal-media{width:100%;border-radius:6px;overflow:hidden;margin-bottom:20px;background:var(--band-light);aspect-ratio:16/10}
.modal-media img{width:100%;height:100%;object-fit:cover}
.modal-media.icon-only{display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--steel),var(--steel-deep))}
.modal-media.icon-only svg{width:35%;height:35%;fill:none;stroke:#fff;stroke-width:1.4}
.modal-panel h3{font-size:20px;margin-bottom:10px;color:var(--ink)}
.modal-panel p{color:var(--text-muted);font-size:15px;line-height:1.7}
.modal-cta{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:var(--accent);font-weight:700;font-size:14.5px}
.modal-close{
  position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;
  border:0;background:var(--band-light);font-size:20px;line-height:1;cursor:pointer;color:var(--ink);
}

/* ================= FOOTER ================= */
footer{background:var(--steel-deep);color:#b9c9d2;padding:26px 0}
.footer-inner{display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between;font-size:12.5px}
.footer-inner p{margin:0}

/* ================= RESPONSIVE ================= */
@media (max-width:980px){
  .navbar-nav{
    position:fixed;top:0;right:0;height:100vh;width:280px;background:#fff;
    flex-direction:column;align-items:flex-start;gap:0;padding:90px 30px 30px;
    box-shadow:-10px 0 30px rgba(0,0,0,.15);
    transform:translateX(100%);transition:transform .3s ease;z-index:60;
  }
  .navbar-nav.is-open{transform:translateX(0)}
  .navbar-nav li{width:100%;padding:12px 0;border-bottom:1px solid var(--line)}
  .nav-cta{display:inline-block;margin-top:16px}
  .navbar-toggler{display:flex}
  .header-info-inner{display:none}
  #especialidade .row.no-gutters{grid-template-columns:1fr}
  .col-image,.col-image img{min-height:280px}
  .col-text{padding:40px 24px}
  #sobre .row{grid-template-columns:1fr}
  .proc-grid{grid-template-columns:repeat(2,1fr)}
  #avaliacoes .row{grid-template-columns:1fr}
  .location-grid{grid-template-columns:1fr;gap:28px}
  .parallax{display:none}
  .mobile-hero{display:block;position:relative}
  .mobile-hero img{width:100%;height:78vw;min-height:320px;object-fit:cover}
  .hero-overlay{position:absolute;background:linear-gradient(180deg,rgba(15,30,40,.1) 0%,rgba(12,24,32,.8) 100%);padding-bottom:34px}
  #sobre{margin-top:-30px}
  #sobre h2{margin-top:16px}
}
@media (max-width:560px){
  .proc-grid{grid-template-columns:repeat(2,1fr)}
  .navbar-inner{padding:12px 18px}
  .brand-name{font-size:16px}
  .container{padding:0 18px}
}
