@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&display=swap');

:root{
  --ink:#1e293b;
  --ink-soft:#64748b;
  --indigo:#03306b;
  --sky:#0a4a8f;
  --amber:#f59e0b;
  --bg:#fafaf9;
  --card:#ffffff;
  --line:#eef0f4;
  --radius:18px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'DM Sans', sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'DM Serif Display', serif; font-weight:400; line-height:1.15;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1080px; margin:0 auto; padding:0 24px;}
section{padding:72px 0;}

/* ---- top bar ---- */
.topbar{
  position:sticky; top:0; z-index:50;
  background:rgba(250,250,249,.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px;}
.brand{font-family:'DM Serif Display', serif; font-size:20px;}
.brand span{color:var(--indigo);}
.tel-pill{
  display:flex; align-items:center; gap:8px;
  background:var(--ink); color:#fff; padding:9px 16px; border-radius:100px;
  font-size:13px; font-weight:600; white-space:nowrap;
}

/* ---- hero ---- */
.hero{padding:64px 0 40px; position:relative; overflow:hidden;}
.hero .wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:.4px; color:var(--indigo);
  background:#03306b14; padding:6px 14px; border-radius:100px; margin-bottom:20px;
}
.hero h1{font-size:44px; letter-spacing:-.5px; margin-bottom:18px;}
.hero h1 em{font-style:italic; color:var(--indigo);}
.hero p.lede{font-size:17px; color:var(--ink-soft); max-width:480px; margin-bottom:28px;}
.cta{
  display:inline-flex; align-items:center; gap:10px;
  background:linear-gradient(120deg,var(--indigo),var(--sky));
  color:#fff; font-weight:700; font-size:15.5px;
  padding:16px 28px; border-radius:100px; box-shadow:0 10px 30px -10px #03306b55;
  transition:transform .15s ease;
}
.cta:hover{transform:translateY(-2px);}
.cta-note{font-size:12.5px; color:var(--ink-soft); margin-top:10px;}
.hero-media{
  aspect-ratio:4/5; border-radius:24px; background:linear-gradient(160deg,#eaf0f8,#eaf5ff);
  border:1px dashed #a9c2e0; display:flex; align-items:center; justify-content:center;
  text-align:center; color:var(--ink-soft); font-size:13.5px; padding:24px;
}
.soundwave{display:flex; gap:5px; align-items:flex-end; height:46px; margin:0 auto 14px;}
.soundwave span{width:5px; border-radius:4px; background:linear-gradient(180deg,var(--indigo),var(--sky));}

/* ---- placeholder blocks ---- */
.placeholder{
  border:1.5px dashed #a9c2e0; border-radius:14px; background:#eef4fa;
  color:var(--indigo); font-weight:600; font-size:13.5px;
  padding:18px; text-align:center;
}

/* ---- testimonials (moved up, right after hero) ---- */
.testi-strip{background:var(--card); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.testi-card{background:var(--bg); border-radius:14px; padding:22px;}
.stars{color:var(--amber); font-size:14px; margin-bottom:10px;}

/* ---- generic section heading ---- */
.section-head{max-width:560px; margin-bottom:40px;}
.section-head .kicker{font-size:12.5px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; color:var(--sky);}
.section-head h2{font-size:32px; margin-top:6px;}
.section-head p{color:var(--ink-soft); margin-top:10px;}

/* ---- benefits ---- */
.benefits{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.benefit{background:var(--card); border-radius:16px; padding:26px 22px; border:1px solid var(--line);}
.benefit .ic{font-size:26px; margin-bottom:14px;}
.benefit h3{font-family:'DM Sans',sans-serif; font-weight:700; font-size:15.5px; margin-bottom:6px;}
.benefit p{font-size:13.5px; color:var(--ink-soft);}

/* ---- doctor ---- */
.doctor{display:grid; grid-template-columns:.8fr 1.2fr; gap:44px; align-items:center; background:var(--card); border-radius:24px; padding:40px; border:1px solid var(--line);}
.doctor-photo{aspect-ratio:1/1; border-radius:18px;}
.doctor blockquote{font-size:16.5px; color:var(--ink); margin-bottom:16px;}
.doctor .cred{font-size:12.5px; color:var(--ink-soft); font-weight:600;}

/* ---- how it works ---- */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; counter-reset:step;}
.step{position:relative; padding-top:8px;}
.step .num{font-family:'DM Serif Display',serif; font-size:34px; color:#a9c2e0; margin-bottom:8px;}
.step h3{font-family:'DM Sans',sans-serif; font-weight:700; font-size:15px; margin-bottom:6px;}
.step p{font-size:13.5px; color:var(--ink-soft);}

/* ---- models ---- */
.models{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.model-card{background:var(--card); border-radius:20px; padding:30px; border:1px solid var(--line); position:relative;}
.model-card.premium{border:1.5px solid var(--indigo); background:linear-gradient(180deg,#fff,#f7f8ff);}
.badge-best{position:absolute; top:-13px; left:28px; background:var(--amber); color:#fff; font-size:11px; font-weight:800; padding:5px 12px; border-radius:100px;}
.model-card h3{font-family:'DM Sans',sans-serif; font-weight:700; font-size:16px; margin-bottom:4px;}
.model-price{font-size:15px; color:var(--indigo); font-weight:700; margin:12px 0 4px;}
.model-price small{display:block; font-size:12px; color:var(--ink-soft); font-weight:500; margin-top:2px;}
.model-card ul{list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:8px;}
.model-card li{font-size:13.5px; color:var(--ink-soft); display:flex; gap:8px;}
.model-card li:before{content:"✦"; color:var(--sky);}

.urgency{
  margin-top:24px; display:flex; gap:12px; align-items:flex-start;
  background:#fff7ed; border:1px solid #fde3c2; border-radius:14px; padding:16px 18px; font-size:13.5px; color:#92400e;
}

/* ---- location ---- */
.location{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center;}
.loc-card{background:var(--card); border-radius:20px; padding:32px; border:1px solid var(--line);}
.loc-card .pin{font-size:22px; margin-bottom:10px;}
.map-placeholder{aspect-ratio:4/3; border-radius:20px;}

/* ---- final CTA ---- */
.final-cta{
  background:linear-gradient(120deg,var(--indigo),var(--sky));
  border-radius:28px; padding:56px; text-align:center; color:#fff;
}
.final-cta h2{color:#fff; font-size:30px; margin-bottom:10px;}
.final-cta p{color:#ffffffcc; margin-bottom:26px;}
.final-cta .cta{background:#fff; color:var(--indigo); box-shadow:none;}

footer{padding:36px 0; text-align:center; font-size:12.5px; color:var(--ink-soft);}

/* ---- floating WhatsApp button ---- */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:100;
  width:60px; height:60px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px -4px #00000055;
  transition:transform .15s ease;
}
.wa-float:hover{transform:scale(1.06);}
.wa-float svg{width:32px; height:32px;}
@media(max-width:860px){
  .wa-float{right:16px; bottom:16px; width:54px; height:54px;}
  .wa-float svg{width:28px; height:28px;}
}
  .hero .wrap{grid-template-columns:1fr;}
  .steps,.models,.location{grid-template-columns:1fr;}
  .doctor{grid-template-columns:1fr; padding:26px;}
  .hero h1{font-size:32px;}
  .final-cta{padding:36px 22px;}

  /* Carrossel horizontal (arrastar com o dedo) para depoimentos e diferenciais */
  .testi-grid,.benefits{
    display:flex; gap:14px;
    overflow-x:auto; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding-bottom:6px; margin:0 -24px; padding-left:24px; padding-right:24px;
    scrollbar-width:none;
  }
  .testi-grid::-webkit-scrollbar,.benefits::-webkit-scrollbar{display:none;}
  .testi-card,.benefit{
    flex:0 0 82%; scroll-snap-align:start;
  }
  .carousel-hint{
    display:flex; align-items:center; gap:6px;
    font-size:11.5px; color:var(--ink-soft); margin-top:10px;
  }
}
@media(min-width:861px){
  .carousel-hint{display:none;}
}
