/* =========================================
   HERO
========================================= */
.hero {
  padding-top:72px;
  background: var(--sage);
  position:relative; overflow:hidden;
  height:100vh;
  min-height:640px;
  max-height:880px;
  display:flex; align-items:center;
}

.hero::before {
  content:'';
  position:absolute;
  top:-600px; left:-600px;
  width:calc(100% + 1200px); height:calc(100% + 1200px);
  background-image:url('../images/icons/pattern-medico.svg');
  background-repeat:repeat;
  background-size:600px 600px;
  opacity:0.10;
  pointer-events:none;
  animation:hero-pattern-move 70s linear infinite;
}

.blob {
  position:absolute;
  border-radius:8px;
  pointer-events:none;
}
.blob-1 {
  width:520px; height:520px;
  background:radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 70%);
  top:-100px; right:-120px;
  animation:blobFloat1 8s ease-in-out infinite;
}
.blob-2 {
  width:360px; height:360px;
  background:radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
  bottom:5%; left:-100px;
  animation:blobFloat2 10s ease-in-out infinite;
}
.blob-3 {
  width:200px; height:200px;
  background:radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 70%);
  top:35%; right:22%;
  animation:blobFloat3 7s ease-in-out infinite;
}

.hero-inner {
  max-width:1140px; margin:0 auto; padding:60px 32px;
  position:relative; z-index:2;
  width:100%;
  text-align:left;
  display:flex; align-items:center; gap:2.5rem;
}
.hero-inner > div:first-child { max-width:600px; flex-shrink:0; }

.hero-photos {
  display:flex; align-items:center; gap:10px;
  height:340px; flex-shrink:0;
}
.hero-photos img {
  height:100%; width:auto;
  display:block; object-fit:cover;
  border-radius:20px;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,0.25));
  animation:hero-photo-wave 4.5s ease-in-out infinite;
}
.hero-photos img:nth-child(1) { animation-delay:0s; }
.hero-photos img:nth-child(2) { margin-top:-20px; animation-delay:0.5s; }
.hero-photos img:nth-child(3) { animation-delay:1s; }

.hero-h1 {
  font-family:'Nunito', sans-serif;
  font-size:clamp(2.6rem, 4.5vw, 3.8rem);
  font-weight:800; line-height:1.1;
  color:#fff; margin-bottom:1rem;
}
.hero-h1 .accent {
  color:var(--orange);
  font-style:italic;
  font-family:'Cormorant Garamond', serif;
  font-weight:500; font-size:1.15em;
}

.hero-sub {
  font-size:1rem; color:rgba(255,255,255,0.82);
  line-height:1.85; font-weight:400;
  max-width:520px; margin:0 0 2.5rem;
}

.hero-btns {
  display:flex; align-items:center; justify-content:flex-start; flex-wrap:wrap; gap:1rem;
  margin-bottom:2.5rem;
}
.hero-btns .btn-green { background:#fff; color:var(--sage-dark); }
.hero-btns .btn-green:hover { background:var(--peach-pale); color:var(--sage-dark); }
.hero-btns .btn-outline { border-color:#fff; color:#fff; }
.hero-btns .btn-outline:hover { background:rgba(255,255,255,0.12); border-color:#fff; }

.deco-ring {
  position:absolute; border:2px solid rgba(255,255,255,0.35);
  border-radius:50%; pointer-events:none;
  animation:spinRing 20s linear infinite;
}
.deco-dot {
  position:absolute; border-radius:50%;
  pointer-events:none;
  animation:floatCard 6s ease-in-out infinite;
}

/* =========================================
   SOBRE
========================================= */
.sobre {
  padding:8rem 0;
  background:#fff;
  position:relative;
}
.sobre-img-shape {
  width:100%; height:100%;
  background:var(--cream);
  border-radius:12px; overflow:hidden;
}
.sobre-inner {
  max-width:1140px; margin:0 auto; padding:0 32px;
  display:grid; grid-template-columns:1.15fr 1fr;
  gap:4.5rem; align-items:start; position:relative; z-index:2;
}
.sobre-img-wrap { position:relative; }
.sobre-img-shape img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.sobre-badge {
  position:absolute; bottom:-16px; right:-16px;
  background:var(--orange); color:#fff;
  border-radius:8px; padding:1.1rem 1.4rem;
  font-size:0.8rem; font-weight:600; text-align:center;
  box-shadow:0 12px 32px -8px rgba(210,117,38,0.4);
}
.sobre-badge strong {
  display:block; font-size:2rem; font-weight:800;
  font-family:'Cormorant Garamond',serif; line-height:1;
}

/* =========================================
   ESPECIALIDADES
========================================= */
.especialidades {
  padding:8rem 0;
  background:var(--cream);
  position:relative; overflow:hidden;
}
.esp-header { text-align:center; margin-bottom:4rem; }
.esp-header .section-eyebrow { justify-content:center; }
.esp-header .section-text { max-width:520px; margin:0 auto; }

.esp-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem;
}

/* =========================================
   QUOTE
========================================= */
.quote-band {
  background:var(--orange);
  padding:5rem 0; position:relative; overflow:hidden;
}
.quote-band::before {
  content:'"';
  position:absolute; left:2%; top:-3rem;
  font-family:'Cormorant Garamond',serif;
  font-size:18rem; color:rgba(255,255,255,0.05);
  font-weight:600; line-height:1; pointer-events:none;
}
.quote-band::after {
  content:'"';
  position:absolute; right:2%; top:-3rem;
  font-family:'Cormorant Garamond',serif;
  font-size:18rem; color:rgba(255,255,255,0.05);
  font-weight:600; line-height:1; pointer-events:none;
}
.quote-band-inner {
  max-width:1140px; margin:0 auto; padding:0 32px; text-align:center;
}
.quote-band blockquote {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(1.5rem, 2.8vw, 2.2rem);
  font-style:italic; color:rgba(255,255,255,0.92);
  max-width:820px; margin:0 auto 1.25rem;
  line-height:1.5; font-weight:400;
}
.quote-band cite {
  font-family:'Nunito',sans-serif;
  font-style:normal; font-size:0.8rem; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.75);
}

/* =========================================
   FAQ (layout da seção)
========================================= */
.faq-section { padding:8rem 0; background:var(--warm-white); }
.faq-inner {
  max-width:1140px; margin:0 auto; padding:0 32px;
  display:grid; grid-template-columns:1fr 1.6fr; gap:6rem; align-items:start;
}
.faq-sticky { position:sticky; top:100px; }
.faq-sub { font-size:0.9rem; color:var(--text-mid); line-height:1.8; margin:1rem 0 2rem; }

/* =========================================
   DEPOIMENTOS
========================================= */
.depo-section {
  padding:8rem 0; background:var(--sage-pale);
  position:relative; overflow:hidden;
}
.depo-section::before {
  content:''; position:absolute; top:-80px; left:50%; transform:translateX(-50%);
  width:600px; height:300px;
  background:radial-gradient(ellipse, var(--sage-light) 0%, transparent 70%);
  opacity:0.4; pointer-events:none;
}
.depo-header { text-align:center; margin-bottom:4rem; }
.depo-header .section-eyebrow { justify-content:center; }
.depo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.depo-carrossel .carrossel-slide { border:none; overflow:visible; border-radius:0; }
.depo-carrossel { padding:0; }
.depo-carrossel .carrossel-viewport { overflow:visible; border-radius:0; }
.depo-carrossel .carrossel-slide { flex-basis:auto; height:auto; }
.depo-carrossel .carrossel-nav,
.depo-carrossel .carrossel-dots { display:none; }

/* =========================================
   CONSULTÓRIO
========================================= */
.consultorio-section { padding:8rem 0; background:var(--warm-white); }
.consultorio-section .carrossel { margin-top:3rem; }

/* =========================================
   CONTATO
========================================= */
.contato-section {
  padding:8rem 0; background:var(--cream);
  position:relative; overflow:hidden;
}
.contato-blob {
  position:absolute; right:-8%; top:50%; transform:translateY(-50%);
  width:480px; height:480px;
  background:radial-gradient(circle, var(--sage-pale) 0%, transparent 65%);
  pointer-events:none;
}
.contato-inner {
  max-width:1140px; margin:0 auto; padding:0 32px;
  display:grid; grid-template-columns:1fr 1fr;
  gap:5rem; align-items:center; position:relative; z-index:2;
}
.map-wrap {
  border-radius:10px; overflow:hidden; height:360px;
  background:var(--sage-pale); border:2px solid var(--sage-light);
  margin-top:2rem;
}
.map-wrap iframe { width:100%; height:100%; border:0; display:block; }
