:root {
  --primary: #bd002d;
  --primary-dark: #8f0022;
  --terracotta: #a64b35;
  --nude: #e8d1c5;
  --nude-light: #f8efea;
  --gold: #c5a059;
  --coffee: #4b3621;
  --ink: #2f2521;
  --muted: #6c5d57;
  --white: #fffdfb;
  --surface: #fffaf7;
  --border: rgba(75, 54, 33, 0.12);
  --shadow: 0 22px 55px rgba(75, 54, 33, 0.11);
  --shadow-soft: 0 12px 32px rgba(75, 54, 33, 0.08);
  --radius: 24px;
  --container: 1160px;
  --header-height: 82px;
  --transition: 280ms ease;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px); }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--white);
  font-family: "Montserrat", "Open Sans", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--ink); line-height: 1.15; letter-spacing: -0.035em; }
h1 { margin-bottom: 24px; font-size: clamp(26px, 3.3vw, 40px); font-weight: 600; }
h2 { margin-bottom: 20px; font-size: clamp(22px, 2.4vw, 24px); font-weight: 600; }
h3 { margin-bottom: 10px; font-size: 20px; font-weight: 600; }
p { margin-bottom: 18px; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { position: relative; padding: 104px 0; }
.section-pink { background: linear-gradient(135deg, #fff7f5 0%, #fbe3e5 100%); }
.section-nude { background: linear-gradient(135deg, var(--nude-light), #f5e5df); }
.section-warm { background: #f8f0eb; }
.split-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(50px, 8vw, 112px); }
.align-center { align-items: center; }
.content-block { max-width: 560px; }
.content-block > p:not(.eyebrow) { color: var(--muted); }
.lead { max-width: 630px; color: var(--muted); font-size: 17px; }
.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  color: var(--primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.17em;
  line-height: 1.3;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.centered { max-width: 680px; margin: 0 auto 50px; text-align: center; }
.centered .eyebrow { justify-content: center; }
.centered p:last-child { color: var(--muted); }

.skip-link { position: fixed; z-index: 9999; top: 12px; left: 12px; padding: 10px 14px; transform: translateY(-150%); border-radius: 8px; color: #fff; background: var(--primary); }
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  z-index: 1000;
  inset: 0 0 auto;
  height: var(--header-height);
  border-bottom: 1px solid transparent;
  background: rgba(255, 253, 251, 0.92);
  backdrop-filter: blur(18px);
  transition: box-shadow var(--transition), border-color var(--transition), height var(--transition);
}
.site-header.scrolled { border-color: var(--border); box-shadow: 0 10px 35px rgba(75, 54, 33, 0.08); }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 28px; }
.brand { display: block; flex: 0 0 auto; width: 154px; }
.brand img { width: 100%; height: 58px; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: clamp(14px, 1.65vw, 25px); }
.main-nav > a:not(.button) { position: relative; color: #4f413b; font-size: 13px; font-weight: 600; white-space: nowrap; }
.main-nav > a:not(.button)::after { content: ""; position: absolute; right: 0; bottom: -8px; left: 0; height: 2px; transform: scaleX(0); transform-origin: right; background: var(--primary); transition: transform var(--transition); }
.main-nav > a:not(.button):hover::after, .main-nav > a:not(.button):focus-visible::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 24px; height: 2px; margin: 5px 0; background: var(--primary); transition: transform var(--transition), opacity var(--transition); }

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 13px 24px;
  border: 1px solid var(--primary);
  border-radius: 999px;
  color: #fff;
  background: var(--primary);
  box-shadow: 0 10px 25px rgba(189, 0, 45, 0.18);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: transform var(--transition), background var(--transition), box-shadow var(--transition);
}
.button:hover, .button:focus-visible { transform: translateY(-2px); background: var(--primary-dark); box-shadow: 0 15px 30px rgba(189, 0, 45, 0.24); }
.button-small { min-height: 42px; padding: 10px 18px; font-size: 12px; }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--coffee); font-size: 14px; font-weight: 600; }
.text-link span { color: var(--primary); transition: transform var(--transition); }
.text-link:hover span { transform: translateX(5px); }

.hero { position: relative; overflow: hidden; padding: calc(var(--header-height) + 74px) 0 0; }
.hero::before { content: ""; position: absolute; width: 420px; height: 420px; top: 20%; left: -300px; border: 1px solid rgba(197, 160, 89, 0.22); border-radius: 50%; }
.hero-grid { display: grid; grid-template-columns: 0.94fr 1.06fr; min-height: 600px; align-items: center; gap: 64px; }
.hero-copy { padding-bottom: 55px; }
.hero-copy h1 em { display: block; color: var(--primary); font-style: normal; font-weight: 700; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 30px; }
.trusted-by { display: flex; align-items: center; gap: 14px; margin-top: 32px; }
.trusted-by p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.avatar-stack { display: flex; padding-left: 10px; }
.avatar-stack span { display: grid; place-items: center; width: 34px; height: 34px; margin-left: -10px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: var(--terracotta); font-size: 10px; font-weight: 700; }
.avatar-stack span:nth-child(2) { background: var(--gold); }
.avatar-stack span:nth-child(3) { background: var(--primary); }

.hero-visual { position: relative; min-height: 510px; align-self: end; }
.hero-photo { position: absolute; z-index: 2; inset: 12px 0 0 10%; height: 428px; border-radius: 30px 30px 30px 30px!important; 
background: url(../images/01.jpg) center center no-repeat!important; 
  background-size: 100%!important;}
.image-placeholder {
  position: relative;
  display: grid;
  overflow: hidden;
  place-items: center;
  padding: 24px;
  color: rgba(75, 54, 33, 0.72);
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.75), transparent 22%),
    linear-gradient(145deg, var(--nude), #d7a58f 52%, #9d5b48);
  text-align: center;
}
.image-placeholder::before { width: 130px; height: 130px; top: 20%; left: 18%; }
.image-placeholder::after { width: 190px; height: 190px; right: -40px; bottom: -30px; }
.image-placeholder > * { position: relative; z-index: 1; }
.image-placeholder span, .image-placeholder strong { font-weight: 600; }
.image-placeholder small { display: block; font-size: 11px; }
.placeholder-icon { display: block; color: #fff; font-size: 44px; line-height: 1; }
.hero-orbit { position: absolute; border-radius: 50%; }
.orbit-one { width: 390px; height: 390px; right: -40px; bottom: -120px; background: rgba(197, 160, 89, 0.12); }
.orbit-two { width: 280px; height: 280px; top: 50px; left: 0; border: 1px solid rgba(189, 0, 45, 0.18); }
.floating-card { position: absolute; z-index: 4; right: -10px; bottom: 88px; padding: 18px 22px; border: 1px solid rgba(255,255,255,.7); border-radius: 16px; color: var(--primary); background: rgba(255,253,251,.94); box-shadow: var(--shadow); font-size: 13px; line-height: 1.4; }
.mini-gallery { position: absolute; z-index: 5; bottom: 60px; left: 5%; display: grid; gap: 8px; }
.mini-photo { width: 44px; height: 54px; border: 3px solid #fff; border-radius: 12px; background: linear-gradient(145deg, var(--nude), var(--terracotta)); box-shadow: var(--shadow-soft); }
.mini-photo:nth-child(2) { background: linear-gradient(145deg, #e9c2b8, var(--gold)); }
.mini-photo:nth-child(3) { background: linear-gradient(145deg, #f9dddd, var(--primary)); }
.stats { position: relative; z-index: 6; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(189, 0, 45, .12); }
.stats div { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 88px; text-align: center; }
.stats strong { color: var(--primary); font-size: 18px; }
.stats span { color: var(--muted); font-size: 12px; }


.fotomedica01 { background: url(../images/ana-priscila.jpg) center center no-repeat!important; background-size: 100%!important;}
.fotomedica02 { background: url(../images/clinica_placeholder.jpg) center center no-repeat!important; background-size: 100%!important;}
.fotomedica03 { background: url(../images/foto_01.jpg) center center no-repeat!important; background-size: 130%!important;}
.fotomedica04 { background: url(../images/foto_02.jpg) center center no-repeat!important; background-size: 130%!important;}
.fotomedica05 { background: url(../images/foto_03.jpg) center center no-repeat!important; background-size: 130%!important;}


.cuidado01 { background: url(../images/ginecologia.jpg) center center no-repeat!important; background-size: 100%!important;}
.cuidado02 { background: url(../images/saudeemocional.jpg) center center no-repeat!important; background-size: 100%!important;}
.cuidado03 { background: url(../images/dermatologia.jpg) center center no-repeat!important; background-size: 100%!important;}
.cuidado04 { background: url(../images/nutricao.jpg) center center no-repeat!important; background-size: 100%!important;}
.cuidado05 { background: url(../images/fisioterapia.jpg) center center no-repeat!important; background-size: 100%!important;}
.cuidado06 { background: url(../images/terapeutasexual.jpg) center center no-repeat!important; background-size: 100%!important;}


.clinica01 { background: url(../images/placeholder_01.jpeg) center center no-repeat!important; background-size: 100%!important;}
.clinica02 { background: url(../images/placeholder_02.jpg) center center no-repeat!important; background-size: 120%!important;}
.clinica03 { background: url(../images/placeholder_03.jpg) center center no-repeat!important; background-size: 120%!important;}
.clinica04 { background: url(../images/placeholder_04.jpg) center center no-repeat!important; background-size: 150%!important;}
.clinica05 { background: url(../images/placeholder_05.jpg) center center no-repeat!important; background-size: 150%!important;}
.clinica06 { background: url(../images/placeholder_06.jpg) center center no-repeat!important; background-size: 100%!important;}

blockquote { margin: 24px 0; }
.content-block > blockquote { padding-left: 20px; border-left: 3px solid var(--primary); color: var(--primary); font-size: 17px; font-weight: 500; }
.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 32px; }
.feature-grid article { padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); transition: transform var(--transition), box-shadow var(--transition); }
.feature-grid article:hover { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.feature-grid article > span { display: block; margin-bottom: 8px; color: var(--primary); font-size: 11px; font-weight: 700; }
.feature-grid h3 { margin-bottom: 6px; font-size: 16px; letter-spacing: -0.02em; }
.feature-grid p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.portrait-composition { position: relative; min-height: 510px; }
.portrait { position: absolute; border: 8px solid var(--white); box-shadow: var(--shadow); }
.portrait-main { width: 70%; height: 400px; top: 0; right: 0; border-radius: 28px; }
.portrait-small { width: 46%; height: 270px; bottom: 0; left: 0; border-radius: 24px; background: linear-gradient(145deg, #eeddd7, var(--gold)); }
.quote-badge { position: absolute; z-index: 4; top: 145px; left: 2%; padding: 18px 20px; border-radius: 14px; color: #fff; background: var(--primary); box-shadow: var(--shadow-soft); font-size: 12px; }

.phase-section::after { content: ""; position: absolute; right: 0; bottom: 0; width: 32%; height: 1px; background: linear-gradient(90deg, transparent, var(--gold)); }
.tag-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 28px; }
.tag-list span {min-width: 120px; text-align: center; padding: 7px 12px; border: 1px solid rgba(189,0,45,.2); border-radius: 999px; color: var(--primary); background: rgba(255,255,255,.52); font-size: 11px; font-weight: 600; }
.phase-collage { display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: repeat(2, 190px); gap: 14px; min-height: 394px; }
.phase-collage .image-placeholder { border: 6px solid rgba(255,255,255,.8); border-radius: 26px; box-shadow: var(--shadow-soft); }
.collage-tall { grid-row: span 2; background: linear-gradient(145deg, #f1cbc1, var(--terracotta)); }
.collage-card:nth-child(2) { background: linear-gradient(145deg, var(--nude), var(--gold)); }
.collage-card:nth-child(3) { background: linear-gradient(145deg, #eeded8, var(--primary)); }

.care-section { background: var(--white); }
.care-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.care-card { overflow: hidden; border: 1px solid var(--border); border-radius: 22px; background: var(--surface); box-shadow: 0 8px 25px rgba(75,54,33,.05); transition: transform var(--transition), box-shadow var(--transition); }
.care-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-soft); }
.card-photo { height: 140px; border-radius: 0 0 28px 28px; }
.variant-2 { background: linear-gradient(145deg, #ead3c8, var(--coffee)); color: #fff; }
.variant-3 { background: linear-gradient(145deg, #f1d9c9, var(--gold)); }
.variant-4 { background: linear-gradient(145deg, #eed5da, var(--primary)); color: #fff; }
.variant-5 { background: linear-gradient(145deg, #f4e8d9, var(--terracotta)); color: #fff; }
.variant-6 { background: linear-gradient(145deg, var(--nude), var(--coffee)); color: #fff; }
.care-card-body { padding: 24px; }
.care-card-body h3 { min-height: 46px; font-size: 18px; }
.care-card-body p { min-height: 78px; color: var(--muted); font-size: 13px; }
.care-card-body a { display: inline-flex; gap: 8px; color: var(--primary); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }

.journey-gallery { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 235px 190px; gap: 12px; }
.journey-gallery .image-placeholder { border-radius: 22px; box-shadow: var(--shadow-soft); }
.journey-wide { grid-column: span 2; background: linear-gradient(145deg, var(--nude), var(--terracotta)); }
.journey-small { background: linear-gradient(145deg, #f6e6de, var(--gold)); }
.journey-list { display: grid; gap: 10px; margin: 27px 0; }
.journey-list > div { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: center; padding: 15px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.58); }
.journey-list span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; background: var(--primary); font-size: 10px; font-weight: 700; }
.journey-list p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }

.testimonials-section { background: linear-gradient(180deg, #fff8f8, #fffdfb); }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.testimonial-card { overflow: hidden; border: 1px solid var(--border); border-radius: 22px; background: #fff; box-shadow: var(--shadow-soft); }
.testimonial-photo { height: 210px; border-radius: 0 0 28px 28px; }
.testimonial-body { padding: 24px; }
.stars { margin-bottom: 12px; color: var(--gold); font-size: 12px; letter-spacing: .15em; }
.testimonial-body blockquote { min-height: 142px; margin: 0 0 17px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.testimonial-body p { margin: 0; color: var(--coffee); font-size: 12px; }
.disclaimer { margin: 22px 0 0; color: #8b7b74; font-size: 10px; text-align: center; }

.structure-visual { position: relative; min-height: 480px; }
.structure-visual .image-placeholder { position: absolute; border: 7px solid #fff; border-radius: 26px; box-shadow: var(--shadow); }
.clinic-main { width: 80%; height: 390px; top: 0; left: 0; background: linear-gradient(145deg, #f3ddd2, var(--terracotta)); }
.clinic-small { width: 48%; height: 210px; right: 0; bottom: 0; background: linear-gradient(145deg, var(--nude), var(--gold)); }
.number-badge { position: absolute; z-index: 4; top: 35px; right: 0; display: grid; place-items: center; width: 112px; height: 112px; border-radius: 24px; color: #fff; background: var(--primary); box-shadow: var(--shadow); text-align: center; transform: rotate(3deg); }
.number-badge strong { font-size: 22px; line-height: 1; }
.number-badge span { font-size: 9px; }
.check-list { display: grid; gap: 14px; margin: 28px 0 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 30px; color: var(--muted); font-size: 14px; }
.check-list li::before { content: "✓"; position: absolute; top: 1px; left: 0; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: #fff; background: var(--primary); font-size: 11px; font-weight: 700; }

.booking-section { padding-bottom: 92px; }.booking-grid { display: grid; align-items: center; width: 50%; }
.booking-trust { margin: 28px 0; }
.contact-list { display: grid; gap: 9px; font-style: normal; }
.contact-list > a, .contact-list > div { display: grid; grid-template-columns: 35px 1fr; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid rgba(189,0,45,.09); border-radius: 12px; background: rgba(255,255,255,.45); }
.contact-list > * > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; background: var(--primary); font-style: normal; font-size: 13px; }
.contact-list strong, .contact-list small { display: block; }
.contact-list strong { font-size: 12px; }
.contact-list small { color: var(--muted); font-size: 11px; }
.booking-form { padding: clamp(26px, 4vw, 42px); border: 1px solid rgba(255,255,255,.8); border-radius: 26px; background: rgba(255,253,251,.9); box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.form-heading p { color: var(--muted); font-size: 12px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.booking-form label { display: grid; gap: 7px; margin-bottom: 14px; color: var(--coffee); font-size: 11px; font-weight: 600; }
.booking-form input, .booking-form select, .booking-form textarea { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; outline: none; color: var(--ink); background: #fffaf8; font-size: 16px; transition: border-color var(--transition), box-shadow var(--transition); }
.booking-form textarea { resize: vertical; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(189,0,45,.08); }
.form-submit { width: 100%; margin-top: 5px; border: 0; }
.privacy-note { display: block; margin-top: 12px; color: var(--muted); font-size: 9px; text-align: center; }

.site-footer { padding: 58px 0 24px; color: var(--primary); background: #fef8f7; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 55px; }
.footer-brand img { width: 155px; height: 64px; margin-bottom: 18px; padding: 4px 10px; border-radius: 10px; background: #fff; object-fit: contain; }
.footer-brand p { max-width: 330px; font-size: 12px; }
.site-footer h3 { margin: 10px 0 18px; color: var(--primary); font-size: 14px; letter-spacing: 0; }
.site-footer a, .site-footer p { display: block; margin-bottom: 9px; font-size: 11px; color:var(--primary); }
.site-footer a { transition: opacity var(--transition), transform var(--transition); }
.site-footer a:hover { opacity: .8; transform: translateX(2px); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 40px; padding-top: 22px; border-top: 1px solid #efd8de; }
.footer-bottom p { margin: 0; }

.whatsapp-float { position: fixed; z-index: 900; right: 22px; bottom: 22px; display: grid; place-items: center; width: 56px; height: 56px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: var(--primary); box-shadow: 0 14px 32px rgba(75,54,33,.25); font-size: 22px; transition: transform var(--transition), background var(--transition); }
.whatsapp-float:hover { transform: translateY(-4px) scale(1.03); background: var(--primary-dark); }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity 720ms ease, transform 720ms cubic-bezier(.2,.75,.2,1); }
.reveal.delay-1 { transition-delay: 120ms; }
.reveal.delay-2 { transition-delay: 240ms; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Página Médicas */
.inner-hero { min-height: 520px; padding: calc(var(--header-height) + 95px) 0 90px; display: grid; place-items: center; text-align: center; }
.inner-hero .content-block { max-width: 720px; }
.inner-hero .eyebrow { justify-content: center; }
.inner-hero .lead { margin-inline: auto; }
.doctors-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.doctor-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--border); border-radius: 22px; background: #fff; box-shadow: var(--shadow-soft); transition: transform var(--transition), box-shadow var(--transition); }
.doctor-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.doctor-card > img { width: 100%; aspect-ratio: 5 / 5; object-fit: cover; background: var(--nude-light); }
.doctor-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 22px; }
.doctor-card h3 { margin-bottom: 7px; font-size: 18px; }
.doctor-specialty { margin-bottom: 15px; color: var(--primary); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.doctor-summary { margin-bottom: 20px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.doctor-more { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding: 0 0 5px; border: 0; border-bottom: 1px solid rgba(189,0,45,.25); color: var(--primary); background: transparent; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; transition: gap var(--transition), border-color var(--transition); }
.doctor-more:hover, .doctor-more:focus-visible { gap: 13px; border-color: var(--primary); outline: none; }
.doctor-modal { position: fixed; z-index: 2000; inset: 0; display: grid; padding: 24px; place-items: center; opacity: 0; visibility: hidden; transition: opacity var(--transition), visibility var(--transition); }
.doctor-modal.is-open { opacity: 1; visibility: visible; }
.doctor-modal-backdrop { position: absolute; inset: 0; background: rgba(75,54,33,.38); backdrop-filter: blur(8px); }
.doctor-modal-dialog { position: relative; z-index: 1; width: min(100%, 650px); max-height: min(760px, calc(100vh - 48px)); overflow-y: auto; padding: clamp(30px, 5vw, 52px); transform: translateY(18px) scale(.98); border: 1px solid rgba(255,255,255,.8); border-radius: 26px; background: linear-gradient(145deg, #fffdfb, #f8ebe5); box-shadow: 0 30px 80px rgba(75,54,33,.24); transition: transform var(--transition); }
.doctor-modal.is-open .doctor-modal-dialog { transform: translateY(0) scale(1); }
.doctor-modal-dialog .eyebrow { padding-right: 35px; }
.doctor-modal-dialog h2 { margin-bottom: 8px; font-size: 24px; }
.doctor-modal-specialty { margin: 0; color: var(--primary); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.doctor-modal-divider { width: 58px; height: 2px; margin: 24px 0; background: var(--gold); }
#doctor-modal-bio {
    color: var(--muted);
}

#doctor-modal-bio p {
    margin-bottom: 18px;
}

#doctor-modal-bio h3 {
    margin: 26px 0 12px;
    color: var(--coffee);
    font-size: 18px;
}

#doctor-modal-bio ul {
    margin: 0 0 22px;
    padding-left: 22px;
}

#doctor-modal-bio li {
    margin-bottom: 8px;
}

#doctor-modal-bio strong {
    color: var(--coffee);
    font-weight: 700;
}
.doctor-modal-close { position: absolute; top: 17px; right: 18px; display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--border); border-radius: 50%; color: var(--coffee); background: rgba(255,255,255,.75); font-size: 28px; line-height: 1; cursor: pointer; transition: color var(--transition), background var(--transition), transform var(--transition); }
.doctor-modal-close:hover, .doctor-modal-close:focus-visible { transform: rotate(6deg); color: #fff; background: var(--primary); outline: none; }


@media (max-width: 1060px) {
  :root { --header-height: 74px; }
  .menu-toggle { display: block; position: relative; z-index: 1002; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .main-nav { position: fixed; z-index: 1001; inset: var(--header-height) 0 auto; display: grid; gap: 0; padding: 18px 20px 28px; transform: translateY(-130%); border-bottom: 1px solid var(--border); background: rgba(255,253,251,.98); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transition: transform var(--transition), opacity var(--transition), visibility var(--transition); }
  .main-nav.open { transform: translateY(0); opacity: 1; visibility: visible; }
  .main-nav > a:not(.button) { padding: 13px 8px; font-size: 15px; }
  .main-nav .button { margin-top: 12px; }
  .main-nav > a:not(.button)::after { display: none; }
  .brand { width: 135px; }
  .brand img { height: 52px; }
  .hero-grid { gap: 32px; }
  .hero-photo { left: 4%; }
}

@media (max-width: 820px) {
  .section { padding: 76px 0; }
  .split-grid, .booking-grid { grid-template-columns: 1fr; gap: 48px; }
  .content-block { max-width: none; }
  .hero { padding-top: calc(var(--header-height) + 58px); }
  .hero-grid { grid-template-columns: 1fr; text-align: center; }
  .hero-copy { padding-bottom: 0; }
  .hero-copy .eyebrow { justify-content: center; }
  .hero-copy .lead { margin-inline: auto; }
  .hero-actions, .trusted-by { justify-content: center; }
  .hero-visual { width: min(100%, 570px); min-height: 480px; margin-inline: auto; }
  .hero-photo { inset: 0 8% 0; height: 470px; }
  .floating-card { right: 2%; bottom: 60px; }
  .mini-gallery { left: 3%; }
  .stats { margin-top: 30px; }
  .portrait-composition, .structure-visual { width: min(100%, 590px); margin-inline: auto; }
  .care-grid { grid-template-columns: repeat(2, 1fr); }
  .care-card-body p { min-height: 100px; }
  .testimonial-grid { grid-template-columns: 1fr; max-width: 600px; margin-inline: auto; }
  .testimonial-body blockquote { min-height: 0; }
  .testimonial-photo { height: 250px; }
  .reverse-mobile > :first-child { order: 2; }
  .reverse-mobile > :last-child { order: 1; }
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; gap: 35px; }
  .footer-brand { grid-column: span 3; }
  .coming-grid { grid-template-columns: repeat(2, 1fr); }
  .doctors-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  :root { --radius: 19px; }
  body { line-height: 1.6; }
  .container { width: min(calc(100% - 30px), var(--container)); }
  .section { padding: 64px 0; }
  h1 { font-size: 26px; }
  h2 { font-size: 22px; }
  h3 { font-size: 20px; }
  .hero { padding-top: calc(var(--header-height) + 42px); }
  .hero-copy h1 em { display: inline; }
  .hero-actions { flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .hero-visual { min-height: 395px; }
  .hero-photo { inset: 0 3% 0; height: 385px; border-radius: 150px 150px 24px 24px; }
  .floating-card { right: 0; bottom: 35px; padding: 13px 15px; font-size: 11px; }
  .mini-gallery { bottom: 20px; }
  .mini-photo { width: 35px; height: 44px; }
  .stats { grid-template-columns: 1fr; padding: 10px 0; }
  .stats div { min-height: 54px; }
  .stats div + div { border-top: 1px solid rgba(189,0,45,.08); }
  .feature-grid { grid-template-columns: 1fr; }
  .portrait-composition { min-height: 430px; }
  .portrait-main { width: 82%; height: 340px; }
  .portrait-small { width: 53%; height: 220px; }
  .quote-badge { top: 105px; left: 0; }
  .phase-collage { grid-template-columns: 1fr 1fr; grid-template-rows: 245px 140px; }
  .collage-tall { grid-column: span 2; grid-row: auto; }
  .care-grid { grid-template-columns: 1fr; }
  .card-photo { height: 210px; }
  .care-card-body p, .care-card-body h3 { min-height: 0; }
  .journey-gallery { grid-template-rows: 190px 145px; }
  .journey-list > div { align-items: start; }
  .structure-visual { min-height: 400px; }
  .clinic-main { width: 88%; height: 330px; }
  .clinic-small { width: 55%; height: 175px; }
  .number-badge { width: 90px; height: 90px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .booking-form { padding: 23px 18px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: span 2; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 12px; }
  .whatsapp-float { right: 16px; bottom: 16px; width: 52px; height: 52px; }
  .coming-grid { grid-template-columns: 1fr; }
  .doctors-grid { grid-template-columns: 1fr; }
  .doctor-card > img { aspect-ratio: 5 / 5.5; }
  .doctor-modal { padding: 15px; }
  .doctor-modal-dialog { max-height: calc(100vh - 30px); padding: 34px 22px 26px; border-radius: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}
