/* Detox Life — hoja de estilos principal */
:root {
  --ink: #2b2523;
  --ink-soft: #3d5a6e;
  --sky: #3aabe2;
  --sky-deep: #1a73a3;
  --lime: #9bc323;
  --lime-deep: #5f7d0e;
  --mist: #eef6fa;
  --leaf: #f3f8e6;
  --paper: #ffffff;
  --line: #dde6ea;
  --orange: #f39300;
  --radius-lg: 28px;
  --radius-sm: 10px;
  --wrap: 1180px;
  --head: "Lato", "Segoe UI", sans-serif;
  --body: "Open Sans", "Segoe UI", sans-serif;
  --serif: "Playfair Display", Georgia, serif;
  --icon: #03a9f4;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 1.0625rem;
  line-height: 1.65;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--sky-deep); }
a:hover { color: var(--ink); }
:focus-visible { outline: 3px solid var(--sky); outline-offset: 3px; border-radius: 4px; }

h1, h2, h3, h4 {
  font-family: var(--head);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 .5em;
  font-weight: 800;
}
h1 { font-size: clamp(2.4rem, 5.6vw, 4.5rem); }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
h3 { font-size: 1.45rem; font-weight: 700; letter-spacing: -0.01em; }
h4 { font-size: 1.12rem; font-weight: 700; letter-spacing: 0; }
p { margin: 0 0 1em; }

.wrap { width: min(100% - 32px, var(--wrap)); margin-inline: auto; }
.narrow { max-width: 68ch; }
.lead { font-size: 1.22rem; color: var(--ink-soft); max-width: 60ch; }
.muted { color: var(--ink-soft); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: #fff; padding: 8px 14px; z-index: 100; }
.skip:focus { left: 8px; }

/* ---------- Encabezado ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; }
.brand img { width: 250px; }
.nav ul { list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; align-items: center; }
.nav a {
  display: block; padding: 8px 12px; border-radius: 999px;
  color: var(--ink); text-decoration: none; font-weight: 600; font-size: .98rem;
}
.nav a:hover { background: var(--mist); }
.nav a[aria-current="page"] { background: var(--ink); color: #fff; }
.nav .nav-cta a { background: var(--lime); color: var(--ink); margin-left: 6px; }
.nav .nav-cta a:hover { background: #8ab01b; }
.menu-btn {
  display: none; background: none; border: 2px solid var(--ink); border-radius: 999px;
  font: 600 .95rem var(--body); color: var(--ink); padding: 8px 16px; cursor: pointer;
}

@media (max-width: 1020px) {
  .brand img { width: 200px; }
  .menu-btn { display: inline-block; }
  .nav { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--line); display: none; }
  .nav.open { display: block; }
  .nav ul { flex-direction: column; align-items: stretch; padding: 12px 16px 20px; gap: 2px; }
  .nav a { padding: 12px 14px; border-radius: var(--radius-sm); }
  .nav .nav-cta a { margin: 8px 0 0; text-align: center; }
}

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px; border-radius: 999px; border: 2px solid transparent;
  font: 700 1rem var(--body); text-decoration: none; cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.btn svg { width: 20px; height: 20px; flex: none; }
.btn-primary { background: var(--ink); color: #fff; }
.btn-primary:hover { background: var(--sky-deep); color: #fff; }
.btn-lime { background: var(--lime); color: var(--ink); }
.btn-lime:hover { background: #fff; color: var(--ink); border-color: var(--ink); }
.btn-ghost { border-color: var(--ink); color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: #fff; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Anillo (motivo de marca) ---------- */
.ring {
  --size: 520px;
  width: var(--size); height: var(--size); border-radius: 50%;
  background: conic-gradient(from 200deg, var(--sky) 0 50%, var(--lime) 50% 100%);
  -webkit-mask: radial-gradient(circle, transparent 58%, #000 58.5%);
          mask: radial-gradient(circle, transparent 58%, #000 58.5%);
}

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; padding: 72px 0 0; }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; }
.hero h1 { margin-bottom: .35em; }
.hero .lead { margin-bottom: 1.6em; }
.hero-visual { position: relative; justify-self: center; width: 440px; max-width: 100%; aspect-ratio: 1; }
.hero-visual .ring { --size: 100%; position: absolute; inset: 0; }
.hero-visual img {
  position: absolute; inset: 13%; width: 74%; height: 74%;
  object-fit: cover; border-radius: 50%;
}
.hero-badge {
  position: absolute; right: -4px; bottom: 6%;
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 12px 16px; box-shadow: 0 10px 30px rgba(43,37,35,.12);
  font-size: .9rem; line-height: 1.3; max-width: 200px;
}
.hero-badge strong { display: block; font: 800 1.6rem var(--head); color: var(--sky-deep); }

/* Accesos rápidos del hero */
.entry {
  margin-top: 64px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.entry a {
  display: block; padding: 26px 24px 28px; text-decoration: none; color: var(--ink);
  border-left: 1px solid var(--line); transition: background .15s;
}
.entry a:first-child { border-left: 0; }
.entry a:hover { background: var(--mist); }
.entry h3 { font-size: 1.25rem; margin-bottom: .3em; display: flex; align-items: center; gap: 10px; }
.entry p { margin: 0; color: var(--ink-soft); font-size: .98rem; }
.dot { width: 14px; height: 14px; border-radius: 50%; flex: none; border: 3px solid var(--sky); }
.entry a:nth-child(even) .dot { border-color: var(--lime); }

@media (max-width: 900px) {
  .hero { padding-top: 40px; }
  .hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .hero-visual { width: 320px; }
  .entry { grid-template-columns: 1fr 1fr; margin-top: 44px; }
  .entry a:nth-child(3) { border-left: 0; }
  .entry a:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 520px) {
  .entry { grid-template-columns: 1fr; }
  .entry a { border-left: 0; border-top: 1px solid var(--line); }
  .entry a:first-child { border-top: 0; }
}

/* ---------- Secciones ---------- */
.section { padding: 96px 0; }
.section-mist { background: var(--mist); }
.section-leaf { background: var(--leaf); }
.section-ink { background: var(--ink); color: #fff; }
.section-ink .lead, .section-ink .muted { color: #cfc9c6; }
.section-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 48px; }
.section-head p { margin: 0; color: var(--ink-soft); }
.section-ink .section-head p { color: #cfc9c6; }
@media (max-width: 800px) {
  .section { padding: 64px 0; }
  .section-head { grid-template-columns: 1fr; gap: 12px; margin-bottom: 32px; }
}

/* Página interna: encabezado */
.page-hero { padding: 72px 0 56px; border-bottom: 1px solid var(--line); position: relative; overflow: hidden; }
.page-hero .ring { --size: 380px; position: absolute; right: -110px; top: -120px; opacity: .9; }
.page-hero h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); max-width: 16ch; position: relative; }
.page-hero .lead { position: relative; }
@media (max-width: 700px) { .page-hero .ring { --size: 220px; right: -90px; top: -70px; } .page-hero { padding: 48px 0 40px; } }

/* Manifiesto */
.manifesto { font-family: var(--head); font-weight: 700; font-size: clamp(1.9rem, 4.2vw, 3.3rem); line-height: 1.12; letter-spacing: -0.02em; max-width: 20ch; margin: 0 0 .6em; }
.manifesto .strike { color: #9a9391; text-decoration: line-through; text-decoration-thickness: 3px; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; gap: 32px; } }

/* Programas She */
.programs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.program {
  background: #fff; border-radius: var(--radius-lg); padding: 28px 24px 24px;
  display: flex; flex-direction: column; border: 1px solid var(--line);
}
.program h3 { font-size: 1.7rem; margin-bottom: .25em; }
.program p { color: var(--ink-soft); flex: 1; }
.program a { font-weight: 700; color: var(--ink); text-decoration-color: var(--lime); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.program .tag { font-size: .85rem; font-weight: 700; color: var(--lime-deep); margin-bottom: 14px; }
@media (max-width: 1000px) { .programs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .programs { grid-template-columns: 1fr; } }

/* Unidades */
.units { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border-top: 2px solid var(--ink); }
.unit { padding: 32px 32px 32px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 64px 1fr; gap: 20px; }
.unit:nth-child(even) { padding: 32px 0 32px 32px; border-left: 1px solid var(--line); }
.unit h3 { margin-bottom: .15em; font-size: 1.7rem; }
.unit .sub { font-weight: 700; color: var(--sky-deep); margin-bottom: .5em; }
.unit p { color: var(--ink-soft); margin-bottom: .8em; }
.unit-icon { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--mist); color: var(--sky-deep); }
.unit:nth-child(4n+2) .unit-icon, .unit:nth-child(4n+3) .unit-icon { background: var(--leaf); color: var(--lime-deep); }
.unit-icon svg { width: 30px; height: 30px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.chips li { padding: 5px 13px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: .92rem; font-weight: 600; }
@media (max-width: 860px) {
  .units { grid-template-columns: 1fr; }
  .unit, .unit:nth-child(even) { padding: 28px 0; border-left: 0; grid-template-columns: 52px 1fr; gap: 16px; }
  .unit-icon { width: 52px; height: 52px; }
}

/* Sueroterapia */
.serum { display: grid; grid-template-columns: .8fr 1.2fr; gap: 56px; align-items: center; }
.serum-photo { border-radius: 220px 220px var(--radius-lg) var(--radius-lg); overflow: hidden; }
.serum-photo img { width: 100%; aspect-ratio: 526/600; object-fit: cover; }
.serum-list { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 26px 32px; }
.serum-list li { border-top: 3px solid var(--lime); padding-top: 14px; }
.serum-list li:nth-child(even) { border-top-color: var(--sky); }
.serum-list h4 { font-size: 1.2rem; margin-bottom: .3em; }
.serum-list p { margin: 0; color: var(--ink-soft); font-size: .98rem; }
@media (max-width: 860px) { .serum { grid-template-columns: 1fr; gap: 32px; } .serum-photo { max-width: 380px; } }
@media (max-width: 520px) { .serum-list { grid-template-columns: 1fr; } }

/* Testimonios */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.quote { margin: 0; padding: 0 0 0 22px; border-left: 3px solid var(--lime); }
.quote blockquote { margin: 0 0 16px; font-size: 1.08rem; line-height: 1.6; }
.quote figcaption { font-weight: 700; }
.quote figcaption span { font-weight: 400; color: #cfc9c6; }
@media (max-width: 900px) { .quotes { grid-template-columns: 1fr; gap: 32px; } }

/* Llamado a la acción */
.cta-band { background: var(--lime); padding: 72px 0; }
.cta-band .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 28px; }
.cta-band h2 { margin: 0 0 .2em; max-width: 18ch; }
.cta-band p { margin: 0; font-size: 1.1rem; }
.phone-big { font: 800 clamp(1.8rem, 4vw, 2.8rem) var(--head); color: var(--ink); text-decoration: none; letter-spacing: -0.01em; display: inline-block; }
.phone-big:hover { color: var(--sky-deep); }

/* Tratamientos (acordeón) */
.treatments { border-top: 2px solid var(--ink); }
.treatments details { border-bottom: 1px solid var(--line); }
.treatments summary {
  list-style: none; cursor: pointer; padding: 22px 48px 22px 0; position: relative;
  font: 700 1.3rem var(--head); letter-spacing: -0.01em;
}
.treatments summary::-webkit-details-marker { display: none; }
.treatments summary::after {
  content: ""; position: absolute; right: 6px; top: 50%; width: 22px; height: 22px; margin-top: -11px;
  border-radius: 50%; border: 2px solid var(--ink);
  background:
    linear-gradient(var(--ink), var(--ink)) center / 10px 2px no-repeat,
    linear-gradient(var(--ink), var(--ink)) center / 2px 10px no-repeat;
  transition: transform .2s;
}
.treatments details[open] summary::after { transform: rotate(45deg); background-color: var(--lime); border-color: var(--lime); }
.treatments summary:hover { color: var(--sky-deep); }
.treatments .body { padding: 0 0 24px; max-width: 72ch; color: var(--ink-soft); }
.treatments .body p { margin: 0; }
.treatments .body .indic { margin-top: 10px; font-size: .95rem; }
.treatments .body .indic strong { color: var(--ink); }

/* Exámenes */
.exams { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.exam-photo { border-radius: var(--radius-lg); overflow: hidden; }
.exam-photo img { width: 100%; aspect-ratio: 4/4.2; object-fit: cover; }
.exam-list { list-style: none; padding: 0; margin: 24px 0 0; }
.exam-list li { padding: 14px 0; border-top: 1px solid var(--line); font: 700 1.25rem var(--head); display: flex; align-items: center; gap: 14px; }
.exam-list li:last-child { border-bottom: 1px solid var(--line); }
@media (max-width: 860px) { .exams { grid-template-columns: 1fr; gap: 32px; } }

/* Historia / Nosotros */
.story-quote {
  font-family: var(--head); font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 600; line-height: 1.3;
  letter-spacing: -0.01em; margin: 0; padding: 0;
}
.story-quote::before { content: "«"; color: var(--lime); }
.story-quote::after { content: "»"; color: var(--lime); }
.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 48px; border-top: 1px solid rgba(255,255,255,.2); }
.facts div { padding: 24px 24px 0 0; }
.facts strong { display: block; font: 800 clamp(2.2rem, 5vw, 3.4rem) var(--head); color: var(--lime); letter-spacing: -0.02em; line-height: 1; margin-bottom: 6px; }
.facts span { color: #cfc9c6; }
@media (max-width: 640px) { .facts { grid-template-columns: 1fr; } }

.imfe { display: grid; grid-template-columns: 200px 1fr; gap: 40px; align-items: start; }
.imfe-mark { width: 200px; height: 200px; border-radius: 50%; background: #fff4e3; display: grid; place-items: center; color: var(--orange); }
.imfe-mark svg { width: 90px; height: 90px; }
@media (max-width: 760px) { .imfe { grid-template-columns: 1fr; gap: 24px; } .imfe-mark { width: 120px; height: 120px; } .imfe-mark svg { width: 56px; } }

/* Domicilio */
.home-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 2px solid var(--ink); }
.home-services article { padding: 32px 28px 32px 0; }
.home-services article + article { padding-left: 28px; border-left: 1px solid var(--line); }
.home-services h3 { font-size: 1.8rem; }
.home-services p { color: var(--ink-soft); }
@media (max-width: 860px) {
  .home-services { grid-template-columns: 1fr; }
  .home-services article, .home-services article + article { padding: 28px 0; border-left: 0; border-bottom: 1px solid var(--line); }
}
.video { position: relative; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; background: var(--ink); }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Pie de página */
.site-footer { background: var(--ink); color: #e9e5e3; padding: 64px 0 28px; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--lime); }
.foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.foot-logo { background: #fff; border-radius: 16px; padding: 14px 16px; display: inline-block; margin-bottom: 18px; }
.foot-logo img { width: 230px; }
.site-footer h4 { color: #fff; margin-bottom: 14px; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: 8px; }
.foot-bottom { border-top: 1px solid rgba(255,255,255,.15); margin-top: 48px; padding-top: 22px; font-size: .9rem; color: #b6afac; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
@media (max-width: 800px) { .foot-grid { grid-template-columns: 1fr; gap: 32px; } }

/* WhatsApp flotante */
.wa-float {
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
  display: inline-flex; align-items: center; gap: 10px;
  background: #25d366; color: #0b3d1e; font-weight: 700; text-decoration: none;
  padding: 12px 18px 12px 14px; border-radius: 999px;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.wa-float:hover { background: #1fbb59; color: #062512; }
.wa-float svg { width: 26px; height: 26px; }
@media (max-width: 520px) { .wa-float span { display: none; } .wa-float { padding: 14px; } }

/* Aparición del hero (único momento animado) */
@media (prefers-reduced-motion: no-preference) {
  .hero-visual .ring { animation: spin-in 1.2s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes spin-in { from { transform: rotate(-120deg); opacity: 0; } to { transform: rotate(0); opacity: 1; } }
}


/* =========================================================
   Tipografía de la web original
   - Titulares grandes: Lato negrita
   - Títulos de sección: Open Sans light + Playfair cursiva
   - Títulos pequeños: Open Sans semibold en mayúsculas
   ========================================================= */
h1 { font-family: var(--head); font-weight: 700; letter-spacing: -0.01em; line-height: 1.12; }
h2 { font-family: var(--body); font-weight: 300; letter-spacing: -0.01em; line-height: 1.15; }
h3, h4 { font-family: var(--body); font-weight: 600; letter-spacing: 0; }
h2 em, h1 em, .manifesto em { font-family: var(--serif); font-style: italic; font-weight: 700; letter-spacing: 0; }
.lead { font-family: var(--head); color: #26323a; }
.section-ink .lead { color: #d8dde0; }

.program h3, .unit h3, .entry h3, .serum-list h4, .pillars h3 {
  text-transform: uppercase; letter-spacing: .06em; font-weight: 600;
}
.unit h3, .program h3 { font-size: 1.2rem; }
.serum-list h4 { font-size: 1rem; }
.cta-band h2 { font-family: var(--head); font-weight: 700; }
.phone-big, .facts strong, .hero-badge strong { font-family: var(--head); font-weight: 900; }
.story-quote { font-family: var(--body); font-weight: 300; font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.treatments summary { font-family: var(--body); font-weight: 600; font-size: 1.15rem; }
.exam-list li { font-family: var(--body); font-weight: 600; font-size: 1.1rem; }
.home-services h3 { font-size: 1.35rem; }
.nav a { font-family: var(--body); }

/* Acerca de nosotros (manifiesto) */
.kicker { font-weight: 600; margin-bottom: .6em; }
.manifesto { font-family: var(--body); font-weight: 300; font-size: clamp(2.2rem, 4.4vw, 3.4rem); line-height: 1.16; max-width: 14ch; }
.about-photo img { width: 100%; border-radius: 6px; box-shadow: 22px 22px 0 var(--icon); }
@media (max-width: 860px) { .about-photo img { box-shadow: 12px 12px 0 var(--icon); } .about-photo { margin-right: 12px; } }

/* Íconos */
.entry a { text-align: center; }
.entry h3 { justify-content: center; font-size: 1rem; }
.entry-icon { display: block; font-size: 2.6rem; color: var(--icon); margin-bottom: 12px; line-height: 1; }
.unit-icon { font-size: 1.9rem; background: none !important; color: var(--icon) !important; width: auto; height: auto; place-items: start; }
.unit { grid-template-columns: 48px 1fr; }
@media (max-width: 860px) { .unit, .unit:nth-child(even) { grid-template-columns: 44px 1fr; } .unit-icon { width: auto; height: auto; } }
.programs { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 860px) { .programs { grid-template-columns: 1fr; } }
.program { text-align: center; align-items: center; border-radius: 6px; box-shadow: 0 6px 20px rgba(20,40,60,.08); }
.prog-icon { width: 84px; height: 84px; border-radius: 50%; border: 2px solid var(--icon); color: var(--icon); display: grid; place-items: center; font-size: 2rem; margin-bottom: 18px; }
.btn-sm { padding: 10px 22px; font-size: .9rem; }
.exam-list li i { color: var(--icon); width: 26px; text-align: center; }
.home-services article { position: relative; }
.hs-icon { display: block; font-size: 2.4rem; margin-bottom: 14px; line-height: 1; }
.hs-blue .hs-icon { color: var(--icon); }
.hs-orange .hs-icon { color: var(--orange); }
.hs-green .hs-icon { color: #1bb57a; }
.home-services { border-top: 0; }
.home-services article { border-top: 4px solid var(--icon); }
.home-services article.hs-orange { border-top-color: var(--orange); }
.home-services article.hs-green { border-top-color: #1bb57a; }
.btn i { font-size: 1.05em; }

/* Redes sociales */
.social { display: flex; gap: 10px; margin-top: 16px; }
.social a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-size: 1.1rem; background: var(--ink); color: #fff; text-decoration: none; }
.social a:hover { background: var(--icon); color: #fff; }
.site-footer .social a { background: rgba(255,255,255,.12); }
.site-footer .social a:hover { background: var(--lime); color: var(--ink); }
.cta-band .btn-row { align-items: center; }
.cta-band .social { margin-top: 0; }

/* Páginas de programas */
.prog-hero { padding: 64px 0 72px; background: var(--leaf); }
.prog-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.prog-hero h1 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); }
.prog-name { font-weight: 600; color: var(--sky-deep); display: flex; align-items: center; gap: 10px; }
.prog-name i { color: var(--icon); font-size: 1.3rem; }
@media (max-width: 900px) { .prog-hero-grid { grid-template-columns: 1fr; gap: 32px; } .prog-hero { padding: 44px 0 56px; } }
.includes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.includes li { background: #fff; border-radius: 6px; padding: 24px 22px; border-top: 4px solid var(--icon); box-shadow: 0 6px 20px rgba(20,40,60,.06); }
.includes li:nth-child(even) { border-top-color: var(--lime); }
.includes strong { display: block; font: 900 1.6rem var(--head); line-height: 1.1; margin-bottom: 6px; }
.includes span { color: var(--ink-soft); }
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.pillars h3 { font-size: 1.15rem; margin-bottom: .4em; }
.pillars p { color: var(--ink-soft); margin: 0; }
.pill-icon { display: block; font-size: 2.4rem; color: var(--icon); margin-bottom: 14px; }
@media (max-width: 760px) { .pillars { grid-template-columns: 1fr; gap: 28px; } }
.symptoms { list-style: none; padding: 0; margin: 0; }
.symptoms li { display: flex; gap: 14px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 1.1rem; }
.symptoms li:first-child { border-top: 1px solid var(--line); }
.symptoms i { color: var(--lime-deep); }

/* Menú: más elementos, cabe en una línea */
.nav a { white-space: nowrap; font-size: .92rem; padding: 8px 10px; }
.nav ul { gap: 0; }
.brand img { width: 220px; }
@media (max-width: 1240px) {
  .menu-btn { display: inline-block; }
  .nav { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--line); display: none; }
  .nav.open { display: block; }
  .nav ul { flex-direction: column; align-items: stretch; padding: 12px 16px 20px; gap: 2px; }
  .nav a { padding: 12px 14px; border-radius: var(--radius-sm); font-size: 1rem; }
  .nav .nav-cta a { margin: 8px 0 0; text-align: center; }
}

/* Fotos recuperadas */
.photo-tall img { width: 100%; max-height: 620px; object-fit: cover; border-radius: 6px; box-shadow: -22px 22px 0 var(--lime); }
.team-photo { width: 100%; max-height: 360px; object-fit: cover; object-position: center 12%; border-radius: 6px; margin-bottom: 24px; }
.van { width: 100%; aspect-ratio: 1400/560; object-fit: cover; border-radius: 6px; margin-bottom: 48px; }
.imfe { grid-template-columns: 340px 1fr; gap: 56px; align-items: center; }
.dr { margin: 0; position: relative; background: linear-gradient(180deg, transparent 30%, var(--sky-deep) 30%); border-radius: 6px; overflow: hidden; }
.dr > img { width: 100%; display: block; }
.dr figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 20px 14px; background: linear-gradient(transparent, rgba(16,52,78,.92)); }
.dr figcaption img { width: 210px; }
.imfe-logo { width: 240px; margin-bottom: 20px; }
@media (max-width: 860px) { .imfe { grid-template-columns: 1fr; gap: 32px; } .dr { max-width: 340px; } .photo-tall img { box-shadow: -12px 12px 0 var(--lime); margin-left: 12px; } }

/* Hero de programas con fondo original */
.prog-hero { position: relative; background-color: #1d2630; background-position: center; background-size: cover; background-repeat: no-repeat; color: #fff; padding: 72px 0 80px; }
.prog-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,24,32,.82) 0%, rgba(20,24,32,.6) 55%, rgba(20,24,32,.35) 100%); }
.prog-hero .wrap { position: relative; }
.prog-hero h1 { color: #fff; }
.prog-hero .lead { color: #eef2f4; }
.prog-logo { width: auto; max-width: 300px; max-height: 110px; margin-bottom: 22px; }
.btn-ghost-light { border-color: #fff; color: #fff; }
.btn-ghost-light:hover { background: #fff; color: var(--ink); }
@media (max-width: 900px) { .prog-hero::before { background: rgba(20,24,32,.72); } .prog-logo { max-width: 240px; } }
