:root {
  --bg: #080C15;
  --bg-alt: #0B1120;
  --accent: #22D3EE;
  --accent-2: #3FA9FF;
  --accent-3: #9B5FD0;
  --text: #fff;
  --text-dim: rgba(255,255,255,0.55);
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
button, input, select, textarea { font-family: inherit; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { background: var(--bg); color: var(--text); -webkit-font-smoothing: antialiased; font-family: 'Sora', sans-serif; }
::selection { background: rgba(34,211,238,0.3); color: #fff; }
input::placeholder, textarea::placeholder { color: rgba(255,255,255,0.5); }
select option { background: #0E1524; color: #fff; }

/* ── Cabecera de sección (eyebrow + título) ── */
.eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.eyebrow--center { justify-content: center; margin-bottom: 22px; }
.eyebrow-line { width: 32px; height: 1px; background: var(--accent); }
.eyebrow-text { font-family: Sora, sans-serif; font-weight: 500; font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); }
.section-title { font-family: Sora, sans-serif; font-weight: 700; font-size: clamp(28px, 4vw, 48px); color: var(--text); line-height: 1.15; letter-spacing: -0.02em; }
.benefits-scroll::-webkit-scrollbar { display: none; }
@keyframes orbit1 { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(28vw,8vh) scale(1.25); } 50% { transform: translate(18vw,28vh) scale(0.95); } 75% { transform: translate(-8vw,14vh) scale(1.15); } 100% { transform: translate(0,0) scale(1); } }
@keyframes orbit2 { 0% { transform: translate(0,0) scale(1.1); } 25% { transform: translate(-22vw,-12vh) scale(0.9); } 50% { transform: translate(-30vw,10vh) scale(1.3); } 75% { transform: translate(-10vw,22vh) scale(1.05); } 100% { transform: translate(0,0) scale(1.1); } }
@keyframes orbit3 { 0% { transform: translate(0,0) scale(0.9); } 25% { transform: translate(16vw,-18vh) scale(1.2); } 50% { transform: translate(-14vw,-8vh) scale(1); } 75% { transform: translate(12vw,12vh) scale(1.3); } 100% { transform: translate(0,0) scale(0.9); } }
@keyframes orbit4 { 0% { transform: translate(0,0) scale(1.2); } 33% { transform: translate(-18vw,16vh) scale(0.95); } 66% { transform: translate(14vw,-14vh) scale(1.25); } 100% { transform: translate(0,0) scale(1.2); } }
@keyframes orbit5 { 0% { transform: translate(0,0) scale(1); } 30% { transform: translate(20vw,18vh) scale(1.3); } 60% { transform: translate(8vw,-20vh) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes hueA { 0% { filter: blur(90px) hue-rotate(0deg); } 100% { filter: blur(90px) hue-rotate(360deg); } }
@keyframes hueB { 0% { filter: blur(100px) hue-rotate(0deg); } 100% { filter: blur(100px) hue-rotate(-360deg); } }
@keyframes hueC { 0% { filter: blur(110px) hue-rotate(0deg); } 100% { filter: blur(110px) hue-rotate(360deg); } }
@keyframes breathe { 0%,100% { opacity:0.55; } 50% { opacity:0.85; } }
@keyframes blobMorph { 0%,100% { border-radius:58% 42% 55% 45% / 55% 48% 52% 45%; } 25% { border-radius:45% 55% 48% 52% / 60% 40% 58% 42%; } 50% { border-radius:52% 48% 42% 58% / 45% 58% 42% 55%; } 75% { border-radius:48% 52% 58% 42% / 52% 45% 55% 48%; } }
@keyframes phase1 { 0% { opacity:0; } 3% { opacity:0.9; } 30% { opacity:0.9; } 33.33% { opacity:0; } 100% { opacity:0; } }
@keyframes phase2 { 0% { opacity:0; } 33.33% { opacity:0; } 36.5% { opacity:0.9; } 63% { opacity:0.9; } 66.66% { opacity:0; } 100% { opacity:0; } }
@keyframes phase3 { 0% { opacity:0; } 66.66% { opacity:0; } 70% { opacity:0.9; } 96% { opacity:0.9; } 100% { opacity:0; } }
@keyframes pulse { 0%,100% { opacity: 0.25; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.08); } }
@keyframes lungBreathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.035); } }
@keyframes nodePulse { 0%,100% { opacity:0.3; r:2.5; } 50% { opacity:1; r:4; } }
@keyframes airFlow { to { stroke-dashoffset: -200; } }
@keyframes haloDrift { 0%,100% { opacity:0.5; transform:scale(1); } 50% { opacity:0.85; transform:scale(1.08); } }
@keyframes letterIn { 0% { opacity:0; transform:translateY(0.4em); filter:blur(12px); } 65% { filter:blur(0); } 100% { opacity:1; transform:translateY(0); filter:blur(0); } }
@keyframes titleBreathe { 0%,100% { transform:scale(1); text-shadow:0 0 0 rgba(34,211,238,0); } 50% { transform:scale(1.04); text-shadow:0 0 42px rgba(34,211,238,0.28); } }
@keyframes ecgScan { to { stroke-dashoffset:-500; } }
@keyframes ecgPulse { 0% { stroke-dashoffset:110; } 55% { stroke-dashoffset:-1320; } 100% { stroke-dashoffset:-1320; } }
@keyframes titleBreatheMobile { 0%,100% { transform:scaleY(1); text-shadow:0 0 0 rgba(34,211,238,0); } 50% { transform:scaleY(1.05); text-shadow:0 0 42px rgba(34,211,238,0.28); } }
@keyframes lungBreatheMobile { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.04); } }
.expert-card:hover { border-color: color-mix(in srgb, var(--eg, #22D3EE) 45%, transparent) !important; transform: translateY(-6px); box-shadow: 0 24px 48px rgba(0,0,0,0.45), 0 0 0 1px color-mix(in srgb, var(--eg, #22D3EE) 18%, transparent); }
@keyframes dotGlow { 0%,100% { box-shadow: 0 0 0 6px #080C15, 0 0 14px rgba(34,211,238,0.3); } 50% { box-shadow: 0 0 0 6px #080C15, 0 0 30px rgba(34,211,238,0.6); } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
/* ── Hover universal: realza sin fijar un color, compatible con botones que JS gestiona dinámicamente ── */
.btn-hover { transition: filter 0.25s ease, transform 0.2s ease; }
.btn-hover:hover { filter: brightness(1.18); transform: translateY(-1px); }
.btn-hover:active { transform: translateY(0); filter: brightness(1.05); }

/* ── Cards con borde/realce al pasar el ratón ── */
.benefit-card:hover { border-color: rgba(34,211,238,0.25) !important; transform: translateY(-6px); box-shadow: 0 20px 40px rgba(0,0,0,0.35); }
.day-card:hover { border-color: rgba(255,255,255,0.1) !important; }
.day-card--cyan:hover { border-color: rgba(34,211,238,0.2) !important; }

/* ── Enlaces de pie de página ── */
.footer-link:hover { color: rgba(255,255,255,0.9) !important; }
.footer-link-accent:hover { opacity: 0.75; }

/* ── Acordeón FAQ ── */
.faq-toggle:hover { background: rgba(255,255,255,0.03); }

.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; bottom: -3px; left: 50%; right: 50%; height: 1px; background: #22D3EE; transition: left 0.35s cubic-bezier(.22,1,.36,1), right 0.35s cubic-bezier(.22,1,.36,1); }
.nav-link:hover { color: #22D3EE !important; text-shadow: 0 0 18px rgba(34,211,238,0.35); }
.nav-link:hover::after { left: 0; right: 0; }
.nav-link.active { color: #22D3EE !important; }
.nav-link.active::after { left: 0; right: 0; }
.about-title { font-family: Sora, sans-serif; font-weight: 800; font-size: clamp(40px,4vw,54px); line-height: 1; letter-spacing: -0.02em; margin-bottom: 20px; color: #fff; min-height: 1em; }
.about-title .caret { display: inline-block; width: 3px; height: 0.82em; background: #22D3EE; margin-left: 6px; vertical-align: -0.06em; animation: caretBlink 0.9s steps(1,end) infinite; }
@keyframes caretBlink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0; } }
.reto-title { min-height: 1.2em; }
@keyframes beamSweep { 0% { transform: translateX(-280px); opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { transform: translateX(100vw); opacity: 0; } }
#back-to-top { position: fixed; right: 28px; bottom: 28px; width: 50px; height: 50px; border-radius: 50%; background: rgba(34,211,238,0.12); border: 1px solid rgba(34,211,238,0.35); color: #22D3EE; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 200; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .4s, transform .4s, background .3s, box-shadow .3s, color .3s; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
#back-to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
#back-to-top:hover { background: #22D3EE; color: #080C15; box-shadow: 0 8px 28px rgba(34,211,238,0.4); }
.method-step { opacity: 0.3; transition: opacity .55s ease; }
.method-step.active { opacity: 1; }
.method-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); filter: grayscale(1) contrast(1.02) brightness(0.62); transition: opacity .7s cubic-bezier(.2,1,.3,1), transform 1s cubic-bezier(.2,1,.3,1); }
.method-photo.active { opacity: 1; transform: scale(1); }
.neon-icon { color: #22D3EE; line-height: 1; filter: drop-shadow(0 0 7px rgba(34,211,238,0.75)) drop-shadow(0 0 16px rgba(34,211,238,0.45)); }
/* Form focus styles */
.fs-input:focus { border-color: rgba(34,211,238,0.4) !important; }
/* Honeypot */
.fs-hp { position: absolute; left: -9999px; }

/* ═══════════ Componentes extraídos de estilos inline (valores 1:1, no alterar sin revisar las vistas) ═══════════ */
/* Utilidades */
.pos-rel { position: relative; }
.mb-64 { margin-bottom: 64px; }
.pt-2 { padding-top: 2px; }
.wrap-11 { max-width: 1100px; margin: 0 auto; }
.t13-dim { font-size: 13px; color: rgba(255,255,255,0.55); }
/* Nav */
.nav-link { color: rgba(255,255,255,0.6); text-decoration: none; transition: color 0.3s, text-shadow 0.3s; }
.nav-logo { height: 24px; width: auto; opacity: 0.6; }
.nav-sep { width: 1px; height: 20px; background: rgba(255,255,255,0.15); }
/* Sobre */
.about-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: 16px; padding: 32px; transition: all 0.4s; }
.neon-icon { font-size: 48px; display: block; margin-bottom: 22px; }
/* Stats */
.stat-cell { padding: 56px 24px; text-align: center; border-right: 1px solid rgba(255,255,255,0.06); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.stat-ico { color: #22D3EE; font-size: 22px; margin-bottom: 4px; }
.m-bignum { font-weight: 800; font-size: 68px; color: #fff; line-height: 1; display: block; }
.stat-label { font-size: 14px; font-weight: 500; color: rgba(255,255,255,0.55); }
/* Countdown */
.cd-cell { text-align: center; min-width: 54px; }
.cd-num { display: block; font-weight: 800; font-size: 34px; line-height: 1; color: #22D3EE; font-variant-numeric: tabular-nums; }
.cd-label { display: block; margin-top: 7px; font-size: 10px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.cd-sep { font-weight: 800; font-size: 30px; line-height: 1; color: rgba(34,211,238,0.3); }
/* Retos */
.reto-card-grid { display: grid; grid-template-columns: 1fr; background: #0E1524; border: 1px solid rgba(255,255,255,0.06); border-radius: 24px; overflow: hidden; }
.reto-pane { padding: 56px 64px; display: flex; flex-direction: column; justify-content: center; position: relative; }
.reto-body { position: relative; z-index: 1; }
.reto-kicker { display: block; font-weight: 600; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: #22D3EE; margin-bottom: 14px; }
/* Color sutil por reto: borde, degradado de esquina y antetítulo */
.reto-c1 { border-color: rgba(34,211,238,0.18); background: radial-gradient(ellipse 520px 360px at 0% 0%, rgba(34,211,238,0.12), transparent 60%), #0E1524; }
.reto-c2 { border-color: rgba(63,169,255,0.2); background: radial-gradient(ellipse 520px 360px at 0% 0%, rgba(63,169,255,0.14), transparent 60%), #0E1524; }
.reto-c2 .reto-kicker { color: #3FA9FF; }
.reto-c3 { border-color: rgba(155,95,208,0.22); background: radial-gradient(ellipse 520px 360px at 0% 0%, rgba(155,95,208,0.16), transparent 60%), #0E1524; }
.reto-c3 .reto-kicker { color: #9B5FD0; }
.reto-c4 { border-color: rgba(45,212,168,0.2); background: radial-gradient(ellipse 520px 360px at 0% 0%, rgba(45,212,168,0.14), transparent 60%), #0E1524; }
.reto-c4 .reto-kicker { color: #2DD4A8; }
.reto-title { font-weight: 700; font-size: 28px; color: #fff; margin-bottom: 20px; letter-spacing: -0.01em; }
.reto-qa { margin-bottom: 18px; }
.reto-qa:last-of-type { margin-bottom: 0; }
.reto-q {
    font-size: 14px;
    font-weight: 600;
    color: rgba(255,255,255,0.85);
    margin-bottom: 6px;
    margin-top: 12px;
}
.reto-desc { font-size: 14px; color: rgba(255,255,255,0.55); line-height: 1.75; font-weight: 300; }
.reto-contact { font-size: 13px; color: rgba(255,255,255,0.55); line-height: 1.6; text-align: center; max-width: 640px; margin: 10px auto 0; }
.reto-contact a { color: #22D3EE; }
/* Acordeón de retos: inactivo en escritorio, se activa en la media query móvil */
.reto-acc { display: none; }
/* Beneficios */
.benefit-card { position: relative; overflow: hidden; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.06); border-radius: 24px; padding: 48px 36px; transition: all 0.45s; display: flex; flex-direction: column; height: 100%; }
.benefit-inner { position: relative; z-index: 1; display: flex; flex-direction: column; height: 100%; }
.benefit-ico { width: 58px; height: 58px; background: rgba(34,211,238,0.1); border-radius: 16px; display: flex; align-items: center; justify-content: center; margin-bottom: 30px; }
.benefit-ico i { color: #22D3EE; font-size: 32px; }
.benefit-title { font-weight: 700; font-size: 22px; color: #fff; margin-bottom: 16px; }
.benefit-text { font-size: 17px; color: rgba(255,255,255,0.55); line-height: 1.75; font-weight: 300; }
/* Metodología */
.method-step { position: relative; display: flex; gap: 28px; padding-bottom: 48px; }
.step-ico { color: #22D3EE; font-size: 17px; }
.step-kicker { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.step-title { font-weight: 700; font-size: 22px; color: #fff; margin: 6px 0 10px; letter-spacing: -0.01em; }
.step-text { font-size: 17px; color: rgba(255,255,255,0.5); line-height: 1.7; font-weight: 300; max-width: 600px; }
/* Expertos */
.expert-group { margin-bottom: 48px; }
.expert-group:last-child { margin-bottom: 0; }
.expert-group-kicker { display: flex; align-items: center; gap: 9px; font-weight: 600; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--eg, #22D3EE); margin-bottom: 20px; }
.expert-group-kicker::before { content: ''; width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--eg, #22D3EE); box-shadow: 0 0 10px var(--eg, #22D3EE); }
.expert-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.05); border-radius: 18px; padding: 32px 28px; display: flex; flex-direction: column; align-items: flex-start; height: 100%; transition: transform 0.45s cubic-bezier(.2,1,.3,1), border-color 0.4s ease, box-shadow 0.4s ease; }
.expert-avatar { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: Sora, sans-serif; font-weight: 700; font-size: 18px; color: var(--eg, #22D3EE); background: color-mix(in srgb, var(--eg, #22D3EE) 14%, transparent); border: 1px solid color-mix(in srgb, var(--eg, #22D3EE) 35%, transparent); margin-bottom: 20px; flex: none; }
.expert-name { font-weight: 700; font-size: 19px; line-height: 1.3; color: #fff; margin-bottom: 22px; letter-spacing: -0.01em; }
.expert-bio-btn { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-family: Sora, sans-serif; font-weight: 600; font-size: 13px; color: var(--eg, #22D3EE); background: color-mix(in srgb, var(--eg, #22D3EE) 10%, transparent); border: 1px solid color-mix(in srgb, var(--eg, #22D3EE) 30%, transparent); padding: 10px 18px; border-radius: 10px; cursor: pointer; transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease; }
.expert-bio-btn i { font-size: 11px; transition: transform 0.3s ease; }
.expert-bio-btn:hover { background: color-mix(in srgb, var(--eg, #22D3EE) 20%, transparent); border-color: color-mix(in srgb, var(--eg, #22D3EE) 55%, transparent); }
.expert-bio-btn:hover i { transform: translateX(3px); }
/* Modal de bio de mentores */
.expert-modal { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; padding: 24px; }
.expert-modal[hidden] { display: none; }
.expert-modal-backdrop { position: absolute; inset: 0; background: rgba(6,10,18,0.75); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); opacity: 0; transition: opacity 0.35s ease; }
.expert-modal.show .expert-modal-backdrop { opacity: 1; }
.expert-modal-panel { position: relative; z-index: 1; width: 100%; max-width: 560px; max-height: 82vh; overflow: hidden; background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, #0B1120 60%); border: 1px solid color-mix(in srgb, var(--eg, #22D3EE) 30%, rgba(255,255,255,0.08)); border-radius: 22px; box-shadow: 0 30px 80px rgba(0,0,0,0.6), 0 0 0 1px color-mix(in srgb, var(--eg, #22D3EE) 14%, transparent); transform: translateY(16px) scale(0.97); opacity: 0; transition: transform 0.4s cubic-bezier(.22,1,.36,1), opacity 0.35s ease; display: flex; flex-direction: column; }
.expert-modal.show .expert-modal-panel { transform: translateY(0) scale(1); opacity: 1; }
.expert-modal-body { overflow-y: auto; padding: 44px 40px; }
.expert-modal-close { position: absolute; top: 18px; right: 18px; z-index: 2; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.1); background: rgba(8,12,21,0.6); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: rgba(255,255,255,0.6); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease; }
.expert-modal-close:hover { background: color-mix(in srgb, var(--eg, #22D3EE) 16%, transparent); color: var(--eg, #22D3EE); border-color: color-mix(in srgb, var(--eg, #22D3EE) 40%, transparent); }
.expert-modal-avatar { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: Sora, sans-serif; font-weight: 700; font-size: 18px; color: var(--eg, #22D3EE); background: color-mix(in srgb, var(--eg, #22D3EE) 14%, transparent); border: 1px solid color-mix(in srgb, var(--eg, #22D3EE) 35%, transparent); margin-bottom: 20px; }
.expert-modal-name { font-size: 23px; font-weight: 700; color: #fff; margin-bottom: 18px; letter-spacing: -0.01em; }
.expert-modal-bio { font-size: 14.5px; line-height: 1.75; color: rgba(255,255,255,0.65); }
/* Programa / agenda */
.day-tag { display: inline-flex; align-items: center; gap: 8px; background: rgba(0,56,118,0.2); border: 1px solid rgba(0,56,118,0.3); padding: 6px 16px; border-radius: 8px; font-weight: 600; font-size: 13px; color: rgba(255,255,255,0.8); margin-bottom: 28px; }

.agenda-list { display: flex; flex-direction: column; gap: 18px; }
.agenda-row { display: flex; gap: 16px; align-items: center; }
.agenda-row--top { display: flex; gap: 16px; align-items: flex-start; }
.agenda-time { font-weight: 600; font-size: 12px; color: rgba(255,255,255,0.55); min-width: 52px; flex-shrink: 0; }
.agenda-time--top { font-weight: 600; font-size: 12px; color: rgba(255,255,255,0.55); min-width: 52px; flex-shrink: 0; padding-top: 1px; }
.agenda-time--dim { font-weight: 600; font-size: 12px; color: rgba(255,255,255,0.55); min-width: 52px; flex-shrink: 0; }
.agenda-item { font-size: 13px; color: rgba(255,255,255,0.55); display: block; }
.agenda-list .t13-dim { color: rgba(255,255,255,0.92); }
.agenda-note { font-size: 11px; color: rgba(255,255,255,0.55); display: block; margin-top: 4px; line-height: 1.5; }
.agenda-strong { font-size: 13px; color: #fff; font-weight: 400; }
/* FAQ */
.faq-item { border-bottom: 1px solid rgba(255,255,255,0.07); }
.faq-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 8px; background: transparent; border: none; cursor: pointer; text-align: left; }
.faq-q { font-size: 17px; font-weight: 600; color: #fff; }
.faq-icon { color: #22D3EE; font-size: 15px; flex: none; transition: transform 0.4s cubic-bezier(.2,1,.3,1); }
.faq-panel { overflow: hidden; max-height: 0; transition: max-height 0.45s cubic-bezier(.2,1,.3,1); }
.faq-a { font-size: 17px; color: rgba(255,255,255,0.5); line-height: 1.7; font-weight: 300; padding: 10px 8px 26px; max-width: 680px; }
.faq-a a { color: #22D3EE; }
/* Formularios */
.field-label { font-size: 12px; font-weight: 500; color: rgba(255,255,255,0.55); display: block; margin-bottom: 8px; }
.in-lg { width: 100%; padding: 14px 18px; border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; background: rgba(255,255,255,0.03); color: #fff; font-size: 14px; outline: none; transition: border-color 0.3s; }
.member-tag { font-size: 11px; font-weight: 600; color: #22D3EE; letter-spacing: 0.1em; text-transform: uppercase; display: block; margin-bottom: 14px; }
.member-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.in-sm { width: 100%; padding: 12px 16px; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; background: rgba(255,255,255,0.03); color: #fff; font-size: 13px; outline: none; transition: border-color 0.3s; }
.sel-sm { width: 100%; padding: 12px 38px 12px 16px; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; background: rgba(255,255,255,0.03); color: rgba(255,255,255,0.55); font-size: 13px; outline: none; appearance: none; transition: border-color 0.3s; }
.ta-sm { width: 100%; padding: 12px 16px; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; background: rgba(255,255,255,0.03); color: #fff; font-size: 13px; outline: none; resize: vertical; transition: border-color 0.3s; }
.caret-sm { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: rgba(255,255,255,0.55); font-size: 13px; pointer-events: none; }
/* Organizadores / footer */
.org-logo { height: 45px; width: auto; opacity: 0.7; }
.org-sep { width: 1px; height: 32px; background: rgba(255,255,255,0.08); }
.footer-link { font-size: 12px; color: rgba(255,255,255,0.55); text-decoration: underline; transition: color 0.3s; }

/* ═══════════ Fase 2: estructura, hero y familias paramétricas (valores 1:1) ═══════════ */
/* Overlay de grano */
.grain { position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: 0.05; mix-blend-mode: overlay; background-image: url('data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%22120%22 height=%22120%22><filter id=%22n%22><feTurbulence type=%22fractalNoise%22 baseFrequency=%220.85%22 numOctaves=%222%22 stitchTiles=%22stitch%22/></filter><rect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22/></svg>'); }
/* Nav (la LegalPage conserva su variante sólida inline) */
#main-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: 72px; display: flex; align-items: center; padding: 0 48px; transition: all 0.5s cubic-bezier(.22,1,.36,1); background: transparent; }
.brand { display: flex; align-items: center; gap: 16px; flex-shrink: 0; text-decoration: none; }
.nav-menu { display: flex; align-items: center; gap: 24px; margin-left: auto; font-size: 13px; font-weight: 500; }
.nav-logo--lg { height: 26px; width: auto; opacity: 0.6; }
.nav-insc-btn { display: inline-flex; align-items: center; gap: 8px; background: rgba(34,211,238,0.15); border: 1px solid rgba(34,211,238,0.3); color: #22D3EE; text-decoration: none; padding: 9px 22px; border-radius: 8px; font-weight: 600; font-size: 13px; transition: all 0.3s; }
/* Secciones */
#inicio { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; background: #080C15; overflow: hidden; }
#sobre { padding: 120px 48px 0; background: #0B1120; }
#retos { padding: 120px 48px 120px; background: #080C15; }
#beneficios { padding: 120px 48px; background: #0B1120; position: relative; }
#metodologia { padding: 120px 48px; background: #080C15; position: relative; }
#expertos { padding: 120px 48px; background: #0B1120; border-top: 1px solid rgba(255,255,255,0.04); }
#programa { padding: 120px 48px; background: #0B1120; position: relative; overflow: hidden; }
#faq { padding: 120px 48px; background: #0B1120; }
#inscripcion { padding: 120px 48px; background: #0B1120; position: relative; overflow: hidden; }
.sec-orgs { padding: 72px 48px; background: #0B1120; border-top: 1px solid rgba(255,255,255,0.04); }
/* Contenedores */
.wrap-12 { max-width: 1200px; margin: 0 auto; }
.wrap-86 { max-width: 860px; margin: 0 auto; }
.wrap-68 { max-width: 680px; margin: 0 auto; position: relative; z-index: 1; }
.wrap-11-z { max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }
.wrap-14-z { max-width: 1400px; margin: 0 auto; position: relative; z-index: 1; }
.mb-72 { margin-bottom: 72px; }
/* Hero: blobs */
.hero-blob--1 { position: absolute; top: 2%; left: -6%; width: 640px; height: 640px; mix-blend-mode: screen; animation: orbit1 30s ease-in-out infinite; pointer-events: none; }
.hero-blob--2 { position: absolute; bottom: -14%; right: -8%; width: 760px; height: 760px; mix-blend-mode: screen; animation: orbit2 36s ease-in-out infinite; pointer-events: none; }
.hero-blob--3 { position: absolute; top: 34%; left: 30%; width: 520px; height: 520px; mix-blend-mode: screen; animation: orbit3 28s ease-in-out infinite; pointer-events: none; }
.hero-blob--4 { position: absolute; top: -10%; right: 16%; width: 600px; height: 600px; mix-blend-mode: screen; animation: orbit4 34s ease-in-out infinite; pointer-events: none; }
.hero-blob--5 { position: absolute; bottom: 6%; left: 10%; width: 540px; height: 540px; mix-blend-mode: screen; animation: orbit5 32s ease-in-out infinite; pointer-events: none; }
.hero-blob--6 { position: absolute; top: 26%; right: -8%; width: 520px; height: 520px; mix-blend-mode: screen; animation: orbit3 38s ease-in-out infinite; pointer-events: none; }
.hero-core { width: 100%; height: 100%; border-radius: 50%; }
.hero-core--1 { background: radial-gradient(circle at 50% 50%, rgba(40,110,255,0.5) 0%, rgba(40,110,255,0.14) 55%, transparent 80%); filter: blur(72px); animation: blobMorph 18s ease-in-out infinite, phase1 21s ease-in-out infinite; }
.hero-core--2 { background: radial-gradient(circle at 50% 50%, rgba(255,90,190,0.46) 0%, rgba(255,90,190,0.12) 55%, transparent 80%); filter: blur(80px); animation: blobMorph 22s ease-in-out 2s infinite, phase2 21s ease-in-out infinite; }
.hero-core--3 { background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.34) 0%, rgba(255,255,255,0.08) 50%, transparent 78%); filter: blur(70px); animation: blobMorph 20s ease-in-out 1s infinite, phase3 21s ease-in-out infinite; }
.hero-core--4 { background: radial-gradient(circle at 50% 50%, rgba(50,120,255,0.42) 0%, rgba(50,120,255,0.1) 55%, transparent 80%); filter: blur(78px); animation: blobMorph 24s ease-in-out 3s infinite, phase1 21s ease-in-out infinite; }
.hero-core--5 { background: radial-gradient(circle at 50% 50%, rgba(255,110,200,0.4) 0%, rgba(255,110,200,0.1) 55%, transparent 80%); filter: blur(76px); animation: blobMorph 19s ease-in-out infinite, phase2 21s ease-in-out infinite; }
.hero-core--6 { background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.26) 0%, rgba(255,255,255,0.06) 50%, transparent 76%); filter: blur(82px); animation: blobMorph 21s ease-in-out 2s infinite, phase3 21s ease-in-out infinite; }
/* Hero: vídeo, contenido y título */
.hero-video-wrap { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 75vw; max-width: 1100px; aspect-ratio: 16/9; -webkit-mask-image: radial-gradient(ellipse 85% 85% at center, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 50%, transparent 75%); mask-image: radial-gradient(ellipse 85% 85% at center, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 50%, transparent 75%); pointer-events: none; }
#hero-video { width: 100%; height: 100%; object-fit: cover; opacity: 0.6; }
.hero-dots { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px); background-size: 40px 40px; pointer-events: none; opacity: 0.5; }
.hero-content { position: relative; z-index: 2; text-align: center; padding: 0 48px; max-width: 900px; }
.hero-date-badge { display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(34,211,238,0.2); border-radius: 100px; padding: 8px 24px; margin-bottom: 40px; font-size: 12px; font-weight: 500; color: rgba(34,211,238,0.8); letter-spacing: 0.08em; text-transform: uppercase; background: rgba(34,211,238,0.05); }
.programa-location-badge { display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(34,211,238,0.2); border-radius: 100px; padding: 8px 24px; margin-top: 20px; font-size: 12px; font-weight: 500; color: rgba(34,211,238,0.8); letter-spacing: 0.08em; text-transform: uppercase; background: rgba(34,211,238,0.05); }
#hero-title { font-weight: 800; font-size: clamp(48px,8vw,96px); line-height: 0.95; color: #fff; letter-spacing: -0.03em; text-transform: uppercase; margin-bottom: 20px; animation: titleBreathe 6s ease-in-out 2s infinite; }
.hero-word { display: block; }
.hero-word span { display: inline-block; animation: letterIn .95s cubic-bezier(.2,1,.3,1) both; }
.hero-word:nth-of-type(1) span:nth-child(1) { animation-delay: .25s; }
.hero-word:nth-of-type(1) span:nth-child(2) { animation-delay: .29s; }
.hero-word:nth-of-type(1) span:nth-child(3) { animation-delay: .33s; }
.hero-word:nth-of-type(1) span:nth-child(4) { animation-delay: .37s; }
.hero-word:nth-of-type(1) span:nth-child(5) { animation-delay: .41s; }
.hero-word:nth-of-type(1) span:nth-child(6) { animation-delay: .45s; }
.hero-word:nth-of-type(1) span:nth-child(7) { animation-delay: .49s; }
.hero-word:nth-of-type(2) span:nth-child(1) { animation-delay: .57s; }
.hero-word:nth-of-type(2) span:nth-child(2) { animation-delay: .61s; }
.hero-word:nth-of-type(2) span:nth-child(3) { animation-delay: .65s; }
.hero-word:nth-of-type(2) span:nth-child(4) { animation-delay: .69s; }
.hero-word:nth-of-type(2) span:nth-child(5) { animation-delay: .73s; }
.hero-word:nth-of-type(2) span:nth-child(6) { animation-delay: .77s; }
.hero-word:nth-of-type(2) span:nth-child(7) { animation-delay: .81s; }
.hero-word:nth-of-type(2) span:nth-child(8) { animation-delay: .85s; }
.hero-sub { font-size: clamp(16px,1.8vw,22px); color: rgba(255,255,255,0.5); line-height: 1.6; font-weight: 300; margin-bottom: 48px; max-width: 560px; margin-left: auto; margin-right: auto; }
.hero-ctas { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.cta-solid { display: inline-flex; align-items: center; gap: 10px; background: #22D3EE; color: #080C15; font-weight: 700; font-size: 15px; padding: 16px 36px; border-radius: 10px; text-decoration: none; letter-spacing: 0.01em; transition: all 0.3s; }
.cta-solid i { font-size: 13px; }
.cta-ghost { display: inline-flex; align-items: center; gap: 10px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.7); font-weight: 500; font-size: 15px; padding: 16px 36px; border-radius: 10px; text-decoration: none; transition: all 0.3s; }
.hero-scroll { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; color: rgba(255,255,255,0.55); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.hero-scroll div { width: 1px; height: 24px; background: linear-gradient(to bottom, rgba(255,255,255,0.2), transparent); }
/* Sobre */
.sobre-head { text-align: center; max-width: 860px; margin: 0 auto 52px; }
.sobre-title { font-weight: 700; font-size: clamp(34px,5vw,60px); color: #fff; line-height: 1.12; letter-spacing: -0.02em; }
.sobre-lead { font-size: 17px; line-height: 1.8; color: rgba(255,255,255,0.55); font-weight: 300; margin: 28px auto 0; }
.sobre-lead strong { color: #fff; font-weight: 600; }
.closure-banner { text-align: left; background: rgba(34,211,238,0.08); border: 1px solid rgba(34,211,238,0.25); border-radius: 16px; padding: 28px 32px; margin: 0 auto 40px; max-width: 720px; }
.closure-banner-title { font-family: Sora, sans-serif; font-weight: 700; font-size: 18px; color: #22D3EE; margin-bottom: 12px; }
.closure-banner p:not(.closure-banner-title) { font-size: 15px; line-height: 1.7; color: rgba(255,255,255,0.7); margin-bottom: 10px; }
.closure-banner p:last-child { margin-bottom: 0; }
.orgs-head { text-align: center; margin-bottom: 44px; }
.orgs-row { display: flex; align-items: center; justify-content: center; gap: 36px; margin-top: 22px; flex-wrap: wrap; }
.org-logo--ciber { height: 38px; width: auto; opacity: 0.75; }
.org-logo--az { height: 30px; width: auto; opacity: 0.75; }
.orgs-sep { width: 1px; height: 30px; background: rgba(255,255,255,0.12); }
.lung-wrap { position: relative; display: flex; align-items: center; justify-content: center; margin-bottom: 52px; }
.lung-halo { position: absolute; width: 360px; height: 360px; background: radial-gradient(circle, rgba(0,150,255,0.18) 0%, rgba(123,47,190,0.08) 45%, transparent 70%); filter: blur(22px); animation: haloDrift 7s ease-in-out infinite; pointer-events: none; }
.lung-svg { max-width: 380px; position: relative; z-index: 1; overflow: visible; }
#lung-group { transform-origin: 200px 200px; animation: lungBreathe 5s ease-in-out infinite; }
#lung-group path[stroke="#00D2FF"] { animation: airFlow 3s linear infinite; }
#lung-group path[stroke="#22D3EE"] { animation: airFlow 3.4s linear infinite; }
#lung-group circle:nth-of-type(1) { animation: nodePulse 2.4s ease-in-out infinite; }
#lung-group circle:nth-of-type(2) { animation: nodePulse 2.8s ease-in-out .3s infinite; }
#lung-group circle:nth-of-type(3) { animation: nodePulse 2.2s ease-in-out .6s infinite; }
#lung-group circle:nth-of-type(4) { animation: nodePulse 3s ease-in-out .2s infinite; }
#lung-group circle:nth-of-type(5) { animation: nodePulse 2.6s ease-in-out .5s infinite; }
#lung-group circle:nth-of-type(6) { animation: nodePulse 2.3s ease-in-out .1s infinite; }
#lung-group circle:nth-of-type(7) { animation: nodePulse 2.9s ease-in-out .4s infinite; }
#lung-group circle:nth-of-type(8) { animation: nodePulse 2.5s ease-in-out .7s infinite; }
.about-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-bottom: 72px; }
.about-when { font-size: 17px; font-weight: 500; color: rgba(255,255,255,0.7); line-height: 1.5; }
.about-text { font-size: 17px; color: rgba(255,255,255,0.55); line-height: 1.6; }
.map-btn { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; padding: 9px 18px; border: 1px solid rgba(34,211,238,0.4); border-radius: 8px; color: #22D3EE; font-size: 12px; font-weight: 600; text-decoration: none; transition: all 0.3s; }
.map-btn i { font-size: 12px; }
/* Stats destacadas (primera y última celda) */
.m-stats { display: grid; grid-template-columns: repeat(6,1fr); margin: 80px -48px 0; border-top: 1px solid rgba(255,255,255,0.06); }
.stat-feature { padding: 56px 24px; text-align: center; border-right: 1px solid rgba(255,255,255,0.06); display: flex; flex-direction: column; align-items: center; gap: 20px; }
.stat-feature--last { padding: 56px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.stat-badge { width: 68px; height: 68px; border-radius: 20px; display: flex; align-items: center; justify-content: center; }
.stat-badge--blue { background: linear-gradient(135deg, rgba(63,169,255,0.14), rgba(63,169,255,0.04)); border: 1px solid rgba(63,169,255,0.22); box-shadow: 0 0 24px rgba(63,169,255,0.1); }
.stat-badge--blue i { color: #3FA9FF; font-size: 28px; }
.stat-badge--cyan { background: linear-gradient(135deg, rgba(34,211,238,0.14), rgba(34,211,238,0.04)); border: 1px solid rgba(34,211,238,0.22); box-shadow: 0 0 24px rgba(34,211,238,0.1); }
.stat-badge--cyan i { color: #22D3EE; font-size: 28px; }
.stat-caption { font-size: 14px; font-weight: 500; color: rgba(255,255,255,0.5); line-height: 1.5; }
.bignum-suffix { font-size: 30px; color: #22D3EE; }
.bignum-suffix--ects { font-size: 24px; color: #22D3EE; font-weight: 700; }
/* Retos: cabecera y tarjetas */
.retos-head { margin-bottom: 80px; padding: 0 24px; }
.retos-title { font-weight: 700; font-size: clamp(32px,4.5vw,56px); color: #fff; line-height: 1.1; letter-spacing: -0.02em; }
.retos-sub { font-size: 16px; color: rgba(255,255,255,0.55); margin-top: 16px; max-width: 520px; line-height: 1.6; font-weight: 300; }
#retos-stack { padding-bottom: 60px; }
[data-reto-card] { margin-bottom: 32px; }
/* Beneficios */
.benefits-bg { position: absolute; top: 0; right: 0; width: 40%; height: 100%; background: radial-gradient(ellipse at 80% 50%, rgba(0,56,118,0.06) 0%, transparent 70%); pointer-events: none; }
.benefits-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 20px; align-items: stretch; }
.benefit-glow { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 320px; height: 320px; pointer-events: none; }
.benefits-grid .benefit-card:nth-child(1) .benefit-glow { background: radial-gradient(circle, rgba(63,169,255,0.10) 0%, transparent 65%); }
.benefits-grid .benefit-card:nth-child(2) .benefit-glow { background: radial-gradient(circle, rgba(34,211,238,0.11) 0%, transparent 65%); }
.benefits-grid .benefit-card:nth-child(3) .benefit-glow { background: radial-gradient(circle, rgba(0,210,190,0.10) 0%, transparent 65%); }
.benefits-grid .benefit-card:nth-child(4) .benefit-glow { background: radial-gradient(circle, rgba(155,95,208,0.11) 0%, transparent 65%); }
.benefits-grid .benefit-card:nth-child(5) .benefit-glow { background: radial-gradient(circle, rgba(220,80,190,0.10) 0%, transparent 65%); }
/* Metodología */
.method-wrap { max-width: 1340px; margin: 0 auto; }
.method-grid { display: grid; grid-template-columns: 1fr clamp(420px, 41vw, 580px); gap: 72px; }
.timeline-track { position: absolute; left: 23px; top: 18px; bottom: 40px; width: 2px; background: linear-gradient(to bottom, rgba(34,211,238,0.25), rgba(0,150,255,0.12) 60%, transparent); pointer-events: none; }
#timeline-fill { position: absolute; left: 23px; top: 18px; width: 2px; height: 0; background: linear-gradient(to bottom,#22D3EE,rgba(34,211,238,0.45)); box-shadow: 0 0 8px rgba(34,211,238,0.5); transition: height .45s cubic-bezier(.2,1,.3,1); pointer-events: none; }
.step-dot { position: relative; z-index: 1; width: 48px; height: 48px; flex: none; border-radius: 50%; background: #0B1120; border: 1px solid rgba(34,211,238,0.4); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 6px #080C15, 0 0 18px rgba(34,211,238,0.4); animation: dotGlow 3s ease-in-out infinite; }
.method-step[data-step="2"] .step-dot { animation-delay: 0.4s; }
.method-step[data-step="3"] .step-dot { animation-delay: 0.8s; }
.method-step[data-step="4"] .step-dot { animation-delay: 1.2s; }
.method-step[data-step="5"] .step-dot { animation-delay: 1.6s; }
/* Foto sticky 1:1. El sticky vive en el contenedor y el tilt 3D en el interior,
   para que transform y position:sticky no se pisen. */
.method-media { position: sticky; top: 100px; aspect-ratio: 1/1; perspective: 1200px; }
.method-media-inner { position: relative; width: 100%; height: 100%; border-radius: 24px; overflow: hidden; background: #0E1524; transform-style: preserve-3d; transform: rotateX(var(--mrx, 0deg)) rotateY(var(--mry, 0deg)) scale(var(--msc, 1)); transition: transform .55s cubic-bezier(.2,1,.3,1), box-shadow .55s ease; box-shadow: 0 18px 46px rgba(0,0,0,0.4); }
/* Mientras el puntero se mueve, el seguimiento debe ser inmediato */
.method-media-inner.tilting { transition: transform .1s linear, box-shadow .55s ease; }
.method-media:hover .method-media-inner { --msc: 1.02; box-shadow: 0 34px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(34,211,238,0.28); }
/* Brillo que sigue al puntero */
.method-media-inner::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .45s ease; mix-blend-mode: screen; background: radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%), rgba(34,211,238,0.2), transparent 62%); }
.method-media:hover .method-media-inner::after { opacity: 1; }
/* La foto activa recupera color y se acerca ligeramente al pasar por encima */
.method-media:hover .method-photo.active { filter: grayscale(0) contrast(1.06) saturate(1.05) brightness(0.82); transform: scale(1.05); }
/* Expertos */
.experts-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
/* Programa */
.programa-bg { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(34,211,238,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(34,211,238,0.05) 1px, transparent 1px); background-size: 52px 52px; -webkit-mask-image: radial-gradient(ellipse 80% 65% at 50% 45%, #000 30%, transparent 85%); mask-image: radial-gradient(ellipse 80% 65% at 50% 45%, #000 30%, transparent 85%); }
.programa-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; align-items: start; }
.day-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: 20px; padding: 36px; transition: border-color 0.4s; }
.day-card--cyan { border-color: rgba(34,211,238,0.1); }
.agenda-note--multi { font-size: 11px; color: rgba(255,255,255,0.55); display: block; margin-top: 4px; line-height: 1.65; }
.agenda-link-btn { display: inline-flex; align-items: center; gap: 8px; background: none; border: none; padding: 0; font-family: Sora, sans-serif; font-size: 13px; font-weight: 600; color: #22D3EE; text-underline-offset: 2px; cursor: pointer; text-align: left; transition: color 0.3s ease; }
.agenda-link-btn i { font-size: 10px; color: #22D3EE; text-decoration: none; transition: transform 0.3s ease; }
.agenda-link-btn:hover { color: #6ee0f5; }
.agenda-link-btn:hover i { transform: translateX(3px); }
.agenda-modal-place { font-family: Sora, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: #22D3EE; margin: -8px 0 24px; }
.agenda-modal-item { margin-bottom: 22px; }
.agenda-modal-item:last-child { margin-bottom: 0; }
.agenda-modal-time { font-family: Sora, sans-serif; font-weight: 700; font-size: 15px; color: #fff; margin-bottom: 8px; }
.agenda-modal-list { list-style: disc; padding-left: 20px; margin: 0; }
.agenda-modal-list li { font-size: 14px; line-height: 1.6; color: rgba(255,255,255,0.65); }
.agenda-hl { font-size: 13px; color: #fff; }
/* Agenda dinámica (/agenda) */
@keyframes agendaPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(34,211,238,0.35); } 50% { box-shadow: 0 0 0 8px rgba(34,211,238,0); } }
.agenda-label { font-size: 13px; }
.agenda-row.is-future { opacity: 0.4; transition: opacity .5s ease; }
.agenda-row.is-past { opacity: 1; transition: opacity .5s ease; }
.agenda-row.is-current { opacity: 1; border-radius: 8px; animation: agendaPulse 2.2s ease-in-out infinite; }
.day-card.is-today { border-color: rgba(34,211,238,0.35); box-shadow: 0 0 0 1px rgba(34,211,238,0.08), 0 0 40px rgba(34,211,238,0.06); }
.day-card.is-past-day { opacity: 0.75; }
.day-card.is-future-day { opacity: 0.55; }
.agenda-status-banner { display: none; align-items: center; gap: 12px; background: rgba(34,211,238,0.08); border: 1px solid rgba(34,211,238,0.2); border-radius: 12px; padding: 16px 24px; margin-bottom: 40px; font-family: Sora, sans-serif; font-size: 14px; color: rgba(255,255,255,0.85); }
.agenda-status-banner.is-visible { display: flex; }
/* Separador ECG */
.ecg-sep { position: relative; width: 100%; height: 110px; background: #0B1120; overflow: hidden; display: flex; align-items: center; }
.ecg-svg { height: 120px; position: relative; z-index: 1; overflow: visible; -webkit-mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); }
.ecg-beat { animation: ecgPulse 6s cubic-bezier(.4,0,.2,1) infinite; }
/* FAQ */
.faq-list { border-top: 1px solid rgba(255,255,255,0.07); }
/* Inscripción */
.insc-line { position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(34,211,238,0.5) 50%, transparent); pointer-events: none; }
.insc-glow-a { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 900px; height: 440px; background: radial-gradient(ellipse at center top, rgba(34,211,238,0.08) 0%, transparent 70%); pointer-events: none; }
.insc-glow-b { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 800px; height: 400px; background: radial-gradient(ellipse at center bottom, rgba(34,211,238,0.05) 0%, transparent 70%); pointer-events: none; }
.insc-head { text-align: center; margin-bottom: 48px; }
.insc-sub { font-size: 17px; color: rgba(255,255,255,0.55); margin-top: 16px; line-height: 1.6; font-weight: 300; }
#countdown { display: inline-flex; align-items: flex-start; gap: 10px; margin-top: 32px; padding: 18px 26px; border: 1px solid rgba(34,211,238,0.18); border-radius: 14px; background: rgba(34,211,238,0.04); }
.success-box { background: rgba(34,211,238,0.08); border: 1px solid rgba(34,211,238,0.3); border-radius: 16px; padding: 40px; text-align: center; margin-bottom: 32px; }
.success-box i { color: #22D3EE; font-size: 48px; display: block; margin-bottom: 20px; }
.success-title { font-weight: 700; font-size: 24px; color: #fff; margin-bottom: 12px; }
.success-text { font-size: 16px; color: rgba(255,255,255,0.6); line-height: 1.6; text-align: left; max-width: 560px; margin: 0 auto; }
.success-text + .success-text { margin-top: 14px; }
.success-text a { color: #22D3EE; }
.form-error { background: rgba(255,80,80,0.08); border: 1px solid rgba(255,80,80,0.3); border-radius: 12px; padding: 20px; margin-bottom: 24px; font-size: 14px; color: rgba(255,180,180,0.9); }
.tabs-row { display: flex; gap: 8px; justify-content: center; margin-bottom: 32px; }
.form-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: 20px; padding: 40px; }
.form-title { font-weight: 700; font-size: 20px; color: #fff; letter-spacing: -0.02em; margin-bottom: 28px; text-align: center; }
.form-title--tight { margin-bottom: 12px; }
.form-col { display: flex; flex-direction: column; gap: 20px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.field-label--ls { letter-spacing: 0.03em; }
.sel-lg { width: 100%; padding: 14px 44px 14px 18px; border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; background: rgba(255,255,255,0.03); color: rgba(255,255,255,0.55); font-size: 14px; outline: none; appearance: none; transition: border-color 0.3s; }
.caret-lg { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); color: rgba(255,255,255,0.55); font-size: 14px; pointer-events: none; }
/* Consentimientos RGPD (inscripción) */
.consent-block { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.06); }
.consent-info { font-size: 12px; color: rgba(255,255,255,0.5); line-height: 1.6; }
.consent-info a { color: #22D3EE; }
.consent-check { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; color: rgba(255,255,255,0.6); line-height: 1.5; cursor: pointer; }
.consent-check a { color: #22D3EE; }
.consent-check input { margin-top: 2px; accent-color: #22D3EE; width: 15px; height: 15px; flex-shrink: 0; cursor: pointer; }
.consent-check .req { color: #22D3EE; }
.ta-lg { width: 100%; padding: 14px 18px; border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; background: rgba(255,255,255,0.03); color: #fff; font-size: 14px; outline: none; resize: vertical; transition: border-color 0.3s; }
.btn-submit { align-self: center; min-width: 260px; padding: 16px 48px; background: #22D3EE; color: #080C15; font-weight: 700; font-size: 15px; border: none; border-radius: 10px; cursor: pointer; transition: all 0.3s; margin-top: 8px; letter-spacing: 0.01em; text-align: center; }
.btn-submit i, #grp-btn-next i, #grp-btn-submit i { margin-left: 8px; font-size: 13px; }
#grp-btn-back i { margin-right: 8px; font-size: 12px; }
.form-note { font-size: 13px; color: rgba(255,255,255,0.55); margin-bottom: 20px; text-align: center; }
.grp-progress { display: flex; gap: 8px; margin-bottom: 32px; }
.grp-nav { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; }
/* Organizadores */
.orgs-wrap { max-width: 1100px; margin: 0 auto; text-align: center; }
.orgs-kicker { font-weight: 500; font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.orgs-logos { display: flex; align-items: center; justify-content: center; gap: 48px; margin-top: 28px; flex-wrap: wrap; }
.sponsor-note { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 28px; max-width: 560px; margin-left: auto; margin-right: auto; line-height: 1.6; }
.orgs-divider { width: 100%; height: 1px; background: rgba(255,255,255,0.05); margin: 40px 0 36px; }
.collab-logo {
    min-height: 24px;
    width: auto;
    opacity: 0.6;
    max-height: 32px;
}
.mono-logo { filter: brightness(0) invert(1); }
.collab-sep { width: 1px; height: 20px; background: rgba(255,255,255,0.08); }
/* Footer */
footer { padding: 48px 48px; background: #060A12; border-top: 1px solid rgba(255,255,255,0.04); }
.footer-top { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; }
.footer-brand { font-weight: 700; font-size: 14px; color: rgba(255,255,255,0.55); letter-spacing: -0.01em; }
.footer-tag { font-size: 12px; color: rgba(255,255,255,0.55); margin-top: 6px; }
.m-fwrap { display: flex; align-items: center; gap: 24px; }
.footer-link-accent { font-size: 12px; color: #22D3EE; text-decoration: none; font-weight: 600; transition: opacity 0.3s; }
.footer-bottom { max-width: 1100px; margin: 20px auto 0; border-top: 1px solid rgba(255,255,255,0.04); padding-top: 20px; display: flex; align-items: center; justify-content: space-between; }
.footer-fine { font-size: 11px; color: rgba(255,255,255,0.55); }
.footer-credit { font-size: 11px; color: rgba(255,255,255,0.55); text-decoration: none; transition: color 0.3s; }
.footer-credit:hover { color: rgba(255,255,255,0.9); }
/* Página legal / varios */
.legal-page { min-height: 100vh; background: #080C15; }
#back-to-top i { font-size: 16px; }

/* Metodología (solo escritorio): más recorrido por paso, para que cada foto
   del sticky se vea el tiempo suficiente antes de cambiar. */
@media (min-width: 769px) {
  .method-step { padding-bottom: 136px; }
  .method-step:last-child { padding-bottom: 32px; }
}

/* ═══════════ Menú móvil holográfico (oculto en escritorio) ═══════════ */
#mobile-menu-btn { display: none; }
#mobile-menu { display: none; }

@keyframes mmPanelIn {
  0%   { opacity: 0; transform: translateY(18px) scaleY(0.9); filter: blur(7px); }
  55%  { opacity: 1; filter: blur(0); }
  100% { opacity: 1; transform: translateY(0) scaleY(1); filter: blur(0); }
}
@keyframes mmFlicker {
  0%, 100% { opacity: 1; }
  6%  { opacity: 0.68; }
  10% { opacity: 1; }
  19% { opacity: 0.84; }
  23% { opacity: 1; }
  41% { opacity: 0.92; }
  44% { opacity: 1; }
}
@keyframes mmScan { 0% { transform: translateY(-110%); } 100% { transform: translateY(110%); } }
@keyframes mmItemIn {
  0%   { opacity: 0; transform: translateY(16px); filter: blur(5px); text-shadow: -2px 0 rgba(255,40,140,0.7), 2px 0 rgba(34,211,238,0.7); }
  70%  { text-shadow: -1px 0 rgba(255,40,140,0.25), 1px 0 rgba(34,211,238,0.25); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); text-shadow: none; }
}
@keyframes mmBeam { 0% { opacity: 0; transform: scaleX(0.2); } 40% { opacity: 1; } 100% { opacity: 0; transform: scaleX(1); } }

/* ── Nav en escritorio no maximizado: los logos y las pestañas no caben en una fila ── */
@media (max-width: 1300px) and (min-width: 769px) {
  html { scroll-padding-top: 130px; }
  #main-nav { flex-wrap: wrap !important; height: auto !important; min-height: 72px; padding: 14px 32px !important; row-gap: 10px; }
  .brand { width: 100%; justify-content: center; }
  .nav-menu { width: 100%; margin-left: 0 !important; justify-content: center; flex-wrap: wrap; row-gap: 8px; }
}

@media (max-width: 768px) {
    #retos-stack{
        padding-bottom: 40px;
    }
    .reto-contact {
        margin-top: 0;
    }
    section {
        padding: 72px 20px !important;
    }
  #main-nav { display: none !important; }
  .hero-content { padding-left: 24px !important; padding-right: 24px !important; }
  #inicio { align-items: flex-end !important; padding-bottom: 96px !important; min-height: 100svh !important; }
  #hero-title { font-size: 40px !important; margin-bottom: 10px !important; }
  .hero-content p { font-size: 15px !important; margin-bottom: 0 !important; }
  .hero-ctas { display: none !important; }
  .hero-date-badge { white-space: nowrap !important; }
  #inicio > div:last-of-type { display: none !important; }
  .hero-video-wrap { top: 0 !important; left: 0 !important; transform: none !important; width: 100% !important; max-width: none !important; aspect-ratio: auto !important; height: 62% !important; -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,0.75) 40%, transparent 100%) !important; mask-image: linear-gradient(to bottom, rgba(0,0,0,0.75) 40%, transparent 100%) !important; }
  #back-to-top i { font-size: 13px !important; }
  .nav-insc-btn { display: none !important; }

  /* ── Botón hamburguesa ── */
  #mobile-menu-btn { display: flex; align-items: center; justify-content: center; position: fixed; bottom: 20px; left: 20px; z-index: 420; width: 52px; height: 52px; border-radius: 14px; background: rgba(34,211,238,0.14); border: 1px solid rgba(34,211,238,0.45); cursor: pointer; padding: 0; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 8px 28px rgba(34,211,238,0.28), inset 0 0 18px rgba(34,211,238,0.12); transition: background .3s, box-shadow .3s, transform .3s; }
  #mobile-menu-btn:active { transform: scale(0.94); }
  .mm-bars { display: block; position: relative; width: 22px; height: 14px; }
  .mm-bars span { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: #22D3EE; box-shadow: 0 0 8px rgba(34,211,238,0.9); transition: transform .4s cubic-bezier(.22,1,.36,1), opacity .25s; }
  .mm-bars span:nth-child(1) { top: 0; }
  .mm-bars span:nth-child(2) { top: 6px; }
  .mm-bars span:nth-child(3) { top: 12px; }
  #mobile-menu-btn[aria-expanded="true"] { background: rgba(34,211,238,0.9); border-color: #22D3EE; }
  #mobile-menu-btn[aria-expanded="true"] .mm-bars span { background: #080C15; box-shadow: none; }
  #mobile-menu-btn[aria-expanded="true"] .mm-bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  #mobile-menu-btn[aria-expanded="true"] .mm-bars span:nth-child(2) { opacity: 0; transform: scaleX(0.3); }
  #mobile-menu-btn[aria-expanded="true"] .mm-bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  /* ── Overlay + panel holográfico ── */
  #mobile-menu { display: none; position: fixed; inset: 0; z-index: 410; align-items: flex-end; padding: 0 14px 88px; background: rgba(6,10,18,0.72); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
  #mobile-menu.show { display: flex; }
  .mm-panel { position: relative; width: 100%; overflow: hidden; border-radius: 18px; padding: 10px 0; background: linear-gradient(180deg, rgba(34,211,238,0.13) 0%, rgba(34,211,238,0.05) 45%, rgba(8,12,21,0.6) 100%); border: 1px solid rgba(34,211,238,0.4); box-shadow: 0 0 0 1px rgba(34,211,238,0.12), 0 24px 60px rgba(0,0,0,0.6), inset 0 0 40px rgba(34,211,238,0.1); transform-origin: bottom center; animation: mmPanelIn .5s cubic-bezier(.22,1,.36,1) both, mmFlicker 1.6s steps(1, end) .1s 1; }
  /* Rejilla + líneas de barrido del holograma */
  .mm-panel::before { content: ''; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(34,211,238,0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(34,211,238,0.07) 1px, transparent 1px); background-size: 26px 26px; -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 40%, transparent 90%); mask-image: radial-gradient(ellipse at 50% 40%, #000 40%, transparent 90%); }
  .mm-scan { position: absolute; left: 0; right: 0; top: 0; height: 42%; pointer-events: none; background: linear-gradient(180deg, transparent, rgba(34,211,238,0.16), transparent); animation: mmScan 2.4s linear infinite; }
  .mm-panel::after { content: ''; position: absolute; left: 8%; right: 8%; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, #22D3EE, transparent); animation: mmBeam .7s ease-out both; }
  .mm-nav { position: relative; z-index: 1; display: flex; flex-direction: column; }
  .mm-nav a { display: block; padding: 15px 24px; font-family: Sora, sans-serif; font-size: 16px; font-weight: 600; color: rgba(255,255,255,0.92); text-decoration: none; border-bottom: 1px solid rgba(34,211,238,0.12); animation: mmItemIn .45s cubic-bezier(.22,1,.36,1) both; }
  .mm-nav a:nth-child(1) { animation-delay: .10s; }
  .mm-nav a:nth-child(2) { animation-delay: .16s; }
  .mm-nav a:nth-child(3) { animation-delay: .22s; }
  .mm-nav a:nth-child(4) { animation-delay: .28s; }
  .mm-nav a:nth-child(5) { animation-delay: .34s; }
  .mm-nav a:nth-child(6) { animation-delay: .40s; }
  .mm-nav a:nth-child(7) { animation-delay: .46s; }
  .mm-nav a:nth-child(8) { animation-delay: .52s; }
  .mm-nav a:active { background: rgba(34,211,238,0.12); }
  .mm-nav a.mm-cta { margin: 12px 16px 6px; padding: 15px 24px; border: none; border-radius: 12px; text-align: center; background: #22D3EE; color: #080C15; font-weight: 700; box-shadow: 0 8px 26px rgba(34,211,238,0.35); }

  /* ── Retos: acordeón ── */
  .reto-acc { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 15px 0; background: transparent; border: none; border-top: 1px solid rgba(255,255,255,0.09); color: #fff; font-size: 15px; font-weight: 600; text-align: left; cursor: pointer; }
  .reto-acc i { font-size: 13px; color: #22D3EE; flex: none; transition: transform .35s cubic-bezier(.2,1,.3,1); }
  .reto-acc[aria-expanded="true"] i { transform: rotate(45deg); }
  .reto-c2 .reto-acc i { color: #3FA9FF; }
  .reto-c3 .reto-acc i { color: #9B5FD0; }
  .reto-c4 .reto-acc i { color: #2DD4A8; }
  .reto-acc-panel { overflow: hidden; max-height: 0; transition: max-height .45s cubic-bezier(.2,1,.3,1); }
  .reto-acc-panel > *:last-child { padding-bottom: 16px; }
  .reto-qa { margin-bottom: 0 !important; }
  .reto-title { font-size: 22px !important; }
  .hero-date-badge { border: none !important; background: none !important; border-radius: 0 !important; padding: 0 !important; margin-bottom: 16px !important; gap: 0 !important; }
  #back-to-top { right: 20px; bottom: 19px; width: 42px; height: 42px; }
  .m-stack { grid-template-columns: 1fr !important; }
  .experts-grid.m-stack { display: flex !important; align-items: stretch !important; flex-wrap: nowrap !important; overflow-x: auto !important; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scroll-padding-left: 32px; scroll-padding-right: 20px; -webkit-overflow-scrolling: touch; gap: 12px !important; margin: 0 -20px !important; padding: 4px 20px 10px 32px !important; }
  .experts-grid.m-stack::-webkit-scrollbar { display: none; }
  .experts-grid.m-stack .expert-card { flex: 0 0 46% !important; max-width: 190px; height: auto !important; min-height: 195px; scroll-snap-align: start; padding: 20px 18px !important; border-radius: 14px !important; }
  .experts-grid.m-stack .expert-card:last-child { margin-right: 8px; }
  .experts-grid.m-stack .expert-avatar { width: 42px !important; height: 42px !important; font-size: 14px !important; margin-bottom: 12px !important; }
  .experts-grid.m-stack .expert-name { font-size: 14px !important; line-height: 1.25 !important; margin-bottom: 14px !important; }
  .experts-grid.m-stack .expert-bio-btn { font-size: 11px !important; padding: 7px 12px !important; }
  .m-stats { grid-template-columns: repeat(2,1fr) !important; margin: 48px -20px 0 !important; }
  .m-stats > div { padding: 30px 12px !important; }
  .m-bignum { font-size: 44px !important; }
  .m-hide { display: none !important; }
  .org-sep { display: none !important; }
  #countdown { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 4px 20px !important; }
  .cd-sep { display: none !important; }
  footer > div { flex-direction: column !important; align-items: flex-start !important; gap: 16px !important; }
  .m-fwrap { flex-wrap: wrap !important; gap: 14px !important; }
  body { overflow-x: hidden !important; }
  #hero-title { animation: none !important; }
  #lung-group { animation: none !important; }
  .hero-blob { animation: none !important; }
  .lung-halo { animation: none !important; }
  .ecg-sep { height: 80px !important; justify-content: center !important; }
  .ecg-svg { height: 58px !important; width: 300% !important; flex-shrink: 0 !important; }
  /* Retos: sin sticky, una columna y sin panel decorativo en móvil */
  .reto-pane { padding: 40px 28px !important; }
}

/* Respeta la preferencia de movimiento reducido del sistema */
@media (prefers-reduced-motion: reduce) {
  .mm-panel, .mm-nav a, .mm-panel::after { animation: none !important; }
  .mm-scan { display: none; }
  .reto-acc-panel { transition: none; }
  .method-media-inner { transform: none !important; transition: box-shadow .3s ease !important; }
}
