body.portada-v2 {
  --v2-bg:#071016;
  --v2-bg2:#0a1620;
  --v2-panel:#0d1c27cc;
  --v2-panel-solid:#0d1c27;
  --v2-line:#1c3d4e;
  --v2-text:#f5f8fa;
  --v2-muted:#9db2bd;
  --v2-cyan:#13b9e7;
  --v2-cyan2:#4cd6ff;
  --v2-blue:#0d93b0;
  --v2-green:#3ad37a;
  --v2-amber:#f7b844;
  --v2-pink:#ff5f86;
  --v2-purple:#9d72ff;
  --v2-radius:28px;
}
body.portada-v2 * {box-sizing:border-box}
body.portada-v2 {scroll-behavior:smooth}
body.portada-v2 {
  margin:0;
  color:var(--v2-text);
  background:
    radial-gradient(circle at 20% 0%, #0c2736 0, transparent 28%),
    linear-gradient(180deg,#071016,#08131a 65%,#061016);
  font-family:Inter,system-ui,sans-serif;
  overflow-x:hidden;
}
body.portada-v2::before {
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 85%);
}
body.portada-v2 .ypf-page-bg {
  /* Posición y degradado copiados literales de la referencia (.page-bg en
     el index.html original): "center/cover" —centrado, no "top" ni ningún
     porcentaje inventado— y el oscurecido exacto 34%→68%, no el que se
     había puesto a ojo antes. */
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,5,8,.34),rgba(0,5,8,.68)),
    url("../img/v2/hero-gimnasio-fondo.webp") center/cover no-repeat;
}
body.portada-v2 .noise {
  position:fixed; inset:0; pointer-events:none; opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
  z-index:100;
}
body.portada-v2 a {color:inherit;text-decoration:none}
body.portada-v2 img {max-width:100%}
body.portada-v2 button {font:inherit}
body.portada-v2 .site-header {
  position:fixed;
  z-index:50;
  top:0; left:0; right:0;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  padding:14px 5vw;
  background:linear-gradient(180deg,rgba(3,10,15,.82),rgba(3,10,15,.28),transparent);
  backdrop-filter:blur(7px);
}
body.portada-v2 .v2-fit { color:var(--v2-cyan2) !important }
body.portada-v2 .brand {display:flex;align-items:center;gap:9px;font-weight:800;font-size:1.32rem}
body.portada-v2 .brand img {width:auto;height:34px;object-fit:contain;border-radius:0}
body.portada-v2 .brand span {display:inline;color:#fff;letter-spacing:-.01em;white-space:nowrap}
body.portada-v2 .desktop-nav {display:flex;gap:26px;font-size:.9rem;color:#c5d4db}
body.portada-v2 .desktop-nav a:hover {color:white}
body.portada-v2 .header-actions {display:flex;align-items:center;gap:18px}
body.portada-v2 .login {font-size:.9rem;color:#c5d4db}
body.portada-v2 .menu-btn {display:none;background:none;border:0;color:white;font-size:1.5rem}
body.portada-v2 .mobile-menu {display:none}
body.portada-v2 .btn {
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 22px;border-radius:14px;border:1px solid #27566d;
  transition:.25s ease;font-weight:700;font-size:.92rem;
}
body.portada-v2 .btn:hover {transform:translateY(-2px);box-shadow:0 12px 38px rgba(19,185,231,.14)}
body.portada-v2 .btn.primary {
  border-color:transparent;
  background:linear-gradient(135deg,var(--v2-blue),var(--v2-cyan));
  color:white;
  box-shadow:0 8px 30px rgba(13,147,176,.25);
}
body.portada-v2 .btn.ghost {background:rgba(8,22,31,.72)}
body.portada-v2 .btn.compact {padding:11px 17px;font-size:.82rem}
body.portada-v2 .hero {
  position:relative;
  min-height:720px;
  padding:116px 5vw 74px;
  display:grid;
  grid-template-columns:minmax(430px,.8fr) minmax(570px,1.2fr);
  align-items:center;
  gap:2vw;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(3,11,16,.98) 0%,rgba(3,11,16,.90) 29%,rgba(3,11,16,.30) 61%,rgba(3,11,16,.62) 100%),
    linear-gradient(180deg,rgba(3,11,16,.08),rgba(3,11,16,.18) 64%,#071016 100%),
    radial-gradient(circle at 54% 46%,#183746 0,#0b202b 34%,#061016 76%);
}
body.portada-v2 .hero::after {
  content:"";position:absolute;inset:auto 0 0;height:40%;
  background:linear-gradient(180deg,transparent,#071016);
}
body.portada-v2 .hero-glow {position:absolute;border-radius:999px;filter:blur(60px);opacity:.25}
body.portada-v2 .glow-a {width:420px;height:420px;background:#006d9e;right:20%;top:18%}
body.portada-v2 .glow-b {width:340px;height:340px;background:#1e35a3;right:-8%;bottom:10%}
body.portada-v2 .eyebrow {
  color:#81dff8;
  font-size:.72rem;
  letter-spacing:.24em;
  font-weight:700;
  margin-bottom:18px;
}
body.portada-v2 h1, body.portada-v2 h2 {
  font-family:"Playfair Display",Georgia,serif;
  margin:0;
  letter-spacing:-.035em;
  line-height:.98;
}
body.portada-v2 h1 {font-size:clamp(3.2rem,6vw,6.7rem);max-width:840px}
body.portada-v2 h1 span, body.portada-v2 h2 span {color:var(--v2-cyan2)}
body.portada-v2 .lead, body.portada-v2 .section-copy p {
  color:#c4d0d6;line-height:1.65;font-size:1.06rem;max-width:690px
}
body.portada-v2 .hero-copy {position:relative;z-index:4;max-width:650px}
body.portada-v2 .hero .eyebrow {margin-bottom:10px}
body.portada-v2 .hero h1 {font-size:clamp(3.2rem,4.5vw,5rem);line-height:.94}
body.portada-v2 .hero .lead {max-width:620px;margin:16px 0 0;line-height:1.48}
body.portada-v2 .hero-meta {
  display:flex;gap:28px;margin:22px 0;
}
body.portada-v2 .hero-meta div {display:grid;grid-template-columns:38px auto;grid-template-rows:auto auto;column-gap:10px;padding-right:16px;border:0;align-items:center}
body.portada-v2 .hero-meta svg {grid-row:1/3;width:36px;height:36px;padding:8px;border:1px solid #12c8ff;border-radius:50%;background:rgba(3,26,37,.72);color:#18caff;stroke:currentColor}
body.portada-v2 .hero-meta strong {font-size:.88rem;line-height:1.1}
body.portada-v2 .hero-meta span {font-size:.72rem;color:#c4d0d6;margin-top:2px}
body.portada-v2 .cta-row {display:flex;gap:12px;flex-wrap:wrap}
body.portada-v2 .micro {font-size:.78rem;color:#78919d}
body.portada-v2 .hero-visual {position:relative;min-height:550px;z-index:3}
body.portada-v2 .hero-people {position:absolute;inset:-42px 250px -24px -70px;background:url("../img/v2/css-997a16b957.jpg") center bottom/contain no-repeat;mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%)}
body.portada-v2 .hero-people .person {display:none}
body.portada-v2 .person {position:absolute;bottom:0;width:42%;height:90%}
body.portada-v2 .person-f {left:18%;transform:rotate(-2deg)}
body.portada-v2 .person-m {right:10%;transform:rotate(1deg)}
body.portada-v2 .person-body {
  position:absolute;bottom:0;left:15%;width:70%;height:72%;
  border-radius:45% 45% 18% 18%;
  background:
    linear-gradient(180deg,#171f25,#0e151a 72%),
    radial-gradient(circle at 50% 25%,rgba(255,255,255,.08),transparent 30%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 40px 60px rgba(0,0,0,.45);
}
body.portada-v2 .person-face {
  position:absolute;z-index:2;top:7%;left:34%;width:33%;aspect-ratio:.8;
  border-radius:48% 48% 44% 44%;
  background:
    radial-gradient(circle at 65% 37%,#1b1614 0 4%,transparent 5%),
    radial-gradient(circle at 35% 37%,#1b1614 0 4%,transparent 5%),
    linear-gradient(135deg,#c68f72,#8e5e49);
  box-shadow:0 0 0 6px #2d241f,0 20px 40px rgba(0,0,0,.4);
}
body.portada-v2 .person-f .person-face {box-shadow:0 0 0 10px #3a2a22,0 20px 40px rgba(0,0,0,.4)}
body.portada-v2 .person-m .person-face {background:linear-gradient(135deg,#b17c61,#755040)}
body.portada-v2 .float-card, body.portada-v2 .calendar-card, body.portada-v2 .analysis-card, body.portada-v2 .meal-card, body.portada-v2 .macro-card, body.portada-v2 .connect-card, body.portada-v2 .chat-card, body.portada-v2 .habits-card, body.portada-v2 .photos-card {
  background:linear-gradient(180deg,rgba(18,39,52,.93),rgba(8,23,32,.94));
  border:1px solid rgba(90,184,222,.24);
  box-shadow:0 20px 50px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.05);
  backdrop-filter:blur(18px);
}
body.portada-v2 .float-card {position:absolute;border-radius:18px;padding:16px}
body.portada-v2 .card-calories {right:0;top:8%;width:330px;display:flex;gap:16px;align-items:center}
body.portada-v2 .ring, body.portada-v2 .cal-ring {
  width:92px;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(circle at center,#10242f 58%,transparent 60%),conic-gradient(var(--v2-green) 0 72%,#223845 72%);
}
body.portada-v2 .ring span, body.portada-v2 .cal-ring span {font-size:1.45rem;font-weight:800}
body.portada-v2 .ring small, body.portada-v2 .cal-ring small {font-size:.64rem;color:#9bb0ba}
body.portada-v2 .macro-mini {display:grid;gap:8px;flex:1}
body.portada-v2 .macro-mini span {display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;font-size:.74rem}
body.portada-v2 .dot {width:8px;height:8px;border-radius:50%}
body.portada-v2 .green {background:var(--v2-green)!important}
body.portada-v2 .amber {background:var(--v2-amber)!important}
body.portada-v2 .pink {background:var(--v2-pink)!important}
body.portada-v2 .purple {background:var(--v2-purple)!important}
body.portada-v2 .card-workout {right:0;top:36%;width:330px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
body.portada-v2 .card-ai {right:0;top:61%;width:330px;display:grid;grid-template-columns:auto 1fr;gap:12px}
body.portada-v2 .float-card small {color:#8ea5b0}
body.portada-v2 .float-card strong {display:block;margin:3px 0;font-size:.9rem}
body.portada-v2 .float-card span {font-size:.75rem;color:#a9bdc6}
body.portada-v2 .icon-tile {width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:800}
body.portada-v2 .blue {background:#153a8d}
body.portada-v2 .purple {background:#3a2478}
body.portada-v2 .arrow {color:#8ddfff}
body.portada-v2 .scroll-hint {position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;color:#5e7b89;font-size:.78rem}
body.portada-v2 .stack-section {
  position:relative;
  width:100%;
  margin:0;
  border-radius:0;
  min-height:780px;
  padding:100px 4vw 88px;
  overflow:hidden;
  border:0;
  background:none;
  z-index:5;
}
body.portada-v2 .stack-section + .stack-section {margin-top:0}
body.portada-v2 .section-inner {
  max-width:1500px;margin:0 auto;
  display:grid;grid-template-columns:.82fr 1.18fr;gap:5vw;align-items:center;
}
body.portada-v2 .section-inner.wide {grid-template-columns:.58fr 1.42fr}
body.portada-v2 .section-copy h2 {font-size:clamp(2.7rem,5vw,5.1rem)}
body.portada-v2 .section-copy .btn {margin-top:10px}
body.portada-v2 .signal-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}
body.portada-v2 .signal-grid span {display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;padding:10px 12px;border:1px solid #234252;border-radius:13px;background:#0a1921;color:#d7e6ec;font-size:.86rem}
body.portada-v2 .signal-icon {width:38px;height:38px;border:1.5px solid #12c8ff;border-radius:50%;display:grid;place-items:center;color:#12c8ff;background:#071c27}
body.portada-v2 .signal-icon svg {width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.portada-v2 .signal-grid strong {display:block;font-size:.82rem}
body.portada-v2 .signal-grid small {display:block;color:#7894a1;font-size:.6rem;margin-top:2px}
body.portada-v2 .device-stage {position:relative;min-height:540px;display:flex;justify-content:center;align-items:center}
body.portada-v2 .phone {
  width:285px;min-height:560px;border-radius:38px;padding:18px;
  background:linear-gradient(180deg,#0b1620,#081118);
  border:7px solid #11171c;box-shadow:0 28px 60px rgba(0,0,0,.45),inset 0 0 0 1px #304653;
  color:white;
}
body.portada-v2 .phone-top {display:flex;justify-content:space-between;color:#9fb0b8;font-size:.7rem;margin-bottom:18px}
body.portada-v2 .app-brand {display:flex;align-items:center;gap:8px;font-size:.84rem}
body.portada-v2 .app-brand img {width:30px;height:30px;object-fit:contain;border-radius:7px}
body.portada-v2 .progress-line {height:4px;background:#18303d;border-radius:99px;margin:18px 0}
body.portada-v2 .progress-line i {display:block;height:100%;background:var(--v2-cyan);border-radius:99px}
body.portada-v2 .phone h3 {font-size:1.1rem;margin:12px 0 16px}
body.portada-v2 .phone button {width:100%;padding:12px;border-radius:12px;border:1px solid #294757;background:#0d202a;color:#cfdae0;margin:5px 0;text-align:left}
body.portada-v2 .phone button.selected {border-color:#39c5ef;background:#12344a;color:white}
body.portada-v2 .phone button.phone-cta {background:linear-gradient(135deg,var(--v2-blue),var(--v2-cyan));border:0;text-align:center;font-weight:800;color:white;margin-top:18px}
body.portada-v2 .muted {color:#6f8996}
/* Capturas reales de la app dentro de los mismos marcos de teléfono: el
   marco (borde, radio, sombra, muesca) lo sigue dibujando el CSS de arriba;
   solo se vacía el contenido falso y se pone la imagen a pantalla completa
   del propio marco, sin importar el padding que tenía el contenido de
   mentira (por eso el !important). */
/* ── Los teléfonos que llevan una captura real ──────────────────────
   El marco NO impone su alto: lo pone la imagen. Cada maqueta traía el
   alto y el relleno que necesitaba SU contenido dibujado —la de nutrición
   reservaba 54 px abajo para un botón, la del plan 52— y con una captura
   dentro eso dejaba de ser relleno para pasar a ser un recorte: medido,
   la del plan perdía el 30 % de la pantalla por abajo y la de nutrición
   el 19 %. Se veía en «DÍA 4 · PIERNA» cortado a la mitad.

   Con `height:auto` y la imagen a su proporción natural no hay nada que
   recortar en ningún marco, y los 10 px de relleno son el bisel por los
   cuatro lados, igual que en el teléfono del hero. */
body.portada-v2 .phone-shot { padding:10px!important;overflow:hidden }
body.portada-v2 .phone-shot-img {
  display:block;width:100%;height:auto;border-radius:22px;position:relative;
}
body.portada-v2 .calendar-card {position:absolute;right:0;top:15%;width:520px;border-radius:24px;padding:22px}
body.portada-v2 .calendar-head {display:flex;justify-content:space-between;gap:15px;align-items:center}
body.portada-v2 .calendar-head small {display:block;color:#8fa9b5}
body.portada-v2 .calendar-head strong {font-size:1.1rem}
body.portada-v2 .calendar-head span {font-size:.78rem;color:#72d5f2}
body.portada-v2 .days {display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:20px}
body.portada-v2 .days div {text-align:center}
body.portada-v2 .days b {display:block;font-size:.72rem;color:#8ea4ad;margin-bottom:8px}
body.portada-v2 .days span, body.portada-v2 .mini-week span {display:block;border-radius:10px;padding:12px 6px;font-size:.68rem;min-height:70px}
body.portada-v2 .training {background:#173a69!important;color:#a8ddff!important}
body.portada-v2 .cardio {background:#164c47!important;color:#96f0cc!important}
body.portada-v2 .mobility {background:#523e73!important;color:#d9c7ff!important}
body.portada-v2 .rest {background:#18242c!important;color:#8ca1ab!important}
body.portada-v2 .nutrition {min-height:720px}
body.portada-v2 .nutrition-bg {
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 65% 50%,rgba(35,138,91,.18),transparent 28%),
    radial-gradient(circle at 80% 20%,rgba(104,69,33,.12),transparent 25%);
}
body.portada-v2 .nutrition-stage {position:relative;min-height:520px}
body.portada-v2 .food-phone {position:absolute;left:3%;bottom:0;transform:rotate(-2deg);overflow:hidden}
body.portada-v2 .food-shot {height:245px;border-radius:20px;overflow:hidden;background:#111b1d url("../img/v2/css-886089822c.jpg") center/contain no-repeat}
body.portada-v2 .food-shot img {display:none}
body.portada-v2 .food-bowl {width:210px;height:210px;border-radius:50%;margin:18px auto;background:#151f17;position:relative;box-shadow:inset 0 0 0 12px #101913}
body.portada-v2 .food-bowl i {position:absolute;border-radius:20px}
body.portada-v2 .avocado {width:52px;height:120px;background:#7dbd60;left:32px;top:40px;transform:rotate(24deg)}
body.portada-v2 .salmon {width:90px;height:70px;background:linear-gradient(135deg,#de7d4d,#f2a66b);right:24px;top:28px;transform:rotate(-16deg)}
body.portada-v2 .grain {width:100px;height:75px;background:#c7a978;right:20px;bottom:25px}
body.portada-v2 .greens {width:80px;height:70px;background:#2f7654;left:20px;bottom:25px}
body.portada-v2 .photo-btn {background:#12384b!important}
body.portada-v2 .analysis-card {position:absolute;left:35%;top:8%;width:290px;padding:20px;border-radius:20px}
body.portada-v2 .card-title {display:flex;justify-content:space-between;font-size:.78rem;color:#8fb0bc}
body.portada-v2 .card-title b {color:#81ffb2}
body.portada-v2 .big-kcal {display:block;font-size:2rem;margin:8px 0 18px}
body.portada-v2 .nutrient {display:flex;justify-content:space-between;align-items:center;font-size:.8rem;padding:7px 0;color:#a9bdc6}
body.portada-v2 .nutrient-name {display:flex;align-items:center;gap:8px}
body.portada-v2 .macro-icon {width:16px;height:16px;display:inline-grid;place-items:center;flex:0 0 16px}
body.portada-v2 .macro-icon svg {width:16px;height:16px;display:block;fill:currentColor;stroke:currentColor;stroke-width:1.7}
body.portada-v2 .macro-icon.protein {color:#48df8a}
body.portada-v2 .macro-icon.carbs {color:#ffc34c}
body.portada-v2 .macro-icon.fat {color:#ff5c83}
body.portada-v2 .macro-icon.fiber {color:#9b78ff}
body.portada-v2 .meal-card {position:absolute;right:0;top:4%;width:270px;padding:18px;border-radius:20px}
body.portada-v2 .meal-card>small {display:block;margin-bottom:10px;color:#92a8b2}
body.portada-v2 .meal-card>div {display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #18303c}
body.portada-v2 .meal-card span {font-size:.73rem}
body.portada-v2 .meal-card b {display:block;color:#8ca2ac;font-weight:500;margin-top:3px}
body.portada-v2 .meal-thumb {width:52px;height:52px;flex:0 0 52px;border-radius:12px;background-image:url("../img/v2/css-3b43ddbdb0.jpg");background-repeat:no-repeat;background-size:200% 200%;box-shadow:inset 0 0 0 1px #ffffff20}
body.portada-v2 .meal-thumb.one {background-position:0 0}
body.portada-v2 .meal-thumb.two {background-position:100% 0}
body.portada-v2 .meal-thumb.three {background-position:0 100%}
body.portada-v2 .meal-thumb.four {background-image:url("../img/v2/css-13d1c162d2.jpg");background-position:center;background-size:cover}
body.portada-v2 .macro-card {position:absolute;right:0;bottom:0;width:310px;padding:18px;border-radius:20px}
body.portada-v2 .macro-card small {display:block;margin-bottom:10px}
body.portada-v2 .macro-card label {display:flex;justify-content:space-between;font-size:.74rem;color:#a8bdc7;margin:9px 0 5px}
body.portada-v2 .macro-summary {display:flex;align-items:center;gap:14px;margin-top:16px}
body.portada-v2 .macro-summary .cal-ring {width:105px;flex:0 0 105px}
body.portada-v2 .macro-summary .cal-ring span {font-size:1.25rem}
body.portada-v2 .macro-phrase {font-family:"Segoe Print","Bradley Hand",cursive;color:#d8e6eb;font-size:.8rem;line-height:1.35;transform:rotate(-7deg)}
body.portada-v2 .bar {height:8px;background:#1b3340;border-radius:99px;overflow:hidden}
body.portada-v2 .bar i {display:block;height:100%;border-radius:99px}
body.portada-v2 .app-section {min-height:760px}
body.portada-v2 .phones-row {display:grid;grid-template-columns:repeat(4,minmax(155px,1fr)) 190px;gap:12px;align-items:end}
body.portada-v2 .phone.slim {width:auto;min-height:520px;padding:15px;border-radius:32px}
body.portada-v2 .tabs {display:flex;gap:10px;font-size:.68rem;color:#758d99;margin:8px 0 15px}
body.portada-v2 .tabs b {color:#72d9fb}
body.portada-v2 .exercise-list {list-style:none;padding:0;margin:15px 0}
body.portada-v2 .exercise-list li {padding:7px 0;border-bottom:1px solid #18303b;font-size:.67rem;display:grid;grid-template-columns:36px 1fr auto;gap:7px;align-items:center}
body.portada-v2 .exercise-demo {width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,#8a6757,#322522);position:relative;overflow:hidden}
body.portada-v2 .exercise-demo svg {position:absolute;left:2px;top:3px;width:17px;height:30px;fill:none;stroke:#eff7fa;stroke-width:1.3}
body.portada-v2 .exercise-demo svg .muscle {fill:#ff4d67;stroke:#ff4d67}
body.portada-v2 .exercise-demo::after {content:"";position:absolute;right:2px;top:5px;width:15px;height:25px;border-radius:8px 8px 5px 5px;background:linear-gradient(160deg,#d5a083,#795243)}
body.portada-v2 .app-features {align-self:center;display:grid;gap:9px;padding-left:8px}
body.portada-v2 .app-features h3 {font-size:.88rem;margin:0 0 4px}
body.portada-v2 .app-feature {display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;font-size:.68rem;color:#d5e5eb}
body.portada-v2 .app-feature i {width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#0d2f40;color:#35d6ff}
body.portada-v2 .app-feature svg {width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
body.portada-v2 .app-feature:nth-child(3n) i {color:#5ce68e}
body.portada-v2 .app-feature:nth-child(4n) i {color:#9b7cff}
body.portada-v2 .app-section {padding-top:72px;padding-bottom:72px;min-height:690px}
body.portada-v2 .app-section .section-inner.wide {max-width:1720px;grid-template-columns:300px minmax(0,1fr);gap:32px;align-items:center}
body.portada-v2 .app-section .section-copy h2 {font-size:clamp(2.55rem,3vw,3.55rem);line-height:1;margin:12px 0 20px}
body.portada-v2 .app-section .section-copy p {font-size:.92rem;line-height:1.55}
body.portada-v2 .app-section .store-badges {gap:7px}
body.portada-v2 .app-section .store-badge {min-width:140px;padding:8px 9px}
body.portada-v2 .app-section .phones-row {grid-template-columns:repeat(4,minmax(180px,1fr)) 170px;gap:10px;width:100%;align-items:end}
body.portada-v2 .app-section .phone.slim {width:100%;min-width:0;min-height:500px;height:500px;padding:29px 13px 14px;border-width:5px;border-radius:30px;overflow:hidden}
body.portada-v2 .app-section .phone.slim h3 {font-size:1rem;margin:8px 0 10px}
body.portada-v2 .app-section .phone.slim>strong {font-size:.78rem;line-height:1.25;display:block}
body.portada-v2 .app-section .phone.slim>small {font-size:.62rem}
body.portada-v2 .app-section .tabs {gap:7px;font-size:.6rem;white-space:nowrap}
body.portada-v2 .app-section .exercise-list {margin:10px 0}
body.portada-v2 .app-section .exercise-list li {font-size:.58rem;grid-template-columns:30px minmax(0,1fr) auto;gap:5px}
body.portada-v2 .app-section .exercise-demo {width:30px;height:30px}
body.portada-v2 .app-section .exercise-demo svg {height:26px}
body.portada-v2 .app-section .phone button.phone-cta {font-size:.7rem;padding:10px 6px;margin-top:9px}
body.portada-v2 .app-section .metric {padding:10px}
body.portada-v2 .app-section .metric strong {font-size:1.25rem}
body.portada-v2 .app-section .mini-chart {height:104px}
body.portada-v2 .app-section .cal-ring.big {width:122px;margin:18px auto}
body.portada-v2 .app-section .nutrient {font-size:.67rem}
body.portada-v2 .app-section .mini-week {grid-template-columns:repeat(4,1fr);gap:4px}
body.portada-v2 .app-section .mini-week span {min-height:58px;font-size:.5rem;padding:7px 2px}
body.portada-v2 .app-section .app-features {padding-left:8px;gap:7px;align-self:center}
body.portada-v2 .app-section .app-features h3 {font-size:.78rem}
body.portada-v2 .app-section .app-feature {grid-template-columns:28px minmax(0,1fr);font-size:.62rem;gap:7px}
body.portada-v2 .app-section .app-feature i {width:28px;height:28px}
body.portada-v2 .metric {padding:13px;background:#0d202a;border-radius:14px;margin:10px 0}
body.portada-v2 .metric span, body.portada-v2 .metric em {display:block;font-style:normal;font-size:.7rem;color:#8aa1ab}
body.portada-v2 .metric strong {font-size:1.5rem}
body.portada-v2 .metric em {color:#4ae28b}
body.portada-v2 .mini-chart {height:120px;position:relative;background:linear-gradient(180deg,transparent,#0b2735);border-radius:15px;overflow:hidden}
body.portada-v2 .mini-chart i {position:absolute;left:10%;right:10%;bottom:25%;height:3px;background:linear-gradient(90deg,#0e71ff,#4ae2ff);transform:skewY(-10deg);box-shadow:40px -10px 0 #3eaaff,90px -20px 0 #51d7ff}
body.portada-v2 .metric-grid {display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
body.portada-v2 .metric-grid div {padding:12px;background:#0d202a;border-radius:12px}
body.portada-v2 .metric-grid span, body.portada-v2 .metric-grid em {display:block;font-size:.68rem;color:#7e97a3}
body.portada-v2 .metric-grid em {color:#44d47c;font-style:normal}
body.portada-v2 .metric-grid strong {font-size:1.1rem}
body.portada-v2 .cal-ring.big {margin:24px auto;width:145px}
body.portada-v2 .mini-week {display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:18px}
body.portada-v2 .mini-week span {min-height:62px;font-size:.58rem;padding:7px 2px}
body.portada-v2 .wearables {min-height:660px}
body.portada-v2 .wearables-stage {min-height:480px;display:flex;align-items:center;gap:20px;position:relative}
body.portada-v2 .wearable-products {width:430px;height:430px;flex:0 0 430px;background-image:url("../img/v2/css-4ff91a5b77.jpg");background-position:center;background-size:contain;background-repeat:no-repeat;border-radius:34px;filter:drop-shadow(0 28px 34px #0009)}
body.portada-v2 .watch {position:relative;background:#11181d;box-shadow:0 30px 50px rgba(0,0,0,.45)}
body.portada-v2 .round-watch {width:210px;height:250px;border-radius:52px;clip-path:polygon(15% 0,85% 0,100% 16%,95% 84%,80% 100%,20% 100%,5% 84%,0 16%)}
body.portada-v2 .square-watch {width:190px;height:230px;border-radius:48px}
body.portada-v2 .watch-face {position:absolute;inset:18px;border-radius:38px;background:#050b0f;border:3px solid #28323a;padding:20px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}
body.portada-v2 .watch-face strong {font-size:1.7rem}
body.portada-v2 .watch-face span, body.portada-v2 .watch-face small {font-size:.68rem;color:#9fc0cb}
body.portada-v2 .rings {display:flex;gap:4px}
body.portada-v2 .rings i {display:block;width:38px;height:38px;border-radius:50%;border:6px solid}
body.portada-v2 .rings i:nth-child(1) {border-color:#ff475e}
body.portada-v2 .rings i:nth-child(2) {border-color:#63d64f}
body.portada-v2 .rings i:nth-child(3) {border-color:#64b7ff}
body.portada-v2 .connect-card {flex:1;min-width:350px;padding:22px;border-radius:22px}
body.portada-v2 .connect-card>small {display:block;color:#8ba4af;margin-bottom:14px}
body.portada-v2 .connect-row {display:flex;justify-content:space-between;padding:14px;background:#0b202a;border-radius:12px;margin:8px 0}
body.portada-v2 .connect-row b {color:#56df8c;font-size:.8rem}
body.portada-v2 .sync-title {margin-top:18px;color:#7d96a2;font-size:.74rem}
body.portada-v2 .sync-grid {display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
body.portada-v2 .sync-grid span {font-size:.72rem;padding:8px;background:#0c1b23;border-radius:10px}
body.portada-v2 .coach {min-height:650px}
body.portada-v2 .coach-grid {display:grid;grid-template-columns:1.2fr 1fr 1.05fr;gap:14px}
body.portada-v2 .chat-card, body.portada-v2 .habits-card, body.portada-v2 .photos-card {padding:18px;border-radius:22px}
body.portada-v2 .chat-head {display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin-bottom:14px}
body.portada-v2 .chat-head img {width:28px;height:28px;border-radius:7px}
body.portada-v2 .chat-head small {color:#79929e}
body.portada-v2 .bubble {max-width:85%;padding:12px;border-radius:14px;font-size:.76rem;line-height:1.5;margin:10px 0}
body.portada-v2 .bubble.user {margin-left:auto;background:#17395a}
body.portada-v2 .bubble.ai {background:#102832}
body.portada-v2 .chat-input {margin-top:15px;background:#08161e;border:1px solid #1f3c49;padding:12px;border-radius:13px;color:#698491;font-size:.74rem}
body.portada-v2 .chat-input b {float:right;color:white;background:#1f78ff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}
body.portada-v2 .habits-card small, body.portada-v2 .photos-card small {display:block;color:#a3b6bf;margin-bottom:12px}
body.portada-v2 .habits-card div {padding:12px 0;border-bottom:1px solid #18313d;font-size:.76rem;display:flex;justify-content:space-between}
body.portada-v2 .habits-card b {color:#6de39e}
body.portada-v2 .photo-pair {display:grid;grid-template-columns:1fr 1fr;gap:10px}
body.portada-v2 .progress-photo {height:240px;border-radius:14px;position:relative;background:linear-gradient(180deg,#4b342c,#171313);overflow:hidden}
body.portada-v2 .progress-photo::before {content:"";position:absolute;left:28%;top:12%;width:44%;height:70%;border-radius:45% 45% 18% 18%;background:#b97c5f}
body.portada-v2 .progress-photo.after::before {width:48%;left:26%;background:#c78867}
body.portada-v2 .progress-photo span {position:absolute;bottom:8px;left:8px;font-size:.65rem;background:#071016aa;padding:5px 8px;border-radius:8px}
body.portada-v2 .photos-card p {font-size:.74rem;color:#8fa4ae;line-height:1.5}
body.portada-v2 .ecosystem {
  position:relative;
  min-height:720px;
  display:flex;align-items:center;
  padding:110px 5vw;
  background:
    linear-gradient(90deg,#061015 0 38%,rgba(6,16,21,.45) 65%,#061015 100%),
    radial-gradient(circle at 70% 40%,rgba(12,103,144,.25),transparent 36%),
    linear-gradient(180deg,#0a1b25,#09131a);
  overflow:hidden;
}
body.portada-v2 .ecosystem::before {
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 60% 80%,rgba(83,114,72,.15),transparent 30%),
    linear-gradient(155deg,transparent 0 55%,rgba(19,45,57,.5) 56% 66%,transparent 67%);
}
body.portada-v2 .ecosystem-inner {position:relative;z-index:2;max-width:1500px;margin:auto;width:100%;display:grid;grid-template-columns:.9fr 1.1fr;gap:5vw;align-items:center}
body.portada-v2 .network {position:relative;min-height:480px}
body.portada-v2 .network-center {
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:180px;height:180px;border-radius:50%;background:#0b1b24;border:1px solid #2c6e89;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  box-shadow:0 0 80px rgba(19,185,231,.15);
}
body.portada-v2 .network-center img {width:62px;height:62px;border-radius:12px}
body.portada-v2 .network-center strong {font-size:1.1rem}
body.portada-v2 .network-center small {font-size:.62rem;color:#7995a2;max-width:120px;margin-top:4px}
body.portada-v2 .node {position:absolute;padding:10px 16px;border:1px solid #28647f;border-radius:99px;background:#091b25;color:#b8d3de;font-size:.76rem;box-shadow:0 0 25px rgba(19,185,231,.08)}
body.portada-v2 .node::after {content:"";position:absolute;height:1px;background:linear-gradient(90deg,#2c7b9b,transparent);width:100px;top:50%}
body.portada-v2 .n1 {left:5%;top:18%}
body.portada-v2 .n1::after {left:100%}
body.portada-v2 .n2 {left:0;top:42%}
body.portada-v2 .n2::after {left:100%}
body.portada-v2 .n3 {left:8%;top:67%}
body.portada-v2 .n3::after {left:100%}
body.portada-v2 .n4 {left:24%;bottom:2%}
body.portada-v2 .n4::after {left:100%}
body.portada-v2 .n5 {right:5%;top:18%}
body.portada-v2 .n5::after {right:100%;transform:rotate(180deg)}
body.portada-v2 .n6 {right:0;top:42%}
body.portada-v2 .n6::after {right:100%;transform:rotate(180deg)}
body.portada-v2 .n7 {right:7%;top:67%}
body.portada-v2 .n7::after {right:100%;transform:rotate(180deg)}
body.portada-v2 .n8 {right:24%;bottom:2%}
body.portada-v2 .n8::after {right:100%;transform:rotate(180deg)}
body.portada-v2 footer {
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  padding:28px 5vw;background:#050b0f;border-top:1px solid #122934;color:#8199a5;font-size:.76rem
}
body.portada-v2 footer .brand {color:white}
body.portada-v2 .footer-links {display:flex;gap:18px;flex-wrap:wrap}
body.portada-v2 .reveal {opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
body.portada-v2 .reveal.visible {opacity:1;transform:none}
body.portada-v2 .hero {
  background:
    linear-gradient(90deg,rgba(3,11,16,.94) 0%,rgba(3,11,16,.82) 28%,rgba(3,11,16,.08) 54%,rgba(3,11,16,.43) 100%),
    linear-gradient(180deg,rgba(3,11,16,.08),rgba(3,11,16,.05) 68%,#071016 100%),
    url("../img/v2/css-ab25446e75.jpg") center/cover no-repeat;
}
body.portada-v2 .hero-people {display:none}
body.portada-v2 .hero-network {
  position:absolute;
  width:560px;height:400px;
  left:82%;top:50%;
  transform:translate(-50%,-50%) scale(.70);
  transform-origin:center;
  filter:drop-shadow(0 0 18px rgba(28,199,255,.12));
}
body.portada-v2 .hero-network-lines {position:absolute;z-index:0;inset:0;width:100%;height:100%;overflow:visible}
body.portada-v2 .hero-network-lines path {fill:none;stroke:#27cfff;stroke-width:1.8;opacity:.72;filter:drop-shadow(0 0 5px #14bfff)}
body.portada-v2 .hero-network-lines circle {fill:#65e8ff;filter:drop-shadow(0 0 8px #19c7ff)}
body.portada-v2 .hero-network-center {
  position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);
  width:250px;padding:48px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at center,rgba(7,22,31,.98) 0%,rgba(7,22,31,.94) 52%,rgba(7,22,31,0) 76%);
}
body.portada-v2 .hero-network-center img {width:205px;height:auto;display:block;margin:0 0 12px;object-position:center}
body.portada-v2 .hero-network-center small {display:block;color:#d2e2e8;font-size:.62rem;letter-spacing:.24em;line-height:1.65;font-weight:700}
body.portada-v2 .hero-node {
  position:absolute;z-index:2;display:flex;align-items:center;gap:10px;
  min-width:142px;color:#eef8fb;font-size:.8rem;font-weight:600;
}
body.portada-v2 .hero-node .node-icon {width:40px;height:40px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;background:#0c2633e8;box-shadow:0 0 18px color-mix(in srgb,currentColor 35%,transparent)}
body.portada-v2 .hero-node svg {width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}
body.portada-v2 .hero-node.nut {left:2%;top:8%;color:#55e58c}
body.portada-v2 .hero-node.train {left:0;top:31%;color:#39baff}
body.portada-v2 .hero-node.coach-n {left:4%;top:55%;color:#a77aff}
body.portada-v2 .hero-node.wear {left:9%;top:79%;color:#24d6d0}
body.portada-v2 .hero-node.progress {right:3%;top:8%;color:#59e68f}
body.portada-v2 .hero-node.photos {right:0;top:31%;color:#9073ff}
body.portada-v2 .hero-node.habits {right:3%;top:55%;color:#73df5c}
body.portada-v2 .hero-node.sleep {right:7%;top:79%;color:#8b72ff}
body.portada-v2 .hero-node.nut, body.portada-v2 .hero-node.train, body.portada-v2 .hero-node.coach-n, body.portada-v2 .hero-node.wear {width:170px;flex-direction:row-reverse;justify-content:flex-start;text-align:right}
body.portada-v2 .diagnose .section-inner {grid-template-columns:.72fr 1.28fr;gap:3vw}
body.portada-v2 .diagnose .device-stage {min-height:650px;justify-content:flex-start;padding-left:3%;perspective:1400px}
body.portada-v2 .diagnose .phone {position:relative;width:275px;min-height:570px;padding:31px 17px 18px;border:7px solid #080d12;border-radius:42px;background:linear-gradient(180deg,#0d1c27,#07131b);box-shadow:0 34px 70px #000b,inset 0 0 0 1px #40525c;overflow:hidden}
body.portada-v2 .diagnose .phone::before, body.portada-v2 .phone.slim::before, body.portada-v2 .food-phone::before {content:"";position:absolute;z-index:5;top:8px;left:50%;transform:translateX(-50%);width:82px;height:20px;border-radius:20px;background:#020609;box-shadow:inset 0 -1px #22323b}
body.portada-v2 .diagnose .phone::after, body.portada-v2 .phone.slim::after, body.portada-v2 .food-phone::after {content:"";position:absolute;top:14px;left:calc(50% + 22px);z-index:6;width:6px;height:6px;border-radius:50%;background:#132a37;box-shadow:0 0 0 2px #071015}
body.portada-v2 .diagnose-phone {transform:rotate(-3deg);z-index:3}
body.portada-v2 .diagnose .app-brand {flex-direction:column;justify-content:center;text-align:center;gap:4px;margin-top:4px}
body.portada-v2 .diagnose .app-brand img {width:52px;height:40px;border-radius:0;object-fit:contain}
body.portada-v2 .diagnose .app-brand strong {display:block;font-size:.88rem}
body.portada-v2 .phone-plan {margin-left:-10px;transform:rotate(2deg) translateY(22px);z-index:2;width:310px!important}
body.portada-v2 .phone-plan {width:445px!important;min-height:500px!important}
body.portada-v2 .phone-plan .calendar-head {display:flex;margin:2px 0 14px;align-items:flex-start}
body.portada-v2 .phone-plan .calendar-head strong {display:block;font-size:1.05rem;margin:4px 0}
body.portada-v2 .phone-plan .calendar-head span {display:block;font-size:.68rem}
body.portada-v2 .phone-plan .days {grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}
body.portada-v2 .phone-plan .days div {text-align:center}
body.portada-v2 .phone-plan .days b {font-size:.61rem;margin:0 0 6px}
body.portada-v2 .phone-plan .days span {min-height:112px;padding:9px 5px;font-size:.59rem;line-height:1.45}
body.portada-v2 .phone-plan .days div:nth-child(n+5) span {min-height:92px}
body.portada-v2 .phone-plan .week-link {width:auto;white-space:nowrap;margin:0;padding:8px 10px;border-color:#087dcc;color:#61d9ff;background:#082131;font-size:.62rem;text-align:center}
body.portada-v2 .macro-card label>span {display:flex;align-items:center;gap:7px}
body.portada-v2 .plan-benefits {margin-left:18px;width:210px;display:grid;gap:14px;color:#d9e8ed}
body.portada-v2 .plan-benefits h3 {font-size:1rem;margin:0 0 4px;color:#70ddff}
body.portada-v2 .plan-benefits div {display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start;font-size:.76rem;line-height:1.35}
body.portada-v2 .plan-benefits i {width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#49e88b;color:#052416;font-style:normal;font-weight:900}
body.portada-v2 .store-badges {display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
body.portada-v2 .store-badge {display:flex;align-items:center;gap:10px;min-width:158px;padding:9px 13px;border:1px solid #52636d;border-radius:11px;background:#030608;color:#fff}
body.portada-v2 .store-badge svg {width:25px;height:25px;fill:currentColor}
body.portada-v2 .store-badge small {display:block;font-size:.56rem;color:#c7d0d5}
body.portada-v2 .store-badge strong {display:block;font-size:.9rem;line-height:1.1}
body.portada-v2 .store-note {display:block;margin-top:8px;color:#78919d;font-size:.68rem}
@media (max-width:1100px) {body.portada-v2 .desktop-nav, body.portada-v2 .login {display:none}
body.portada-v2 .menu-btn {display:block}
body.portada-v2 .hero {grid-template-columns:1fr;padding-top:120px}
body.portada-v2 .hero-visual {min-height:560px}
body.portada-v2 .section-inner, body.portada-v2 .section-inner.wide, body.portada-v2 .ecosystem-inner {grid-template-columns:1fr}
body.portada-v2 .section-copy {max-width:760px}
body.portada-v2 .calendar-card {position:relative;right:auto;top:auto;width:min(100%,560px);margin-left:-30px}
body.portada-v2 .device-stage {gap:15px;justify-content:center}
body.portada-v2 .nutrition-stage {min-height:650px}
body.portada-v2 .phones-row {grid-template-columns:repeat(2,1fr)}
body.portada-v2 .wearables-stage {flex-wrap:wrap}
body.portada-v2 .connect-card {min-width:100%}
body.portada-v2 .coach-grid {grid-template-columns:1fr 1fr}
body.portada-v2 .photos-card {grid-column:1/-1}
body.portada-v2 .mobile-menu {
    position:fixed;z-index:49;right:16px;top:76px;display:none;flex-direction:column;gap:4px;padding:12px;
    border:1px solid #244353;border-radius:16px;background:#08171fef;backdrop-filter:blur(14px)
  }
body.portada-v2 .mobile-menu.open {display:flex}
body.portada-v2 .mobile-menu a {padding:10px 14px}

}
@media (max-width:720px) {body.portada-v2 .site-header {padding:12px 16px}
body.portada-v2 .brand {font-size:1.05rem}
body.portada-v2 .brand img {width:auto;height:26px}
body.portada-v2 .header-actions .compact {display:none}
body.portada-v2 .hero {padding:110px 20px 90px}
body.portada-v2 h1 {font-size:3.15rem}
body.portada-v2 .hero-meta {gap:12px;flex-wrap:wrap}
body.portada-v2 .hero-meta div {padding-right:12px}
body.portada-v2 .hero-visual {min-height:520px}
body.portada-v2 .person {height:72%}
body.portada-v2 .person-f {left:5%}
body.portada-v2 .person-m {right:2%}
body.portada-v2 .hero-network {width:520px;height:390px;left:50%;transform:translate(-50%,-50%) scale(.58)}
body.portada-v2 .card-calories {top:2%;right:0;width:250px}
body.portada-v2 .card-workout {top:33%;right:0;width:255px}
body.portada-v2 .card-ai {top:59%;right:2%;width:235px}
body.portada-v2 .stack-section {width:100%;border-radius:0;padding:78px 20px 70px}
body.portada-v2 .section-copy h2 {font-size:2.7rem}
body.portada-v2 .signal-grid {grid-template-columns:1fr 1fr}
body.portada-v2 .device-stage {flex-direction:column;min-height:unset}
body.portada-v2 .calendar-card {margin:0;width:100%}
body.portada-v2 .days {grid-template-columns:repeat(4,1fr)}
body.portada-v2 .diagnose .device-stage {padding-left:0;gap:18px}
body.portada-v2 .diagnose-phone, body.portada-v2 .phone-plan {transform:none;margin-left:0}
body.portada-v2 .plan-benefits {width:100%;margin:8px 0 0;grid-template-columns:1fr 1fr}
body.portada-v2 .plan-benefits h3 {grid-column:1/-1}
body.portada-v2 .nutrition-stage {display:flex;flex-direction:column;gap:12px;min-height:unset}
body.portada-v2 .food-phone, body.portada-v2 .analysis-card, body.portada-v2 .meal-card, body.portada-v2 .macro-card {position:relative!important;inset:auto!important;width:100%;transform:none}
body.portada-v2 .food-phone {width:100%}
body.portada-v2 .phones-row {grid-template-columns:1fr}
body.portada-v2 .phone.slim {min-height:auto}
body.portada-v2 .wearables-stage {justify-content:center}
body.portada-v2 .watch {transform:scale(.9)}
body.portada-v2 .coach-grid {grid-template-columns:1fr}
body.portada-v2 .photos-card {grid-column:auto}
body.portada-v2 .network {transform:scale(.86);margin:-20px -30px}
body.portada-v2 footer {align-items:flex-start}
body.portada-v2 .footer-links {gap:12px}

}
body.portada-v2 .diagnose {overflow:visible}
body.portada-v2 .diagnose .section-inner {max-width:1700px;grid-template-columns:430px minmax(0,1fr);gap:34px}
body.portada-v2 .diagnose .device-stage {min-height:620px;padding-left:0;display:grid;grid-template-columns:260px 340px minmax(210px,260px);gap:14px;justify-content:center;overflow:visible}
body.portada-v2 .diagnose .phone {width:260px;min-height:555px}
body.portada-v2 .diagnose .phone-plan {width:340px!important;min-height:555px!important;margin-left:0;transform:rotate(1deg) translateY(8px)}
body.portada-v2 .phone-plan .days span {min-height:92px}
body.portada-v2 .phone-plan .days div:nth-child(n+5) span {min-height:78px}
body.portada-v2 .plan-benefits {width:auto;min-width:0;margin-left:4px}
body.portada-v2 .plan-benefits h3, body.portada-v2 .plan-benefits span {overflow-wrap:anywhere}
body.portada-v2 .app-section {min-height:620px;padding:54px 4vw}
body.portada-v2 .app-section .section-inner.wide {width:100%;max-width:1760px;grid-template-columns:270px minmax(0,1fr);gap:28px;overflow:visible}
body.portada-v2 .app-section .section-copy h2 {font-size:clamp(2rem,2.35vw,2.75rem);line-height:1.02;margin:10px 0 16px}
body.portada-v2 .app-section .section-copy p {font-size:.86rem;line-height:1.48;margin-bottom:18px}
body.portada-v2 .app-section .phones-row {display:grid;grid-template-columns:repeat(4,minmax(172px,215px)) minmax(155px,175px);justify-content:space-between;gap:10px;align-items:end;overflow:visible}
body.portada-v2 .app-section .phone.slim {height:500px;min-height:500px;padding:28px 12px 42px;border:5px solid #17232b;border-radius:30px;background:linear-gradient(160deg,#0b202b,#061118 72%);box-shadow:0 22px 34px #0009,inset 0 0 0 1px #38505c;position:relative;overflow:hidden}
body.portada-v2 .app-section .exercise-list li {min-height:48px;font-size:.59rem;grid-template-columns:42px minmax(0,1fr) auto;gap:7px;padding:5px 0}
body.portada-v2 .app-section .exercise-demo {width:42px;height:38px;border-radius:7px;background-color:#07131b}
body.portada-v2 .app-section .exercise-demo svg, body.portada-v2 .app-section .exercise-demo::after {display:none}
body.portada-v2 .app-section .exercise-list li:nth-child(1) .exercise-demo {background-position:center 0%}
body.portada-v2 .app-section .exercise-list li:nth-child(2) .exercise-demo {background-position:center 25%}
body.portada-v2 .app-section .exercise-list li:nth-child(3) .exercise-demo {background-position:center 50%}
body.portada-v2 .app-section .exercise-list li:nth-child(4) .exercise-demo {background-position:center 75%}
body.portada-v2 .app-section .exercise-list li:nth-child(5) .exercise-demo {background-position:center 100%}
body.portada-v2 .app-section .phone-cta {position:absolute;left:12px;right:12px;bottom:38px;margin:0}
body.portada-v2 .app-section .phone.slim::after {content:"⌂   ◉   ＋   ◇   ♙";position:absolute;left:0;right:0;top:auto;bottom:0;width:auto;height:29px;padding-top:7px;text-align:center;letter-spacing:10px;font-size:.56rem;color:#93aab4;background:#071219;border-radius:0;border-top:1px solid #19323e;box-shadow:none;transform:none}
body.portada-v2 .app-section .mini-week {grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px}
body.portada-v2 .app-section .mini-week span {min-width:0;min-height:72px;padding:8px 3px;font-size:.52rem;line-height:1.35}
body.portada-v2 .app-section .app-features {width:100%;padding-left:5px;align-self:center}
body.portada-v2 .app-section .app-feature {white-space:nowrap}
body.portada-v2 .wearables {min-height:560px;padding:55px 4vw}
body.portada-v2 .wearables .section-inner {max-width:1700px;grid-template-columns:330px minmax(0,1fr);gap:40px}
body.portada-v2 .wearables-stage {min-height:400px;justify-content:flex-end}
body.portada-v2 .wearable-products {width:620px;height:390px;flex:0 1 620px;background-image:url("../img/v2/css-9d8622c36c.jpg");background-size:cover;background-position:center;filter:none}
body.portada-v2 .connect-card {max-width:370px;min-width:300px;background:rgba(5,22,30,.88);backdrop-filter:blur(12px)}
body.portada-v2 .coach {min-height:0;padding:48px 4vw}
body.portada-v2 .coach .section-inner.wide {max-width:1700px;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:center}
/* Corrección post-QA: el H2 original (clamp 2.7–4.4rem) dominaba la
   columna izquierda y dejaba hueco vacío debajo — las tres tarjetas de la
   derecha son el contenido real de esta sección y tenían que ganar peso
   visual frente al titular, no al revés. */
body.portada-v2 .coach .section-copy .eyebrow {margin-bottom:10px}
body.portada-v2 .coach .section-copy h2 {font-size:clamp(1.7rem,2.1vw,2.35rem);line-height:1.08;margin:0 0 10px}
body.portada-v2 .coach .section-copy p {font-size:.86rem;line-height:1.5;margin-bottom:16px}
body.portada-v2 .coach-grid {grid-template-columns:1.18fr .98fr 1.05fr;gap:12px}
body.portada-v2 .chat-card, body.portada-v2 .habits-card, body.portada-v2 .photos-card {min-height:390px;background:linear-gradient(160deg,rgba(12,38,50,.96),rgba(5,20,28,.96));border:1px solid #2b5668}
body.portada-v2 .progress-photo {height:260px;background-repeat:no-repeat}
body.portada-v2 .progress-photo.before {background-position:left center}
body.portada-v2 .progress-photo.after {background-position:right center}
body.portada-v2 .progress-photo::before {display:none}
body.portada-v2 .ecosystem {min-height:650px;background:linear-gradient(90deg,#041016 0 33%,rgba(4,16,22,.55) 64%,#041016 100%),radial-gradient(circle at 75% 50%,rgba(0,188,235,.18),transparent 36%),url("../img/v2/css-9d8622c36c.jpg") center/cover no-repeat}
body.portada-v2 .ecosystem-inner {max-width:1680px;grid-template-columns:540px minmax(0,1fr);gap:4vw}
body.portada-v2 .ecosystem .section-copy h2 {font-size:clamp(3rem,4.3vw,5rem);line-height:.98}
body.portada-v2 .ecosystem .network {display:grid;grid-template-columns:repeat(4,1fr);gap:12px;min-height:auto}
body.portada-v2 .ecosystem .network-center {position:relative;left:auto;top:auto;transform:none;grid-column:1/-1;justify-self:center;width:200px;height:200px}
body.portada-v2 .ecosystem .node {position:relative;inset:auto!important;text-align:center;padding:12px 8px}
body.portada-v2 .ecosystem .node::after {display:none}
@media(max-width:1180px) {body.portada-v2 .diagnose .section-inner, body.portada-v2 .app-section .section-inner.wide {grid-template-columns:1fr}
body.portada-v2 .diagnose .device-stage {grid-template-columns:260px 340px}
body.portada-v2 .plan-benefits {grid-column:1/-1}
body.portada-v2 .app-section .phones-row {grid-template-columns:repeat(2,minmax(180px,1fr));max-width:900px;margin:auto}
body.portada-v2 .app-section .app-features {grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr)}
body.portada-v2 .wearables .section-inner, body.portada-v2 .coach .section-inner.wide, body.portada-v2 .ecosystem-inner {grid-template-columns:1fr}
body.portada-v2 .wearables-stage {justify-content:center}
body.portada-v2 .coach-grid {grid-template-columns:1fr 1fr}
body.portada-v2 .photos-card {grid-column:1/-1}
body.portada-v2 .ecosystem .section-copy {max-width:680px}
}
@media(max-width:720px) {body.portada-v2 .diagnose .device-stage, body.portada-v2 .app-section .phones-row {grid-template-columns:1fr}
body.portada-v2 .diagnose .phone, body.portada-v2 .diagnose .phone-plan {width:min(100%,340px)!important;margin:auto}
body.portada-v2 .app-section .app-features {grid-template-columns:1fr 1fr}
body.portada-v2 .wearables {background-position:58% center}
body.portada-v2 .wearables-stage {display:block}
body.portada-v2 .wearable-products {width:100%;height:280px}
body.portada-v2 .connect-card {min-width:0}
body.portada-v2 .coach-grid {grid-template-columns:1fr}
body.portada-v2 .photos-card {grid-column:auto}
body.portada-v2 .ecosystem .network {grid-template-columns:1fr 1fr}
body.portada-v2 .ecosystem .section-copy h2 {font-size:2.7rem}
}
body.portada-v2 .app-section .phones-row {grid-template-columns:repeat(4,minmax(195px,225px)) minmax(170px,190px);gap:12px;align-items:center}
body.portada-v2 .app-section .phone.slim {height:438px;min-height:438px;padding:27px 12px 38px;border-radius:29px}
body.portada-v2 .app-section .exercise-list {margin:7px 0}
body.portada-v2 .app-section .exercise-list li {min-height:39px;font-size:.56rem;grid-template-columns:38px minmax(0,1fr) auto;gap:6px;padding:3px 0}
body.portada-v2 .app-section .exercise-demo {width:38px;height:33px;background-image:url("../img/v2/css-1ee9894704.jpg")!important;background-size:100% 500%!important}
body.portada-v2 .app-section .phone-cta {bottom:34px;padding:9px 5px}
body.portada-v2 .app-section .progress-screen {display:grid;gap:8px;margin-top:10px}
body.portada-v2 .app-section .progress-chart-card {padding:10px;border-radius:12px;background:linear-gradient(145deg,#0e2c39,#0a1d27);border:1px solid #173d4b}
body.portada-v2 .app-section .progress-chart-card header {display:flex;justify-content:space-between;align-items:end;margin-bottom:5px}
body.portada-v2 .app-section .progress-chart-card small {color:#88a2ad;font-size:.53rem}
body.portada-v2 .app-section .progress-chart-card strong {font-size:1rem}
body.portada-v2 .app-section .progress-chart-card em {color:#43e48b;font-size:.53rem;font-style:normal}
body.portada-v2 .app-section .progress-chart {display:block;width:100%;height:55px;overflow:visible}
body.portada-v2 .app-section .chart-grid {stroke:#1c3c49;stroke-width:1}
body.portada-v2 .app-section .chart-area {fill:url(#progressFill);opacity:.35}
body.portada-v2 .app-section .chart-line {fill:none;stroke:#2ba9ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
body.portada-v2 .app-section .chart-dot {fill:#5ee9ff;stroke:#07151d;stroke-width:2}
body.portada-v2 .wearables {background-image:none!important}
body.portada-v2 .progress-photo {background-image:url("../img/v2/css-9da1b17811.jpg")!important;background-size:200% 100%!important}
body.portada-v2 .progress-photo.before {background-position:left center!important}
body.portada-v2 .progress-photo.after {background-position:right center!important}
@media(max-width:1180px) {body.portada-v2 .app-section .phones-row {grid-template-columns:repeat(2,minmax(210px,240px));justify-content:center}
body.portada-v2 .app-section .app-features {max-width:500px;justify-self:center}
}
@media(max-width:720px) {body.portada-v2 .app-section .phones-row {grid-template-columns:minmax(210px,240px)}
}
body.portada-v2 .app-section .section-inner.wide {grid-template-columns:270px minmax(0,1fr)}
body.portada-v2 .app-section .phones-row {display:flex;justify-content:flex-end;align-items:center;gap:0;padding:24px 0 18px 28px;isolation:isolate}
body.portada-v2 .app-section .phone.slim {flex:0 0 220px;width:220px;height:430px;min-height:430px;transition:transform .25s ease;box-shadow:0 24px 45px #000c,inset 0 0 0 1px #38505c}
body.portada-v2 .app-section .phone.slim:nth-of-type(1) {z-index:4;transform:rotate(-2deg) translateY(8px)}
body.portada-v2 .app-section .phone.slim:nth-of-type(2) {z-index:2;margin-left:-32px;transform:rotate(1.3deg) translateY(-13px)}
body.portada-v2 .app-section .phone.slim:nth-of-type(3) {z-index:5;margin-left:-30px;transform:rotate(-.8deg) translateY(12px)}
body.portada-v2 .app-section .phone.slim:nth-of-type(4) {z-index:3;margin-left:-31px;transform:rotate(1.6deg) translateY(-8px)}
body.portada-v2 .app-section .phone.slim:hover {z-index:9;transform:translateY(-18px) scale(1.03)}
body.portada-v2 .app-section .app-features {flex:0 0 178px;margin-left:18px}
body.portada-v2 .ecosystem {min-height:760px;padding:74px 4vw;background-image:linear-gradient(90deg,rgba(3,12,17,.96) 0 29%,rgba(3,12,17,.25) 43%,rgba(3,12,17,.18) 64%,rgba(3,12,17,.88) 100%),url("../img/v2/css-1d7b0bdb44.jpg")!important;background-size:cover!important;background-position:center!important}
body.portada-v2 .ecosystem::before {background:linear-gradient(180deg,#06111755,#06111708 60%,#061117cc)}
body.portada-v2 .ecosystem-inner {max-width:1840px;grid-template-columns:480px minmax(0,1fr);gap:24px}
body.portada-v2 .ecosystem .section-copy {align-self:center}
body.portada-v2 .ecosystem .section-copy h2 {font-size:clamp(3rem,4vw,4.8rem)}
body.portada-v2 .final-system {min-height:610px;display:grid;grid-template-columns:minmax(210px,1fr) 180px minmax(240px,1.08fr);gap:18px;align-items:center;position:relative}
body.portada-v2 .data-column {display:grid;gap:10px}
body.portada-v2 .data-column>small {font-size:.62rem;letter-spacing:.18em;line-height:1.5;color:#9ddde9;font-weight:800;margin-bottom:5px}
body.portada-v2 .data-column article {display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:13px 14px;border:1px solid #326273;border-radius:14px;background:linear-gradient(135deg,rgba(10,37,47,.92),rgba(7,24,32,.82));box-shadow:0 12px 28px #0005;backdrop-filter:blur(9px);font-size:.64rem;color:#94aab3;line-height:1.45}
body.portada-v2 .data-column article i {width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#74e9e0;font-size:1.1rem;font-style:normal}
body.portada-v2 .data-column article b {display:block;color:#fff;font-size:.75rem;margin-bottom:2px}
body.portada-v2 .data-column article strong {display:inline;color:#fff;font-size:.82rem;margin-right:4px}
body.portada-v2 .output-data article {border-color:#479d90}
body.portada-v2 .output-data article:nth-child(3) {border-color:#aa8a4f}
body.portada-v2 .system-core {width:174px;height:174px;border-radius:50%;justify-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#06151ddd;border:1px solid #5ee6df;box-shadow:0 0 0 8px #0b293188,0 0 60px #37d9d955}
body.portada-v2 .system-core img {width:64px;height:54px;object-fit:contain}
body.portada-v2 .system-core strong {font-size:1rem}
body.portada-v2 .system-core small {font-size:.48rem;letter-spacing:.12em;color:#9fc1c7;line-height:1.6;margin-top:6px}
@media(max-width:1300px) {body.portada-v2 .app-section .phones-row {justify-content:center;flex-wrap:wrap;padding-left:0}
body.portada-v2 .app-section .phone.slim:nth-of-type(n) {margin-left:-18px}
body.portada-v2 .app-section .app-features {flex-basis:100%;max-width:760px;display:grid;grid-template-columns:repeat(4,1fr)}
body.portada-v2 .final-system {grid-template-columns:1fr 160px 1fr}
}
@media(max-width:900px) {body.portada-v2 .app-section .phone.slim:nth-of-type(n) {margin:0 -24px 0 0;transform:scale(.9)}
body.portada-v2 .final-system {grid-template-columns:1fr}
body.portada-v2 .system-core {grid-row:1}
body.portada-v2 .ecosystem {background-position:55% center}
body.portada-v2 .data-column {max-width:520px;margin:auto;width:100%}
}
@media(max-width:600px) {body.portada-v2 .app-section .phones-row {display:grid;grid-template-columns:1fr}
body.portada-v2 .app-section .phone.slim:nth-of-type(n) {margin:auto;transform:none}
body.portada-v2 .app-section .app-features {grid-template-columns:1fr 1fr}
body.portada-v2 .ecosystem {background-position:58% center}
body.portada-v2 .ecosystem .section-copy {background:#061117c9;padding:18px;border-radius:18px}
}
body.portada-v2 .hero .hero-stage::after, body.portada-v2 .diagnose .device-stage::after, body.portada-v2 .nutrition .nutrition-stage::after, body.portada-v2 .app-section .phones-row::after, body.portada-v2 .wearables .wearables-stage::after, body.portada-v2 .coach .coach-grid::after, body.portada-v2 .ecosystem .final-system::after {position:absolute;z-index:8;color:#e9f5f8;font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;font-style:italic;font-weight:500;font-size:clamp(.78rem,1.15vw,1.15rem);line-height:1.35;letter-spacing:.01em;white-space:pre-line;text-shadow:0 2px 9px #000,0 0 1px #fff;pointer-events:none;transform:rotate(-7deg)}
body.portada-v2 .hero .hero-stage::after {content:"Disciplina hoy.\A Una mejor versión mañana.";right:4%;bottom:8%;text-align:right}
body.portada-v2 .diagnose .device-stage::after {content:"Tu plan...\A A tu manera.";right:1%;bottom:2%;text-align:right}
body.portada-v2 .nutrition .nutrition-stage::after {content:"Comer bien...\A también es progreso.";left:0;bottom:0;transform:rotate(-6deg)}
body.portada-v2 .app-section .phones-row::after {content:"Más que una app.\A Es tu compañero de progreso.";right:0;bottom:-4px;text-align:right}
body.portada-v2 .wearables .wearables-stage::after {content:"Tus datos.\A Un plan más inteligente.";right:1%;bottom:1%;text-align:right}
body.portada-v2 .coach .coach-grid {position:relative}
body.portada-v2 .coach .coach-grid::after {content:"Misma persona.\A Una versión más fuerte.";right:1%;bottom:1%;text-align:right}
body.portada-v2 .ecosystem .final-system::after {content:"Mismos datos. Mejores decisiones.\A Un mejor tú.";right:1%;bottom:-12px;text-align:right;color:#8ef0e3}
@media(max-width:900px) {body.portada-v2 .hero .hero-stage::after, body.portada-v2 .diagnose .device-stage::after, body.portada-v2 .nutrition .nutrition-stage::after, body.portada-v2 .app-section .phones-row::after, body.portada-v2 .wearables .wearables-stage::after, body.portada-v2 .coach .coach-grid::after, body.portada-v2 .ecosystem .final-system::after {font-size:.78rem;opacity:.85}
body.portada-v2 .app-section .phones-row::after {bottom:-18px}
}
body.portada-v2 .coach {background-image:none!important}
body.portada-v2 .coach .chat-card, body.portada-v2 .coach .habits-card, body.portada-v2 .coach .photos-card {background:linear-gradient(155deg,rgba(8,36,47,.91),rgba(4,20,28,.86));backdrop-filter:blur(13px);box-shadow:0 20px 45px #0008,inset 0 1px 0 #ffffff0d}
body.portada-v2 .app-section .phone.slim::after {content:none!important;display:none!important}
body.portada-v2 .phone-nav {position:absolute;z-index:12;left:0;right:0;bottom:0;height:44px;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;padding:4px 8px;background:rgba(3,15,22,.98);border-top:1px solid #23404c}
body.portada-v2 .phone-nav span {min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;color:#78919c;font-size:.43rem;line-height:1}
body.portada-v2 .phone-nav svg {width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.portada-v2 .phone-nav .active {color:#25c7ff}
body.portada-v2 .phone-nav .plus {width:29px;height:29px;border-radius:50%;justify-self:center;color:white;background:linear-gradient(135deg,#1678ff,#20c8ec)}
body.portada-v2 .phone-nav .plus svg {width:16px;height:16px}
body.portada-v2 .app-section .phone-cta {bottom:48px}
body.portada-v2 .app-section .phones-row::after {content:none!important}
body.portada-v2 .app-section .app-features::after {content:"Más que una app.\A Es tu compañero de progreso.";display:block;margin:20px 0 0 -12px;color:#edf8fa;font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;font-style:italic;font-size:.9rem;line-height:1.35;white-space:pre-line;text-shadow:0 2px 8px #000;transform:rotate(-6deg)}
body.portada-v2 .photo-pair {grid-template-columns:repeat(2,minmax(145px,1fr));gap:14px}
body.portada-v2 .progress-photo {height:auto!important;aspect-ratio:4/5;max-height:225px;background-size:200% 100%!important}
body.portada-v2 .coach .coach-grid::after {content:none!important}
body.portada-v2 .photos-card::after {content:"Misma persona.\A Una versión más fuerte.";display:block;margin:3px 4px 0 auto;width:max-content;color:#edf8fa;font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;font-style:italic;font-size:.84rem;line-height:1.3;white-space:pre-line;text-align:right;text-shadow:0 2px 8px #000;transform:rotate(-6deg)}
body.portada-v2 .diagnose .device-stage {grid-template-columns:270px 300px minmax(205px,245px);gap:0;align-items:center}
body.portada-v2 .diagnose .phone {width:270px;min-height:535px;max-height:535px}
body.portada-v2 .diagnose .phone-plan {width:300px!important;min-height:510px!important;max-height:510px!important;margin-left:-22px;transform:rotate(1.5deg) translateY(8px);overflow:hidden}
body.portada-v2 .phone-plan .days span {min-height:76px!important}
body.portada-v2 .final-system {grid-template-columns:minmax(190px,.92fr) 150px 155px minmax(220px,1.05fr);gap:10px}
body.portada-v2 .body-metrics {height:470px;position:relative;align-self:center}
body.portada-v2 .body-metrics::before {content:"";position:absolute;left:74px;top:78px;bottom:62px;border-left:2px dotted rgba(112,237,224,.72)}
body.portada-v2 .body-metrics span {position:absolute;left:66px;width:84px;color:#fff;font-size:.58rem;font-weight:700;padding-left:18px;text-shadow:0 2px 8px #000}
body.portada-v2 .body-metrics span::before {content:"";position:absolute;left:0;top:2px;width:11px;height:11px;border:2px solid #69eee1;border-radius:50%;background:#0a2830;box-shadow:0 0 0 5px #42d9ce25,0 0 16px #42e6d8}
body.portada-v2 .body-metrics span::after {content:"";position:absolute;right:100%;top:7px;width:95px;border-top:1px solid #73e8dc;filter:drop-shadow(0 0 4px #58ddd2)}
body.portada-v2 .body-metrics span:nth-child(1) {top:88px}
body.portada-v2 .body-metrics span:nth-child(2) {top:190px}
body.portada-v2 .body-metrics span:nth-child(3) {top:292px}
body.portada-v2 .body-metrics span:nth-child(4) {top:392px}
body.portada-v2 .body-metrics span small {display:block;margin-top:3px;color:#86a8b1;font-size:.4rem;letter-spacing:.12em}
body.portada-v2 .input-data article {position:relative}
body.portada-v2 .input-data article::after {content:"";position:absolute;left:100%;top:50%;width:64px;border-top:1px solid #73e8dc;filter:drop-shadow(0 0 4px #58ddd2)}
body.portada-v2 .system-core {position:relative}
body.portada-v2 .system-core::before {content:"";position:absolute;right:100%;top:50%;width:58px;border-top:2px solid #73e8dc;filter:drop-shadow(0 0 6px #58ddd2)}
body.portada-v2 .output-data article {position:relative}
body.portada-v2 .output-data article::before {content:"";position:absolute;right:100%;top:50%;width:72px;border-top:1px solid #73e8dc;filter:drop-shadow(0 0 4px #58ddd2)}
body.portada-v2 .typing-indicator {display:none;color:#78aeb9;font-size:.72rem;margin:8px 0 0 16px}
body.portada-v2 .typing-indicator.on {display:flex;gap:4px}
body.portada-v2 .typing-indicator i {width:5px;height:5px;border-radius:50%;background:#54dfec;animation:v2TypeDot 1s infinite alternate}
body.portada-v2 .typing-indicator i:nth-child(2) {animation-delay:.2s}
body.portada-v2 .typing-indicator i:nth-child(3) {animation-delay:.4s}
@keyframes v2TypeDot {to {transform:translateY(-4px);opacity:.35}
}
@media(max-width:1100px) {body.portada-v2 .photo-pair {grid-template-columns:repeat(2,minmax(120px,1fr))}
body.portada-v2 .final-system {grid-template-columns:1fr 120px 140px 1fr}
body.portada-v2 .body-metrics span::after, body.portada-v2 .input-data article::after, body.portada-v2 .output-data article::before {width:38px}
}
@media(max-width:900px) {body.portada-v2 .diagnose .device-stage {grid-template-columns:245px 270px;justify-content:center}
body.portada-v2 .diagnose .phone {width:245px}
body.portada-v2 .diagnose .phone-plan {width:270px!important;margin-left:-30px}
body.portada-v2 .plan-benefits {grid-column:1/-1}
body.portada-v2 .body-metrics {display:none}
body.portada-v2 .final-system {grid-template-columns:1fr}
body.portada-v2 .input-data article::after, body.portada-v2 .output-data article::before, body.portada-v2 .system-core::before {display:none}
body.portada-v2 .app-section .app-features::after {margin-left:0}
body.portada-v2 .progress-photo {max-height:none}
}
@media(prefers-reduced-motion:reduce) {body.portada-v2 .typing-indicator i {animation:none}
}
body.portada-v2 .food-phone {width:310px!important;height:570px;min-height:570px;padding:32px 15px 54px!important;transform:rotate(-1deg)!important;overflow:hidden}
body.portada-v2 .app-screen-head, body.portada-v2 .analysis-top {display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:6px;margin:2px 0 10px}
body.portada-v2 .app-screen-head h3 {margin:0;font-size:1.1rem}
body.portada-v2 .app-screen-head button, body.portada-v2 .analysis-top button {margin:0!important;padding:0!important;border:0!important;background:transparent!important;font-size:1.45rem;text-align:left}
body.portada-v2 .meal-selector {display:flex;gap:5px;overflow:hidden;margin-bottom:10px}
body.portada-v2 .meal-selector span {padding:6px 8px;border-radius:14px;background:#0d2732;color:#91aab3;font-size:.54rem}
body.portada-v2 .meal-selector .active {background:#0f70da;color:white}
body.portada-v2 .food-phone .food-shot {height:250px!important;border-radius:15px}
body.portada-v2 .food-phone>button.photo-btn, body.portada-v2 .food-phone>button.gallery-btn {height:58px;margin:8px 0 0!important;padding:8px 10px!important;display:grid;grid-template-columns:30px 1fr 12px;align-items:center;gap:8px;text-align:left;border-radius:13px}
body.portada-v2 .food-phone>button svg {width:25px;height:25px;fill:none;stroke:#35cafa;stroke-width:1.7}
body.portada-v2 .food-phone>button span {font-size:.7rem;font-weight:750}
body.portada-v2 .food-phone>button small {display:block;margin-top:3px;color:#7e9aa5;font-size:.47rem;font-weight:400}
body.portada-v2 .food-phone>button b {font-size:1.2rem}
body.portada-v2 .food-nav, body.portada-v2 .plan-nav {position:absolute;z-index:10;left:0;right:0;bottom:0;height:45px;display:grid;align-items:center;background:#06141cfa;border-top:1px solid #24404d}
body.portada-v2 .food-nav {grid-template-columns:repeat(5,1fr)}
body.portada-v2 .plan-nav {grid-template-columns:repeat(4,1fr)}
body.portada-v2 .food-nav span, body.portada-v2 .plan-nav span {display:flex;flex-direction:column;align-items:center;gap:1px;color:#7d98a3;font-size:.42rem}
body.portada-v2 .food-nav i {font-style:normal;font-size:.8rem}
body.portada-v2 .food-nav .active, body.portada-v2 .plan-nav .active {color:#21c7ff}
body.portada-v2 .plan-nav svg {width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.portada-v2 .app-analysis {left:31%!important;top:5%!important;width:285px!important;min-height:430px;padding:28px 17px 18px!important;border:5px solid #172832!important;border-radius:30px!important;background:linear-gradient(160deg,#0b2530,#06131a)!important;box-shadow:0 22px 45px #000b!important;transform:rotate(1deg);z-index:4}
body.portada-v2 .analysis-top {grid-template-columns:24px 1fr 24px;margin-bottom:14px}
body.portada-v2 .analysis-top strong {text-align:center;font-size:.7rem}
body.portada-v2 .app-analysis .card-title {margin-top:8px}
body.portada-v2 .app-analysis .save-meal {width:100%;margin-top:16px!important;padding:11px!important;border:0!important;border-radius:12px!important;background:linear-gradient(135deg,#167aff,#22c8e9)!important;color:white;font-weight:800}
body.portada-v2 .nutrition .nutrition-stage::after {left:2%;bottom:-8px}
body.portada-v2 .ecosystem {min-height:820px;padding:40px 3vw;background-position:center!important}
body.portada-v2 .ecosystem-inner {display:block!important;max-width:1780px!important}
body.portada-v2 .ecosystem .section-copy {display:none}
body.portada-v2 .final-system {width:100%;min-height:720px;grid-template-columns:330px 250px 235px minmax(350px,430px)!important;justify-content:space-between;gap:12px!important;isolation:isolate}
body.portada-v2 .system-connections {position:absolute;z-index:1;inset:24px 0 0;width:100%;height:650px;overflow:visible}
body.portada-v2 .system-connections path {fill:none;stroke:#72ebdf;stroke-width:2;filter:url(#lineGlow)}
body.portada-v2 .system-connections path.gold {stroke:#f1c86f}
body.portada-v2 .data-column, body.portada-v2 .body-metrics, body.portada-v2 .system-core {z-index:2}
body.portada-v2 .input-data {align-self:center}
body.portada-v2 .output-data {align-self:center}
body.portada-v2 .data-column article {min-height:88px;padding:14px 16px!important;border-radius:18px!important;background:linear-gradient(135deg,rgba(7,32,41,.95),rgba(5,21,28,.9))!important}
body.portada-v2 .data-column article::before, body.portada-v2 .data-column article::after, body.portada-v2 .system-core::before {display:none!important}
body.portada-v2 .body-metrics {height:540px;transform:translateX(15px)}
body.portada-v2 .body-metrics::before {left:105px;top:72px;bottom:48px}
body.portada-v2 .body-metrics span {left:97px}
body.portada-v2 .body-metrics span:nth-child(1) {top:78px}
body.portada-v2 .body-metrics span:nth-child(2) {top:195px}
body.portada-v2 .body-metrics span:nth-child(3) {top:312px}
body.portada-v2 .body-metrics span:nth-child(4) {top:430px}
body.portada-v2 .body-metrics span::after {display:none}
body.portada-v2 .system-core {width:220px;height:220px;transform:translateX(-8px);box-shadow:0 0 0 9px #0b293199,0 0 75px #37d9d977}
body.portada-v2 .output-data article {min-height:84px}
body.portada-v2 .ecosystem .final-system::after {right:1%;bottom:0}
@media(max-width:1250px) {body.portada-v2 .final-system {grid-template-columns:270px 180px 190px minmax(300px,1fr)!important}
body.portada-v2 .system-connections {opacity:.65}
body.portada-v2 .data-column article {font-size:.57rem}
body.portada-v2 .system-core {width:180px;height:180px}
body.portada-v2 .body-metrics {transform:translateX(-12px)}
}
@media(max-width:900px) {body.portada-v2 .final-system {grid-template-columns:1fr!important}
body.portada-v2 .system-connections {display:none}
body.portada-v2 .ecosystem .section-copy {display:block}
body.portada-v2 .ecosystem {min-height:auto}
body.portada-v2 .food-phone {position:relative!important;inset:auto!important;margin:auto}
body.portada-v2 .app-analysis {position:relative!important;inset:auto!important;margin:-90px auto 0!important}
body.portada-v2 .plan-nav {height:44px}
}
body.portada-v2 .ecosystem-inner {display:grid!important;grid-template-columns:minmax(390px,455px) minmax(0,1fr)!important;gap:18px!important;max-width:1900px!important}
body.portada-v2 .ecosystem .section-copy {display:block!important;align-self:center}
body.portada-v2 .ecosystem .section-copy h2 {font-size:clamp(3.1rem,4.15vw,5rem);line-height:.94}
body.portada-v2 .final-system {grid-template-columns:255px minmax(320px,1fr) minmax(290px,350px)!important;gap:8px!important}
body.portada-v2 .body-metrics {position:absolute;left:35%;top:78px;width:145px;height:535px;transform:none!important}
body.portada-v2 .body-metrics::before {display:none}
body.portada-v2 .body-metrics span {left:0}
body.portada-v2 .body-metrics span::after {display:none}
body.portada-v2 .system-core {grid-column:2;justify-self:end;margin-right:18px;transform:none}
body.portada-v2 .output-data {grid-column:3}
body.portada-v2 .system-connections path.spine {stroke-dasharray:3 6;stroke-width:1.5;opacity:.85}
body.portada-v2 .diagnose .device-stage {grid-template-columns:250px 278px minmax(205px,245px)!important;gap:0!important;justify-content:center;align-items:center}
body.portada-v2 .diagnose .phone {width:250px!important;height:505px!important;min-height:505px!important;max-height:505px!important;padding:29px 14px 14px!important}
body.portada-v2 .diagnose .phone h3 {font-size:1.03rem;margin:12px 0 10px}
body.portada-v2 .diagnose .phone>button {padding:10px 12px;margin:6px 0;font-size:.82rem}
body.portada-v2 .diagnose .phone .phone-cta {position:absolute;left:14px;right:14px;bottom:12px;margin:0;padding:11px}
body.portada-v2 .diagnose .phone-plan {width:278px!important;height:475px!important;min-height:475px!important;max-height:475px!important;margin-left:-20px!important;padding-bottom:52px!important;transform:rotate(1deg) translateY(5px)!important}
body.portada-v2 .phone-plan .calendar-head strong {font-size:.9rem}
body.portada-v2 .phone-plan .days {gap:4px;margin-top:6px}
body.portada-v2 .phone-plan .days span {min-height:62px!important;padding:6px 3px!important;font-size:.48rem!important}
body.portada-v2 .phone-plan .days div:nth-child(n+5) span {min-height:54px!important}
body.portada-v2 .plan-nav {height:42px}
/* Alto suficiente para que las dos tarjetas floten SIN pisarse: la del
   análisis arriba a la derecha y la de macros abajo del todo. Con los
   640 de antes se solapaban —la de macros tapaba el botón de guardar de
   la de análisis, y debajo había una tercera que no se veía entera— y a
   1280 px de ancho el resultado era un amasijo de texto cortado. */
body.portada-v2 .nutrition-stage {min-height:820px;overflow:visible}
body.portada-v2 .food-phone {left:0!important}
body.portada-v2 .app-analysis {left:38%!important;top:0!important;width:255px!important;min-height:405px!important;transform:rotate(1deg) scale(.94)!important;transform-origin:top left}
body.portada-v2 .meal-selector {gap:4px}
body.portada-v2 .meal-selector span {padding:6px 7px;font-size:.5rem}
body.portada-v2 .nutrition .macro-card {right:0;bottom:0;width:290px}
body.portada-v2 .nutrition .nutrition-stage::after {left:0;bottom:-25px}
body.portada-v2 .coach .bubble {transition:opacity .35s ease}
@media(max-width:1500px) {body.portada-v2 .ecosystem-inner {grid-template-columns:350px minmax(0,1fr)!important}
body.portada-v2 .final-system {grid-template-columns:225px minmax(260px,1fr) minmax(270px,310px)!important}
body.portada-v2 .system-core {width:180px;height:180px;margin-right:4px}
body.portada-v2 .data-column article {font-size:.56rem}
body.portada-v2 .body-metrics {left:34%}
}
@media(max-width:1100px) {body.portada-v2 .ecosystem-inner {grid-template-columns:300px minmax(0,1fr)!important}
body.portada-v2 .ecosystem .section-copy h2 {font-size:3rem}
body.portada-v2 .final-system {grid-template-columns:205px minmax(210px,1fr) 250px!important}
body.portada-v2 .system-connections {opacity:.6}
body.portada-v2 .data-column article {padding:10px!important}
body.portada-v2 .body-metrics {display:block;left:31%}
}
@media(max-width:900px) {body.portada-v2 .ecosystem-inner {grid-template-columns:1fr!important}
body.portada-v2 .body-metrics {display:none}
body.portada-v2 .diagnose .device-stage {grid-template-columns:225px 250px!important}
body.portada-v2 .diagnose .phone {width:225px!important}
body.portada-v2 .diagnose .phone-plan {width:250px!important;margin-left:-22px!important}
body.portada-v2 .nutrition-stage {overflow:hidden}
/* En una columna, las tres piezas se centran. El `left:36%` de arriba es
   para el montaje flotante de escritorio; aquí, con position:relative,
   solo empujaba la tarjeta del análisis fuera del eje y la dejaba pegada
   al borde derecho. */
body.portada-v2 .app-analysis {left:auto!important;margin-left:auto!important;margin-right:auto!important}
body.portada-v2 .nutrition .macro-card {right:auto;bottom:auto;width:100%;max-width:340px;margin:0 auto}
}

/* ══════════════════════════════════════════════════════════════════════
   ECOSYSTEM V2 — #precio reconstruido como el diagrama "ecosystem" de la
   Golden Reference. El único contenido que NO es decorativo es `.precios`
   (los dos `.pc`): ese bloque es EXACTAMENTE el DOM que pinta pro.js — ni
   un id, ni una clase, ni un data-attribute cambian aquí. Solo se le da
   una posición dentro del grid, como "salida" del sistema.
   ══════════════════════════════════════════════════════════════════════ */
body.portada-v2 .ecosystem-v2 {
  position:relative;width:100%;margin:0;border-radius:0;
  padding:72px 4vw 64px;overflow:hidden;border:0;
  background:none;
  color:#c4d0d6;z-index:5;
}
body.portada-v2 .ecosystem-v2-inner {
  position:relative;max-width:1680px;margin:0 auto;
  display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);
  grid-template-areas:"copy diagram" "footer footer" "precios precios";
  column-gap:4vw;row-gap:34px;align-items:center;
}
body.portada-v2 .ecosystem-v2-inner .section-copy { grid-area:copy;align-self:center }
body.portada-v2 .ecosystem-v2 .section-copy .eyebrow { color:#81dff8;font-size:.72rem;letter-spacing:.24em;font-weight:700;margin-bottom:18px }
body.portada-v2 .ecosystem-v2 .section-copy h2 {
  font-family:"Playfair Display",Georgia,serif;color:#f5f8fa;letter-spacing:-.035em;line-height:.98;
  font-size:clamp(2.6rem,4.3vw,4.6rem);margin:0;
}
body.portada-v2 .ecosystem-v2 .section-copy h2 span { color:#4cd6ff }
body.portada-v2 .ecosystem-v2 .section-copy p { color:#c4d0d6;line-height:1.6;font-size:1rem;max-width:520px;margin-top:16px }
body.portada-v2 .ecosystem-v2 .cta-row { display:flex;gap:12px;flex-wrap:wrap;margin-top:26px }
body.portada-v2 .ecosystem-v2 .cta-row .btn { font-weight:700 }
body.portada-v2 .system-benefits-v2 {
  list-style:none;display:flex;gap:22px;flex-wrap:wrap;margin:30px 0 0;padding:0;
}
body.portada-v2 .system-benefits-v2 li { display:grid;grid-template-columns:26px auto;align-items:center;gap:8px }
body.portada-v2 .system-benefits-v2 i { font-style:normal;color:#71e1d8;font-size:1.15rem }
body.portada-v2 .system-benefits-v2 span { color:#c3d0d5;font-size:.72rem;line-height:1.4 }
body.portada-v2 .final-system-v2 {
  grid-area:diagram;position:relative;
  display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);
  grid-template-areas:"input core output";
  gap:14px 18px;align-items:center;
}
body.portada-v2 .system-connections-v2 { position:absolute;z-index:1;inset:0;width:100%;height:100%;overflow:visible }
body.portada-v2 .system-connections-v2 path { fill:none;stroke:#72ebdf;stroke-width:1.6;filter:url(#lineGlowV2) }
/* El lazo dorado es el único conector que vuelve del núcleo hacia una
   salida: representa el bucle de "Adaptación continua" (última tarjeta de
   salida), no una entrada más — por eso lleva su propio trazo animado. */
body.portada-v2 .system-connections-v2 path.gold-v2 { stroke:var(--v2-amber,#f7b844) }
body.portada-v2 .system-connections-v2 path.gold-v2--loop {
  stroke-dasharray:6 5;animation:ecoLoopV2 2.4s linear infinite;
}
@keyframes ecoLoopV2 { to { stroke-dashoffset:-22 } }
@media (prefers-reduced-motion:reduce) {
  body.portada-v2 .system-connections-v2 path.gold-v2--loop { animation:none }
}
body.portada-v2 .data-column-v2,
body.portada-v2 .system-core-v2,
body.portada-v2 .ecosystem-v2 .precios { position:relative;z-index:2 }
body.portada-v2 .data-column-v2 { display:grid;gap:9px }
body.portada-v2 .data-column-v2.input-data-v2 { grid-area:input }
body.portada-v2 .data-column-v2.output-data-v2 { grid-area:output }
body.portada-v2 .data-column-v2>small { display:block;font-size:.6rem;letter-spacing:.16em;line-height:1.5;color:#9ddde9;font-weight:800;margin-bottom:4px }
body.portada-v2 .data-column-v2 article {
  display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:center;padding:11px 13px;
  border:1px solid #326273;border-radius:14px;
  background:linear-gradient(135deg,rgba(10,37,47,.92),rgba(7,24,32,.82));
  box-shadow:0 12px 28px rgba(0,0,0,.3);backdrop-filter:blur(9px);
  font-size:.64rem;color:#94aab3;line-height:1.35;
}
body.portada-v2 .data-column-v2 article i { width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#74e9e0;font-size:1rem;font-style:normal;background:rgba(19,185,231,.1) }
body.portada-v2 .data-column-v2 article b { display:block;color:#fff;font-size:.74rem;margin-bottom:2px }
/* Salida: la misma tarjeta, con acento ámbar (coincide con el conector
   dorado) para leerse como "lo que produce el sistema" frente a la entrada. */
body.portada-v2 .output-data-v2 article { border-color:rgba(247,184,68,.35) }
body.portada-v2 .output-data-v2 article strong { color:#ffd77a;font-weight:800;font-size:.72rem }
body.portada-v2 .macro-table-v2 {
  display:grid;grid-template-columns:auto auto auto;column-gap:8px;row-gap:2px;margin-top:2px;
}
body.portada-v2 .macro-table-v2 em { font-style:normal;color:#94aab3 }
body.portada-v2 .macro-table-v2 strong { color:#ffd77a;font-size:.66rem }
body.portada-v2 .macro-table-v2 small { color:#6f8890 }
body.portada-v2 .system-core-v2 {
  grid-area:core;width:170px;height:170px;border-radius:50%;justify-self:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:#06151ddd;border:1px solid #5ee6df;
  box-shadow:0 0 0 8px rgba(11,41,49,.53),0 0 60px rgba(55,217,217,.33);
}
body.portada-v2 .system-core-v2 img { width:56px;height:48px;object-fit:contain }
body.portada-v2 .system-core-v2 strong { font-size:.95rem;color:#fff;margin-top:6px;font-family:"Playfair Display",Georgia,serif }
body.portada-v2 .system-core-v2 small { font-size:.48rem;letter-spacing:.1em;color:#9fc1c7;line-height:1.5;margin-top:6px }
/* Rótulo de transición entre el diagrama y el precio: mismo tono que el
   "footer-line" de la referencia, sin borde duro — solo un respiro tipográfico
   antes de que aparezca PRO. */
body.portada-v2 .system-footer-line-v2 {
  grid-area:footer;text-align:center;color:#8da7ad;font-size:.66rem;
  letter-spacing:.22em;margin:6px 0;position:relative;z-index:2;
}
/* Continuidad visual: el núcleo "baja" hasta las tarjetas de precio con un
   hilo de luz cian que se desvanece — el mismo lenguaje del glow del
   system-core, para que .precios no se sienta una sección aparte pegada
   debajo del diagrama. */
body.portada-v2 .system-footer-line-v2::before {
  content:'';position:absolute;left:50%;top:-34px;width:1px;height:28px;
  background:linear-gradient(180deg,rgba(94,230,223,.55),transparent);
  transform:translateX(-50%);
}
body.portada-v2 .ecosystem-v2 .precios { grid-area:precios;display:flex;flex-direction:row;flex-wrap:wrap;gap:24px;max-width:980px;margin:0 auto }
body.portada-v2 .ecosystem-v2 .pc { flex:1;min-width:300px }
/* Las tarjetas de precio adoptan la misma familia glass que las tarjetas del
   diagrama (mismo ángulo de degradado, mismo blur, sombra más baja) para
   sentirse nativas del panel del ecosystem y no una tarjeta funcional
   pegada al final. El realce cian queda solo en .pc--pro. */
body.portada-v2 .pc {
  padding:24px;border-radius:20px;
  background:linear-gradient(135deg,rgba(10,37,47,.92),rgba(7,24,32,.82));
  border:1px solid #326273;
  box-shadow:0 12px 28px rgba(0,0,0,.3);backdrop-filter:blur(9px);
}
body.portada-v2 .pc h3 { font-family:"Playfair Display",Georgia,serif;color:#f5f8fa;font-size:1.2rem;margin:0 0 8px }
body.portada-v2 .pc__precio { font-size:1.8rem;font-weight:800;color:#fff;margin:6px 0 }
body.portada-v2 .pc__precio span { font-size:.85rem;color:#9db2bd;margin-left:6px }
body.portada-v2 .pc__sub,
body.portada-v2 .pc__nota { color:#9db2bd;font-size:.82rem }
body.portada-v2 .pc--pro {
  border-color:rgba(76,214,255,.45);
  box-shadow:0 20px 50px rgba(19,185,231,.16),inset 0 1px rgba(255,255,255,.06);
}
body.portada-v2 .pc__sello { display:inline-block;color:#4cd6ff;font-size:.68rem;letter-spacing:.12em;font-weight:700;margin-bottom:6px }
body.portada-v2 .pc ul[data-ventajas] { list-style:none;padding:0;margin:14px 0;display:grid;gap:7px;color:#c4d0d6;font-size:.82rem }
body.portada-v2 .ciclo { display:flex;gap:8px;margin:12px 0 }
body.portada-v2 .pagos-otros { display:flex;gap:8px;margin-top:12px;flex-wrap:wrap }
body.portada-v2 .btn.btn--linea { background:rgba(8,22,31,.72);border:1px solid #27566d;color:#f5f8fa;border-radius:14px;padding:12px 20px;font-weight:700 }
body.portada-v2 .btn.btn--claro,
body.portada-v2 .btn.btn--tinta {
  border:0;border-radius:14px;padding:14px 22px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#0d93b0,#13b9e7);box-shadow:0 8px 30px rgba(13,147,176,.25);
}
@media(max-width:1280px) {
  body.portada-v2 .ecosystem-v2-inner { grid-template-columns:1fr;grid-template-areas:"copy" "diagram" "footer" "precios";row-gap:32px }
  body.portada-v2 .ecosystem-v2 .section-copy { max-width:680px }
  body.portada-v2 .system-connections-v2 { display:none }
  body.portada-v2 .system-footer-line-v2::before { display:none }
}
@media(max-width:720px) {
  body.portada-v2 .final-system-v2 { grid-template-columns:1fr;grid-template-areas:"input" "core" "output";justify-items:center }
  body.portada-v2 .ecosystem-v2 .precios { flex-direction:column }
  body.portada-v2 .system-benefits-v2 { justify-content:center }
}

/* ── Cierre / franja / footer: mismo lenguaje oscuro, HTML y hooks
   (track.js) intactos. ── */
body.portada-v2 section.cierre,
body.portada-v2 .franja {
  position:relative;width:100%;margin:0;border-radius:0;padding:70px 4vw;
  border:0;
  color:#c4d0d6;z-index:5;
}
body.portada-v2 section.cierre .s__cap { color:#81dff8;font-size:.72rem;letter-spacing:.24em;font-weight:700 }
body.portada-v2 section.cierre .t {
  font-family:"Playfair Display",Georgia,serif;color:#f5f8fa;letter-spacing:-.035em;line-height:1.05;
  font-size:clamp(2.2rem,4vw,3.6rem);
}
body.portada-v2 section.cierre .t i { color:#4cd6ff;font-style:normal }
body.portada-v2 section.cierre .s__sub { color:#9db2bd;font-size:.95rem;max-width:560px }
body.portada-v2 .franja { text-align:center }
body.portada-v2 .franja b { color:#4cd6ff;display:block;margin-bottom:8px;font-size:.8rem;letter-spacing:.08em }
body.portada-v2 .franja p { color:#9db2bd;font-size:.86rem;max-width:640px;margin:0 auto }

/* ── Contacto: CTA compacto + el formulario real en un modal ──
   Corrección post-QA: la sección de contacto ocupaba una pantalla entera
   con un formulario siempre visible — rompía la paleta dark/cyan con un
   bloque que se sentía de otro producto. Ahora es un cierre corto con un
   botón, y el MISMO <form id="contactoForm"> (mismos ids, mismo
   contacto.js, sin tocar) vive en un diálogo que se abre al pulsar. */
body.portada-v2 section.contacto-cta {
  position:relative;width:100%;margin:0;border-radius:0;padding:64px 4vw;
  border:0;
  color:#c4d0d6;z-index:5;text-align:center;
}
body.portada-v2 section.contacto-cta .wrap--estrecho { max-width:520px;margin:0 auto }
body.portada-v2 section.contacto-cta .s__cap { color:#81dff8;font-size:.72rem;letter-spacing:.24em;font-weight:700;display:block;margin-bottom:14px }
body.portada-v2 section.contacto-cta .t--sm {
  font-family:"Playfair Display",Georgia,serif;color:#f5f8fa;font-size:clamp(1.8rem,3vw,2.4rem);margin:0 0 12px;
}
body.portada-v2 section.contacto-cta .s__sub { color:#9db2bd;font-size:.92rem;margin:0 auto 24px }
body.portada-v2 section.contacto-cta .btn.primary {
  border-color:transparent;background:linear-gradient(135deg,var(--v2-blue,#0d93b0),var(--v2-cyan,#13b9e7));
  color:#fff;box-shadow:0 8px 30px rgba(13,147,176,.25);
}

/* Diálogo modal — mismo lenguaje glass/dark que el resto de la V2 */
body.portada-v2 .contacto-modal {
  position:fixed;inset:0;z-index:300;display:grid;place-items:center;
  padding:20px;background:rgba(3,11,16,.72);backdrop-filter:blur(8px);
}
body.portada-v2 .contacto-modal[hidden] { display:none }
body.portada-v2 .contacto-modal__panel {
  position:relative;width:min(560px,100%);max-height:88vh;overflow-y:auto;
  background:linear-gradient(180deg,rgba(18,39,52,.96),rgba(8,23,32,.98));
  border:1px solid rgba(90,184,222,.28);border-radius:22px;
  padding:36px 32px;color:#f5f8fa;
  box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.05);
}
body.portada-v2 .contacto-modal__cerrar {
  position:absolute;top:14px;right:16px;border:0;background:transparent;
  font-size:1.6rem;line-height:1;cursor:pointer;color:#9db2bd;
  transition:color .2s ease;
}
body.portada-v2 .contacto-modal__cerrar:hover { color:#f5f8fa }
body.portada-v2 .contacto-modal .t--sm {
  font-family:"Playfair Display",Georgia,serif;color:#f5f8fa;font-size:clamp(1.5rem,2.6vw,2rem);margin:0 0 10px;
}
body.portada-v2 .contacto-modal .s__sub { color:#9db2bd;font-size:.9rem;margin:0 0 20px }
body.portada-v2 .contacto__form { max-width:520px;margin-top:8px;display:grid;gap:16px }
body.portada-v2 .contacto__form .field { display:grid;gap:6px }
body.portada-v2 .contacto__form label { color:#c4d0d6;font-size:.82rem }
body.portada-v2 .contacto__form input,
body.portada-v2 .contacto__form textarea {
  background:#0a1921;border:1px solid #234252;border-radius:12px;padding:12px;color:#f5f8fa;font:inherit;
}
body.portada-v2 .contacto__form input:focus,
body.portada-v2 .contacto__form textarea:focus {
  outline:none;border-color:#13b9e7;box-shadow:0 0 0 3px rgba(19,185,231,.18);
}
body.portada-v2 .contacto__form input.err,
body.portada-v2 .contacto__form textarea.err { border-color:#ff5f86;background:rgba(255,95,134,.08) }
body.portada-v2 .contacto__trampa { position:absolute;left:-9999px }
body.portada-v2 .contacto__aviso { color:#4cd6ff;font-size:.82rem }
body.portada-v2 .contacto__aviso--mal { color:#ff5f86 }
@media(max-width:560px){
  body.portada-v2 .contacto-modal { padding:12px }
  body.portada-v2 .contacto-modal__panel { padding:28px 20px;border-radius:18px }
}

body.portada-v2 footer.pie {
  background:#050b0f;border-top:1px solid #122934;color:#8199a5;font-size:.76rem;
}
body.portada-v2 footer.pie .wrap {
  display:flex;flex-wrap:wrap;gap:18px;align-items:center;padding:28px 5vw;
}
body.portada-v2 .pie__datos { padding:22px 5vw;border-bottom:1px solid #122934 }
body.portada-v2 .pie__datos b { display:block;color:#c4d0d6;font-size:.8rem;margin-bottom:6px }
body.portada-v2 .pie__datos p { margin:0;max-width:720px;line-height:1.5 }
body.portada-v2 footer.pie a { color:#8199a5 }
body.portada-v2 footer.pie a:hover { color:#4cd6ff }
body.portada-v2 .firma__nombre { display:inline-flex;align-items:center;gap:6px }
@media(max-width:720px){
  body.portada-v2 section.cierre, body.portada-v2 .franja, body.portada-v2 section.contacto-cta{
    width:100%;padding:56px 20px
  }
}

/* ══════════════════════════════════════════════════════════════════════
   HERO V2 (aislado) — sustituye la portada original. Fondo de gimnasio
   continuo, teléfono central con el plan real y seis recuadros conectados
   por líneas SVG. Todas las clases van bajo el prefijo .ypf-hero para no
   tocar ningún selector global; las reglas .hero/.hero-glow/.hero-network/
   .hero-node/.hero-visual/.hero-people de arriba quedan sin uso (nada más
   las referencia) y se pueden retirar en una limpieza aparte.
   ══════════════════════════════════════════════════════════════════════ */
body.portada-v2 .ypf-hero {
  position:relative;overflow:hidden;
  min-height:0;padding:150px 5vw 90px;
  display:flex;flex-direction:column;align-items:center;
}
body.portada-v2 .ypf-hero__bg { display:none }
body.portada-v2 .ypf-hero__scrim {
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(90deg,rgba(0,0,0,.22),transparent 18%,transparent 82%,rgba(0,0,0,.22));
}
body.portada-v2 .ypf-hero__copy { position:relative;z-index:2;text-align:center;max-width:820px }
body.portada-v2 .ypf-hero h1 { font-size:clamp(2.6rem,5.2vw,4.6rem);line-height:.95;letter-spacing:-.03em;margin:0 }
body.portada-v2 .ypf-hero h1 span { display:block }
body.portada-v2 .ypf-hero .lead { max-width:640px;margin:18px auto 0;line-height:1.45;text-align:center }
body.portada-v2 .ypf-hero .cta-row { margin-top:28px;justify-content:center }

body.portada-v2 .ypf-hero__stage {
  position:relative;z-index:2;width:min(980px,100%);height:580px;margin:28px auto 0;
  perspective:1400px;transform-style:preserve-3d;
}
body.portada-v2 .ypf-hero__badge {
  position:absolute;z-index:6;left:50%;top:0;translate:-50% 0;
  display:flex;align-items:center;gap:9px;padding:9px 16px;
  border:1px solid rgba(76,214,255,.42);border-radius:18px;
  background:linear-gradient(145deg,rgba(7,31,40,.92),rgba(2,12,17,.85));
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 10px 24px rgba(0,0,0,.35);
}
body.portada-v2 .ypf-hero__badge img { width:24px;height:24px;object-fit:contain }
body.portada-v2 .ypf-hero__badge span { font-weight:800;font-size:.98rem;color:#fff;white-space:nowrap }
body.portada-v2 .ypf-hero__connections { position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none }
body.portada-v2 .ypf-hero__connections path { fill:none;stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 5px currentColor) }
body.portada-v2 .ypf-hero__connections .cy { stroke:var(--v2-cyan2);color:var(--v2-cyan2) }
body.portada-v2 .ypf-hero__connections .au { stroke:var(--v2-amber);color:var(--v2-amber) }

body.portada-v2 .ypf-hero__phone {
  position:absolute;z-index:5;left:50%;top:54px;translate:-50% 0;
  width:clamp(180px,26vw,230px);height:auto;padding:9px;border-radius:38px;
  background:linear-gradient(145deg,#52626b,#05080a 14%,#010304 80%,#34434b);
  box-shadow:0 30px 60px #000c,0 0 0 1px #718995,0 0 40px rgba(34,211,235,.15);
}
body.portada-v2 .ypf-hero__phone-notch {
  position:absolute;z-index:2;top:8px;left:50%;translate:-50% 0;
  width:34%;height:16px;border-radius:12px;background:#020609;
}
/* ── La captura real, dentro del marco ──────────────────────────────
   La captura NO se posiciona: es el CONTENIDO del teléfono y ocupa su
   caja de relleno, así que los 9 px de `padding` del marco son el bisel
   por los cuatro lados y el alto del teléfono sale de la propia imagen.

   Antes iba `position:absolute; inset:9px`, y no cuadraba: la regla
   `.ypf-hero__phone > *` de más abajo la devolvía a `position:relative`,
   donde `inset:9px` ya no es «pégate a 9 px de cada borde» sino
   «desplázate 9 px», así que la pantalla se iba abajo y a la derecha. Con
   la muesca pasaba lo mismo y además ocupaba 16 px de alto en el flujo.
   Medido: 34 px de hueco arriba, 18 a la izquierda, 0 al otro lado.

   La proporción de la imagen (0,4601) es la del hueco a propósito, así
   que entra entera y no hay nada que recortar. */
body.portada-v2 .ypf-hero__phone-shot {
  position:static;inset:auto;display:block;width:100%;height:auto;
  border-radius:31px;
}
/* La muesca sí es una capa: va encima de la captura, no delante de ella
   en el flujo. */
body.portada-v2 .ypf-hero__phone > .ypf-hero__phone-notch { position:absolute }
body.portada-v2 .ypf-hero__phone { display:flex;flex-direction:column }
body.portada-v2 .ypf-hero__phone > * { position:relative;z-index:1 }
body.portada-v2 .ypf-hero__phone::before {
  content:"";position:absolute;inset:9px;z-index:0;border-radius:31px;
  border:1px solid #173743;background:linear-gradient(180deg,#071921,#041015 75%);
}
body.portada-v2 .ypf-hero__phone-top {
  display:flex;justify-content:space-between;padding:22px 16px 0;
  color:#aebfc5;font-size:.62rem;font-weight:700;
}
body.portada-v2 .ypf-hero__phone-brand {
  display:flex;align-items:center;gap:7px;padding:10px 16px 0;
  font-weight:850;font-size:.8rem;color:#fff;
}
body.portada-v2 .ypf-hero__phone-brand img { width:16px;height:16px;object-fit:contain }
body.portada-v2 .ypf-hero__phone-sub { margin:6px 16px 0;font-size:.56rem;letter-spacing:.06em;color:var(--v2-cyan2) }
body.portada-v2 .ypf-hero__phone-title { margin:2px 16px 0;font-size:.98rem;font-weight:850;color:#fff }
body.portada-v2 .ypf-hero__phone-block { margin:2px 16px 8px;font-size:.6rem;color:#8fa9b5 }
body.portada-v2 .ypf-hero__phone-week {
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:0 12px;
}
body.portada-v2 .ypf-hero__phone-week div { text-align:center;min-height:40px;padding:5px 1px;border-radius:8px;background:#102632;position:relative }
body.portada-v2 .ypf-hero__phone-week div.on { background:linear-gradient(150deg,#0d93b0,#0a5f73);box-shadow:0 0 16px rgba(19,185,231,.22) }
body.portada-v2 .ypf-hero__phone-week div.locked { background:#0c1e28 }
body.portada-v2 .ypf-hero__phone-week div.locked::after { content:"🔒";position:absolute;left:0;right:0;top:50%;translate:0 -50%;font-size:.5rem;opacity:.55 }
body.portada-v2 .ypf-hero__phone-week div.locked span { display:none }
body.portada-v2 .ypf-hero__phone-week b { display:block;font-size:.42rem;color:#8ea4ad;margin-bottom:2px }
body.portada-v2 .ypf-hero__phone-week span { font-size:.38rem;color:#e9f3f5;line-height:1.2 }
body.portada-v2 .ypf-hero__phone-teaser { margin:8px 16px 0;font-size:.46rem;color:#8fa9b5;line-height:1.4 }
body.portada-v2 .ypf-hero__phone-metrics {
  margin:8px 12px 0;padding:9px 10px;border:1px solid #173b48;border-radius:14px;
  background:linear-gradient(145deg,rgba(12,37,47,.95),rgba(5,19,25,.93));
}
body.portada-v2 .ypf-hero__phone-metrics-label { display:block;font-size:.44rem;letter-spacing:.08em;color:#8fa9b5;margin-bottom:6px }
body.portada-v2 .ypf-hero__phone-metric-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px 10px }
body.portada-v2 .ypf-hero__phone-metric-grid strong { display:block;font-size:.78rem;color:var(--v2-cyan2) }
body.portada-v2 .ypf-hero__phone-metric-grid small { font-size:.4rem;color:#8fa9b5;letter-spacing:.04em }
body.portada-v2 .ypf-hero__phone-footerline { margin:8px 16px 0;font-size:.44rem;letter-spacing:.06em;color:#8fa9b5 }
body.portada-v2 .ypf-hero__phone-nav {
  margin-top:auto;display:flex;justify-content:space-around;align-items:center;
  padding:10px 6px;border-top:1px solid #17343f;background:#030c10;
}
body.portada-v2 .ypf-hero__phone-nav span { display:flex;flex-direction:column;align-items:center;gap:2px;color:#778d95 }
body.portada-v2 .ypf-hero__phone-nav span.on { color:var(--v2-cyan2) }
body.portada-v2 .ypf-hero__phone-nav b { font-size:.72rem;font-style:normal;line-height:1 }
body.portada-v2 .ypf-hero__phone-nav small { font-size:.42rem }

body.portada-v2 .ypf-hero__feature {
  position:absolute;z-index:4;width:225px;height:128px;border-radius:19px;
  overflow:hidden;border:1.5px solid var(--fac);background:rgba(4,17,23,.92);
  box-shadow:0 18px 34px #000b,0 0 18px color-mix(in srgb,var(--fac) 19%,transparent);
  backdrop-filter:blur(10px);transform-style:preserve-3d;will-change:transform;
  transition:transform .45s ease,filter .45s ease;
}
body.portada-v2 .ypf-hero__feature::after {
  content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.1),transparent 26%,transparent 72%,rgba(0,0,0,.24));
}
body.portada-v2 .ypf-hero__feature-bg {
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
body.portada-v2 .ypf-hero__feature-bg::after {
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(1,9,13,.82),rgba(1,9,13,.15) 55%),
    linear-gradient(transparent 38%,rgba(0,0,0,.77));
}
body.portada-v2 .ypf-hero__feature h3 {
  position:absolute;z-index:2;top:12px;left:14px;margin:0;font-size:.88rem;color:#f5f9fa;
  text-shadow:0 2px 8px #000;
}
body.portada-v2 .ypf-hero__feature strong {
  position:absolute;z-index:2;left:14px;bottom:13px;font-size:1.28rem;color:var(--fac);
  filter:drop-shadow(0 0 6px var(--fac));font-style:normal;
}
body.portada-v2 .ypf-hero__feature p {
  position:absolute;z-index:2;left:47px;right:10px;bottom:13px;margin:0;
  color:#d8e3e6;font-size:.66rem;line-height:1.25;
}
body.portada-v2 .ypf-hero__feature--cy { --fac:var(--v2-cyan2) }
body.portada-v2 .ypf-hero__feature--au { --fac:var(--v2-amber) }
body.portada-v2 .ypf-hero__feature.f1, body.portada-v2 .ypf-hero__feature.f4 { top:54px }
body.portada-v2 .ypf-hero__feature.f2, body.portada-v2 .ypf-hero__feature.f5 { top:238px }
body.portada-v2 .ypf-hero__feature.f3, body.portada-v2 .ypf-hero__feature.f6 { top:423px }
body.portada-v2 .ypf-hero__feature.f1, body.portada-v2 .ypf-hero__feature.f2, body.portada-v2 .ypf-hero__feature.f3 { left:0;transform-origin:right center;transform:rotateY(9deg) }
body.portada-v2 .ypf-hero__feature.f4, body.portada-v2 .ypf-hero__feature.f5, body.portada-v2 .ypf-hero__feature.f6 { right:0;transform-origin:left center;transform:rotateY(-9deg) }
body.portada-v2 .ypf-hero__feature:hover { filter:brightness(1.12) }
body.portada-v2 .ypf-hero__feature.f1:hover, body.portada-v2 .ypf-hero__feature.f2:hover, body.portada-v2 .ypf-hero__feature.f3:hover { transform:rotateY(4deg) translateZ(6px) }
body.portada-v2 .ypf-hero__feature.f4:hover, body.portada-v2 .ypf-hero__feature.f5:hover, body.portada-v2 .ypf-hero__feature.f6:hover { transform:rotateY(-4deg) translateZ(6px) }

@media(prefers-reduced-motion:reduce) {
  body.portada-v2 .ypf-hero__feature { transition:none }
}
@media(max-width:900px) {
  body.portada-v2 .ypf-hero { padding:110px 6vw 70px;min-height:0 }
  body.portada-v2 .ypf-hero__copy { max-width:600px }
  body.portada-v2 .ypf-hero__stage { margin-top:40px;max-width:420px;aspect-ratio:420/560 }
  body.portada-v2 .ypf-hero__connections { display:none }
  body.portada-v2 .ypf-hero__feature { position:relative;width:auto;height:auto;left:auto!important;right:auto!important;top:auto!important;transform:none!important }
  body.portada-v2 .ypf-hero__feature:hover { transform:none!important }
  body.portada-v2 .ypf-hero__badge { display:none }
  body.portada-v2 .ypf-hero__stage {
    display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto repeat(3,auto);
    gap:14px 12px;aspect-ratio:auto;
  }
  body.portada-v2 .ypf-hero__phone { position:relative;left:auto;top:auto;translate:none;grid-column:1/3;width:min(210px,58vw);margin:0 auto 6px }
  body.portada-v2 .ypf-hero__feature { min-height:118px }
}
@media(max-width:540px) {
  body.portada-v2 .ypf-hero { padding:104px 5vw 60px }
  body.portada-v2 .ypf-hero__stage { grid-template-columns:1fr }
  body.portada-v2 .ypf-hero__phone { grid-column:1/2 }
  body.portada-v2 .ypf-hero__feature { min-height:104px }
}

/* ── Métodos de pago (.pago, generados por pro.js): portada.css los deja
   con su fondo blanco original (pensado para una página clara) y esta
   hoja nunca los había retocado. Misma adaptación que ya existe para la
   app real en pro-v2.css — mismo fondo oscuro, la marca (Hotmart naranja,
   PayPal azul, WhatsApp verde) conserva su color de identidad. ── */
body.portada-v2 .pago {
  background:rgba(10,25,33,.6);border:1.5px solid var(--v2-line);
  color:var(--v2-text);
}
body.portada-v2 a.pago:hover { box-shadow:0 10px 26px rgba(0,0,0,.35) }
body.portada-v2 .pago__marca { background:rgba(90,184,222,.14);color:var(--v2-cyan2) }
body.portada-v2 .pago__txt b { color:var(--v2-text) }
body.portada-v2 .pago__txt small { color:var(--v2-muted) }
body.portada-v2 .pago--principal .pago__marca { background:#F04E23;color:#fff }
body.portada-v2 a.pago--pp .pago__marca { background:#003087;color:#fff }
body.portada-v2 .pago--wa .pago__marca { background:#25D366;color:#fff }
body.portada-v2 .pago--pronto { background:rgba(10,25,33,.35) }
body.portada-v2 .pago--pronto .pago__marca { background:rgba(90,184,222,.08);color:var(--v2-muted) }
body.portada-v2 .pago--pronto .pago__txt b { color:var(--v2-muted) }
body.portada-v2 .pago--pronto .pago__txt small { color:var(--v2-muted) }

/* ── Modal de contacto: <form> heredaba el fondo blanco de portada.css. ── */
body.portada-v2 .contacto__form { background:transparent }
body.portada-v2 .contacto__form .field label { color:var(--v2-muted) }
body.portada-v2 .contacto__form input,
body.portada-v2 .contacto__form textarea {
  background:rgba(10,25,33,.6);border:1.5px solid var(--v2-line);
  color:var(--v2-text);border-radius:12px;
}
body.portada-v2 .contacto__form input::placeholder,
body.portada-v2 .contacto__form textarea::placeholder { color:var(--v2-muted) }


/* ═══════════════════════════════════════════════════════════════════════
   Las notas escritas a mano, en inglés
   ═══════════════════════════════════════════════════════════════════════
   Son ocho frases que no viven en el HTML sino en `content:` de CSS, así
   que traducir.mjs no las ve: no hay etiqueta que marcar con data-t. En
   /en/ salían las ocho en castellano encima de una página en inglés, que
   es justo lo que el resto del trabajo de idioma vino a quitar.

   Se resuelven aquí, por `html[lang="en"]`, que es el atributo que el
   build ya deja puesto en cada versión. Si mañana se añade otra nota,
   hay que añadir su pareja AQUÍ: la prueba de i18n no puede reclamarla
   porque no es una clave, es una regla de estilo. */
html[lang="en"] body.portada-v2 .hero .hero-stage::after {content:"Discipline today.\A A better you tomorrow."}
html[lang="en"] body.portada-v2 .diagnose .device-stage::after {content:"Your plan...\A Your way."}
html[lang="en"] body.portada-v2 .nutrition .nutrition-stage::after {content:"Eating well...\A is progress too."}
html[lang="en"] body.portada-v2 .app-section .phones-row::after,
html[lang="en"] body.portada-v2 .app-section .app-features::after {content:"More than an app.\A It’s your progress partner."}
html[lang="en"] body.portada-v2 .wearables .wearables-stage::after {content:"Your data.\A A smarter plan."}
html[lang="en"] body.portada-v2 .coach .coach-grid::after,
html[lang="en"] body.portada-v2 .photos-card::after {content:"Same person.\A A stronger version."}
html[lang="en"] body.portada-v2 .ecosystem .final-system::after {content:"Same data. Better decisions.\A A better you."}

/* ── El alto de los marcos con captura ─────────────────────────────────
   Va aquí abajo y con los tres nombres de clase a propósito. Cada maqueta
   fija su alto con `!important` —`.diagnose .phone { height:505px }`,
   `.phone-plan { height:475px }`, `.food-phone { height:570px }`— y una
   regla de `.phone-shot` a secas empata en especificidad y pierde por
   orden. Con la clase de la maqueta Y la de la captura, gana la captura,
   que es lo correcto: esos altos describen el contenido DIBUJADO, y con
   una pantalla real dentro dejan de ser relleno para pasar a ser recorte.
   Medido antes de esto: la del plan perdía el 30 % por abajo y la de
   nutrición el 19 %. */
body.portada-v2 .diagnose .phone.phone-shot,
body.portada-v2 .diagnose .phone-plan.phone-shot,
body.portada-v2 .food-phone.phone-shot,
body.portada-v2 .phone.slim.phone-shot {
  height:auto!important;min-height:0!important;max-height:none!important;
  /* Y el relleno, por el mismo motivo: el de cada maqueta reservaba sitio
     abajo para un botón dibujado (52 px en la del plan, 54 en la de
     nutrición) y con una captura dentro eso era una franja muerta bajo la
     pantalla. Diez píxeles por los cuatro lados: el bisel, nada más. */
  padding:10px!important;
}

/* ══════════════════════════════════════════════════════════════════════
   MÓVIL DE VERDAD · lo que se rompía por debajo de 430 px
   ══════════════════════════════════════════════════════════════════════
   Medido en un iPhone real: la página medía 495 px de ancho en una
   pantalla de 390, así que los titulares y la mitad derecha de las fichas
   se salían por el lado. No se había visto antes porque la vista previa
   del navegador no dispara las media queries: escala la página en vez de
   estrechar el viewport.

   La causa es siempre la misma: una rejilla de dos columnas cuyo
   contenido mínimo (icono de 42 px + dos líneas de texto ≈ 232 px) no
   cabe dos veces. `1fr` no protege de eso —es `minmax(auto,1fr)`, y ese
   `auto` es el contenido mínimo—, así que la columna crece y arrastra a
   toda la sección. Se arregla pasando a una columna y dejando que los
   hijos puedan encogerse (`min-width:0`). */
@media (max-width:560px) {
  body.portada-v2 .signal-grid {grid-template-columns:1fr}
  body.portada-v2 .section-copy, body.portada-v2 .section-inner > * {min-width:0}
}

/* ══════════════════════════════════════════════════════════════════════
   LOS TELÉFONOS, EN MÓVIL · un carrusel, no un abanico
   ══════════════════════════════════════════════════════════════════════
   En escritorio los teléfonos se solapan en abanico y funciona: hay
   ancho de sobra para que se lea el de delante y se intuyan los de
   detrás. A 390 px ese mismo abanico deja cada pantalla medio tapada por
   la siguiente y la fila entera se sale por el lado — que es exactamente
   lo que se veía en un iPhone real.

   Aquí pasan a ser un carrusel que se desliza con el dedo. El
   desplazamiento no lo hace JavaScript: lo hace `scroll-snap`, que trae
   la inercia del sistema, respeta el lector de pantalla y funciona con
   teclado. `assets/js/carrusel-telefonos.js` solo añade los puntos y los
   mantiene en sincronía.

   `78vw` con `max-width` deja asomar el teléfono siguiente: sin ese
   asomo, nadie sabe que hay más y el carrusel no se descubre. */
@media (max-width:720px) {
  body.portada-v2 .diagnose .device-stage,
  body.portada-v2 .app-section .phones-row,
  body.portada-v2 .nutrition .nutrition-stage,
  body.portada-v2 .coach .coach-grid {
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    grid-template-columns:none!important;
    justify-content:flex-start!important;align-items:center;
    gap:14px!important;min-height:0!important;
    /* A sangre: el carrusel llega a los bordes de la pantalla aunque la
       sección tenga su relleno, y el relleno lateral es lo que permite
       centrar el primero y el último. `calc(50% - 50vw)` se mide solo
       —saca exactamente el relleno que tenga la sección de turno—; con un
       -20px fijo, el diagnóstico (20px) salía cuadrado y la sección de la
       app (4vw) quedaba descentrada 36px hacia la izquierda. */
    width:auto!important;margin-inline:calc(50% - 50vw)!important;
    padding:6px 11vw 10px!important;
    overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;scrollbar-width:none;
  }
  body.portada-v2 .diagnose .device-stage::-webkit-scrollbar,
  body.portada-v2 .app-section .phones-row::-webkit-scrollbar,
  body.portada-v2 .nutrition .nutrition-stage::-webkit-scrollbar,
  body.portada-v2 .coach .coach-grid::-webkit-scrollbar {display:none}

  body.portada-v2 .diagnose .device-stage > .phone,
  body.portada-v2 .app-section .phones-row > .phone,
  body.portada-v2 .nutrition .nutrition-stage > *,
  body.portada-v2 .coach .coach-grid > * {
    flex:0 0 78vw!important;width:78vw!important;max-width:300px!important;
    min-width:0!important;height:auto!important;min-height:0!important;
    inset:auto!important;position:relative!important;
    margin:0!important;transform:none!important;
    scroll-snap-align:center;align-self:center;
  }

  /* La nota manuscrita va pegada al contenedor, así que dentro de un
     carrusel se desplazaría con los teléfonos. Se retira: el mismo texto
     ya aparece en su versión de móvil (`.app-features::after`). */
  body.portada-v2 .diagnose .device-stage::after,
  body.portada-v2 .app-section .phones-row::after,
  body.portada-v2 .nutrition .nutrition-stage::after,
  body.portada-v2 .coach .coach-grid::after {display:none}

  /* «Un plan para tu vida real» y «Todo lo que llevas encima» viven DENTRO
     del contenedor (en escritorio son la última columna de la rejilla),
     así que en el carrusel se quedaban aplastados —41 px uno, 5 px el
     otro—. Pasan a ser la última diapositiva: se desliza pantalla →
     pantalla → lo que te llevas. */
  body.portada-v2 .diagnose .device-stage > .plan-benefits,
  body.portada-v2 .app-section .phones-row > .app-features {
    flex:0 0 78vw!important;width:78vw!important;max-width:300px!important;
    margin:0!important;grid-template-columns:1fr!important;
    scroll-snap-align:center;align-self:center;
  }
}

/* ══════════════════════════════════════════════════════════════════════
   LA SECCIÓN DE LA APP, EN UNA COLUMNA
   ══════════════════════════════════════════════════════════════════════
   `.app-section .section-inner.wide` se redeclara a `270px minmax(0,1fr)`
   más abajo en la hoja y FUERA de toda media query, así que pisaba al
   `1fr` de @media(max-width:1180px) a cualquier ancho. En un iPhone eso
   dejaba el texto ocupando 270 px y el carrusel de teléfonos exprimido en
   una tira de 86 px que se salía por la derecha: es lo que se veía.

   Se corrige aquí, al final del archivo, en vez de tocar la línea de
   arriba: esa es la que da la maqueta de escritorio y está bien. */
@media (max-width:1180px) {
  body.portada-v2 .app-section .section-inner.wide {grid-template-columns:1fr}
}

/* Los puntos. Los crea carrusel-telefonos.js; sin él no existen y el
   carrusel sigue funcionando a dedo. */
body.portada-v2 .carrusel-puntos {
  display:flex;justify-content:center;gap:8px;margin:2px 0 4px;padding:0;
  list-style:none;
}
body.portada-v2 .carrusel-puntos button {
  width:8px;height:8px;padding:0;border:0;border-radius:50%;
  background:#2b4654;transition:background .2s,transform .2s;
}
body.portada-v2 .carrusel-puntos button[aria-current="true"] {
  background:var(--v2-cyan2);transform:scale(1.35);
}

/* ══════════════════════════════════════════════════════════════════════
   EL HERO, EN MÓVIL · el escenario deja de recortar sus tarjetas
   ══════════════════════════════════════════════════════════════════════
   `.ypf-hero__stage` nace con `height:580px` porque en escritorio las seis
   tarjetas van colocadas una a una con `top`/`left` dentro de ese alto. La
   versión de móvil las devuelve al flujo y las apila, pero nadie soltó el
   alto fijo: la rejilla seguía midiendo 580 px mientras su contenido pedía
   1.150, y como el hero lleva `overflow:hidden`, la segunda mitad de las
   tarjetas se cortaba de golpe. Es lo que se veía en el iPhone —la tarjeta
   de Nutrición partida por la mitad y la sección siguiente encima—.

   Y `.scroll-hint` va `position:absolute; bottom:26px` respecto al hero:
   con el hero medido a lo que cabía, el aviso caía justo encima de la
   segunda tarjeta. Con seis tarjetas apiladas el hero mide más de una
   pantalla y el aviso ya no dice nada que no sepas: se retira. */
@media (max-width:900px) {
  body.portada-v2 .ypf-hero__stage { height:auto }
  body.portada-v2 .ypf-hero .scroll-hint { display:none }
}
