:root{
  --cream:#F7F2E7;
  --cream-2:#EFE6D3;
  --ink:#2A2420;
  --ink-soft:#5B5147;
  --wine:#9C3A3F;
  --wine-deep:#5A1F23;
  --gold:#C29A5B;
  --heart-red:#C23B3E;
  --white:#FFFDF9;
  --line: rgba(42,36,32,0.14);
  --shadow: 0 18px 40px -18px rgba(42,36,32,0.32);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Karla', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:600;
  margin:0;
  color:var(--ink);
  letter-spacing:-0.01em;
}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit; cursor:pointer;}

.wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(18px, 5.5vw, 32px); }
.fill{ color:var(--wine); font-style:italic; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--wine);
  margin-bottom:16px;
}
.eyebrow::before{ content:""; width:26px; height:1.5px; background:var(--gold); display:inline-block; }

.section-title{ font-size:clamp(26px, 3vw, 38px); line-height:1.2; margin-bottom:0; }
.section-title.light{ color:var(--white); }
.section-desc{ margin-top:16px; color:var(--ink-soft); font-size:16.5px; }
.section-head{ max-width:640px; margin-bottom:46px; }

.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  html{scroll-behavior:auto;}
}

/* ---------- header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(247,242,231,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:12px;
  padding:16px clamp(18px, 5.5vw, 32px); max-width:1180px; margin:0 auto;
}
.brand{ display:flex; flex-direction:column; line-height:1.15; min-width:0; flex:1 1 auto; }
.brand-name{
  font-family:'Fraunces', serif;
  font-size:clamp(12.5px, 4.2vw, 21px);
  font-weight:600;
  white-space:nowrap;
}
.brand-tag{ font-size:clamp(8px, 2.1vw, 11px); letter-spacing:0.08em; text-transform:uppercase; color:var(--wine); font-weight:700; margin-top:3px; white-space:nowrap; }
.nav-links{ display:flex; align-items:center; gap:32px; }
.nav-links-social{ display:none; }
.btn .btn-short{ display:none; }
.nav-links a{ font-size:14.5px; font-weight:600; color:var(--ink-soft); position:relative; padding:4px 0; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:0; width:0%; height:2px; background:var(--gold); transition:width .3s ease; }
.nav-links a:hover::after{width:100%;}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 24px; border-radius:100px; font-weight:700; font-size:14.5px;
  border:1.5px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn-sm{ padding:10px 20px; font-size:13.5px; }
.btn-primary{ background:var(--wine); color:var(--white); box-shadow:var(--shadow); }
.btn-primary:hover{ transform:translateY(-2px); background:var(--wine-deep); }
.btn-ghost{ border-color:var(--ink); color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:var(--white); }

.icon-btn{
  width:40px; height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%;
  border:1.5px solid var(--line);
  color:var(--wine);
  flex-shrink:0;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.icon-btn svg{ width:18px; height:18px; }
.icon-btn:hover{ background:var(--wine); border-color:var(--wine); color:var(--white); transform:translateY(-2px); }
.icon-btn.light{ border-color:rgba(247,242,231,0.3); color:var(--cream); }
.icon-btn.light:hover{ background:var(--gold); border-color:var(--gold); color:var(--ink); }

.nav-cta{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.burger{ display:none; background:none; border:none; padding:6px; flex-shrink:0; }
.burger span{ display:block; width:22px; height:2px; background:var(--ink); margin:5px 0; border-radius:2px; }

/* ---------- hero ---------- */
.hero{ padding:70px 0 56px; position:relative; overflow:hidden; }
.hero .wrap{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:center; }
.hero-kicker{ font-size:13px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--wine); margin-bottom:20px; display:block; }
.hero h1{ font-size:clamp(32px, 4.4vw, 50px); line-height:1.1; margin-bottom:22px; }
.hero p.lead{ font-size:18px; color:var(--ink-soft); max-width:480px; margin-bottom:32px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

.hero-photo-col{ text-align:center; }

/* ---------- photo circles (fotos reais, alinhadas) ---------- */
.photo-ring{
  display:inline-block;
  position:relative;
  border-radius:50%;
  padding:8px;
  background:var(--white);
  box-shadow: 0 0 0 1.5px var(--gold), var(--shadow);
}
.photo-circle{
  border-radius:50%;
  overflow:hidden;
  aspect-ratio:1/1;
  background:var(--cream-2);
}
.photo-circle img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- medalhas discretas (coração + estetoscópio) ---------- */
.hero-badge{
  position:absolute;
  width:42px; height:42px;
  border-radius:50%;
  background:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px -8px rgba(42,36,32,0.4), 0 0 0 1px rgba(194,154,91,0.3);
  z-index:2;
}
.hero-badge svg{ width:19px; height:19px; }
.heart-emoji{ font-size:20px; line-height:1; }
.hero-badge-heart{ bottom:6%; right:1%; color:var(--heart-red); }
.hero-badge-steth{ top:10%; left:-2%; color:var(--wine-deep); }
@media (max-width:560px){
  .hero-badge{ width:36px; height:36px; }
  .hero-badge svg{ width:16px; height:16px; }
  .heart-emoji{ font-size:17px; }
}

.photo-hero{ width:min(380px, 78vw); }
.photo-hero img{ object-position:32% 18%; }

.photo-sobre{ width:min(300px, 70vw); }
.photo-sobre img{ object-position:50% 12%; }

.photo-horario{ width:min(300px, 70vw); }
.photo-horario img{ object-position:50% 18%; }

.photo-tag{
  display:inline-block; margin-top:18px;
  font-size:12px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--wine); background:rgba(156,58,63,0.08);
  padding:7px 16px; border-radius:100px;
}

/* ---------- pulse divider ---------- */
.pulse-divider{ padding:6px 0 44px; opacity:0.55; }
.pulse-divider svg{ width:100%; height:26px; display:block; }
.pulse-divider path{ stroke:var(--wine); }

/* ---------- sections ---------- */
section{ padding:clamp(52px, 9vw, 92px) 0; }
.section-white{ background:var(--white); position:relative; overflow:hidden; }

/* ---------- corações decorativos discretos ---------- */
.bg-heart{
  position:absolute;
  fill:var(--wine);
  opacity:0.16;
  pointer-events:none;
  z-index:0;
}
.bg-heart-1{ width:300px; height:270px; top:-40px; right:-60px; transform:rotate(8deg); }
.bg-heart-2{ width:200px; height:180px; bottom:-30px; left:-40px; transform:rotate(-14deg); }
.section-white .wrap{ position:relative; z-index:1; }
@media (max-width:560px){
  .bg-heart-1{ width:190px; height:171px; top:-20px; right:-50px; }
  .bg-heart-2{ width:140px; height:126px; bottom:-15px; left:-35px; }
}

/* ---------- sobre ---------- */
#sobre{ background:var(--cream-2); }
.sobre-grid{ display:grid; grid-template-columns:0.5fr 1fr; gap:64px; align-items:center; }
.sobre-text{ margin-top:18px; display:flex; flex-direction:column; gap:12px; }
.sobre-text p{ color:var(--ink-soft); font-size:17px; }
.sobre-text p:first-child{ color:var(--ink); font-weight:600; font-size:19px; }

/* ---------- servicos ---------- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
}
.service-card{
  background:var(--cream);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 14px 30px -20px rgba(42,36,32,0.35);
  transition:transform .3s ease, box-shadow .3s ease;
}
.service-card:hover{ transform:translateY(-4px); box-shadow:0 20px 36px -18px rgba(42,36,32,0.4); }
.service-photo{ aspect-ratio:16/11; overflow:hidden; }
.service-photo img{ width:100%; height:100%; object-fit:cover; }
.service-card:nth-child(1) .service-photo img{ object-position:35% 20%; }
.service-card:nth-child(2) .service-photo img{ object-position:50% 25%; }
.service-card:nth-child(3) .service-photo img{ object-position:50% 15%; }
.service-card:nth-child(4) .service-photo img{ object-position:50% 20%; }
.service-card:nth-child(5) .service-photo img{ object-position:50% 12%; }
.service-card:nth-child(6) .service-photo img{ object-position:50% 15%; }
.service-body{ padding:22px 24px 26px; }
.service-body h4{ font-size:16.5px; font-weight:700; margin-bottom:8px; }
.service-body p{ font-size:14px; color:var(--ink-soft); }

/* ---------- meus pacientes ---------- */
.patients{ background:var(--cream); }
.patients-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(16px, 3vw, 28px);
}
.patient-card{
  margin:0;
  display:flex;
  flex-direction:column;
}
.patient-photo{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  aspect-ratio:1/1;
  background:var(--cream-2);
  box-shadow:0 14px 30px -20px rgba(42,36,32,0.4);
  display:flex;
  align-items:center;
  justify-content:center;
}
.patient-photo img{ width:100%; height:100%; object-fit:contain; transition:transform .5s ease; }
.patient-card:hover .patient-photo img{ transform:scale(1.04); }
.patient-card figcaption{
  margin-top:14px;
  font-size:12.5px; font-weight:700; letter-spacing:0.03em;
  text-transform:uppercase; color:var(--wine); text-align:center;
}
.patient-card figcaption.fill{ text-transform:none; font-weight:600; letter-spacing:0; }

/* ---------- onde atendo ---------- */
#onde{ background:var(--wine-deep); color:var(--cream); }
#onde .eyebrow{ color:var(--gold); }
#onde .eyebrow::before{ background:var(--cream); }

.location-card{
  background:rgba(247,242,231,0.06);
  border:1px solid rgba(247,242,231,0.2);
  border-radius:26px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
}
.location-map{ min-height:340px; background:var(--cream-2); }
.location-map iframe{ width:100%; height:100%; border:0; display:block; }

.location-body{ padding:38px 40px; }
.location-badge{ width:56px; height:56px; border-radius:14px; object-fit:cover; margin-bottom:18px; box-shadow:0 8px 18px -8px rgba(0,0,0,0.5); }
.location-body h3{ color:var(--white); font-size:22px; margin-bottom:12px; line-height:1.25; }
.location-body .addr{ font-size:14.5px; color:rgba(247,242,231,0.82); margin-bottom:20px; line-height:1.6; }
.location-body .addr .fill{ color:var(--gold); }
.location-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.tag{
  font-size:12px; font-weight:700; letter-spacing:0.02em;
  padding:6px 12px; border-radius:100px;
  background:rgba(247,242,231,0.12); color:var(--cream);
}

/* ---------- horarios ---------- */
.horario-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.schedule-table{ margin-top:26px; border-top:1px solid var(--line); }
.schedule-row{ display:flex; justify-content:space-between; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--line); }
.schedule-row .day{ font-family:'Fraunces', serif; font-size:19px; font-weight:500; }
.schedule-row .time{ font-weight:700; color:var(--wine); font-size:15px; }
.schedule-row.off .time{ color:var(--ink-soft); }
.schedule-note{ margin-top:22px; font-size:14px; display:block; }

/* ---------- footer ---------- */
footer{ background:var(--ink); color:var(--cream); padding:60px 0 28px; }
.footer-top{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:48px;
  padding-bottom:40px; border-bottom:1px solid rgba(247,242,231,0.16);
}
.footer-name{ color:var(--white); }
.footer-brand p{ margin-top:14px; font-size:14px; color:rgba(247,242,231,0.65); max-width:280px; }
.footer-social{ display:flex; gap:12px; margin-top:20px; }
footer h5{ font-size:12.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; font-weight:700; }
footer li{ margin-bottom:11px; font-size:14.5px; color:rgba(247,242,231,0.82); }
footer a:hover{ color:var(--white); }
.footer-bottom{
  padding-top:24px; display:flex; justify-content:space-between;
  font-size:12.5px; color:rgba(247,242,231,0.5); flex-wrap:wrap; gap:10px;
}

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .nav-links{ display:none; }
  .nav-links-social{ display:flex; gap:10px; margin-top:8px; }
  .nav-icon-social{ display:none; }
  .burger{ display:block; }
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-photo-col{ order:-1; }
  .sobre-grid{ grid-template-columns:1fr; text-align:center; }
  .sobre-grid .photo-ring{ margin:0 auto; }
  .services-grid{ grid-template-columns:repeat(2,1fr); }
  .patients-grid{ grid-template-columns:repeat(2,1fr); }
  .location-card{ grid-template-columns:1fr; }
  .location-map{ min-height:260px; }
  .horario-grid{ grid-template-columns:1fr; }
  .horario-grid .photo-ring{ order:-1; margin:0 auto; }
  .footer-top{ grid-template-columns:1fr; gap:32px; }
}
@media (max-width: 560px){
  .services-grid{ grid-template-columns:1fr; }
  .patients-grid{ grid-template-columns:1fr; gap:16px; }
  .patient-photo{ aspect-ratio:4/3; }
  .nav{ padding:14px clamp(14px, 4vw, 18px); }
  .nav-cta{ gap:8px; }
  .btn{ padding:11px 16px; font-size:13.5px; }
}
@media (max-width: 400px){
  .btn .btn-full{ display:none; }
  .btn .btn-short{ display:inline; }
  .hero{ padding:clamp(32px, 8vw, 44px) 0 clamp(28px, 6vw, 36px); }
  .location-body{ padding:clamp(24px, 6vw, 30px) clamp(20px, 5vw, 26px); }
}

/* ---------- ajustes de enquadramento das fotos ---------- */
.photo-hero img{
  object-fit:cover;
  object-position:34% 46%;
  transform:scale(1.08);
}

.service-photo img{
  object-fit:contain;
  object-position:center;
  background:var(--cream-2);
}

.patient-photo{
  aspect-ratio:4/3;
}
.patient-photo img{
  object-fit:cover;
}
