/* ==========================================================================
   Dra. Lorena Balletti — Cardióloga
   Sistema: papel cálido + grafito suave + un acento petróleo discreto.
   Tarjetas con esquinas sutilmente redondeadas (no rectas, no píldora),
   tipografía con jerarquía real (serif de carácter + sans + monoespaciada
   para datos), y el trazo de un ECG como único motivo estructural.
   ========================================================================== */

@font-face{ font-family:'Fraunces'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/fraunces-600.woff2') format('woff2'); }
@font-face{ font-family:'Fraunces'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/fraunces-700.woff2') format('woff2'); }
@font-face{ font-family:'Fraunces'; font-style:normal; font-weight:900; font-display:swap; src:url('../fonts/fraunces-900.woff2') format('woff2'); }
@font-face{ font-family:'Fraunces'; font-style:italic; font-weight:500; font-display:swap; src:url('../fonts/fraunces-500italic.woff2') format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/plexsans-400.woff2') format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/plexsans-500.woff2') format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/plexsans-600.woff2') format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/plexsans-700.woff2') format('woff2'); }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/plexmono-400.woff2') format('woff2'); }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/plexmono-500.woff2') format('woff2'); }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/plexmono-600.woff2') format('woff2'); }

:root{
  --ink: #34312C;
  --ink-soft: #6B6459;
  --paper: #F4F1EA;
  --paper-raised: #ECE7DC;
  --paper-tint: #F1E6E7;
  --surface: #FBFAF7;
  --line: #DAD4C6;
  --line-on-ink: rgba(244,241,234,0.16);
  --pulse: #6B2A3A;
  --pulse-dim: #501F2C;

  --whatsapp-green: #25D366;
  --whatsapp-green-dark: #1DA851;

  --radius-sm: 8px;
  --radius-md: 12px;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Consolas, monospace;

  --container-w: 1180px;
  --transition: 0.25s cubic-bezier(.4,0,.2,1);
  --shadow-soft: 0 12px 32px -18px rgba(52,49,44,0.28);
}

*, *::before, *::after{ box-sizing: border-box; }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

html{ scroll-behavior: smooth; scroll-padding-top: 90px; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink-soft);
  background: var(--paper);
  line-height: 1.65;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul, ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3{ font-family: var(--font-display); font-weight: 700; line-height:1.15; text-wrap: balance; margin:0 0 .5em; color: var(--ink); }
p{ margin:0 0 1em; color: var(--ink-soft); max-width: 62ch; }
.container{ max-width: var(--container-w); margin:0 auto; padding: 0 28px; }
strong{ color: var(--ink); font-weight: 600; }
em{ font-style: italic; }
::selection{ background: var(--pulse); color: #fff; }
:focus-visible{ outline: 2px solid var(--pulse); outline-offset: 3px; }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--ink); color:#fff;
  padding: 10px 16px; z-index: 999; border-radius: 0 0 8px 0;
}
.skip-link:focus{ left:0; }

.mono{ font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

.eyebrow{
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .78rem;
  font-weight: 500;
  color: var(--pulse);
  margin: 0 0 1em;
  display: flex;
  align-items: center;
  gap: .6em;
}
.center.eyebrow{ justify-content:center; }
.center{ text-align:center; margin-left:auto; margin-right:auto; }
.section-lead{ font-size:1.06rem; max-width: 58ch; }

section{ padding: 100px 0; }
section h2{ font-size: clamp(1.7rem, 3vw, 2.4rem); max-width: 24ch; }
section h2:not(.center){ margin-left:0; margin-right:0; }
section + section{ border-top: 1px solid var(--line); }

/* Buttons — redondeo sutil, sin píldora marcada */
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  padding: 13px 24px; border-radius: var(--radius-sm);
  font-family: var(--font-body); font-weight: 600; font-size: .88rem;
  letter-spacing: .01em;
  border: 1px solid var(--ink);
  transition: transform var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
  white-space: nowrap;
}
.btn .icon, .btn svg{ width:16px; height:16px; fill:currentColor; flex-shrink:0; }
.btn-primary{ background: var(--ink); color: var(--paper); }
.btn-primary:hover{ background: transparent; color: var(--ink); }
.btn-whatsapp{
  background: var(--whatsapp-green); color: #fff; border-color: var(--whatsapp-green);
}
.btn-whatsapp:hover{ background: var(--whatsapp-green-dark); border-color: var(--whatsapp-green-dark); }
.btn-ghost{ background: transparent; color: var(--ink); border-color: var(--line); }
.btn-ghost:hover{ border-color: var(--ink); background: var(--paper-raised); }
.btn-lg{ padding: 16px 30px; font-size: .92rem; }

/* Header */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(52,49,44,0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  transition: box-shadow var(--transition);
}
.site-header.scrolled{ box-shadow: 0 1px 0 var(--line); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; height: 80px; }

.brand{ display:flex; align-items:center; gap:.8em; }
.brand-mark{ width:30px; height:30px; flex-shrink:0; }
.brand-mark svg{ width:100%; height:100%; }
.brand-mark svg circle{ fill: none; stroke: var(--paper); stroke-width:5; }
.brand-mark svg path{ stroke: var(--paper); stroke-width:6; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.brand-text{ font-family: var(--font-display); font-weight:700; font-size:1.1rem; color: var(--paper); display:flex; flex-direction:column; line-height:1.2; }
.brand-text small{ font-family: var(--font-mono); font-weight:500; font-size:.66rem; letter-spacing:.06em; color: rgba(244,241,234,0.7); text-transform:uppercase; }

.primary-nav{ display:flex; align-items:center; gap: 2.1rem; }
.primary-nav a{ font-weight:500; font-size:.96rem; color: rgba(244,241,234,0.7); padding: 6px 0; position:relative; }
.primary-nav a:not(.btn)::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background: var(--paper);
  transform: scaleX(0); transform-origin:left; transition: transform var(--transition);
}
.primary-nav a:not(.btn):hover::after{ transform: scaleX(1); }
.primary-nav a.active{ color: var(--paper); }
.primary-nav a.active::after{ transform: scaleX(1); }
.primary-nav a.btn-whatsapp{ color:#fff; }
.primary-nav a.btn-nav{ padding: 12px 26px; font-size:1rem; }

.nav-item{ position:relative; display:flex; align-items:center; }
.nav-item > a{ display:flex; align-items:center; gap:7px; }
.nav-chevron{
  display:inline-block; width:5px; height:5px; border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor; transform:rotate(45deg); opacity:.7; margin-top:-3px;
}
.nav-dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  background: var(--surface); border:1px solid var(--line); border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft); padding:8px; min-width:280px;
  display:flex; flex-direction:column; gap:1px;
  opacity:0; pointer-events:none; transition: opacity var(--transition), transform var(--transition); z-index:200;
}
.nav-item:hover .nav-dropdown, .nav-item:focus-within .nav-dropdown{
  opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.nav-dropdown a{ padding:11px 14px; border-radius: 6px; font-size:.86rem; font-weight:500; color: var(--ink-soft); }
.nav-dropdown a::after{ content:none; }
.nav-dropdown a:hover{ background: var(--paper); color: var(--ink); }
.nav-dropdown a.nav-dropdown-all{
  border-top:1px solid var(--line); margin-top:5px; padding-top:14px; border-radius:0; color: var(--pulse); font-family: var(--font-mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em;
}

.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:42px; height:42px; background:none; border:none; cursor:pointer;
}
.nav-toggle span{ display:block; height:1.5px; background: var(--paper); border-radius:1px; }

/* ECG trace motif — usado solo en el hero */
.ecg-line{ display:block; width:100%; height:auto; color: var(--ink-soft); overflow:visible; }
.ecg-line path{ fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ecg-divider{ padding: 0; }
.ecg-divider .container{ padding-top:0; padding-bottom:0; }
.ecg-line.animate path{
  stroke-dasharray: 1400; stroke-dashoffset: 1400;
  animation: draw-ecg 2.4s cubic-bezier(.3,.7,.4,1) .3s forwards;
}
@keyframes draw-ecg{ to{ stroke-dashoffset: 0; } }

/* Hero */
.hero{ padding-top: 64px; padding-bottom: 0; margin-bottom: -32px; position: relative; }
.hero-grid{ display:grid; grid-template-columns: 1.05fr .95fr; gap: 64px; align-items:stretch; }

/* Prueba: fondo fotográfico de cuerpo completo en vez de la columna con recorte */
.hero.hero-bg-photo{
  padding-bottom: 72px; margin-bottom: 0;
  background-image:
    linear-gradient(90deg, var(--paper) 0%, var(--paper) 34%, rgba(244,241,234,.6) 50%, rgba(244,241,234,0) 68%),
    url('../images/fondo-hero.jpg');
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}
.hero.hero-bg-photo .hero-grid{ grid-template-columns: 1fr; }
.hero.hero-bg-photo .hero-visual{ display: none; }
.hero h1{ font-size: clamp(2.6rem, 5.2vw, 4.1rem); margin-bottom:.3em; font-weight:600; }
.hero-lead{ font-size:1.2rem; color: var(--ink); font-weight:500; max-width: 46ch; font-family: var(--font-display); font-style:italic; }
.hero-sub{ max-width: 48ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:16px; margin: 30px 0 44px; }

.hero-stats{
  display:grid; grid-template-columns: repeat(4,1fr); gap: 20px;
  padding: 0 0 60px;
}
.ecg-line-small{ height: 30px; width:108%; margin: 8px 0 24px; }
.ecg-line-small path{ stroke-width: 1.8; }
.hero-stats > div{ display:flex; flex-direction:column; gap:.35em; }
.hero-stats dt{ font-family: var(--font-mono); font-size:1.35rem; font-weight:600; color: var(--ink); font-variant-numeric: tabular-nums; }
.hero-stats dd{ margin:0; font-size:.78rem; color: var(--ink-soft); line-height:1.35; }

.hero-visual{ position:relative; display:flex; justify-content:center; align-items:flex-end; }
.hero-photo-frame{ position:relative; width: min(100%, 430px); }

/* Recorte sin marco, apoyado en el borde inferior — prueba con foto placeholder */
.hero-cutout-frame{ width: min(100%, 520px); height:110%; display:flex; align-items:flex-end; justify-content:center; }
.hero-cutout{
  width:100%; height:auto; max-height:100%; object-fit:contain; object-position:bottom center; display:block;
  transform: translateY(-32px);
  filter: drop-shadow(0 18px 24px rgba(52,49,44,.22));
}
.hero-photo{
  width:100%; aspect-ratio: 4/5; object-fit:cover; object-position: top center;
  border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-soft);
}
.hero-tag{
  position:absolute; left:14px; bottom: -18px;
  background: var(--ink); color: var(--paper); padding: 12px 20px; border-radius: var(--radius-sm);
  font-family: var(--font-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  display:flex; flex-direction:column; gap:2px; max-width: calc(100% - 28px);
  box-shadow: var(--shadow-soft);
}
.hero-tag strong{ color:#fff; font-size:.8rem; letter-spacing:.03em; }
.hero-badge{
  position:absolute; top:16px; right:14px; background: var(--pulse); color:#fff; border-radius: var(--radius-sm);
  font-family: var(--font-mono); font-size:.7rem; letter-spacing:.05em; text-transform:uppercase;
  padding: 9px 14px; display:flex; align-items:center; gap:.5em; box-shadow: var(--shadow-soft);
}
.hero-badge svg{ width:13px; height:13px; fill:#fff; }

/* Page hero (inner pages) */
.page-hero{ background: var(--paper-raised); padding: 60px 0 52px; border-bottom: 1px solid var(--line); }
.page-hero h1{ font-size: clamp(2rem, 4vw, 2.8rem); max-width: 20ch; font-weight:600; }
.page-hero-lead{ font-size: 1.08rem; max-width: 60ch; margin:0; font-family: var(--font-display); font-style:italic; color: var(--ink); }
.page-hero .btn{ margin-top: 28px; }

/* Prueba: fondo fotográfico en el page-hero (reutilizable por página vía --hero-photo) */
.page-hero-photo{
  --hero-photo: url('../images/foto-fondo2.jpg');
  background-image:
    linear-gradient(90deg, var(--paper-raised) 0%, var(--paper-raised) 30%, rgba(236,231,220,.65) 46%, rgba(236,231,220,0) 62%),
    var(--hero-photo);
  background-size: cover;
  background-position: top right;
  background-repeat: no-repeat;
}
.page-hero-photo--prestaciones{ --hero-photo: url('../images/fondo-prestaciones.jpg'); }
.breadcrumb{
  font-family: var(--font-mono); font-size: .76rem; color: var(--ink-soft); margin: 0 0 20px;
  display:flex; gap:8px; align-items:center; flex-wrap:wrap; text-transform:uppercase; letter-spacing:.04em;
}
.breadcrumb a{ color: var(--ink-soft); }
.breadcrumb a:hover{ color: var(--pulse); }
.breadcrumb span[aria-hidden]{ color: var(--line); }
.breadcrumb .current{ color: var(--ink); }

/* Image placeholder — para cuando aún no hay foto real */
.image-slot{
  background: linear-gradient(155deg, var(--paper-raised), var(--paper-tint));
  border: 1px solid var(--line); border-radius: var(--radius-md);
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding: 32px; min-height: 220px;
}
.image-slot-inner{ display:flex; flex-direction:column; align-items:center; gap:10px; max-width: 26ch; }
.image-slot svg{ width:28px; height:28px; stroke: var(--ink-soft); fill:none; stroke-width:1.4; opacity:.6; }
.image-slot span{
  font-family: var(--font-mono); font-size:.76rem; color: var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;
}

/* Trayectoria highlights (Home) */
.highlights{ background: var(--paper-raised); }
.highlights.highlights-home{ background: var(--paper); }
.highlights-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; margin: 44px 0 40px; }
.highlight-badge{
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 24px 22px;
}
.highlight-badge strong{
  display:block; font-family: var(--font-mono); color: var(--pulse); font-size:.82rem;
  letter-spacing:.03em; margin-bottom:8px; text-transform:uppercase;
}
.highlight-badge span{ font-size:.92rem; color: var(--ink-soft); }

/* Trust pillars */
.pillars{ background: var(--paper); }
.pillars.pillars-home{ background: var(--paper-raised); }
.services.services-home{ background: var(--paper-raised); }
.faq-section{ background: var(--paper); }
.pillars-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:20px; margin-top: 44px; }
.pillar{ background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 28px 24px; text-align:left; }
.pillar-icon{ display:inline-block; width:26px; height:26px; margin-bottom:18px; }
.pillar-icon svg{ width:100%; height:100%; fill:none; color: var(--ink); stroke: var(--ink); stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.pillar h3{ font-size:1.02rem; margin-bottom:.5em; font-weight:600; }
.pillar p{ font-size:.9rem; margin:0; }

/* About */
.about{ background: var(--paper); }
.about-grid{ display:grid; grid-template-columns: 1.5fr 1fr; gap: 60px; align-items:start; }
.about-copy p{ font-size:1.03rem; }
.about-copy strong{ color: var(--ink); }

.credentials-card{
  background: var(--ink); color: var(--paper); padding: 36px 30px; border-radius: var(--radius-md);
  position: sticky; top: 100px;
}
.credentials-card h3{
  color: var(--paper); font-family: var(--font-mono); font-size:.8rem; text-transform:uppercase;
  letter-spacing:.1em; margin-bottom:1.4em; font-weight:500;
}
.credentials-card ul{ display:flex; flex-direction:column; gap: 18px; }
.credentials-card li{
  display:flex; gap:12px; align-items:flex-start; font-size:.92rem; color: rgba(244,241,234,0.88);
  padding-bottom:16px; border-bottom: 1px solid var(--line-on-ink);
}
.credentials-card li:last-child{ border-bottom:none; padding-bottom:0; }
.credentials-card svg{ width:14px; height:14px; flex-shrink:0; margin-top:4px; stroke: #C98FA0; stroke-width:3; fill:none; }

.about-image{ margin-top: 32px; }
.about-image .image-slot{ min-height: 260px; }
.about-photo{
  width:100%; aspect-ratio: 16/7; object-fit:cover; object-position: center 30%;
  border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); display:block;
}

/* Services */
.services-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:20px; margin-top: 44px; }
.service-card{ background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 38px 36px; }
.service-icon{ display:inline-block; width:30px; height:30px; margin-bottom: 22px; }
.service-icon svg{ width:100%; height:100%; fill: none; color: var(--pulse); stroke: var(--pulse); stroke-width:1.5; }
.service-card h3{ font-size:1.28rem; font-weight:600; }
.service-card ul{ margin-top: 18px; display:flex; flex-direction:column; gap:10px; }
.service-card li{ position:relative; padding-left: 20px; font-size:.92rem; color: var(--ink-soft); }
.service-card li::before{
  content:"—"; position:absolute; left:0; top:0; color: var(--line);
}
.services-note{ margin-top: 40px; color: var(--ink-soft); font-size:.94rem; }
.services-note a, .about-copy p a{ color: var(--pulse); font-weight:600; text-decoration: underline; text-underline-offset: 3px; }

/* Timeline */
.timeline{ max-width: 820px; margin: 56px auto 0; position:relative; }
.timeline::before{ content:""; position:absolute; left:96px; top:4px; bottom:4px; width:1px; background: var(--line); }
.timeline li{ display:grid; grid-template-columns: 82px 1fr; gap: 30px; position:relative; padding-bottom: 38px; }
.timeline li:last-child{ padding-bottom:0; }
.timeline li::after{
  content:""; position:absolute; left: 92px; top:5px; width:9px; height:9px; border-radius:50%;
  background: var(--pulse);
}
.timeline time{ font-family: var(--font-mono); font-weight:600; color: var(--ink); font-size:.86rem; text-align:right; padding-top:1px; font-variant-numeric: tabular-nums; }
.timeline h3{ font-size:1.05rem; margin-bottom:.3em; font-weight:600; }
.timeline p{ margin:0; font-size:.92rem; }
.timeline-cta{ margin-top: 52px; }

/* Credentials / Formación grid */
.credentials-section{ background: var(--paper-raised); }
.credentials-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap:20px; margin-top: 44px; }
.credential-block{ background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 30px; }
.credential-block h3{
  font-size:.82rem; font-family: var(--font-mono); text-transform:uppercase; letter-spacing:.08em;
  color: var(--pulse); font-weight:500;
}
.credential-block p{ font-size:.94rem; margin:0; }
.credential-block em{ font-style:italic; color: var(--ink); }
.publications-block{ margin-top: 20px; }
.publications-block p{ line-height: 2; font-size:.9rem; }

/* Contact */
.contact-grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items:center; }
.contact-list{ display:flex; flex-direction:column; gap: 0; margin: 30px 0 34px; }
.contact-list li{
  display:flex; gap:14px; align-items:flex-start; font-size:1rem; color: var(--ink);
  padding: 18px 0; border-bottom: 1px solid var(--line);
}
.contact-list svg{ width:20px; height:20px; flex-shrink:0; margin-top:2px; }
.contact-list svg.ico-fill{ fill: var(--pulse); }
.contact-list svg.ico-line{ fill:none; stroke: var(--pulse); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.contact-list svg.ico-whatsapp-badge{ width:24px; height:24px; }
.contact-list em{ font-style:italic; color: var(--ink-soft); }
.contact-list strong{ font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

.map-embed{ border: 1px solid var(--line); border-radius: var(--radius-md); overflow:hidden; aspect-ratio: 4/3; box-shadow: var(--shadow-soft); }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; filter: grayscale(.15) contrast(1.02); }

/* Footer */
.site-footer{ background: var(--ink); color: rgba(244,241,234,0.7); padding: 52px 0; }
.footer-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; }
.footer-brand{ color: var(--paper); font-size:1.05rem; }
.footer-inner p{ margin:0; color: rgba(244,241,234,0.55); font-size:.84rem; font-family: var(--font-mono); }
.footer-copy{ font-size:.78rem; font-family: var(--font-mono); }
.social-links{ display:flex; gap:10px; }
.social-links a{
  width:36px; height:36px; border:1px solid var(--line-on-ink); border-radius: var(--radius-sm);
  display:flex; align-items:center; justify-content:center; transition: background var(--transition), border-color var(--transition);
}
.social-links svg{ width:16px; height:16px; fill: rgba(244,241,234,0.8); color: rgba(244,241,234,0.8); }
.social-links a:hover{ background: var(--pulse); border-color: var(--pulse); }
.social-links a:hover svg{ fill: #fff; color: #fff; }

/* WhatsApp floating button — circular a propósito (convención de chat) */
.whatsapp-float{
  position: fixed; right: 24px; bottom: 24px; width:56px; height:56px; border-radius:50%;
  background: var(--whatsapp-green); display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 22px -6px rgba(0,0,0,.35); z-index: 90; transition: transform var(--transition);
}
.whatsapp-float:hover{ transform: scale(1.07); background: var(--whatsapp-green-dark); }
.whatsapp-float svg{ width:26px; height:26px; fill: #fff; }

/* Coverage / Obras sociales */
.contact{ border-top: 1px solid var(--line); }
.coverage{ background: var(--paper-raised); padding: 56px 0; border-top: 1px solid var(--line); }
.coverage-inner{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap: 34px; text-align:center; }
.coverage-label{ margin: 0; font-size:.86rem; white-space:nowrap; }
.coverage-row{ display:flex; flex-wrap:wrap; gap:28px; justify-content:center; align-items:center; }

/* CTA band */
.cta-band{ background: var(--paper-raised); text-align:center; }
.cta-band h2{ margin-left:auto; margin-right:auto; }
.cta-band p{ color: var(--ink-soft); max-width:56ch; margin: 0 auto 30px; }

.cta-extra{ display:flex; flex-direction:column; align-items:center; gap:16px; margin: 0 auto 32px; }
.price-line{ color: var(--ink); font-size:1.1rem; font-family: var(--font-mono); font-weight:500; margin:0; }
.price-line strong{ color: var(--pulse); font-variant-numeric: tabular-nums; }
.insurers-label{
  color: var(--ink-soft); font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; margin:0;
  font-family: var(--font-mono);
}
.insurer-logos{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.insurer-logo{ display:flex; align-items:center; justify-content:center; }
.insurer-logo img{ height: 60px; width:auto; display:block; }

/* Related services strip */
.related-services{ background: var(--paper); }
.related-grid{ display:grid; grid-template-columns: repeat(5, 1fr); gap:14px; margin-top: 36px; }
.related-card{
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 22px 18px; text-align:center; font-weight:600; color: var(--ink); font-size:.92rem;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.related-card:hover{ background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* Service hub cards (5 services) */
.services-hub-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:20px; margin-top: 44px; }
.services-hub-grid .service-card{ display:flex; flex-direction:column; }
.services-hub-grid .service-card .btn{ margin-top: auto; align-self:flex-start; }

/* In-page sub navigation (Sobre la Dra.) */
.subnav{ background: var(--paper-raised); border-bottom: 1px solid var(--line); padding: 16px 0; }
.subnav .container{ display:flex; gap: 8px; flex-wrap:wrap; }
.subnav a{
  font-family: var(--font-mono); font-weight:500; font-size:.82rem; color: var(--ink-soft); padding: 10px 18px;
  border: 1px solid var(--line); border-radius: 999px; text-transform:uppercase; letter-spacing:.03em;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.subnav a:hover{ background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* Detail grid (para quién / qué incluye) */
.detail-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 8px; }
.detail-col{ padding: 34px 36px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.detail-col h2{
  font-size: .82rem; margin-bottom: 1.2em; font-family: var(--font-mono); text-transform:uppercase;
  letter-spacing:.08em; color: var(--pulse); font-weight:500;
}
.detail-col ul{ display:flex; flex-direction:column; gap: 16px; }
.detail-col li{ display:flex; gap:12px; align-items:flex-start; font-size:.96rem; color: var(--ink); }
.detail-col li svg{ width:16px; height:16px; flex-shrink:0; margin-top:4px; stroke: var(--pulse); fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }

/* Practical info box */
.info-box{ background: var(--paper-tint); border: 1px solid var(--line); border-left: 3px solid var(--pulse); border-radius: var(--radius-md); padding: 24px 30px; margin: 0; }
.info-box p{ margin:0; font-size:.94rem; color: var(--ink); }
.info-box strong{ color: var(--ink); }

/* FAQ */
.faq{ max-width: 820px; margin: 44px auto 0; display:flex; flex-direction:column; gap: 10px; }
.faq details{ background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 4px 26px; }
.faq summary{
  cursor:pointer; font-weight:600; padding: 18px 0; font-family: var(--font-body); font-size:1rem;
  color: var(--ink); list-style:none; display:flex; justify-content:space-between;
  align-items:center; gap: 20px;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.3rem; color: var(--pulse); flex-shrink:0; line-height:1; font-family: var(--font-mono); }
.faq details[open] summary::after{ content:"\2212"; }
.faq details p{ padding-bottom: 20px; margin:0; font-size:.95rem; }

/* Reveal animation */
.reveal{ opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.reveal.visible{ opacity:1; transform: translateY(0); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 960px){
  .hero-grid, .about-grid, .contact-grid{ grid-template-columns: 1fr; }
  .hero-visual{ order:-1; margin-bottom: 40px; }
  .credentials-card{ position:static; }
  .services-grid, .credentials-grid, .detail-grid{ grid-template-columns: 1fr; }
  .pillars-grid, .services-hub-grid, .highlights-grid{ grid-template-columns: repeat(2, 1fr); }
  .related-grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px){
  .pillars-grid, .services-hub-grid, .related-grid, .highlights-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 780px){
  .primary-nav{
    position:fixed; inset: 80px 0 0 0; background: var(--ink);
    flex-direction:column; align-items:flex-start; padding: 32px 28px; gap: 24px;
    transform: translateX(100%); transition: transform var(--transition); overflow-y:auto;
  }
  .primary-nav.open{ transform: translateX(0); }
  .primary-nav a{ font-size:1.1rem; width:100%; }
  .btn-nav{ margin-top:10px; }
  .nav-toggle{ display:flex; }
  .hero-stats{ grid-template-columns: repeat(2,1fr); }
  section{ padding: 64px 0; }

  .nav-item{ flex-direction:column; align-items:flex-start; width:100%; }
  .nav-dropdown{
    position:static; opacity:1; pointer-events:auto; transform:none; border:none; box-shadow:none;
    background:transparent; padding: 4px 0 4px 14px; margin-top:8px; min-width:0; width:100%;
  }
  .nav-dropdown a{ padding:10px 0; font-size:1rem; color: rgba(244,241,234,0.7); }
  .nav-dropdown a:hover{ background:transparent; color: var(--paper); }
  .nav-dropdown a.nav-dropdown-all{ border-top:none; margin-top:2px; padding-top:10px; color: rgba(244,241,234,0.7); }
  .page-hero-photo{ background-image:none; background: var(--paper-raised); }
  .hero.hero-bg-photo{ background-image:none; background: var(--paper); padding-bottom: 40px; }
}

@media (max-width: 480px){
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn{ justify-content:center; }
  .hero-tag{ position:static; margin-top:16px; }
  .hero-badge{ position:static; margin-top:1px; display:inline-flex; }
  .coverage-label{ font-size:.68rem; letter-spacing:.08em; }
}
