/* ============================================================
   Centro Médico Belgrano — Stylesheet
   Paleta en tonos médicos: celeste, blanco y verde suave,
   transmitiendo limpieza, calma y confianza.
   ============================================================ */

:root{
  /* ---- Paleta ---- */
  --sky-900:#0B3B44;
  --sky-800:#0E7C86;
  --sky-700:#129AA6;
  --sky-600:#1EB4C0;
  --sky-400:#7FDDE6;
  --sky-200:#D9F3F5;
  --sky-100:#EFFAFB;

  --mint-600:#3FAE83;
  --mint-400:#7FD4AE;
  --mint-200:#DCF5EA;

  --white:#FFFFFF;
  --cloud-50:#F7FCFC;
  --cloud-100:#EFF7F8;
  --cloud-200:#E2EFF1;
  --ink-900:#12262B;
  --ink-700:#33484E;
  --ink-500:#63797F;

  --bg: var(--cloud-50);
  --surface: var(--white);
  --text: var(--ink-900);
  --brand: var(--sky-800);
  --brand-dark: var(--sky-900);
  --accent: var(--mint-600);

  --font-display: "Outfit", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Manrope", ui-sans-serif, system-ui, -apple-system, sans-serif;

  --container: 1220px;
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 26px;
  --radius-xl: 34px;

  --shadow-sm: 0 2px 12px rgba(14,64,72,.06);
  --shadow-md: 0 14px 34px rgba(14,64,72,.10);
  --shadow-lg: 0 28px 64px rgba(14,64,72,.14);

  --ease: cubic-bezier(.22,1,.36,1);
}

/* ---------------- RESET ---------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; background:none; border:none; }
input,select,textarea{ font:inherit; }
h1,h2,h3,h4,p{ margin:0; }

.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(1.25rem, 4vw, 2.5rem); }
em{ font-style:normal; color:var(--brand); }
::selection{ background:var(--sky-400); color:var(--brand-dark); }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--cloud-100); }
::-webkit-scrollbar-thumb{ background:var(--sky-400); border-radius:10px; }

/* ---------------- LOADER ---------------- */
.loader{
  position:fixed; inset:0; z-index:9999; background:var(--brand-dark);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
.loader.is-hidden{ opacity:0; visibility:hidden; }
.loader__mark{ animation:pulseScale 1.1s ease-in-out infinite; }
@keyframes pulseScale{ 0%,100%{ transform:scale(1); opacity:.75; } 50%{ transform:scale(1.18); opacity:1; } }

/* ---------------- TYPE ---------------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-display);
  font-size:.76rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--sky-800); background:var(--sky-200);
  padding:.45rem .9rem; border-radius:100px;
}
.eyebrow svg{ color:var(--mint-600); }
.section-title{
  font-family:var(--font-display); font-weight:600;
  font-size:clamp(2rem, 4vw, 2.9rem); line-height:1.14; letter-spacing:-.01em;
  color:var(--brand-dark); margin:1rem 0 1.1rem;
}
.lead{ font-size:1.03rem; color:var(--ink-500); max-width:48ch; margin-bottom:1.4rem; }
.hero .lead, .hero__text{ color:rgba(255,255,255,.78); }
.section-head{ max-width:640px; margin-bottom:3rem; }
.section-head .lead{ max-width:56ch; }
.section-head--center{ margin-left:auto; margin-right:auto; text-align:center; }

/* ---------------- BUTTONS ---------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.85rem 1.5rem; border-radius:100px; font-weight:600; font-size:.95rem;
  border:1px solid transparent;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s ease, color .3s ease, border-color .3s ease;
  white-space:nowrap;
}
.btn svg{ flex-shrink:0; }
.btn--primary{ background:linear-gradient(135deg, var(--sky-700), var(--sky-900)); color:var(--white); box-shadow:0 10px 26px rgba(14,124,134,.32); }
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 16px 34px rgba(14,124,134,.4); }
.btn--ghost{ background:transparent; color:var(--brand-dark); border-color:rgba(14,124,134,.25); }
.btn--ghost:hover{ background:var(--sky-100); border-color:var(--brand); transform:translateY(-2px); }
.hero .btn--ghost{ color:var(--white); border-color:rgba(255,255,255,.35); }
.hero .btn--ghost:hover{ background:rgba(255,255,255,.1); border-color:var(--white); }
.btn--light{ background:var(--white); color:var(--brand-dark); }
.btn--light:hover{ transform:translateY(-2px); box-shadow:0 16px 34px rgba(0,0,0,.18); }
.btn--sm{ padding:.6rem 1.15rem; font-size:.82rem; }
.btn--lg{ padding:1rem 1.9rem; font-size:1rem; }
.btn--block{ width:100%; }

/* ---------------- HEADER ---------------- */
.header{ position:fixed; top:0; left:0; right:0; z-index:900; padding:1.15rem 0; transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease); }
.header.is-scrolled{ background:rgba(247,252,252,.85); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); padding:.7rem 0; box-shadow:0 6px 24px rgba(14,64,72,.08); }
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand{ display:flex; align-items:center; gap:.6rem; }
/* El logo va sin fondo, en negro. Como el header arranca sobre el hero
   oscuro y al bajar pasa a fondo claro, se alterna la versión blanca y la
   negra: así el dibujo siempre tiene contraste sin necesidad de recuadro. */
.brand__mark{ width:52px; height:52px; position:relative; flex-shrink:0; }
.brand__logo{ width:100%; height:100%; object-fit:contain; display:block; }
.brand__mark .brand__logo--claro,
.brand__mark .brand__logo--oscuro{ position:absolute; inset:0; transition:opacity .35s var(--ease); }
.brand__logo--oscuro{ opacity:0; }
.header.is-scrolled .brand__logo--claro{ opacity:0; }
.header.is-scrolled .brand__logo--oscuro{ opacity:1; }
.brand__text{ font-family:var(--font-display); font-size:1.02rem; font-weight:700; color:var(--brand-dark); letter-spacing:-.01em; }
.hero .brand__text, .header:not(.is-scrolled) .brand__text{ color:var(--brand-dark); }
.brand__text em{ color:var(--mint-600); font-style:normal; font-weight:700; margin-left:.3em; }

.nav{ display:flex; align-items:center; gap:1.8rem; }
.nav__link{ position:relative; font-size:.88rem; font-weight:600; color:var(--ink-700); padding:.3rem 0; }
.nav__link::after{ content:''; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--mint-600); transition:right .35s var(--ease); }
.nav__link:hover, .nav__link.is-active{ color:var(--brand-dark); }
.nav__link:hover::after, .nav__link.is-active::after{ right:0; }

.header__actions{ display:flex; align-items:center; gap:1rem; }
.burger{ display:none; color:var(--brand-dark); padding:.3rem; }

.mobile-menu{ position:fixed; top:0; right:0; height:100dvh; width:min(86vw,360px); background:var(--white); box-shadow:-20px 0 60px rgba(14,64,72,.2); z-index:950; display:flex; flex-direction:column; gap:.4rem; padding:6.5rem 2rem 2rem; transform:translateX(100%); transition:transform .5s var(--ease); }
.mobile-menu.is-open{ transform:translateX(0); }
.mobile-menu__link{ font-family:var(--font-display); font-size:1.3rem; font-weight:600; color:var(--brand-dark); padding:.55rem 0; border-bottom:1px solid var(--cloud-200); }

/* ---------------- HERO ---------------- */
.hero{ position:relative; padding:calc(6.5rem + 2rem) 0 5rem; min-height:100vh; display:flex; align-items:center; overflow:hidden; background:linear-gradient(160deg, var(--sky-900), var(--sky-800) 55%, var(--sky-700)); }
.hero__bg{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.blob{ position:absolute; border-radius:50%; filter:blur(70px); animation:blobDrift 20s ease-in-out infinite; }
.blob--a{ width:560px; height:560px; background:radial-gradient(circle, rgba(127,221,230,.4), transparent 70%); top:-180px; right:-140px; }
.blob--b{ width:460px; height:460px; background:radial-gradient(circle, rgba(127,212,174,.35), transparent 70%); bottom:-200px; left:-140px; animation-duration:24s; animation-delay:-5s; }
.blob--c{ width:320px; height:320px; background:radial-gradient(circle, rgba(255,255,255,.18), transparent 70%); top:40%; left:50%; animation-duration:16s; animation-delay:-2s; }
@keyframes blobDrift{ 0%,100%{ transform:translate(0,0) scale(1); } 33%{ transform:translate(35px,-25px) scale(1.07); } 66%{ transform:translate(-25px,22px) scale(.95); } }
.cross-pattern{ position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.08) 1.5px, transparent 1.5px); background-size:30px 30px; mask-image:radial-gradient(ellipse 70% 60% at 50% 35%, black 40%, transparent 100%); }

.hero__inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.hero__title{ font-family:var(--font-display); font-weight:700; font-size:clamp(2.5rem, 5.2vw, 4rem); line-height:1.1; letter-spacing:-.02em; color:var(--white); margin:1.1rem 0 1.3rem; }
.hero__title em{ color:var(--sky-400); }
.hero__text{ font-size:1.05rem; max-width:46ch; margin-bottom:1.9rem; }
.hero__cta{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.2rem; }

.hero__proof{ display:flex; align-items:center; gap:.9rem; }
.hero__proof p{ font-size:.88rem; color:rgba(255,255,255,.68); }
.proof-dots{ display:flex; gap:5px; }
.proof-dots span{ width:8px; height:8px; border-radius:50%; background:var(--sky-400); opacity:.5; }
.proof-dots span:nth-child(2){ opacity:.75; } .proof-dots span:nth-child(3){ opacity:1; background:var(--mint-400); }

.hero__media{ position:relative; display:flex; justify-content:center; }
.hero__frame{ width:min(100%,420px); aspect-ratio:3/4; border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-lg); position:relative; animation:floatY 6s ease-in-out infinite; background:linear-gradient(135deg, var(--sky-200), var(--mint-200) 55%, var(--sky-400)); }
.frame-img{ width:100%; height:100%; object-fit:cover; object-position:center 55%; display:block; }
@keyframes floatY{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-14px); } }
.floating-card{ position:absolute; background:var(--white); border-radius:var(--radius-md); box-shadow:var(--shadow-md); padding:.9rem 1.1rem; display:flex; align-items:center; gap:.7rem; font-size:.82rem; color:var(--ink-700); animation:floatY 7s ease-in-out infinite; }
.floating-card strong{ color:var(--brand-dark); }
.floating-card svg{ color:var(--sky-700); flex-shrink:0; }
.floating-card--especialidades{ top:6%; left:-10%; animation-delay:-1.5s; }
.floating-card--lab{ bottom:8%; right:-10%; animation-delay:-3s; }
.floating-card--lab svg{ color:var(--mint-600); }

.scroll-cue{ position:absolute; bottom:1.8rem; left:50%; transform:translateX(-50%); width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; color:var(--white); z-index:2; animation:bounce 2.2s ease-in-out infinite; }
@keyframes bounce{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,8px);} }

/* ---------------- PLACEHOLDERS ---------------- */
.ph{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; width:100%; height:100%; background:linear-gradient(135deg, var(--sky-200), var(--mint-200) 55%, var(--sky-400)); background-size:220% 220%; color:var(--brand-dark); border-radius:inherit; text-align:center; padding:1rem; overflow:hidden; animation:phShift 9s ease infinite; }
.ph::before{ content:''; position:absolute; inset:0; border:2px dashed rgba(14,64,72,.25); border-radius:inherit; margin:10px; }
.ph svg{ opacity:.85; } .ph span{ font-size:.76rem; font-weight:700; max-width:80%; background:rgba(255,255,255,.6); padding:.3rem .7rem; border-radius:100px; }
@keyframes phShift{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }
.ph--portrait{ border-radius:var(--radius-xl); }
.ph--square{ aspect-ratio:1/1; border-radius:var(--radius-md); }
.ph--avatar{ width:46px; height:46px; border-radius:50%; flex-shrink:0; border:2px solid var(--white); box-shadow:var(--shadow-sm); }
.ph--avatar svg,.ph--avatar span{ display:none; } .ph--avatar::before{ margin:0; border-width:1px; }

/* ---------------- STATS ---------------- */
.stats{ padding:4rem 0; background:var(--brand-dark); }
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; text-align:center; }
.stat__num{ font-family:var(--font-display); font-size:clamp(2.1rem,4vw,3rem); font-weight:700; color:var(--white); }
.stat__suffix{ font-family:var(--font-display); font-size:clamp(1.3rem,3vw,1.9rem); color:var(--sky-400); font-weight:700; }
.stat p{ margin-top:.4rem; font-size:.84rem; color:rgba(255,255,255,.6); letter-spacing:.02em; }

/* ---------------- SPECIALTIES ---------------- */
.specialties{ padding:6.5rem 0; }
.specialty-search{ display:flex; align-items:center; gap:.7rem; background:var(--white); border:1px solid var(--cloud-200); border-radius:100px; padding:.85rem 1.3rem; margin-bottom:2.2rem; max-width:480px; box-shadow:var(--shadow-sm); color:var(--ink-500); }
.specialty-search input{ border:none; outline:none; flex:1; font-size:.95rem; color:var(--ink-900); background:transparent; }
.specialty-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:.9rem; }
.specialty-chip{ display:flex; align-items:center; gap:.7rem; background:var(--white); border:1px solid var(--cloud-200); border-radius:var(--radius-md); padding:.9rem 1.1rem; text-align:left; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s ease; }
.specialty-chip:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--sky-400); }
.specialty-chip svg{ color:var(--sky-700); flex-shrink:0; background:var(--sky-100); border-radius:10px; padding:7px; width:34px; height:34px; box-sizing:border-box; }
.specialty-chip span{ font-size:.86rem; font-weight:600; color:var(--ink-900); line-height:1.25; overflow-wrap:anywhere; min-width:0; }
.specialty-chip{ min-width:0; }
.specialty-chip.is-hidden{ display:none; }
.specialty-empty{ display:none; text-align:center; color:var(--ink-500); margin-top:2rem; font-size:.92rem; }
.specialty-empty.is-visible{ display:block; }
.specialty-empty a{ color:var(--sky-700); font-weight:700; }

/* ---------------- WHY ---------------- */
.why{ padding:6.5rem 0; background:var(--sky-100); }
.why__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.why-card{ background:var(--white); border-radius:var(--radius-md); padding:2rem 1.6rem; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.why-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.why-card__icon{ width:54px; height:54px; border-radius:15px; background:var(--mint-200); color:var(--mint-600); display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem; transition:transform .35s var(--ease); }
.why-card:hover .why-card__icon{ transform:rotate(-6deg) scale(1.06); }
.why-card h3{ font-family:var(--font-display); font-size:1.08rem; font-weight:700; color:var(--brand-dark); margin-bottom:.5rem; }
.why-card p{ font-size:.88rem; color:var(--ink-500); }

/* ---------------- TEAM / ACCORDION ---------------- */
.team{ padding:6.5rem 0; }

.accordion{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem 1.2rem; }
.accordion__item{ background:var(--white); border:1px solid var(--cloud-200); border-radius:var(--radius-md); overflow:hidden; align-self:start; transition:border-color .3s ease, box-shadow .3s ease; }
.accordion__item.is-open{ border-color:var(--sky-400); box-shadow:var(--shadow-sm); }
.accordion__head{ width:100%; display:flex; align-items:center; gap:.8rem; padding:1rem 1.2rem; text-align:left; }
.accordion__head svg:first-child{ color:var(--sky-700); background:var(--sky-100); border-radius:9px; padding:6px; width:30px; height:30px; box-sizing:border-box; flex-shrink:0; }
.accordion__head span{ flex:1; font-weight:700; font-size:.92rem; color:var(--ink-900); }
.accordion__chev{ color:var(--ink-500); transition:transform .35s var(--ease); flex-shrink:0; }
.accordion__item.is-open .accordion__chev{ transform:rotate(180deg); color:var(--sky-700); }
.accordion__body{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.accordion__body ul{ padding:0 1.2rem 1.1rem 3.7rem; display:flex; flex-direction:column; gap:.5rem; }
.accordion__body li{ display:flex; justify-content:space-between; gap:1rem; font-size:.85rem; }
.accordion__body li span{ color:var(--ink-900); font-weight:600; }
.accordion__body li small{ color:var(--sky-700); font-weight:700; white-space:nowrap; }

/* ---------------- COVERAGE / OBRAS SOCIALES ---------------- */
.coverage{ padding:6.5rem 0; background:var(--mint-200); }
.coverage .section-head{ margin-bottom:2.2rem; }
.coverage__cta{ display:flex; flex-direction:column; align-items:center; gap:1.1rem; }
.coverage__note{ display:flex; align-items:center; justify-content:center; gap:.5rem; text-align:center; font-size:.9rem; color:var(--ink-700); }
.coverage__note svg{ color:var(--mint-600); flex-shrink:0; }
.coverage__note a{ color:var(--sky-800); font-weight:700; }

/* ---------------- TESTIMONIALS ---------------- */
.testimonials{ padding:6.5rem 0; }
.testi{ position:relative; display:flex; align-items:center; gap:1.2rem; min-width:0; }
.testi__track{
  display:flex; flex:1; min-width:0;
  overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.testi__track::-webkit-scrollbar{ display:none; }
.testi__card{ flex:0 0 100%; min-width:0; scroll-snap-align:start; background:var(--white); border:1px solid var(--cloud-200); border-radius:var(--radius-lg); padding:clamp(2rem,4vw,3.2rem); box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:1.1rem; }
.testi__quote{ color:var(--mint-600); }
.testi__badge{
  display:inline-flex; align-items:center; gap:.35rem; align-self:flex-start;
  font-size:.72rem; font-weight:700; color:var(--mint-600);
  background:var(--mint-200); padding:.32rem .7rem; border-radius:100px;
}
.google-avatar{
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg,#4285F4,#34A853 50%,#FBBC05 75%,#EA4335);
  color:var(--white); font-family:var(--font-display); font-weight:700; font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-sm);
}
.testi__card .stars{ display:flex; gap:3px; color:var(--sky-600); }
.testi__card p{ font-family:var(--font-display); font-size:clamp(1.1rem,2vw,1.4rem); font-weight:500; color:var(--brand-dark); line-height:1.5; }
.testi__author{ display:flex; align-items:center; gap:.8rem; margin-top:.4rem; }
.testi__author strong{ display:block; font-size:.92rem; color:var(--ink-900); }
.testi__author small{ color:var(--ink-500); font-size:.78rem; }
.testi__arrow{ flex-shrink:0; width:46px; height:46px; border-radius:50%; background:var(--white); border:1px solid var(--cloud-200); color:var(--brand-dark); display:flex; align-items:center; justify-content:center; transition:all .3s var(--ease); }
.testi__arrow:hover{ background:var(--sky-700); color:var(--white); border-color:var(--sky-700); }
.testi__dots{ display:flex; justify-content:center; gap:.5rem; margin-top:1.8rem; }
.testi__dots button{ width:9px; height:9px; border-radius:50%; background:var(--cloud-200); padding:0; transition:all .3s ease; }
.testi__dots button.is-active{ background:var(--sky-700); width:26px; border-radius:100px; }

/* ---------------- CTA BANNER ---------------- */
.cta-banner{ background:linear-gradient(120deg, var(--sky-800), var(--sky-900)); color:var(--white); padding:4.5rem 0; position:relative; overflow:hidden; }
.cta-banner::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 85% 20%, rgba(127,221,230,.3), transparent 55%); }
.cta-banner__inner{ position:relative; text-align:center; display:flex; flex-direction:column; align-items:center; gap:.8rem; }
.cta-banner h2{ font-family:var(--font-display); font-weight:700; font-size:clamp(1.8rem,3.6vw,2.6rem); }
.cta-banner p{ color:rgba(255,255,255,.75); margin-bottom:.6rem; max-width:48ch; }

/* ---------------- CONTACT ---------------- */
.contact{ padding:6.5rem 0; background:var(--sky-100); }
.contact__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,3.5rem); align-items:start; }
.contact__info{ display:flex; flex-direction:column; gap:1rem; }
.info-card{ display:flex; align-items:flex-start; gap:.9rem; background:var(--white); border-radius:var(--radius-md); padding:1.1rem 1.3rem; box-shadow:var(--shadow-sm); }
.info-card svg{ color:var(--sky-700); flex-shrink:0; margin-top:.15rem; }
.info-card strong{ display:block; font-size:.86rem; color:var(--brand-dark); margin-bottom:.15rem; }
.info-card p, .info-card a{ font-size:.9rem; color:var(--ink-500); }
.info-card a:hover{ color:var(--sky-700); }
.hours-list{ margin-top:.3rem; display:flex; flex-direction:column; gap:.3rem; }
.hours-list li{ display:flex; justify-content:space-between; gap:1rem; font-size:.85rem; color:var(--ink-500); }
.hours-list li span:first-child{ color:var(--ink-900); font-weight:600; max-width:20ch; }

.map-embed{ margin-top:.4rem; height:220px; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--cloud-200); }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }

.contact__form{ background:var(--white); border-radius:var(--radius-lg); padding:clamp(1.6rem,3vw,2.6rem); box-shadow:var(--shadow-md); display:flex; flex-direction:column; gap:1.1rem; position:relative; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.contact__form label{ display:flex; flex-direction:column; gap:.4rem; font-size:.82rem; font-weight:700; color:var(--brand-dark); }
.contact__form input, .contact__form select, .contact__form textarea{ border:1px solid var(--cloud-200); background:var(--cloud-50); border-radius:var(--radius-sm); padding:.75rem .9rem; font-size:.92rem; color:var(--ink-900); font-weight:400; transition:border-color .3s ease, box-shadow .3s ease; resize:vertical; }
.contact__form input:focus, .contact__form select:focus, .contact__form textarea:focus{ outline:none; border-color:var(--sky-600); box-shadow:0 0 0 3px rgba(30,180,192,.15); }
/* Preferencia de horario: radios con aspecto de pastillas seleccionables */
.field-group{ display:flex; flex-direction:column; gap:.5rem; }
.field-group__label{ font-size:.82rem; font-weight:700; color:var(--brand-dark); }
.pill-group{ display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; }
.pill-option{ margin:0; }
.pill-option input{ position:absolute; opacity:0; width:0; height:0; }
.pill-option span{
  display:flex; align-items:center; justify-content:center; gap:.4rem;
  border:1px solid var(--cloud-200); background:var(--cloud-50); border-radius:var(--radius-sm);
  padding:.75rem .6rem; font-size:.88rem; font-weight:600; color:var(--ink-700);
  cursor:pointer; text-align:center; transition:all .25s var(--ease);
}
.pill-option span:hover{ border-color:var(--sky-400); color:var(--sky-800); }
.pill-option input:checked + span{ border-color:var(--sky-600); background:var(--sky-100); color:var(--sky-900); font-weight:700; }
.pill-option input:focus-visible + span{ box-shadow:0 0 0 3px rgba(30,180,192,.25); }

.form-note{ font-size:.76rem; color:var(--ink-500); text-align:center; }
.form-note a{ color:var(--sky-700); font-weight:700; }
.form-success{ position:absolute; inset:0; z-index:5; background:var(--white); border-radius:var(--radius-lg); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:.6rem; padding:2rem; opacity:0; visibility:hidden; transform:scale(.96); transition:all .5s var(--ease); }
.form-success.is-visible{ opacity:1; visibility:visible; transform:scale(1); }
.form-success svg{ color:var(--sky-700); background:var(--sky-100); border-radius:50%; padding:.7rem; margin-bottom:.4rem; }
.form-success h3{ font-family:var(--font-display); font-size:1.3rem; color:var(--brand-dark); }
.form-success p{ color:var(--ink-500); font-size:.9rem; max-width:34ch; }

/* ---------------- FOOTER ---------------- */
.footer{ background:var(--brand-dark); color:var(--sky-200); padding:4.5rem 0 1.5rem; }
.footer__inner{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(217,243,245,.14); }
.footer__brand p{ color:rgba(217,243,245,.55); font-size:.88rem; margin:1rem 0 1.2rem; max-width:34ch; }
.footer .brand__text{ color:var(--white); }
.footer__col h4{ font-family:var(--font-display); font-weight:700; font-size:.95rem; color:var(--white); margin-bottom:1rem; }
.footer__col{ display:flex; flex-direction:column; gap:.6rem; }
.footer__col a, .footer__col span{ font-size:.88rem; color:rgba(217,243,245,.55); }
.footer__col a:hover{ color:var(--sky-400); }
.footer__bottom{ display:flex; align-items:center; justify-content:space-between; padding-top:1.6rem; }
.footer__bottom p{ font-size:.78rem; color:rgba(217,243,245,.45); }
.back-top{ width:38px; height:38px; border-radius:50%; background:rgba(217,243,245,.08); color:var(--white); border:1px solid rgba(217,243,245,.16); display:flex; align-items:center; justify-content:center; transition:all .3s var(--ease); }
.back-top:hover{ background:var(--white); color:var(--brand-dark); transform:translateY(-3px); }

/* ---------------- CALL FLOAT ---------------- */
.call-float{ position:fixed; bottom:1.6rem; right:1.6rem; z-index:500; width:58px; height:58px; border-radius:50%; background:linear-gradient(135deg, var(--sky-600), var(--sky-800)); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(14,124,134,.45); animation:callPulse 2.6s ease-in-out infinite; }
@keyframes callPulse{ 0%,100%{ box-shadow:0 10px 26px rgba(14,124,134,.45); } 50%{ box-shadow:0 10px 26px rgba(14,124,134,.45), 0 0 0 10px rgba(30,180,192,.16); } }

/* ---------------- SCROLL REVEAL ---------------- */
[data-reveal]{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
[data-reveal].in-view{ opacity:1; transform:translateY(0); }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:1080px){
  .specialty-grid{ grid-template-columns:repeat(3,1fr); }
  .why__grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:900px){
  .nav{ display:none; } .burger{ display:flex; }
  .hero__inner{ grid-template-columns:1fr; text-align:center; }
  .hero__copy{ order:2; } .hero__media{ order:1; margin-bottom:2.4rem; }
  .hero__cta{ justify-content:center; } .hero__proof{ justify-content:center; }
  .hero__frame{ width:min(80%,340px); }
  .floating-card--especialidades{ left:0; } .floating-card--lab{ right:0; }
  .accordion{ grid-template-columns:1fr; }
  .contact__grid{ grid-template-columns:1fr; }
  .stats__grid{ grid-template-columns:repeat(2,1fr); row-gap:2rem; }
  .footer__inner{ grid-template-columns:1fr; gap:2rem; }
}

@media (max-width:640px){
  .specialty-grid{ grid-template-columns:repeat(2,1fr); }
  .why__grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .coverage__cta .btn--lg{ width:100%; }
  .header__actions .btn--sm{ display:none; }
  .footer__bottom{ flex-direction:column; gap:1rem; text-align:center; }
  .call-float{ width:52px; height:52px; bottom:1.2rem; right:1.2rem; }
  .accordion__body ul{ padding-left:1.2rem; }
  .accordion__body li{ flex-direction:column; gap:.1rem; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
