/* =====================================================================
   GERARDO SOLANO — Sistema de diseño
   Navy profundo + crema editorial + un solo acento dorado por pieza.
   Titulares: Playfair Display (serif de alto contraste, como el portafolio)
   Cuerpo/UI: Archivo
   ===================================================================== */

:root {
  /* Color */
  --navy-950: #060C1D;
  --navy-900: #0A1128;   /* fondo principal (portafolio) */
  --navy-800: #0F1D3D;
  --navy-700: #16295A;
  --navy-500: #1F366C;   /* navy de marca */
  --navy-400: #2E4A8F;
  --gold-600: #B8860B;   /* dorado profundo (marca) */
  --gold-500: #C9A227;
  --gold-400: #D4AF37;   /* dorado claro (marca) */
  --gold-300: #E6C866;
  --cream-100: #FBF8F2;
  --cream-200: #F4EFE6;  /* fondo alterno (portafolio) */
  --cream-300: #E9E1D2;
  --cream-400: #D9CDB6;
  --ink: #0A1128;
  --ink-soft: #3A4460;
  --ink-mute: #6B7390;
  --on-dark: #F4EFE6;
  --on-dark-soft: rgba(244,239,230,.72);
  --on-dark-mute: rgba(244,239,230,.48);
  --line-dark: rgba(244,239,230,.12);
  --line-light: rgba(10,17,40,.12);
  --wa: #25D366;

  /* Type */
  --font-display: 'Lexend', 'DM Sans', system-ui, sans-serif;
  --font-body: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --fs-hero: clamp(2.6rem, 6.2vw, 5.4rem);
  --fs-h2: clamp(2rem, 4.2vw, 3.4rem);
  --fs-h3: clamp(1.35rem, 2.2vw, 1.75rem);
  --fs-lead: clamp(1.05rem, 1.4vw, 1.25rem);
  --fs-body: 1.02rem;
  --fs-small: .875rem;
  --fs-eyebrow: .74rem;

  /* Space & shape */
  --container: 1200px;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --section: clamp(4.5rem, 9vw, 8rem);
  --radius: 4px;
  --radius-lg: 10px;
  --ease: cubic-bezier(.22,1,.36,1);
  --shadow-gold: 0 10px 40px -10px rgba(212,175,55,.35);
}

/* ---------- Reset & base ---------- */
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--ink);
  background: var(--navy-900);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
h1,h2,h3,h4 { font-family: var(--font-display); font-weight: 500; line-height: 1.08; margin: 0; letter-spacing: -.01em; text-wrap: pretty; }
p { margin: 0 0 1rem; text-wrap: pretty; }
ul { margin: 0; padding: 0; list-style: none; }
::selection { background: var(--gold-400); color: var(--navy-900); }
:focus-visible { outline: 2px solid var(--gold-400); outline-offset: 3px; }

.container { width: min(100% - 2*var(--gutter), var(--container)); margin-inline: auto; }
.section { padding-block: var(--section); position: relative; }
.section--dark { background: var(--navy-900); color: var(--on-dark); }
.section--cream { background: var(--cream-200); color: var(--ink); }
.section--navy { background: var(--navy-500); color: var(--on-dark); }

.eyebrow {
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold-400);
  display: inline-flex; align-items: center; gap: .75rem;
  margin-bottom: 1.1rem;
}
.eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.section--cream .eyebrow { color: var(--gold-600); }

.h2 { font-size: var(--fs-h2); max-width: 18ch; }
.h2 em { font-style: italic; color: var(--gold-400); }
.section--cream .h2 em { color: var(--navy-500); }
.lead { font-size: var(--fs-lead); line-height: 1.55; max-width: 62ch; color: var(--on-dark-soft); }
.section--cream .lead { color: var(--ink-soft); }
.section-head { display: grid; gap: 1rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.section-head--split { grid-template-columns: 1fr; align-items: end; }
@media (min-width: 900px) { .section-head--split { grid-template-columns: 1.1fr .9fr; gap: 3rem; } }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  padding: .95rem 1.6rem;
  border-radius: var(--radius);
  font-weight: 600; font-size: .95rem; letter-spacing: .01em;
  border: 1px solid transparent;
  transition: transform .25s var(--ease), background .25s, color .25s, box-shadow .25s, border-color .25s;
  white-space: nowrap;
  min-height: 48px;
}
.btn svg { width: 18px; height: 18px; flex: none; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn--gold { background: var(--gold-400); color: var(--navy-900); box-shadow: var(--shadow-gold); }
.btn--gold:hover { background: var(--gold-300); }
.btn--ghost { background: transparent; color: var(--on-dark); border-color: rgba(244,239,230,.35); }
.btn--ghost:hover { border-color: var(--gold-400); color: var(--gold-400); }
.btn--navy { background: var(--navy-500); color: var(--on-dark); }
.btn--navy:hover { background: var(--navy-400); }
.btn--outline-navy { background: transparent; color: var(--navy-500); border-color: var(--navy-500); }
.btn--outline-navy:hover { background: var(--navy-500); color: var(--on-dark); }
.btn--wa { background: var(--wa); color: #072B14; }
.btn--wa:hover { background: #2EE57A; }
.btn--sm { padding: .6rem 1rem; font-size: .85rem; min-height: 40px; }
.btn--block { width: 100%; }
.link-arrow { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--gold-400); font-size: .95rem; }
.link-arrow svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.link-arrow:hover svg { transform: translateX(4px); }
.section--cream .link-arrow { color: var(--navy-500); }

/* ---------- Announcement bar ---------- */
.announce {
  background: var(--gold-400); color: var(--navy-900);
  font-size: .82rem; font-weight: 600; letter-spacing: .04em;
  text-align: center; padding: .55rem var(--gutter);
  display: flex; justify-content: center; align-items: center; gap: 1rem;
  position: relative; z-index: 60;
}
.announce a { text-decoration: underline; text-underline-offset: 3px; }
.announce__close { background: none; border: 0; font-size: 1.1rem; line-height: 1; position: absolute; right: var(--gutter); top: 50%; transform: translateY(-50%); color: inherit; opacity: .7; }
.announce__close:hover { opacity: 1; }
.announce.is-hidden { display: none; }

/* ---------- Nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(10,17,40,.78);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line-dark);
  transition: background .3s;
}
.nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 72px; }
.nav__logo img { height: 60px; width: auto; }
.nav__links { display: none; gap: 1.9rem; }
.nav__links a { font-size: .86rem; font-weight: 500; letter-spacing: .04em; color: var(--on-dark-soft); position: relative; padding: .3rem 0; }
.nav__links a::after { content: ''; position: absolute; left: 0; bottom: 0; height: 1px; width: 0; background: var(--gold-400); transition: width .3s var(--ease); }
.nav__links a:hover, .nav__links a.is-active { color: var(--on-dark); }
.nav__links a:hover::after, .nav__links a.is-active::after { width: 100%; }
.nav__cta { display: none; }
.nav__burger { display: inline-flex; flex-direction: column; gap: 5px; background: none; border: 0; padding: .6rem; }
.nav__burger span { width: 24px; height: 2px; background: var(--on-dark); transition: transform .3s, opacity .3s; }
.nav__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2) { opacity: 0; }
.nav__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (min-width: 1000px) {
  .nav__links { display: flex; }
  .nav__cta { display: inline-flex; }
  .nav__burger { display: none; }
}
.nav-mobile {
  position: fixed; inset: 0; z-index: 45;
  background: var(--navy-950);
  display: flex; flex-direction: column; justify-content: center; gap: .5rem;
  padding: 6rem var(--gutter) 3rem;
  transform: translateY(-100%); opacity: 0; transition: transform .45s var(--ease), opacity .3s;
}
.nav-mobile.is-open { transform: none; opacity: 1; }
.nav-mobile a { font-family: var(--font-display); font-size: clamp(1.8rem, 7vw, 2.6rem); color: var(--on-dark); padding: .4rem 0; border-bottom: 1px solid var(--line-dark); }
.nav-mobile a:hover { color: var(--gold-400); }
.nav-mobile .btn { margin-top: 1.5rem; font-family: var(--font-body); font-size: 1rem; border: 0; }

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(1200px 600px at 78% 12%, rgba(31,54,108,.55), transparent 60%),
    radial-gradient(800px 500px at 10% 90%, rgba(184,134,11,.12), transparent 60%),
    var(--navy-900);
  color: var(--on-dark);
  min-height: calc(100svh - 72px);
  display: flex; align-items: center;
  padding-block: clamp(3rem, 7vw, 5rem) clamp(4rem, 8vw, 6rem);
}
.hero::before { /* grain */
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero__grid { display: grid; gap: 3rem; align-items: center; position: relative; }
@media (min-width: 900px) { .hero__grid { grid-template-columns: 1.15fr .85fr; gap: 4rem; } }
.hero__roles { font-size: var(--fs-eyebrow); letter-spacing: .26em; text-transform: uppercase; color: var(--gold-400); font-weight: 600; display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin-bottom: 1.6rem; }
.hero__roles span + span::before { content: '·'; margin-right: .9rem; color: var(--on-dark-mute); }
.hero__title { font-size: var(--fs-hero); font-weight: 500; line-height: 1; letter-spacing: -.02em; max-width: 12ch; }
.hero__title em { font-style: italic; color: var(--gold-400); font-weight: 400; }
.hero__lead { font-size: var(--fs-lead); color: var(--on-dark-soft); max-width: 52ch; margin: 1.6rem 0 2.2rem; line-height: 1.55; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: .9rem; }
.hero__note { margin-top: 1.4rem; font-size: .82rem; color: var(--on-dark-mute); display: flex; align-items: center; gap: .5rem; }
.hero__note svg { width: 14px; height: 14px; color: var(--gold-400); }

.hero__visual { position: relative; justify-self: center; width: min(100%, 460px); }
.hero__frame {
  position: relative; aspect-ratio: 4/5; overflow: hidden; border-radius: var(--radius-lg);
  background: var(--navy-950);
  box-shadow: 0 40px 80px -30px rgba(0,0,0,.8);
}
.hero__frame::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(10,17,40,.75)); }
.hero__frame img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transform: scale(1.02); }
.hero__ring { position: absolute; inset: -14px; border: 1px solid rgba(212,175,55,.35); border-radius: calc(var(--radius-lg) + 8px); pointer-events: none; }
.hero__ring::before { content: ''; position: absolute; top: -1px; left: 12%; width: 30%; height: 1px; background: var(--gold-400); }
.hero__ring::after { content: ''; position: absolute; bottom: -1px; right: 12%; width: 30%; height: 1px; background: var(--gold-400); }
.hero__chip {
  position: absolute; background: rgba(10,17,40,.85); backdrop-filter: blur(10px);
  border: 1px solid rgba(212,175,55,.35); border-radius: var(--radius);
  padding: .7rem .95rem; font-size: .78rem; line-height: 1.3; color: var(--on-dark);
  display: flex; gap: .7rem; align-items: center; max-width: 250px;
  box-shadow: 0 20px 40px -20px rgba(0,0,0,.8);
}
.hero__chip strong { display: block; font-family: var(--font-display); font-size: 1rem; color: var(--gold-400); font-weight: 500; }
.hero__chip--a { left: -8%; bottom: 20%; }
.hero__chip--b { right: -6%; top: 10%; }
@media (max-width: 899px) { .hero__chip--a { left: -2%; } .hero__chip--b { right: -2%; } }
.hero__quote { position: absolute; left: 1.2rem; right: 1.2rem; bottom: 1.2rem; font-family: var(--font-display); font-style: italic; font-size: 1rem; line-height: 1.35; color: var(--on-dark); z-index: 2; }
.hero__quote small { display: block; font-family: var(--font-body); font-style: normal; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-400); margin-top: .5rem; }

/* Reveal on load */
.hero [data-reveal] { opacity: 0; transform: translateY(24px); animation: rise .9s var(--ease) forwards; }
.hero [data-reveal="1"] { animation-delay: .05s }
.hero [data-reveal="2"] { animation-delay: .18s }
.hero [data-reveal="3"] { animation-delay: .32s }
.hero [data-reveal="4"] { animation-delay: .46s }
.hero [data-reveal="5"] { animation-delay: .6s }
.hero [data-reveal="6"] { animation-delay: .3s }
@keyframes rise { to { opacity: 1; transform: none; } }

/* ---------- Stats strip ---------- */
.stats { background: var(--navy-950); color: var(--on-dark); border-block: 1px solid var(--line-dark); }
.stats__grid { display: grid; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 800px) { .stats__grid { grid-template-columns: repeat(5, 1fr); } }
.stat { padding: 1.8rem 1.2rem; border-right: 1px solid var(--line-dark); }
.stat:last-child { border-right: 0; }
@media (max-width: 799px) { .stat:nth-child(2n) { border-right: 0; } .stat { border-bottom: 1px solid var(--line-dark); } .stat:nth-last-child(-n+1) { border-bottom: 0; grid-column: span 2; } }
.stat__num { font-family: var(--font-display); font-size: clamp(2.2rem, 4vw, 3rem); color: var(--gold-400); line-height: 1; }
.stat__num sup { font-size: .45em; vertical-align: top; margin-left: .05em; }
.stat__label { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-mute); margin-top: .5rem; line-height: 1.4; }
.stat--award .stat__num { font-size: clamp(1.1rem, 1.6vw, 1.35rem); font-style: italic; line-height: 1.2; padding-top: .3rem; }

/* ---------- Logo marquee ---------- */
.marquee { background: var(--navy-950); padding: 1.6rem 0 2.2rem; overflow: hidden; color: var(--on-dark); }
.marquee__label { text-align: center; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--on-dark-mute); margin-bottom: 1.2rem; }
.marquee__track { display: flex; gap: 3.5rem; width: max-content; animation: marquee 55s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__item { font-family: var(--font-display); font-size: 1.25rem; color: rgba(244,239,230,.55); white-space: nowrap; letter-spacing: .01em; display: flex; align-items: center; gap: 3.5rem; }
.marquee__item::after { content: '◆'; font-size: .45rem; color: var(--gold-600); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Problem ---------- */
.problem__grid { display: grid; gap: 3rem; }
@media (min-width: 900px) { .problem__grid { grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; } }
.problem__question { font-family: var(--font-display); font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.25; color: var(--navy-500); border-left: 3px solid var(--gold-600); padding-left: 1.4rem; margin: 2rem 0 0; font-style: italic; }
.steps { display: grid; gap: 0; border-top: 1px solid var(--line-light); }
.step { display: grid; grid-template-columns: 64px 1fr; gap: 1.2rem; padding: 1.6rem 0; border-bottom: 1px solid var(--line-light); }
.step__num { font-family: var(--font-display); font-size: 2rem; color: var(--gold-600); line-height: 1; }
.step h3 { font-size: 1.25rem; margin-bottom: .35rem; }
.step p { color: var(--ink-soft); margin: 0; font-size: .97rem; }

/* ---------- Paths (tres caminos) ---------- */
.paths { display: grid; gap: 1rem; }
@media (min-width: 800px) { .paths { grid-template-columns: repeat(3, 1fr); gap: 1.4rem; } }
.path {
  position: relative; display: flex; flex-direction: column; gap: 1rem;
  padding: 2.2rem 1.8rem 2rem; border: 1px solid var(--line-dark); border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(244,239,230,.03), transparent);
  transition: transform .35s var(--ease), border-color .35s, background .35s;
  min-height: 300px;
}
.path:hover { transform: translateY(-6px); border-color: rgba(212,175,55,.5); background: linear-gradient(180deg, rgba(212,175,55,.06), transparent); }
.path__k { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-400); font-weight: 600; }
.path h3 { font-size: 1.6rem; }
.path p { color: var(--on-dark-soft); font-size: .96rem; flex: 1; margin: 0; }
.path .link-arrow { margin-top: auto; }

/* ---------- Conferencias ---------- */
.chips { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .5rem; }
.chip { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; padding: .5rem .8rem; border: 1px solid var(--gold-600); color: var(--gold-600); border-radius: 2px; }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.filter { background: transparent; border: 1px solid var(--line-light); color: var(--ink-soft); padding: .55rem 1rem; border-radius: 999px; font-size: .85rem; font-weight: 500; transition: all .25s; }
.filter:hover { border-color: var(--navy-500); color: var(--navy-500); }
.filter.is-active { background: var(--navy-500); border-color: var(--navy-500); color: var(--on-dark); }
.talks { display: grid; gap: 1px; background: var(--line-light); border: 1px solid var(--line-light); }
@media (min-width: 700px) { .talks { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .talks { grid-template-columns: repeat(3, 1fr); } }
.talk { background: var(--cream-100); padding: 1.8rem 1.6rem; display: flex; flex-direction: column; gap: .7rem; position: relative; transition: background .3s, transform .3s var(--ease); }
.talk:hover { background: #fff; }
.talk.is-hidden { display: none; }
.talk__fam { font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-600); font-weight: 600; }
.talk h3 { font-size: 1.3rem; line-height: 1.15; }
.talk p { color: var(--ink-soft); font-size: .93rem; margin: 0; flex: 1; }
.talk__cta { font-size: .82rem; font-weight: 600; color: var(--navy-500); display: inline-flex; gap: .4rem; align-items: center; margin-top: .4rem; opacity: .75; transition: opacity .25s; }
.talk:hover .talk__cta { opacity: 1; }
.talk__badge { position: absolute; top: 1rem; right: 1rem; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; background: var(--gold-400); color: var(--navy-900); padding: .3rem .55rem; font-weight: 700; border-radius: 2px; }
.talks__foot { margin-top: 1.8rem; padding: 1.4rem 1.6rem; background: var(--navy-500); color: var(--on-dark); font-size: .95rem; display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.talks__foot p { margin: 0; max-width: 60ch; }

/* ---------- Ladder (escalera de valor) ---------- */
.ladder { display: grid; gap: .6rem; }
.rung { display: grid; grid-template-columns: 1fr; gap: .4rem 1.5rem; align-items: center; cursor: default; }
@media (min-width: 760px) { .rung { grid-template-columns: minmax(0, var(--w)) 1fr; } }
.rung__bar {
  display: flex; align-items: center; gap: 1rem; padding: 1rem 1.3rem; border-radius: var(--radius);
  background: var(--bg); color: var(--fg); font-weight: 600; font-size: 1rem;
  transition: transform .35s var(--ease), box-shadow .35s;
  transform-origin: left center;
}
.rung:hover .rung__bar { transform: scaleX(1.02); box-shadow: 0 10px 30px -12px rgba(0,0,0,.6); }
.rung__bar i { font-family: var(--font-display); font-style: normal; font-size: 1.15rem; opacity: .7; }
.rung__desc { font-size: .93rem; color: var(--on-dark-soft); margin: 0; }
.rung--1 { --w: 34%; --bg: #D6DCEA; --fg: var(--navy-500); }
.rung--2 { --w: 46%; --bg: #9AAAD1; --fg: var(--navy-900); }
.rung--3 { --w: 60%; --bg: var(--navy-400); --fg: var(--on-dark); }
.rung--4 { --w: 76%; --bg: var(--navy-500); --fg: var(--on-dark); }
.rung--5 { --w: 100%; --bg: var(--navy-800); --fg: var(--on-dark); border: 1px solid rgba(212,175,55,.4); border-radius: var(--radius); }
.ladder__axis { margin-top: 1.4rem; font-family: var(--font-display); font-style: italic; color: var(--gold-400); font-size: .95rem; display: flex; justify-content: flex-end; gap: 1.2rem; }
.ladder__axis span + span::before { content: '•'; margin-right: 1.2rem; color: var(--on-dark-mute); }
.ladder__aside { display: grid; gap: 1rem; margin-top: 3rem; }
@media (min-width: 800px) { .ladder__aside { grid-template-columns: 1fr 1fr; } }
.aside-card { padding: 1.6rem 1.7rem; border-radius: var(--radius-lg); }
.aside-card--cream { background: var(--cream-200); color: var(--ink); }
.aside-card--navy { background: var(--navy-500); color: var(--on-dark); }
.aside-card .eyebrow { margin-bottom: .6rem; }
.aside-card p { margin: 0; font-size: .97rem; }

/* ---------- Talleres ---------- */
.workshops { border-top: 2px solid var(--gold-600); }
.ws { display: grid; grid-template-columns: 1fr; gap: .3rem 1.5rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line-light); align-items: baseline; }
@media (min-width: 800px) { .ws { grid-template-columns: 1.1fr .8fr 1.3fr; } }
.ws__head { display: none; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-mute); font-weight: 600; padding-bottom: .7rem; }
@media (min-width: 800px) { .ws__head { display: grid; } }
.ws__name { font-weight: 600; color: var(--navy-500); font-size: 1.02rem; }
.ws__tool { font-family: var(--font-display); font-style: italic; font-size: 1.2rem; color: var(--gold-600); }
.ws__app { color: var(--ink-soft); font-size: .93rem; }
.ws__meta { display: grid; gap: 1rem; margin-top: 2.5rem; }
@media (min-width: 800px) { .ws__meta { grid-template-columns: 1fr 1fr; } }
.ws__meta div { border-top: 2px solid var(--gold-600); padding-top: .8rem; font-size: .95rem; color: var(--ink-soft); }
.ws__meta strong { color: var(--ink); }

/* Kit card */
.kit { margin-top: 3.5rem; background: var(--navy-900); color: var(--on-dark); border-radius: var(--radius-lg); overflow: hidden; display: grid; }
@media (min-width: 900px) { .kit { grid-template-columns: .9fr 1.1fr; } }
.kit__intro { padding: 2.5rem; display: flex; flex-direction: column; gap: 1rem; }
.kit__intro h3 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.kit__intro p { color: var(--on-dark-soft); margin: 0; }
.kit__intro .btn { align-self: flex-start; margin-top: .5rem; }
.kit__page { background: var(--cream-100); color: var(--ink); padding: 2rem; margin: 1.2rem; border-radius: var(--radius); position: relative; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }
.kit__page::before { content: 'Ejemplo real de una página del kit'; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-600); font-weight: 700; }
.kit__page h4 { font-size: 1.8rem; margin: .5rem 0 1.2rem; }
.kit__cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
@media (min-width: 560px) { .kit__cols { grid-template-columns: repeat(4, 1fr); } }
.kit__cols div { font-size: .82rem; color: var(--ink-soft); line-height: 1.45; }
.kit__cols b { display: block; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); margin-bottom: .4rem; }
.kit__cols b::before { content: counter(kit) ' '; counter-increment: kit; color: var(--gold-600); }
.kit__cols { counter-reset: kit; }

/* ---------- Programas & consultoría ---------- */
.programs { display: grid; gap: 2rem; }
@media (min-width: 900px) { .programs { grid-template-columns: 1fr 1fr; gap: 3rem; } }
.prog-list { display: grid; }
.prog { padding: 1.3rem 0; border-bottom: 1px solid var(--line-dark); }
.prog h3 { font-size: 1.25rem; }
.prog__fmt { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-400); font-weight: 600; margin: .3rem 0 .4rem; }
.prog p { margin: 0; color: var(--on-dark-soft); font-size: .93rem; }
.consult { background: var(--navy-500); padding: 2rem; border-radius: var(--radius-lg); }
.consult .eyebrow { color: var(--gold-400); }
.consult li { padding: .8rem 0; border-bottom: 1px solid rgba(244,239,230,.14); font-size: .93rem; color: var(--on-dark-soft); }
.consult li:last-child { border: 0; }
.consult li b { display: block; color: var(--on-dark); font-weight: 600; font-size: 1rem; }
.level5 { margin-top: 2.5rem; padding: 1.5rem 1.8rem; background: rgba(244,239,230,.05); border: 1px dashed rgba(212,175,55,.35); border-radius: var(--radius); font-size: .95rem; color: var(--on-dark-soft); }
.level5 b { color: var(--gold-400); letter-spacing: .12em; text-transform: uppercase; font-size: .7rem; display: block; margin-bottom: .4rem; }

/* ---------- Libros ---------- */
.books-bg {
  background:
    radial-gradient(900px 500px at 50% 0%, rgba(46,74,143,.5), transparent 65%),
    radial-gradient(600px 400px at 85% 100%, rgba(184,134,11,.15), transparent 60%),
    var(--navy-950);
}
.books { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .books { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.book { display: flex; flex-direction: column; gap: 1rem; }
.book__cover { perspective: 1200px; width: min(100%, 250px); margin-bottom: .8rem; }
.book__cover img { width: 100%; aspect-ratio: 2/3; object-fit: cover;
  border-radius: 3px 8px 8px 3px; box-shadow: -8px 12px 30px -10px rgba(0,0,0,.9), inset 4px 0 8px -4px rgba(255,255,255,.15);
  transition: transform .6s var(--ease), box-shadow .6s;
  transform: rotateY(-8deg);
}
.book:hover .book__cover img { transform: rotateY(6deg) translateY(-6px); box-shadow: -18px 30px 50px -18px rgba(0,0,0,.95); }
.book__tag { font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-400); font-weight: 700; }
.book h3 { font-size: 1.6rem; line-height: 1.1; }
.book p { color: var(--on-dark-soft); font-size: .95rem; margin: 0; }
.book__use { font-size: .84rem; color: var(--gold-300); border-top: 1px solid var(--line-dark); padding-top: .8rem; }
.book__ctas { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: .4rem; }
.books__corp { margin-top: 3.5rem; display: grid; gap: 1.5rem; align-items: center; padding: 2rem; border: 1px solid rgba(212,175,55,.3); border-radius: var(--radius-lg); background: rgba(10,17,40,.6); }
@media (min-width: 900px) { .books__corp { grid-template-columns: 1fr auto; } }
.books__corp h3 { font-size: 1.5rem; margin-bottom: .4rem; }
.books__corp p { margin: 0; color: var(--on-dark-soft); }

/* ---------- Sobre Gerardo ---------- */
.about { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 900px) { .about { grid-template-columns: .85fr 1.15fr; gap: 5rem; } }
.about__photo { position: relative; }
.about__photo img { border-radius: var(--radius-lg); box-shadow: 0 40px 80px -40px rgba(10,17,40,.6); }
.about__photo figcaption { margin-top: .9rem; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-mute); }
.about__photo::before { content: ''; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--gold-600); border-radius: var(--radius-lg); z-index: -1; }
.about p { color: var(--ink-soft); }
.creds { display: grid; gap: .6rem; margin: 1.5rem 0 2rem; }
.creds li { display: grid; grid-template-columns: 14px 1fr; gap: .8rem; align-items: start; font-size: .95rem; color: var(--ink-soft); }
.creds li::before { content: '◆'; color: var(--gold-600); font-size: .6rem; margin-top: .45rem; }
.about__quote { font-family: var(--font-display); font-style: italic; font-size: clamp(1.2rem, 1.9vw, 1.5rem); color: var(--navy-500); line-height: 1.35; border-left: 3px solid var(--gold-600); padding-left: 1.3rem; }

/* ---------- Territorios / clientes ---------- */
.terr { display: grid; gap: 1.5rem; }
@media (min-width: 700px) { .terr { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .terr { grid-template-columns: repeat(4, 1fr); gap: 1.2rem; } }
.terr__item { border-top: 2px solid var(--gold-600); padding-top: 1rem; }
.terr__item h3 { font-size: 1.25rem; margin-bottom: .5rem; }
.terr__item p { color: var(--on-dark-soft); font-size: .92rem; }
.terr__list { font-size: .84rem; color: var(--gold-300); line-height: 1.7; }
.big-claim { margin-top: 3.5rem; display: grid; grid-template-columns: auto 1fr; gap: 1.5rem 2rem; align-items: center; background: var(--navy-500); padding: 2rem 2.2rem; border-radius: var(--radius-lg); }
.big-claim__num { font-family: var(--font-display); font-size: clamp(4rem, 9vw, 7rem); color: var(--gold-400); line-height: .9; }
.big-claim p { margin: 0; font-size: 1.05rem; color: var(--on-dark); max-width: 60ch; }

/* ---------- Momentos (galería) ---------- */
.gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; grid-auto-rows: 160px; grid-auto-flow: dense; }
@media (min-width: 700px) { .gallery { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: .8rem; } }
.gal { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--navy-800); }
.gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease), filter .5s; filter: saturate(.85); }
.gal:hover img { transform: scale(1.06); filter: saturate(1); }
.gal figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem .9rem .8rem; background: linear-gradient(180deg, transparent, rgba(6,12,29,.9)); color: var(--on-dark); font-size: .74rem; letter-spacing: .06em; transform: translateY(6px); opacity: .9; transition: .4s; }
.gal:hover figcaption { transform: none; opacity: 1; }
.gal--w2 { grid-column: span 2; }
.gal--h2 { grid-row: span 2; }

/* ---------- Tres formas de empezar ---------- */
.plans { display: grid; gap: 1.2rem; align-items: stretch; }
@media (min-width: 900px) { .plans { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
.plan { position: relative; display: flex; flex-direction: column; gap: 1rem; padding: 2.2rem 1.9rem; border: 1px solid var(--line-light); border-radius: var(--radius-lg); background: var(--cream-100); transition: transform .35s var(--ease), box-shadow .35s; }
.plan:hover { transform: translateY(-5px); box-shadow: 0 30px 50px -30px rgba(10,17,40,.35); }
.plan h3 { font-size: 2rem; color: var(--navy-500); }
.plan p { color: var(--ink-soft); margin: 0; }
.plan__for { font-size: .88rem; color: var(--ink-mute); border-top: 1px solid var(--line-light); padding-top: .9rem; margin-top: auto; }
.plan .btn { margin-top: .6rem; }
.plan--hi { background: var(--navy-900); color: var(--on-dark); border-color: var(--gold-400); box-shadow: var(--shadow-gold); }
.plan--hi h3 { color: var(--gold-400); }
.plan--hi p { color: var(--on-dark-soft); }
.plan--hi .plan__for { color: var(--on-dark-mute); border-color: var(--line-dark); }
.plan__badge { position: absolute; top: -12px; left: 1.9rem; background: var(--gold-400); color: var(--navy-900); font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; padding: .35rem .7rem; border-radius: 2px; }
.plans__note { margin-top: 1.8rem; font-size: .9rem; color: var(--ink-mute); text-align: center; }

/* ---------- FAQ ---------- */
.faq { max-width: 820px; margin-inline: auto; border-top: 1px solid var(--line-light); }
.faq details { border-bottom: 1px solid var(--line-light); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.3rem 0; font-family: var(--font-display); font-size: 1.2rem; color: var(--navy-500); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font-family: var(--font-body); font-size: 1.4rem; color: var(--gold-600); transition: transform .3s; flex: none; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--ink-soft); padding-bottom: 1.3rem; margin: 0; max-width: 68ch; }

/* ---------- Contacto ---------- */
.contact { display: grid; gap: 3rem; }
@media (min-width: 900px) { .contact { grid-template-columns: .9fr 1.1fr; gap: 5rem; } }
.contact__info h2 { margin-bottom: 1rem; }
.contact__info p { color: var(--on-dark-soft); }
.contact__lines { display: grid; gap: 1.2rem; margin-top: 2rem; }
.contact__lines a, .contact__lines div { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; align-items: center; color: var(--on-dark); }
.contact__lines svg { width: 44px; height: 44px; padding: 11px; border: 1px solid var(--line-dark); border-radius: 50%; color: var(--gold-400); }
.contact__lines small { display: block; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--on-dark-mute); }
.contact__lines a:hover svg { border-color: var(--gold-400); }
.form { background: var(--navy-800); padding: 2rem; border-radius: var(--radius-lg); border: 1px solid var(--line-dark); display: grid; gap: 1rem; }
.form__row { display: grid; gap: 1rem; }
@media (min-width: 600px) { .form__row { grid-template-columns: 1fr 1fr; } }
.field { display: grid; gap: .4rem; }
.field label { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-mute); font-weight: 600; }
.field input, .field select, .field textarea {
  width: 100%; padding: .85rem 1rem; background: rgba(6,12,29,.7); border: 1px solid var(--line-dark); border-radius: var(--radius);
  color: var(--on-dark); font: inherit; font-size: .97rem; transition: border-color .25s; min-height: 48px;
}
.field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23D4AF37' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; }
.field select option { color: var(--ink); }
.field textarea { min-height: 110px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 0; border-color: var(--gold-400); }
.field input::placeholder, .field textarea::placeholder { color: rgba(244,239,230,.35); }
.form__legal { font-size: .76rem; color: var(--on-dark-mute); }
.form__legal a { text-decoration: underline; color: var(--on-dark-soft); }
.form__ok { display: none; padding: 1.2rem; background: rgba(37,211,102,.12); border: 1px solid rgba(37,211,102,.4); border-radius: var(--radius); font-size: .95rem; color: var(--on-dark); }
.form.is-sent .form__ok { display: block; }

/* ---------- Footer ---------- */
.footer { background: var(--navy-950); color: var(--on-dark); padding: 3.5rem 0 2rem; border-top: 1px solid var(--line-dark); font-size: .88rem; }
.footer__grid { display: grid; gap: 2.5rem; }
@media (min-width: 800px) { .footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer__logo img { height: 64px; width: auto; margin-bottom: 1rem; }
.footer p { color: var(--on-dark-mute); max-width: 36ch; }
.footer h4 { font-family: var(--font-body); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-400); margin-bottom: 1rem; }
.footer li { padding: .28rem 0; }
.footer li a { color: var(--on-dark-soft); }
.footer li a:hover { color: var(--gold-400); }
.footer__bottom { margin-top: 3rem; padding-top: 1.4rem; border-top: 1px solid var(--line-dark); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; color: var(--on-dark-mute); font-size: .8rem; }
.footer__tag { font-family: var(--font-display); font-style: italic; color: var(--gold-400); font-size: 1rem; }

/* ---------- Floating WhatsApp & mobile CTA ---------- */
.wa-float {
  position: fixed; right: 1.1rem; bottom: 1.1rem; z-index: 70;
  width: 58px; height: 58px; border-radius: 50%; background: var(--wa); color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 30px -8px rgba(37,211,102,.6);
  transition: transform .3s var(--ease);
}
.wa-float:hover { transform: scale(1.08); }
.wa-float svg { width: 30px; height: 30px; }
.wa-float__tip { position: absolute; right: 70px; top: 50%; transform: translateY(-50%); background: #fff; color: var(--ink); font-size: .8rem; font-weight: 600; padding: .55rem .85rem; border-radius: var(--radius); white-space: nowrap; box-shadow: 0 10px 30px -10px rgba(0,0,0,.4); opacity: 0; pointer-events: none; transition: opacity .3s; }
.wa-float:hover .wa-float__tip, .wa-float.show-tip .wa-float__tip { opacity: 1; }
@media (max-width: 999px) {
  .cta-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 65; display: flex; gap: .5rem; padding: .6rem .8rem calc(.6rem + env(safe-area-inset-bottom)); background: rgba(6,12,29,.92); backdrop-filter: blur(12px); border-top: 1px solid var(--line-dark); transform: translateY(110%); transition: transform .4s var(--ease); }
  .cta-bar.is-visible { transform: none; }
  .cta-bar .btn { flex: 1; padding-inline: .8rem; font-size: .85rem; }
  .wa-float { bottom: 5.2rem; }
  body { padding-bottom: 0; }
}
@media (min-width: 1000px) { .cta-bar { display: none; } }

/* ---------- Lead pop (kit) ---------- */
.leadpop {
  position: fixed; right: 1.1rem; bottom: 6.5rem; z-index: 68; width: min(92vw, 380px);
  background: var(--cream-100); color: var(--ink); border-radius: var(--radius-lg); padding: 1.5rem;
  box-shadow: 0 40px 80px -30px rgba(0,0,0,.7); border-top: 3px solid var(--gold-400);
  transform: translateY(30px); opacity: 0; pointer-events: none; transition: transform .5s var(--ease), opacity .4s;
}
.leadpop.is-visible { transform: none; opacity: 1; pointer-events: auto; }
@media (max-width: 999px) { .leadpop { bottom: 5.4rem; right: 50%; transform: translate(50%, 30px); } .leadpop.is-visible { transform: translate(50%, 0); } }
.leadpop__close { position: absolute; top: .6rem; right: .8rem; background: none; border: 0; font-size: 1.3rem; color: var(--ink-mute); }
.leadpop h4 { font-size: 1.3rem; margin-bottom: .3rem; padding-right: 1.5rem; }
.leadpop p { font-size: .88rem; color: var(--ink-soft); margin-bottom: .9rem; }
.leadpop .field input { background: #fff; color: var(--ink); border-color: var(--line-light); }
.leadpop .field label { color: var(--ink-mute); }
.leadpop form { display: grid; gap: .7rem; }
.leadpop small { font-size: .7rem; color: var(--ink-mute); }

/* ---------- Scroll reveal ---------- */
[data-sr] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
[data-sr].is-in { opacity: 1; transform: none; }
[data-sr-delay="1"] { transition-delay: .1s } [data-sr-delay="2"] { transition-delay: .2s } [data-sr-delay="3"] { transition-delay: .3s } [data-sr-delay="4"] { transition-delay: .4s }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  [data-sr], .hero [data-reveal] { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* Respetar el atributo hidden sobre reglas display */
[hidden] { display: none !important; }

/* Móvil: el chip del premio ya se repite en la barra de cifras; se oculta para no tapar la cita */
@media (max-width: 899px) { .hero__chip--a { display: none; } .hero__chip--b { top: 4%; } }

/* =====================================================================
   REFINAMIENTO TIPOGRÁFICO Y DE ESPACIADO (pasada 2)
   Más aire entre líneas y bloques; jerarquía más legible en cada sección.
   ===================================================================== */
body { line-height: 1.68; }
p { margin-bottom: 1.15rem; }
h1,h2,h3,h4 { line-height: 1.15; }
.h2 { line-height: 1.12; margin-bottom: .2rem; }
.lead { line-height: 1.65; }
.eyebrow { margin-bottom: 1.3rem; }
.section-head { gap: 1.2rem; }
.section-head--split { gap: 1.5rem 4rem; }

/* Hero */
.hero__title { line-height: 1.02; }
.hero__lead { line-height: 1.62; margin: 1.8rem 0 2.4rem; }
.hero__note { line-height: 1.5; }
.hero__chip { padding: .85rem 1.05rem; line-height: 1.4; font-size: .8rem; }
.hero__chip strong { margin-bottom: .15rem; }
.hero__quote { line-height: 1.4; }
.hero__quote small { margin-top: .6rem; }

/* Cifras */
.stat { padding: 2.1rem 1.5rem; }
.stat__label { line-height: 1.55; margin-top: .75rem; }
.stat--award .stat__num { line-height: 1.3; }

/* Problema */
.step { gap: 1.5rem; padding: 1.9rem 0; }
.step h3 { margin-bottom: .5rem; line-height: 1.25; }
.step p { line-height: 1.62; }
.problem__question { line-height: 1.35; margin-top: 2.4rem; padding-left: 1.5rem; }

/* Caminos */
.path { padding: 2.5rem 2.1rem 2.3rem; gap: 1.15rem; }
.path h3 { line-height: 1.2; }
.path p { line-height: 1.62; }

/* Conferencias */
.chips { gap: .7rem; margin-top: 1rem; }
.chip { line-height: 1.4; }
.filters { gap: .6rem; margin-bottom: 2.2rem; }
.talk { padding: 2.1rem 1.8rem 1.9rem; gap: .85rem; }
.talk h3 { line-height: 1.22; padding-right: 1rem; }
.talk p { line-height: 1.62; }
.talk__badge { line-height: 1.4; }
.talks__foot { padding: 1.7rem 1.9rem; line-height: 1.6; gap: 1.4rem; }

/* Escalera */
.rung__bar { padding: 1.1rem 1.45rem; }
.rung__desc { line-height: 1.6; }
.rung { gap: .5rem 1.6rem; }
.aside-card { padding: 1.9rem 2rem; }
.aside-card p { line-height: 1.65; }

/* Talleres y kit */
.ws { padding: 1.55rem 0; gap: .45rem 1.8rem; }
.ws__name { line-height: 1.4; }
.ws__tool { line-height: 1.3; }
.ws__app { line-height: 1.62; }
.ws__meta div { line-height: 1.6; padding-top: 1rem; }
.kit__intro { padding: 2.8rem 2.6rem; gap: 1.15rem; }
.kit__intro h3 { line-height: 1.18; }
.kit__intro p { line-height: 1.65; }
.kit__page { padding: 2.4rem 2.2rem; margin: 1.3rem; }
.kit__page h4 { margin: .7rem 0 1.6rem; line-height: 1.15; }
.kit__cols { gap: 1.6rem 1.4rem; }
.kit__cols div { font-size: .86rem; line-height: 1.58; }
.kit__cols b { margin-bottom: .55rem; line-height: 1.4; }

/* Programas y consultoría */
.prog { padding: 1.55rem 0; }
.prog h3 { line-height: 1.22; margin-bottom: .25rem; }
.prog__fmt { line-height: 1.55; margin: .35rem 0 .55rem; }
.prog p { line-height: 1.6; }
.consult { padding: 2.3rem 2.2rem; }
.consult li { padding: 1rem 0; line-height: 1.58; }
.consult li b { margin-bottom: .2rem; line-height: 1.35; }
.level5 { padding: 1.7rem 2rem; line-height: 1.65; }
.level5 b { margin-bottom: .6rem; }

/* Libros */
.book { gap: 1.05rem; }
.book h3 { line-height: 1.18; }
.book p { line-height: 1.62; }
.book__use { line-height: 1.55; padding-top: .95rem; }
.books__corp { padding: 2.3rem 2.4rem; }
.books__corp h3 { line-height: 1.2; margin-bottom: .5rem; }
.books__corp p { line-height: 1.6; }

/* Sobre */
.creds { gap: .65rem; margin: 1.5rem 0 2rem; }
.creds li { line-height: 1.58; }
.about__quote { line-height: 1.4; padding-left: 1.4rem; }

/* Territorios */
.terr__item { padding-top: 1.15rem; }
.terr__item h3 { line-height: 1.22; margin-bottom: .6rem; }
.terr__item p { line-height: 1.6; margin-bottom: .9rem; }
.terr__list { line-height: 1.85; }
.big-claim { padding: 2.3rem 2.5rem; gap: 1.5rem 2.4rem; }
.big-claim p { line-height: 1.62; }

/* Galería */
.gal figcaption { line-height: 1.45; padding: 1.8rem 1rem .9rem; }

/* Planes, FAQ, contacto, footer */
.plan { gap: 1.1rem; padding: 2.4rem 2.1rem; }
.plan h3 { line-height: 1.15; }
.plan p { line-height: 1.62; }
.plan__for { line-height: 1.55; padding-top: 1rem; }
.plans__note { line-height: 1.6; margin-top: 2.2rem; }
.faq summary { padding: 1.45rem 0; line-height: 1.35; }
.faq details p { line-height: 1.65; padding-bottom: 1.5rem; }
.contact__lines { gap: 1.35rem; margin-top: 2.3rem; }
.contact__lines small { margin-bottom: .15rem; }
.form { padding: 2.3rem; gap: 1.15rem; }
.form__legal { line-height: 1.55; }
.footer p { line-height: 1.62; }
.footer li { padding: .35rem 0; }
.footer h4 { margin-bottom: 1.1rem; }
.leadpop p { line-height: 1.55; }
.announce { line-height: 1.5; }
.marquee__label { line-height: 1.5; }

/* Kit: dos columnas siempre, más aire */
.kit { grid-template-columns: 1fr; }
@media (min-width: 900px) { .kit { grid-template-columns: .95fr 1.05fr; } }
.kit__cols { grid-template-columns: repeat(2, 1fr) !important; gap: 1.8rem 1.8rem; }
.kit__cols div { font-size: .92rem; line-height: 1.6; }
.kit__page { padding: 2.6rem 2.5rem; }

/* Portadas: misma altura, proporción natural (sin recortar títulos) */
.book__cover { width: auto; display: flex; align-items: flex-end; min-height: clamp(300px, 26vw, 400px); }
.book__cover img { width: auto; height: clamp(300px, 26vw, 400px); max-width: 100%; aspect-ratio: auto; object-fit: contain; }
@media (max-width: 560px) { .kit__cols { grid-template-columns: 1fr !important; gap: 1.4rem; } .kit__page { padding: 2rem 1.5rem; margin: .9rem; } }

/* =====================================================================
   TIPOGRAFÍA DE MARCA: Cormorant Garamond (titulares) + Montserrat (cuerpo)
   Cormorant tiene menor altura de x, así que los titulares suben de tamaño
   y peso; Montserrat es más ancha, así que el cuerpo baja un punto.
   ===================================================================== */
:root {
  --fs-hero: clamp(3rem, 7vw, 6.2rem);
  --fs-h2: clamp(2.3rem, 4.8vw, 3.9rem);
  --fs-h3: clamp(1.5rem, 2.4vw, 1.95rem);
  --fs-body: .97rem;
  --fs-lead: clamp(1.02rem, 1.35vw, 1.18rem);
  --fs-eyebrow: .7rem;
}
h1,h2,h3,h4 { font-weight: 600; letter-spacing: 0; }
.hero__title { font-weight: 600; line-height: .98; }
.hero__title em, .h2 em { font-weight: 500; }
.h2 { line-height: 1.06; }
.step h3, .path h3, .prog h3, .book h3, .plan h3, .terr__item h3, .kit__intro h3, .books__corp h3, .leadpop h4 { font-size: calc(var(--fs-h3) * .95); }
.talk h3 { font-size: 1.55rem; line-height: 1.15; }
.faq summary { font-size: 1.4rem; font-weight: 600; }
.hero__chip strong { font-size: 1.15rem; font-weight: 700; }
.stat__num { font-weight: 600; }
.stat--award .stat__num { font-size: clamp(1.25rem, 1.8vw, 1.5rem); font-weight: 600; }
.step__num, .rung__bar i, .big-claim__num { font-weight: 600; }
.problem__question, .about__quote, .hero__quote, .footer__tag, .ladder__axis { font-weight: 500; font-size: 1.15em; }
.ws__tool { font-size: 1.35rem; font-weight: 600; }
.marquee__item { font-weight: 600; font-size: 1.35rem; }
.kit__page h4 { font-size: 2.1rem; }
.plan h3 { font-size: 2.2rem; }
.nav-mobile a { font-weight: 600; }
.btn { font-size: .92rem; letter-spacing: .02em; }
.eyebrow, .chip, .talk__fam, .path__k, .prog__fmt, .book__tag, .stat__label, .field label, .footer h4, .marquee__label, .ws__head, .coupon__ev, .g-top__ev { letter-spacing: .18em; }

/* Etiqueta "Metodología propia": ya no flota sobre la categoría */
.talk__badge { position: static; order: -1; align-self: flex-start; margin-bottom: .1rem; }
/* Citas con tamaño propio (Cormorant necesita más cuerpo) */
.problem__question { font-size: clamp(1.7rem, 2.7vw, 2.2rem); line-height: 1.3; }
.about__quote { font-size: clamp(1.5rem, 2.2vw, 1.85rem); line-height: 1.35; }
.hero__quote { font-size: 1.25rem; line-height: 1.35; }
.footer__tag { font-size: 1.25rem; }
.ladder__axis { font-size: 1.15rem; }
/* Hero: el chip del premio sube para no pegarse a la cita */
@media (min-width: 900px) { .hero__chip--a { bottom: 27%; left: -9%; } .hero__quote { bottom: 1.2rem; } }

/* =====================================================================
   BANDAS DE FOTOS en Conferencias, Talleres y Consultoría
   ===================================================================== */
.media-band { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; gap: .8rem; margin: 0 0 clamp(2.5rem, 5vw, 3.5rem); }
.media-band figure { position: relative; overflow: hidden; border-radius: var(--radius-lg); margin: 0; background: var(--navy-800); }
.media-band img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.media-band figure:hover img { transform: scale(1.04); }
.media-band figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 2rem 1.1rem .95rem; background: linear-gradient(180deg, transparent, rgba(6,12,29,.88)); color: var(--on-dark); font-size: .76rem; letter-spacing: .06em; line-height: 1.45; }
.media-band figcaption b { display: block; font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; letter-spacing: 0; margin-bottom: .15rem; }
.media-band .is-wide { grid-column: span 2; grid-row: span 2; }
@media (min-width: 800px) {
  .media-band { grid-template-columns: 1.7fr 1fr; grid-auto-rows: 230px; gap: 1rem; }
  .media-band .is-wide { grid-column: 1; grid-row: 1 / span 2; }
  .media-band figure:not(.is-wide) { grid-column: 2; }
}
.section--cream .media-band figure { box-shadow: 0 30px 50px -30px rgba(10,17,40,.45); }

/* =====================================================================
   RESPONSIVE: sin desbordamiento horizontal + fotos con caras centradas
   ===================================================================== */
html, body { max-width: 100%; overflow-x: clip; }
.stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 800px) { .stats__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.stat { min-width: 0; }
.stat__label { overflow-wrap: anywhere; letter-spacing: .1em; }
.talks, .paths, .terr, .plans, .books, .programs, .gallery, .media-band, .kit__cols, .footer__grid, .form__row, .contact, .about, .problem__grid, .hero__grid { min-width: 0; }
.talks > *, .paths > *, .terr > *, .plans > *, .books > *, .programs > *, .gallery > *, .media-band > * { min-width: 0; }
.marquee { max-width: 100vw; }
@media (max-width: 899px) {
  .hero__visual { width: 100%; }
  .hero__chip--b { right: 0; }
  .chips { gap: .5rem; }
  .chip { letter-spacing: .12em; font-size: .68rem; }
  .filters { gap: .45rem; }
  .filter { padding: .5rem .85rem; font-size: .82rem; }
  .big-claim { grid-template-columns: 1fr; text-align: center; padding: 2rem 1.4rem; }
  .big-claim__num { font-size: 4.5rem; }
  .talks__foot { text-align: center; justify-content: center; }
  .talks__foot p { text-align: center; }
  .section-head, .h2, .lead { text-align: left; }
  .kit__intro { padding: 2.2rem 1.5rem; }
  .kit__intro .btn { align-self: stretch; }
  .books__corp { text-align: center; }
  .books__corp .btn { justify-self: center; width: 100%; }
  .book { align-items: center; text-align: center; }
  .book__cover { justify-content: center; }
  .book__cover img { height: 320px; }
  .book__ctas { justify-content: center; }
  .about__photo::before { inset: 10px -8px -8px 10px; }
  .plan .btn { width: 100%; }
  .contact__info .h2 { text-align: left; }
  .footer__grid { text-align: left; }
  .form { padding: 1.6rem 1.2rem; }
  .stat--award { grid-column: span 2; text-align: center; }
  .ladder__axis { justify-content: flex-start; flex-wrap: wrap; gap: .6rem; font-size: 1rem; }
  .ladder__axis span + span::before { margin-right: .6rem; }
}
@media (max-width: 480px) {
  .hero__title { font-size: 3.1rem; }
  .h2 { font-size: 2.35rem; }
  .gallery { grid-auto-rows: 150px; gap: .5rem; }
  .media-band { grid-auto-rows: 150px; gap: .5rem; }
  .media-band figcaption b { font-size: 1.05rem; }
  .media-band figcaption, .gal figcaption { font-size: .68rem; padding: 1.3rem .7rem .6rem; }
  .announce { font-size: .74rem; padding: .5rem 2.2rem .5rem 1rem; }
  .btn { white-space: normal; text-align: center; }
}

/* Puntos focales: que las caras queden dentro del recorte */
img[src$="m-medellin.jpg"] { object-position: center 22%; }
img[src$="m-firma-filbo.jpg"] { object-position: 70% 55%; }
img[src$="m-tv.jpg"] { object-position: center 30%; }
img[src$="m-premio.jpg"] { object-position: center 40%; }
img[src$="m-tulua.jpg"] { object-position: center 45%; }
img[src$="m-filbo-espectador.jpg"] { object-position: center 42%; }
img[src$="gerardo-3libros.jpg"] { object-position: center 22%; }
img[src$="gerardo-claro.jpg"] { object-position: center 30%; }
img[src$="m-taller-todo-parte.jpg"] { object-position: center 40%; }
img[src$="m-teatro.jpg"] { object-position: center 45%; }
img[src$="m-gerencia-emociones.jpg"] { object-position: center 55%; }
img[src$="m-panel-espectador.jpg"] { object-position: center 62%; }
img[src$="m-oficina.jpg"] { object-position: center 45%; }
img[src$="m-selfie-equipo.jpg"] { object-position: center 40%; }
img[src$="m-velas.jpg"] { object-position: center 45%; }
img[src$="m-taller-cc.jpg"], img[src$="m-taller-mall.jpg"] { object-position: center 55%; }
.stat__label { overflow-wrap: normal; hyphens: manual; }
@media (max-width: 799px) { .stat { padding: 1.5rem .9rem; } .stat__label { font-size: .7rem; letter-spacing: .08em; } .stat__num { font-size: 2.2rem; } }

/* Galería en móvil: mosaico uniforme sin huecos */
@media (max-width: 699px) {
  .gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; gap: .6rem; }
  .gal--w2 { grid-column: span 2; }
  .gal--h2 { grid-row: span 1; }
  .gal--w2.gal--h2 { grid-row: span 2; }
  .gal figcaption { padding: 1.4rem .7rem .6rem; font-size: .7rem; }
}


/* =====================================================================
   AUTORIDAD (premio + cifras en tres grupos)
   ===================================================================== */
.authority { background: var(--navy-950); color: var(--on-dark); border-block: 1px solid var(--line-dark); padding: clamp(2.5rem, 5vw, 4rem) 0; }
.authority__award { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem 1.6rem; align-items: center; padding-bottom: clamp(1.8rem, 3vw, 2.5rem); margin-bottom: clamp(1.8rem, 3vw, 2.5rem); border-bottom: 1px solid var(--line-dark); }
.authority__laurel { width: 64px; height: 64px; border-radius: 50%; border: 1px solid rgba(212,175,55,.5); display: grid; place-items: center; color: var(--gold-400); background: radial-gradient(circle at 50% 30%, rgba(212,175,55,.18), transparent 70%); }
.authority__laurel svg { width: 30px; height: 30px; }
.authority__k { font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-400); font-weight: 700; margin-bottom: .45rem; }
.authority__title { font-size: clamp(1.7rem, 3.2vw, 2.6rem); line-height: 1.1; font-weight: 600; }
.authority__sub { color: var(--on-dark-soft); font-size: .92rem; margin-top: .35rem; }
.authority__grid { display: grid; gap: 2rem; }
@media (min-width: 800px) { .authority__grid { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } .authority__group + .authority__group { border-left: 1px solid var(--line-dark); padding-left: 2.5rem; } }
.authority__stat { display: flex; align-items: baseline; gap: .9rem; padding: .65rem 0; border-bottom: 1px dashed rgba(244,239,230,.1); }
.authority__stat:last-child { border-bottom: 0; }
.authority__num { font-family: var(--font-display); font-size: clamp(1.9rem, 3vw, 2.6rem); color: var(--gold-400); font-weight: 600; line-height: 1; white-space: nowrap; min-width: 5.2ch; }
.authority__num b { font-weight: 600; }
.authority__label { color: var(--on-dark-soft); font-size: .93rem; line-height: 1.4; }
@media (max-width: 799px) {
  .authority__award { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .authority__group { padding-bottom: 1.2rem; border-bottom: 1px solid var(--line-dark); }
  .authority__group:last-child { border-bottom: 0; }
}

/* Servicios adicionales (coaching + emprendedores) */
.extra-services { display: grid; gap: 1.2rem; margin-top: 3rem; }
@media (min-width: 900px) { .extra-services { grid-template-columns: 1fr 1fr; gap: 1.5rem; } }
.xsvc { padding: 2.2rem 2rem; border-radius: var(--radius-lg); background: var(--cream-200); color: var(--ink); display: flex; flex-direction: column; gap: .9rem; }
.xsvc .eyebrow { color: var(--gold-600); margin-bottom: .2rem; }
.xsvc h3 { font-size: clamp(1.5rem, 2.3vw, 1.9rem); line-height: 1.15; }
.xsvc p { margin: 0; color: var(--ink-soft); line-height: 1.62; }
.xsvc__list { display: grid; gap: .45rem; margin: .2rem 0 .6rem; }
.xsvc__list li { padding-left: 1.1rem; position: relative; font-size: .93rem; color: var(--ink-soft); }
.xsvc__list li::before { content: '◆'; position: absolute; left: 0; top: .5em; font-size: .5rem; color: var(--gold-600); }
.xsvc .btn { align-self: flex-start; margin-top: auto; }
.xsvc--navy { background: var(--navy-500); color: var(--on-dark); }
.xsvc--navy .eyebrow { color: var(--gold-400); }
.xsvc--navy p, .xsvc--navy .xsvc__list li { color: var(--on-dark-soft); }
.xsvc--navy .xsvc__list li::before { color: var(--gold-400); }
@media (max-width: 899px) { .xsvc .btn { align-self: stretch; } }


/* =====================================================================
   TIPOGRAFÍA v3: Lexend (titulares) + DM Sans (cuerpo)
   Sans-serif moderna, como las marcas de coaching/academias.
   Anula los ajustes previos hechos para la serif.
   ===================================================================== */
:root {
  --fs-hero: clamp(2.5rem, 5.6vw, 4.6rem);
  --fs-h2: clamp(1.9rem, 3.8vw, 3rem);
  --fs-h3: clamp(1.25rem, 2vw, 1.55rem);
  --fs-body: 1rem;
  --fs-lead: clamp(1.02rem, 1.35vw, 1.2rem);
}
h1,h2,h3,h4 { font-weight: 600; letter-spacing: -.02em; line-height: 1.12; }
.hero__title { font-weight: 700; line-height: 1.02; letter-spacing: -.03em; max-width: 13ch; }
.hero__title em, .h2 em { font-style: normal; font-weight: 500; }
.h2 { line-height: 1.1; letter-spacing: -.025em; }
.step h3, .path h3, .prog h3, .book h3, .plan h3, .terr__item h3, .kit__intro h3, .books__corp h3, .xsvc h3, .reader-video__text h3 { font-size: var(--fs-h3); }
.talk h3 { font-size: 1.25rem; line-height: 1.2; }
.faq summary { font-size: 1.1rem; font-weight: 500; }
.hero__chip strong { font-size: 1rem; font-weight: 700; }
.authority__title { font-size: clamp(1.5rem, 2.8vw, 2.2rem); }
.authority__num { font-size: clamp(1.7rem, 2.6vw, 2.2rem); font-weight: 700; }
.stat__num, .step__num, .rung__bar i, .big-claim__num { font-weight: 700; }
.big-claim__num { font-size: clamp(3.5rem, 7vw, 5.5rem); letter-spacing: -.04em; }
.problem__question, .about__quote, .hero__quote, .footer__tag, .ladder__axis { font-family: var(--font-body); font-style: italic; font-weight: 500; font-size: 1em; }
.problem__question { font-size: clamp(1.2rem, 1.8vw, 1.4rem); line-height: 1.4; font-style: normal; font-weight: 600; color: var(--navy-500); }
.about__quote { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.5; }
.hero__quote { font-size: 1rem; line-height: 1.45; }
.footer__tag { font-size: 1rem; }
.ladder__axis { font-size: .9rem; }
.ws__tool { font-family: var(--font-display); font-style: normal; font-size: 1.05rem; font-weight: 600; color: var(--gold-600); }
.marquee__item { font-family: var(--font-display); font-weight: 500; font-size: 1.05rem; }
.kit__page h4 { font-size: 1.6rem; }
.plan h3 { font-size: 1.7rem; }
.nav-mobile a { font-weight: 600; font-size: clamp(1.5rem, 6vw, 2rem); }
.btn { font-family: var(--font-display); font-weight: 500; font-size: .92rem; letter-spacing: 0; }
.media-band figcaption b, .coupon__title { font-family: var(--font-display); font-weight: 600; }
.media-band figcaption b { font-size: 1.05rem; }
.eyebrow, .chip, .talk__fam, .path__k, .prog__fmt, .book__tag, .stat__label, .field label, .footer h4, .marquee__label, .ws__head, .coupon__ev, .g-top__ev, .authority__k { letter-spacing: .16em; font-weight: 600; }
.hero__roles { letter-spacing: .2em; }
.hero__lead { max-width: 54ch; }

/* Video de lectora (sección Libros) */
.reader-video { margin-top: 3.5rem; display: grid; gap: 2rem; align-items: center; padding: 2rem; border: 1px solid rgba(212,175,55,.3); border-radius: var(--radius-lg); background: rgba(10,17,40,.6); }
@media (min-width: 800px) { .reader-video { grid-template-columns: 300px 1fr; gap: 3rem; padding: 2.2rem 2.6rem; } }
.reader-video__frame { position: relative; width: min(100%, 300px); aspect-ratio: 9/16; margin-inline: auto; border-radius: 14px; overflow: hidden; background: var(--navy-950); box-shadow: 0 30px 60px -30px rgba(0,0,0,.9); }
.reader-video__frame video { width: 100%; height: 100%; object-fit: cover; display: block; }
.reader-video__sound { position: absolute; right: .7rem; bottom: .7rem; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(244,239,230,.4); background: rgba(6,12,29,.75); color: var(--on-dark); display: grid; place-items: center; backdrop-filter: blur(6px); }
.reader-video__sound svg { width: 20px; height: 20px; }
.reader-video__sound .rv-on { display: none; }
.reader-video__sound.is-on .rv-on { display: block; }
.reader-video__sound.is-on .rv-off { display: none; }
.reader-video__text h3 { margin: .2rem 0 .8rem; }
.reader-video__text p { color: var(--on-dark-soft); margin-bottom: 1.4rem; }
img[src$="marcca-tarima.jpg"] { object-position: center 45%; }
img[src$="marcca-disney.jpg"] { object-position: center 45%; }
img[src$="marcca-conectan.jpg"] { object-position: center 50%; }
img[src$="marcca-megamall.jpg"] { object-position: center 40%; }
img[src$="auditorio-publico.jpg"] { object-position: center 50%; }
.reader-video__frame { aspect-ratio: 27/32; }
.gal { margin: 0; }
.gallery figure, .media-band figure { margin: 0; }


/* =====================================================================
   NIVELES: etiqueta grande por sección + escalera con color por nivel
   ===================================================================== */
:root {
  --lv1: #E6C866; --lv2: #D4AF37; --lv3: #C9773A; --lv4: #6FB3C4; --lv5: #9AAAD1; --lvx: #F4EFE6;
  --lv1-ink: #A67C0A; --lv2-ink: #B8860B; --lv3-ink: #A85E2A; --lv4-ink: #2E7D91; --lv5-ink: #3F5AA6;
}
.nivel-label { font-family: var(--font-display); font-size: clamp(1.1rem, 2.4vw, 1.5rem); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--navy-500); margin-bottom: .9rem; line-height: 1.2; }
.nivel-label span { color: var(--gold-600); }
.section--dark .nivel-label, .nivel-label--ondark { color: var(--on-dark); }
.nivel-label--1 span { color: var(--lv1-ink); } .section--dark .nivel-label--1 span { color: var(--lv1); }
.nivel-label--2 span { color: var(--lv2-ink); } .section--dark .nivel-label--2 span { color: var(--lv2); }
.nivel-label--3 span { color: var(--lv3-ink); } .section--dark .nivel-label--3 span { color: var(--lv3); }
.nivel-label--4 span { color: var(--lv4-ink); } .section--dark .nivel-label--4 span { color: var(--lv4); }
.nivel-label--5 span { color: var(--lv5-ink); } .section--dark .nivel-label--5 span { color: var(--lv5); }
.nivel-label--sm { font-size: 1rem; margin-bottom: 1.2rem; }

.levels { display: grid; gap: .9rem; }
@media (min-width: 800px) { .levels { grid-template-columns: repeat(2, 1fr); gap: 1rem; } }
@media (min-width: 1100px) { .levels { grid-template-columns: repeat(3, 1fr); } }
.level { --c: var(--gold-400); display: grid; grid-template-columns: 64px 1fr; gap: 1.1rem; align-items: start; padding: 1.4rem 1.4rem 1.4rem 1.2rem; border-radius: var(--radius-lg); background: rgba(244,239,230,.04); border: 1px solid var(--line-dark); border-left: 4px solid var(--c); transition: transform .3s var(--ease), background .3s, border-color .3s; }
.level:hover { transform: translateY(-4px); background: rgba(244,239,230,.07); }
.level__num { width: 64px; height: 64px; border-radius: 50%; background: var(--c); color: var(--navy-950); font-family: var(--font-display); font-weight: 800; font-size: 1.9rem; display: grid; place-items: center; box-shadow: 0 10px 25px -10px var(--c); }
.level__body { display: grid; gap: .3rem; }
.level__title { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .05em; color: var(--c); line-height: 1.25; }
.level__desc { font-size: .9rem; color: var(--on-dark-soft); line-height: 1.5; }
.level--1 { --c: var(--lv1); } .level--2 { --c: var(--lv2); } .level--3 { --c: var(--lv3); } .level--4 { --c: var(--lv4); } .level--5 { --c: var(--lv5); }
.level--x { --c: var(--lvx); border-style: dashed; }
.level--x .level__num { background: transparent; border: 2px solid var(--c); color: var(--c); box-shadow: none; }
@media (max-width: 480px) { .level { grid-template-columns: 52px 1fr; gap: .9rem; padding: 1.1rem 1rem 1.1rem .9rem; } .level__num { width: 52px; height: 52px; font-size: 1.5rem; } }

/* Iconos en el bloque de autoridad */
.authority__k { display: flex; align-items: center; gap: .55rem; }
.authority__gico { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: rgba(212,175,55,.12); border: 1px solid rgba(212,175,55,.35); color: var(--gold-400); flex: none; }
.authority__gico svg { width: 17px; height: 17px; }
.authority__stat { display: grid; grid-template-columns: 44px auto 1fr; align-items: center; gap: .9rem; }
.authority__ico { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(160deg, rgba(212,175,55,.22), rgba(212,175,55,.05)); border: 1px solid rgba(212,175,55,.4); color: var(--gold-300); flex: none; }
.authority__ico svg { width: 22px; height: 22px; }
.authority__num { min-width: 0; }
.authority__laurel svg { width: 34px; height: 34px; }
@media (max-width: 480px) { .authority__stat { grid-template-columns: 38px auto 1fr; gap: .7rem; } .authority__ico { width: 38px; height: 38px; } .authority__ico svg { width: 19px; height: 19px; } }

/* Niveles 4 y 5: bloques apilados con acordeón */
.lvl-block { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--line-dark); }
.lvl-block .nivel-label { font-size: clamp(1.3rem, 2.6vw, 1.8rem); margin-bottom: .6rem; }
.lvl-intro { color: var(--on-dark-soft); max-width: 64ch; margin: 0 0 1.4rem; }
.acc { display: grid; gap: .6rem; }
@media (min-width: 900px) { .acc--5 { grid-template-columns: 1fr 1fr; gap: .6rem 1rem; } }
.acc__item { --c: var(--gold-400); border: 1px solid var(--line-dark); border-left: 4px solid var(--c); border-radius: var(--radius-lg); background: rgba(244,239,230,.03); overflow: hidden; }
.acc--4 .acc__item { --c: var(--lv4); } .acc--5 .acc__item { --c: var(--lv5); }
.acc__item summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "t plus" "m plus"; gap: .1rem 1rem; align-items: center; padding: 1.05rem 1.2rem; }
.acc__item summary::-webkit-details-marker { display: none; }
.acc__t { grid-area: t; font-family: var(--font-display); font-weight: 600; font-size: 1.05rem; color: var(--on-dark); line-height: 1.25; }
.acc__m { grid-area: m; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c); font-weight: 600; }
.acc__plus { grid-area: plus; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--c); position: relative; flex: none; transition: transform .3s var(--ease), background .3s; }
.acc__plus::before, .acc__plus::after { content: ''; position: absolute; background: var(--c); left: 50%; top: 50%; transform: translate(-50%, -50%); }
.acc__plus::before { width: 12px; height: 2px; } .acc__plus::after { width: 2px; height: 12px; }
.acc__item[open] .acc__plus { transform: rotate(45deg); background: rgba(244,239,230,.06); }
.acc__item[open] summary { background: rgba(244,239,230,.04); }
.acc__body { padding: .2rem 1.2rem 1.3rem; display: grid; gap: 1rem; }
.acc__cols { display: grid; gap: .9rem; }
@media (min-width: 700px) { .acc__cols { grid-template-columns: 1fr 1fr; gap: 1.2rem; } }
.acc__cols div { font-size: .92rem; color: var(--on-dark-soft); line-height: 1.55; }
.acc__cols b { display: block; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--c); margin-bottom: .3rem; }
.acc__body .btn { justify-self: start; }
.consult, .prog-list, .programs { display: none; }
.acc--5 { align-items: start; }


/* Países con banderas */
.countries { margin-top: 3.5rem; padding: 2.2rem 2.4rem; border: 1px solid var(--line-dark); border-radius: var(--radius-lg); background: rgba(244,239,230,.03); display: grid; gap: 1.6rem; }
@media (min-width: 1000px) { .countries { grid-template-columns: 1fr 1.6fr; align-items: center; gap: 2.5rem; } }
.countries__head .eyebrow { margin-bottom: .6rem; }
.countries__head h3 { font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.countries__head h3 em { font-style: normal; color: var(--gold-400); font-weight: 500; }
.countries__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; }
@media (min-width: 560px) { .countries__list { grid-template-columns: repeat(3, 1fr); } }
.countries__list li { display: flex; align-items: center; gap: .7rem; padding: .7rem .85rem; border: 1px solid var(--line-dark); border-radius: var(--radius); background: rgba(6,12,29,.5); font-size: .88rem; font-weight: 500; color: var(--on-dark); min-width: 0; }
.countries__list img { width: 34px; height: auto; border-radius: 3px; box-shadow: 0 2px 8px rgba(0,0,0,.5); flex: none; }
.countries__list span { line-height: 1.25; }
img[src$="c-equipos-vibran.jpg"] { object-position: center 40%; }
img[src$="c-taller-empresa.jpg"] { object-position: center 45%; }
img[src$="c-universidad.jpg"] { object-position: center 40%; }
