
:root{
  --sand:#F5F3F1; --cream:#EBE7E3; --shell:#EFEBE7; --surface:#FFFFFF;
  --ink:#1A1820; --mist:#6B6770; --hair:#E3DED8; --hair2:#CEC7BF;
  --graph1:#3A3742; --graph2:#26232C; --graph3:#121017;
  --indigo:#0E1A56; --indigo2:#25336F;
  --copper:#D2794F; --copper1:#E9A883; --copper2:#9C5330;
}
*{ -webkit-font-smoothing:antialiased; }
html{ scroll-behavior:smooth; }
body{ background:var(--sand); color:var(--ink); font-family:'Inter',ui-sans-serif,system-ui; overflow-x:hidden; }
.h-display{ font-family:'Fraunces',ui-serif,Georgia,serif; font-weight:300; letter-spacing:-.01em; }
.eyebrow{ font-size:11px; font-weight:600; letter-spacing:.34em; text-transform:uppercase; color:var(--copper2); }
.text-grad{ background:linear-gradient(135deg,#E9A883 0%,#D2794F 52%,#B4633C 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.bg-grad{ background:linear-gradient(135deg,#E9A883 0%,#D2794F 52%,#B4633C 100%); }

.chip{ display:inline-flex; align-items:center; gap:9px; padding:9px 18px; border-radius:999px;
  background:#fff; border:1px solid var(--hair); font-size:11px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink); }
.chip-dark{ display:inline-flex; align-items:center; gap:9px; padding:9px 18px; border-radius:999px;
  background:rgba(255,255,255,.07); border:1px solid rgba(233,168,131,.34); font-size:11px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--copper1); }
.chip-dot{ width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.tag{ display:inline-block; padding:5px 12px; border-radius:999px; background:rgba(210,121,79,.13);
  color:var(--copper2); font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }

.btn-brand{ display:inline-flex; align-items:center; justify-content:center; gap:12px;
  padding:19px 40px; border-radius:999px; border:none; cursor:pointer; text-decoration:none;
  background:linear-gradient(135deg,var(--indigo2) 0%,var(--indigo) 58%,#080F33 100%);
  color:#fff; font-family:inherit; box-shadow:0 14px 34px -14px rgba(14,26,86,.62);
  transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, filter .3s; }
.btn-brand:hover{ transform:translateY(-2px); box-shadow:0 20px 44px -14px rgba(14,26,86,.7); filter:brightness(1.14); }
.btn-brand-label{ display:flex; flex-direction:column; align-items:center; line-height:1.15; }
.btn-brand-label b{ font-size:15px; font-weight:500; letter-spacing:.06em; }
.btn-brand-sub{ font-size:9.5px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--copper1); margin-top:4px; }
.btn-light{ background:#fff; color:var(--indigo); box-shadow:0 16px 38px -16px rgba(0,0,0,.6); }
.btn-light:hover{ filter:none; background:#fff; }
.btn-light .btn-brand-sub{ color:var(--copper2); }
.btn-ghost{ display:inline-flex; align-items:center; gap:10px; padding:16px 30px; border-radius:999px;
  border:1px solid var(--hair2); background:transparent; color:var(--ink); cursor:pointer;
  font-family:inherit; font-size:13px; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; transition:border-color .3s,color .3s,background .3s; }
.btn-ghost:hover{ border-color:var(--copper); color:var(--copper2); }
.btn-ghost-dark{ border-color:rgba(255,255,255,.26); color:rgba(255,255,255,.92); }
.btn-ghost-dark:hover{ border-color:var(--copper1); color:var(--copper1); background:rgba(255,255,255,.04); }

.rv{ opacity:0; transform:translateY(24px); transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1); }
.rv.in{ opacity:1; transform:none; }
.rv-d1{ transition-delay:.09s } .rv-d2{ transition-delay:.18s } .rv-d3{ transition-delay:.27s }
.rv-d4{ transition-delay:.36s } .rv-d5{ transition-delay:.45s }


/* Nav: logo branca sobre a hero escura, logo colorida quando o nav ganha fundo claro */
#nav{ position:fixed; top:0; left:0; right:0; z-index:80; transition:background .4s, box-shadow .4s; }
#nav.nav-scrolled{ background:rgba(245,243,241,.9); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--hair); }
.nav-brand{ position:relative; display:block; height:44px; width:166px; }
.nav-brand img{ position:absolute; inset:0; height:100%; width:auto; transition:opacity .4s; }
.nav-logo-light{ opacity:1; }
.nav-logo-dark{ opacity:0; }
#nav.nav-scrolled .nav-logo-light{ opacity:0; }
#nav.nav-scrolled .nav-logo-dark{ opacity:1; }
@media (max-width:640px){ .nav-brand{ height:34px; width:128px; } }
/* CTA do nav: so aparece depois que a hero sai da tela */
.nav-cta{ opacity:0; transform:translateY(-10px); pointer-events:none; visibility:hidden;
  transition:opacity .45s ease, transform .45s cubic-bezier(.2,.8,.2,1), visibility 0s linear .45s; }
#nav.nav-past-hero .nav-cta{ opacity:1; transform:none; pointer-events:auto; visibility:visible;
  transition:opacity .45s ease, transform .45s cubic-bezier(.2,.8,.2,1), visibility 0s; }

/* Fusao da hero: repinta o fundo da secao por cima da foto e apaga por mascara.
   Sem @supports o overlay ficaria opaco e esconderia a foto -> so liga onde ha mask. */
.hero-fuse{ background:none; }
@supports (mask-image: linear-gradient(#000,#000)) or (-webkit-mask-image: linear-gradient(#000,#000)){
  .hero-fuse{
    background:radial-gradient(130% 120% at 8% 10%, #3A3742 0%, #26232C 42%, #121017 100%);
    --hero-fuse-mask:linear-gradient(90deg, #000 0%, #000 36%, rgba(0,0,0,.97) 45%, rgba(0,0,0,.86) 52%, rgba(0,0,0,.62) 60%, rgba(0,0,0,.34) 69%, rgba(0,0,0,.12) 78%, rgba(0,0,0,0) 87%);
    -webkit-mask-image:var(--hero-fuse-mask); mask-image:var(--hero-fuse-mask);
  }
}

.mq{ overflow:hidden; border-bottom:1px solid var(--hair); background:var(--cream); }
.mq-track{ display:flex; width:max-content; animation: mqRun 38s linear infinite; }
.mq-item{ display:inline-flex; align-items:center; gap:28px; padding:20px 0; font-family:'Fraunces',serif;
  font-size:15px; letter-spacing:.2em; text-transform:uppercase; color:var(--mist); white-space:nowrap; }
.mq-item span{ padding:0 28px; }
.mq-item i{ width:5px; height:5px; border-radius:50%; background:var(--copper); flex-shrink:0; font-style:normal; }
@keyframes mqRun{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }

.proc-link{ display:inline-flex; align-items:center; gap:7px; margin-top:4px; background:none; border:none; padding:0;
  cursor:pointer; font-family:inherit; font-size:11px; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--copper2); transition:gap .3s; }
.cc:hover .proc-link{ gap:13px; }

/* Blocos da secao de exames / atendimento */
/* Carrossel horizontal (scroll-snap + setas + arrastar + barra de progresso) */
.carou{ margin-top:72px; }
.carou .blk-head{ align-items:center; }
.carou-arrows{ display:flex; gap:8px; margin-left:20px; }
.carou-btn{ width:40px; height:40px; border-radius:50%; border:1px solid var(--hair2);
  background:#fff; color:var(--indigo); display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .25s, color .25s, border-color .25s, opacity .25s; }
.carou-btn:hover:not(:disabled){ background:var(--indigo); border-color:var(--indigo); color:#fff; }
.carou-btn:disabled{ opacity:.3; cursor:default; }
@media (max-width:900px){ .carou-arrows{ margin-left:0; } }

.carou-track{ display:flex; gap:20px; margin-top:20px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-behavior:smooth; cursor:grab;
  scrollbar-width:none; -ms-overflow-style:none;
  /* sem padding lateral: qualquer folga horizontal impede o scrollLeft de chegar a 0 e ao maximo,
     e as setas nunca desabilitam nos extremos. O padding vertical e so para a sombra do hover. */
  padding:8px 0 24px; }
.carou-track::-webkit-scrollbar{ display:none; }
.carou-track:focus-visible{ outline:2px solid var(--copper); outline-offset:6px; border-radius:20px; }
.carou-track.is-dragging{ cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; }
.carou-track.is-dragging .cc{ pointer-events:none; }

.carou-bar{ height:2px; background:var(--hair); border-radius:2px; margin-top:4px; overflow:hidden; }
.carou-bar-fill{ display:block; height:100%; width:0; border-radius:2px;
  background:linear-gradient(90deg,#E9A883,#D2794F); transition:width .18s linear; }
.carou.is-static .carou-arrows,
.carou.is-static .carou-bar{ display:none; }

.cc{ position:relative; flex:0 0 372px; scroll-snap-align:start; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--hair); border-radius:22px; overflow:hidden;
  transition:box-shadow .5s, border-color .5s; }
.cc:hover{ box-shadow:0 24px 50px -28px rgba(26,24,32,.32); border-color:var(--hair2); }
.cc-media{ position:relative; aspect-ratio:3/2; overflow:hidden; background:linear-gradient(135deg,#E8E3DD,#D5CDC4); }
.cc-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.8,.2,1); }
.cc:hover .cc-media img{ transform:scale(1.06); }
.cc-num{ position:absolute; top:14px; left:14px; width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.94); display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:13px; color:var(--indigo); }
.cc-body{ flex:1; padding:22px 24px 24px; display:flex; flex-direction:column; gap:9px; }
.cc-title{ font-family:'Fraunces',serif; font-size:20px; font-weight:400; color:var(--ink); line-height:1.25; }
.cc-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.cc-chip{ padding:4px 10px; border-radius:999px; background:rgba(210,121,79,.11); color:var(--copper2);
  font-size:9.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.cc-desc{ font-size:14px; line-height:1.65; color:var(--mist); }
.cc-ind{ margin-top:auto; padding-top:14px; border-top:1px solid var(--hair); }
.cc-ind-label{ display:block; font-size:9.5px; font-weight:600; letter-spacing:.24em;
  text-transform:uppercase; color:var(--copper2); }
.cc-ind-text{ margin-top:6px; font-size:13px; line-height:1.6; color:var(--mist); }
.cc .proc-link{ margin-top:14px; align-self:flex-start; }
@media (max-width:1100px){ .cc{ flex-basis:330px; } }
@media (max-width:640px){ .cc{ flex-basis:278px; } .carou-track{ gap:14px; } }

.blk{ margin-top:72px; }
.blk-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 28px;
  padding-bottom:16px; border-bottom:1px solid var(--hair2); }
.blk-head-main{ display:flex; align-items:baseline; gap:14px; }
.blk-num{ font-family:'Fraunces',serif; font-size:13px; color:var(--copper2); letter-spacing:.06em; }
.blk-title{ font-family:'Fraunces',serif; font-size:clamp(22px,2.2vw,30px); font-weight:400; color:var(--ink); }
.blk-resumo{ font-size:14px; color:var(--mist); margin-left:auto; max-width:46ch; }
@media (max-width:900px){ .blk-resumo{ margin-left:0; } }


.step{ position:relative; padding-left:64px; padding-bottom:44px; }
.step:last-child{ padding-bottom:0; }
.step::before{ content:''; position:absolute; left:19px; top:44px; bottom:0; width:1px; background:var(--hair2); }
.step:last-child::before{ display:none; }
.step-num{ position:absolute; left:0; top:0; width:40px; height:40px; border-radius:50%;
  border:1px solid var(--hair2); background:#fff; display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:13px; color:var(--copper2); }

.tm-wrap{ position:relative; overflow:hidden; }
.tm-row{ display:flex; gap:20px; width:max-content; align-items:stretch; }
.tm-row.r1{ animation: tmLeft 52s linear infinite; }
.tm-row.r2{ animation: tmRight 52s linear infinite; margin-top:20px; }
.tm-wrap:hover .tm-row{ animation-play-state:paused; }
@keyframes tmLeft{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }
@keyframes tmRight{ from{ transform:translateX(-50%) } to{ transform:translateX(0) } }
.tm-fade{ position:absolute; top:0; bottom:0; width:110px; z-index:5; pointer-events:none; }
.tm-fade.l{ left:0; background:linear-gradient(90deg,#EFEBE7 0%, rgba(239,235,231,0) 100%); }
.tm-fade.r{ right:0; background:linear-gradient(270deg,#EFEBE7 0%, rgba(239,235,231,0) 100%); }
.review-card-mini{ width:330px; flex-shrink:0; background:#fff; border:1px solid var(--hair);
  border-radius:20px; padding:24px; display:flex; flex-direction:column; gap:14px; }
.review-quote{ font-size:14.5px; line-height:1.7; color:var(--ink); flex:1; }
.review-name{ font-size:12px; font-weight:500; color:var(--mist); }
@media (max-width:640px){ .review-card-mini{ width:278px; padding:20px; } .tm-fade{ width:50px; } }

.faq-item{ border-bottom:1px solid var(--hair2); }
.faq-trigger{ display:flex; width:100%; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 0; font-family:'Fraunces',serif; font-size:1.05rem; color:var(--ink);
  background:none; border:none; cursor:pointer; text-align:left; }
.faq-chevron{ flex-shrink:0; color:var(--copper2); transition:transform .3s ease; }
.faq-trigger[aria-expanded="true"] .faq-chevron{ transform:rotate(180deg); }
.faq-panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s cubic-bezier(.2,.8,.2,1); }
.faq-panel.is-open{ grid-template-rows:1fr; }
.faq-panel-inner{ overflow:hidden; }
.faq-answer{ padding-bottom:22px; font-size:15px; line-height:1.78; color:var(--mist); max-width:62ch; }
.faq-answer-char{ display:inline-block; opacity:0; filter:blur(8px); transition:opacity .3s ease, filter .3s ease; }
.faq-answer-char.in{ opacity:1; filter:blur(0); }

.wa{ position:fixed; bottom:32px; right:32px; z-index:90; width:60px; height:60px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center; border:none; padding:0;
  box-shadow:0 4px 28px rgba(37,211,102,.5); cursor:pointer;
  transition:transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s; }
.wa:hover{ transform:scale(1.15); box-shadow:0 10px 42px rgba(37,211,102,.6); }
.wa::before{ content:''; position:absolute; inset:0; border-radius:50%; background:#25D366;
  animation: waPulse 2.6s ease-in-out infinite; z-index:-1; }
@keyframes waPulse{ 0%{ transform:scale(1); opacity:.7 } 100%{ transform:scale(1.6); opacity:0 } }
@media (max-width:768px){ .wa{ width:52px; height:52px; bottom:18px; right:18px; } }

.wa-modal-overlay{ position:fixed; inset:0; z-index:300; background:rgba(18,16,23,.6);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; pointer-events:none; transition:opacity .25s ease; }
.wa-modal-overlay.is-open{ opacity:1; pointer-events:auto; }
.wa-modal{ background:var(--sand); border:1px solid var(--hair); border-radius:24px; padding:56px 44px 48px;
  max-width:540px; width:100%; max-height:calc(100svh - 40px); overflow-y:auto; text-align:center;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.35); transform:translateY(14px) scale(.97);
  transition:transform .3s cubic-bezier(.2,.8,.2,1); }
.wa-modal-overlay.is-open .wa-modal{ transform:none; }
.wa-modal-eyebrow{ font-size:13px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--copper2); }
.wa-modal-text{ margin-top:32px; font-size:17px; line-height:1.75; color:var(--ink); }
.wa-modal-text strong{ font-weight:600; }
.wa-modal-text + .wa-modal-text{ margin-top:28px; }
.wa-modal-actions{ margin-top:36px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.wa-modal-btn{ display:inline-flex; align-items:center; justify-content:center; padding:18px 36px;
  border-radius:8px; font-family:inherit; font-size:16px; font-weight:500; line-height:1;
  text-decoration:none; cursor:pointer; transition:background .25s,color .25s,border-color .25s; }
.wa-modal-btn--ghost{ background:transparent; color:var(--indigo); border:1.5px solid var(--indigo); }
.wa-modal-btn--ghost:hover{ background:var(--indigo); color:#fff; }
.wa-modal-btn--solid{ background:var(--indigo); color:#fff; border:1.5px solid var(--indigo); }
.wa-modal-btn--solid:hover{ background:var(--copper2); border-color:var(--copper2); }
@media (max-width:480px){
  .wa-modal{ padding:40px 24px 32px; }
  .wa-modal-text{ margin-top:24px; font-size:16px; }
  .wa-modal-actions{ flex-direction:column-reverse; gap:12px; }
  .wa-modal-btn{ width:100%; }
}
@media (prefers-reduced-motion: reduce){
  .rv{ opacity:1; transform:none; transition:none; }
  .mq-track,.tm-row,.wa::before{ animation:none !important; }
}
