/* CrossFood · landing v39 — dark base
   Lime = CTAs (buttons) and logo only. Accents use a muted sage scale. */
:root {
  --bg: #0D0D0C;
  --bg-2: #141413;
  --surface: #1B1B19;
  --surface-2: #242421;
  --line: #2E2E2A;
  --text: #F4F4EF;
  --text-2: #C9C9C1;
  --muted: #98988F;

  --cta: #C3F56B;
  --cta-hover: #D2FA88;
  --on-cta: #0D0D0C;

  --sage: #C3F56B;        /* one green everywhere: the brand lime */
  --sage-dim: #1C2412;
  --sage-line: #3B4D22;

  --font-display: 'Bricolage Grotesque', system-ui, sans-serif;
  --font-body: 'Figtree', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; color-scheme: dark; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-body); font-size: 17px; line-height: 1.6; }
img, video { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--font-display); margin: 0; letter-spacing: -0.02em; }
h1 { font-size: clamp(44px, 6.6vw, 84px); line-height: 0.98; font-weight: 800; }
h2 { font-size: clamp(32px, 4.4vw, 52px); line-height: 1.05; font-weight: 800; }
h3 { font-size: clamp(20px, 2.2vw, 26px); line-height: 1.15; font-weight: 700; }
p { margin: 0; }
section[id] { scroll-margin-top: 80px; }
:focus-visible { outline: 3px solid var(--cta); outline-offset: 3px; border-radius: 6px; }

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.sec { padding: 104px 0; }
.sec-alt { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.eyebrow { font-weight: 700; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); display: inline-flex; align-items: center; gap: 8px; }
.lead { font-size: clamp(18px, 1.9vw, 21px); color: var(--text-2); line-height: 1.55; }
.head { display: flex; flex-direction: column; gap: 14px; max-width: 820px; margin-bottom: 44px; }
.accent { color: var(--sage); }
.mark { background: var(--sage-dim); color: var(--sage); padding: 0 .14em; border-radius: 12px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.note { color: var(--muted); font-size: 13px; line-height: 1.5; }

/* Icons */
.ico { width: 22px; height: 22px; flex: 0 0 auto; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ico-badge { width: 48px; height: 48px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: var(--sage-dim); color: var(--sage); border: 1px solid var(--sage-line); flex: 0 0 auto; }

/* Buttons: the only place the lime lives */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--cta); color: var(--on-cta); font-family: var(--font-body); font-weight: 800; font-size: 18px; text-decoration: none; border: 0; border-radius: 999px; padding: 17px 30px; min-height: 56px; cursor: pointer; transition: transform .15s ease, background .15s ease, box-shadow .15s ease; box-shadow: 0 0 0 0 rgba(195,245,107,0); }
.btn:hover { background: var(--cta-hover); transform: translateY(-2px); box-shadow: 0 10px 30px -10px rgba(195,245,107,.55); }
.btn:active { transform: translateY(1px); }
.btn-sm { font-size: 15px; padding: 10px 18px; min-height: 44px; }
.cta-block { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.micro { color: var(--muted); font-size: 14px; font-weight: 600; display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.micro span { display: inline-flex; align-items: center; gap: 6px; }
.micro .ico { width: 16px; height: 16px; color: var(--sage); }
.link { font-weight: 700; text-underline-offset: 4px; color: var(--text-2); }

/* Header */
.top { position: sticky; top: 0; z-index: 20; background: rgba(13,13,12,.86); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid transparent; transition: border-color .2s; }
.top.scrolled { border-bottom-color: var(--line); }
.top .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; padding-bottom: 14px; }
.logo { font-family: var(--font-display); font-weight: 800; font-size: 25px; letter-spacing: .02em; text-decoration: none; white-space: nowrap; color: var(--text); }
.logo span { background: var(--cta); color: var(--on-cta); padding: 0 6px; border-radius: 7px; margin-left: 2px; }
.nav { display: flex; align-items: center; gap: 22px; font-weight: 600; font-size: 15px; color: var(--text-2); }
.nav a:not(.btn) { text-decoration: none; }
.nav a:not(.btn):hover { color: var(--text); }

/* Hero */
.hero { padding: 56px 0 96px; overflow: hidden; }
.hero .wrap { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.hero-copy { flex: 999 1 540px; min-width: 0; display: flex; flex-direction: column; gap: 26px; }
.pill { align-self: flex-start; background: var(--surface); border: 1px solid var(--line); color: var(--text-2); font-size: 14px; font-weight: 600; padding: 8px 16px; border-radius: 999px; display: inline-flex; gap: 8px; align-items: center; }
.pill .ico { color: var(--sage); }
.hero-art { flex: 1 1 320px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.portrait { position: relative; width: min(380px, 80vw); aspect-ratio: 1; border-radius: 50%; background: var(--sage-dim); display: flex; align-items: center; justify-content: center; }
.portrait::before { content: ""; position: absolute; inset: -14px; border-radius: 50%; border: 2px dashed var(--sage-line); animation: spin 40s linear infinite; }
.portrait img { width: 88%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 6px solid var(--bg); }
.chip { position: absolute; background: var(--surface); color: var(--text); border: 1px solid var(--line); box-shadow: 0 14px 30px rgba(0,0,0,.45); border-radius: 14px; padding: 10px 14px; font-weight: 700; font-size: 14px; display: flex; align-items: center; gap: 8px; white-space: nowrap; animation: float 5s ease-in-out infinite; }
.chip .ico { color: var(--sage); width: 20px; height: 20px; }
.chip-a { top: 8%; left: -6%; }
.chip-b { bottom: 18%; right: -8%; animation-delay: -2.5s; }
.who { text-align: center; }
.who b { font-family: var(--font-display); font-size: 20px; }
.who div { color: var(--muted); font-size: 15px; }

/* Marquee */
.marquee { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; padding: 18px 0; }
.marquee-track { display: flex; gap: 40px; width: max-content; animation: marquee 34s linear infinite; font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--text-2); }
.marquee-track span { display: inline-flex; align-items: center; gap: 40px; white-space: nowrap; }
.marquee-track span::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sage); }

/* Pain cards */
.pains { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.pain { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: 26px; display: flex; flex-direction: column; gap: 12px; transition: border-color .2s, transform .2s; }
.pain:hover { border-color: var(--sage-line); transform: translateY(-3px); }
.pain-n { font-weight: 800; font-size: 13px; letter-spacing: .12em; color: var(--sage); text-transform: uppercase; }
.pain p { color: var(--text-2); font-size: 16px; line-height: 1.55; }
.turn { margin-top: 28px; background: var(--sage-dim); border: 1px solid var(--sage-line); border-radius: 24px; padding: 30px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; align-items: center; }
.turn h3 { font-size: clamp(24px, 2.6vw, 30px); }
.ticks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 16px; line-height: 1.45; }
.ticks li { display: flex; gap: 12px; align-items: flex-start; color: var(--text); }
.ticks .ico { margin-top: 1px; color: var(--sage); width: 20px; height: 20px; }
.ticks.no .ico { color: var(--muted); }
.ticks.no li { color: var(--text-2); }

/* Pyramid */
.pyr-wrap { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.pyr-copy { flex: 1 1 380px; display: flex; flex-direction: column; gap: 18px; }
.pyr-copy p { color: var(--text-2); font-size: 18px; line-height: 1.65; }
.pyr { flex: 1 1 420px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pyr-step { border-radius: 12px; padding: 15px 8px; text-align: center; font-weight: 700; font-size: 15px; color: var(--text-2); }
.pyr-base { width: 100%; background: var(--sage-dim); border: 2px solid var(--sage); color: var(--sage); padding: 20px 8px; font-family: var(--font-display); font-weight: 800; font-size: 20px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.pyr-note { color: var(--muted); font-size: 13px; margin-top: 8px; }

/* CROSS + FOOD */
.formula { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.formula-word { font-family: var(--font-display); font-weight: 800; font-size: clamp(38px, 6vw, 72px); line-height: 1; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; justify-content: center; }
.formula-icons { display: flex; gap: 14px; }

/* Community */
.susi { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; align-items: center; margin-bottom: 80px; }
.susi-copy { display: flex; flex-direction: column; gap: 18px; }
.quote { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.2; }
.quote-sm { color: var(--text-2); font-size: 17px; line-height: 1.55; }
.susi-card { background: var(--surface); border: 1px solid var(--line); border-radius: 28px; padding: 22px; display: flex; flex-direction: column; gap: 14px; max-width: 420px; justify-self: center; width: 100%; margin: 0; }
.susi-card video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 18px; background: #000000; }
.seg, .views { display: flex; gap: 6px; background: var(--bg); border: 1px solid var(--line); padding: 5px; border-radius: 999px; }
.seg button, .views button { flex: 1; border: 0; background: transparent; color: var(--text-2); font-family: inherit; font-weight: 700; font-size: 15px; padding: 10px 12px; border-radius: 999px; cursor: pointer; min-height: 44px; }
.seg button[aria-pressed="true"], .views button[aria-pressed="true"] { background: var(--text); color: var(--bg); }
.susi-card figcaption { font-weight: 700; display: flex; justify-content: space-between; gap: 12px; color: var(--text-2); font-size: 15px; }

.caps-head { display: flex; flex-direction: column; gap: 10px; max-width: 760px; margin-bottom: 28px; }
.caps { columns: 3 300px; column-gap: 18px; }
.cap { break-inside: avoid; display: flex; flex-direction: column; gap: 12px; margin: 0 0 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: 18px; }
.cap h3 { font-size: 20px; }
.cap-tag { font-weight: 800; font-size: 12px; letter-spacing: .1em; color: var(--sage); text-transform: uppercase; }
.cap img { width: 100%; height: auto; display: block; border-radius: 14px; }
.cap figcaption { font-size: 13px; color: var(--muted); font-weight: 600; }

/* Before / after */
.ba-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px; align-items: start; }
.ba-card { background: var(--surface); border: 1px solid var(--line); border-radius: 28px; padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.ba { position: relative; overflow: hidden; border-radius: 18px; background: #2A2A27; user-select: none; touch-action: pan-y; --pos: 50%; aspect-ratio: 3 / 4.6; }
.ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; pointer-events: none; }
.ba .ba-before { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.ba-line { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: #FFFFFF; pointer-events: none; }
.ba-knob { position: absolute; top: 50%; left: var(--pos); width: 46px; height: 46px; margin: -23px 0 0 -23px; border-radius: 50%; background: #FFFFFF; color: #0D0D0C; display: flex; align-items: center; justify-content: center; pointer-events: none; box-shadow: 0 4px 14px rgba(0,0,0,.4); }
.ba-knob .ico { width: 20px; height: 20px; }
.ba-tag { position: absolute; top: 12px; font-weight: 800; font-size: 12px; letter-spacing: .06em; padding: 6px 10px; border-radius: 999px; pointer-events: none; }
.ba-tag.l { left: 12px; background: #0D0D0C; color: #FFFFFF; }
.ba-tag.r { right: 12px; background: #FFFFFF; color: #0D0D0C; }
.ba input[type=range] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.ba input[type=range]:focus-visible + .ba-knob { outline: 3px solid var(--cta); outline-offset: 3px; }
.ba-title { font-family: var(--font-display); font-weight: 800; font-size: 24px; line-height: 1.15; }
.ba-sub { color: var(--text-2); font-size: 16px; }

/* About */
.about { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 48px; align-items: center; }
.about-copy { display: flex; flex-direction: column; gap: 18px; }
.about-copy p { font-size: 18px; color: var(--text-2); line-height: 1.65; }
.values { display: flex; flex-direction: column; gap: 14px; }
.value { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 20px; display: flex; gap: 16px; align-items: flex-start; }
.value b { display: block; font-family: var(--font-display); font-size: 19px; margin-bottom: 2px; }
.value span { color: var(--text-2); font-size: 16px; line-height: 1.5; }

/* Program */
.phases { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-bottom: 20px; }
.phase { background: var(--surface); border: 1px solid var(--line); border-radius: 24px; padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.phase-weeks { display: inline-flex; align-self: flex-start; background: var(--sage-dim); border: 1px solid var(--sage-line); color: var(--sage); font-weight: 800; font-size: 13px; padding: 5px 12px; border-radius: 999px; }
.phase h3 { font-size: 26px; }
.phase p { color: var(--text-2); }
.progress { height: 6px; border-radius: 999px; background: var(--surface-2); overflow: hidden; }
.progress i { display: block; height: 100%; width: 0; background: var(--sage); border-radius: 999px; transition: width 1.2s ease; }
.feats { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.feat { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.feat b { font-size: 18px; }
.feat span { color: var(--text-2); font-size: 15px; line-height: 1.55; }
.bonus-link { grid-column: 1 / -1; background: var(--sage-dim); border: 1px solid var(--sage-line); color: var(--sage); border-radius: 18px; padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; text-decoration: none; font-weight: 800; font-size: 18px; }
.bonus-link:hover { border-color: var(--sage); }

/* Fit */
.fit { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.fit-card { border-radius: 24px; padding: 30px; display: flex; flex-direction: column; gap: 18px; }
.fit-yes { background: var(--sage-dim); border: 1px solid var(--sage-line); }
.fit-no { background: var(--surface); border: 1px solid var(--line); }

/* Bonus */
.bonus-big { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-bottom: 20px; }
.bcard { background: var(--surface); border: 1px solid var(--line); border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; }
.bcard-top { padding: 26px; display: flex; flex-direction: column; gap: 14px; min-height: 150px; justify-content: space-between; background: var(--surface-2); }
.bcard-top.soft { background: var(--sage-dim); }
.bnum { align-self: flex-start; font-weight: 800; font-size: 12px; letter-spacing: .1em; color: var(--sage); }
.bcard-top h3 { font-size: 26px; display: flex; gap: 12px; align-items: center; }
.bcard-top h3 .ico { color: var(--sage); width: 28px; height: 28px; }
.bcard-body { padding: 22px 26px 26px; display: flex; flex-direction: column; gap: 12px; }
.bcard-body p { color: var(--text-2); }
.bonus-small { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.bsmall { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 24px; display: flex; gap: 16px; align-items: flex-start; }
.bsmall small { display: block; font-weight: 800; font-size: 12px; letter-spacing: .1em; color: var(--sage); }
.bsmall b { display: block; font-family: var(--font-display); font-size: 20px; margin: 2px 0 4px; }
.bsmall span { color: var(--text-2); font-size: 15px; }
.cta-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-top: 32px; }
.cta-row > span { color: var(--muted); font-size: 15px; }

/* Never */
.never { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.never div { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.never b { font-family: var(--font-display); font-size: 20px; text-decoration: line-through; text-decoration-color: var(--sage); text-decoration-thickness: 3px; }
.never span { color: var(--text-2); }

/* Steps */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.step { display: flex; flex-direction: column; gap: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: 24px; }
.step-top { display: flex; align-items: center; justify-content: space-between; }
.step-n { font-family: var(--font-display); font-weight: 800; font-size: 34px; color: var(--sage); line-height: 1; }
.step b { font-family: var(--font-display); font-size: 20px; }
.step span { color: var(--text-2); }

/* Call form */
.call { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.call-copy { flex: 1 1 360px; display: flex; flex-direction: column; gap: 18px; }
.mini-steps { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.mini-steps li { display: flex; gap: 14px; align-items: flex-start; }
.mini-steps b { font-family: var(--font-display); color: var(--sage); font-size: 20px; min-width: 34px; }
.mini-steps span { color: var(--text-2); }
.call-box { flex: 999 1 460px; min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 28px; padding: 32px; }
.form { display: flex; flex-direction: column; gap: 18px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-weight: 700; font-size: 15px; }
.field input, .field select { background: var(--bg); border: 1px solid #45453F; color: var(--text); border-radius: 12px; padding: 14px 16px; font-size: 16px; min-height: 50px; font-family: inherit; }
.field input:focus, .field select:focus { outline: 3px solid var(--cta); outline-offset: 1px; }
.form .btn { width: 100%; }
.form .micro { justify-content: center; }
.fine { color: var(--muted); font-size: 13px; line-height: 1.5; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-err { background: #3A1F1F; color: #FFD6D6; border-radius: 12px; padding: 12px 14px; font-size: 15px; }
.form-ok { display: flex; flex-direction: column; gap: 12px; padding: 24px 0; }
.form-ok b { font-family: var(--font-display); font-size: 28px; color: var(--sage); }
.form-ok span { color: var(--text-2); }
[hidden] { display: none !important; }
button[disabled] { opacity: .65; cursor: wait; }

/* FAQ */
.faq-list { display: flex; flex-direction: column; gap: 12px; max-width: 860px; }
.faq { background: var(--surface); border-radius: 18px; overflow: hidden; border: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; font-weight: 700; font-size: 18px; padding: 22px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 64px; }
.faq summary::-webkit-details-marker { display: none; }
.faq-sign { background: var(--sage-dim); color: var(--sage); border: 1px solid var(--sage-line); width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; transition: transform .2s; }
.faq[open] .faq-sign { transform: rotate(45deg); }
.faq-a { padding: 0 24px 22px; color: var(--text-2); line-height: 1.65; }

/* Final + footer */
.final { text-align: center; background: radial-gradient(ellipse at 50% 120%, #26301A 0%, var(--bg) 60%); }
.final .wrap { display: flex; flex-direction: column; align-items: center; gap: 24px; max-width: 1000px; }
.final h2 { font-size: clamp(36px, 5.6vw, 68px); }
.final .micro { justify-content: center; }
.foot { background: var(--bg); color: var(--muted); padding: 32px 0; border-top: 1px solid var(--line); font-size: 14px; }
.foot .wrap { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; }
.foot .logo { font-size: 20px; }
.foot-links { display: flex; flex-wrap: wrap; gap: 20px; }

/* Reveal on scroll */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.in { opacity: 1; transform: none; }
.js .pyr .pyr-step { opacity: 0; transform: translateY(-18px) scale(.96); transition: opacity .5s ease, transform .5s ease; }
.js .pyr.in .pyr-step { opacity: 1; transform: none; }
.pyr.in .pyr-step:nth-child(4) { transition-delay: .15s; }
.pyr.in .pyr-step:nth-child(3) { transition-delay: .3s; }
.pyr.in .pyr-step:nth-child(2) { transition-delay: .45s; }
.pyr.in .pyr-step:nth-child(1) { transition-delay: .6s; }

@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes marquee { to { transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .chip, .portrait::before, .marquee-track { animation: none; }
  .js .reveal, .js .pyr .pyr-step { opacity: 1; transform: none; transition: none; }
  .progress i { transition: none; }
}
@media (max-width: 900px) { .nav a:not(.btn) { display: none; } }
@media (max-width: 640px) {
  body { font-size: 16px; }
  .sec { padding: 72px 0; }
  .wrap { padding: 0 16px; }
  .logo { font-size: 21px; }
  .chip-a { left: -2%; }
  .chip-b { right: -2%; }
  .hero { padding-top: 28px; }
  .call-box { padding: 24px; }
  .turn { padding: 24px; }
}

/* "Ver más" captures */
.more-wrap { display: flex; justify-content: center; margin-top: 8px; }
.more-btn { background: transparent; color: var(--text); border: 1px solid var(--line); border-radius: 999px; padding: 12px 22px; min-height: 44px; font-family: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.more-btn:hover { border-color: var(--sage-line); color: var(--sage); }
#caps-more { margin-top: 0; }

/* v06 · programme cards */
.phases { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.pcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.pcard { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: 30px; display: flex; flex-direction: column; gap: 12px; transition: border-color .2s, transform .2s; }
.pcard:hover { border-color: var(--sage-line); transform: translateY(-3px); }
.pcard-k { font-weight: 800; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); }
.pcard h3 { font-size: clamp(22px, 2.3vw, 27px); text-transform: uppercase; letter-spacing: -0.01em; line-height: 1.05; }
.pcard p { color: var(--text-2); font-size: 16px; line-height: 1.6; }

/* v06 · about photos */
.about { align-items: start; }
.about-copy .values { margin-top: 8px; }
.about-photos { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.ph { margin: 0; position: relative; border-radius: 22px; overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.ph img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3 / 4.4; }
.ph-b { margin-top: 64px; }
.ph figcaption { position: absolute; left: 12px; bottom: 12px; background: rgba(13,13,12,.82); color: var(--text); font-weight: 700; font-size: 13px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); }
.ph-a img { object-position: 50% 40%; }
@media (max-width: 640px) { .ph-b { margin-top: 36px; } .pcard { padding: 24px; } }
@media (max-width: 640px) { .about-copy { display: contents; } .about { display: flex; flex-direction: column; } .about-photos { order: 0; } .about-copy .values { order: 1; } }

/* v08 · single physique photo */
.about-photos { grid-template-columns: 1fr; max-width: 460px; justify-self: center; width: 100%; }
.ph-a img { aspect-ratio: 3 / 3.7; object-position: 50% 20%; background: #F2F2F0; }
@media (max-width: 640px) { .about-photos { max-width: none; } }

/* v09 · bonus 5 (competition) */
.b5 { margin-top: 20px; display: grid; grid-template-columns: minmax(220px, 340px) 1fr; background: var(--surface); border: 1px solid var(--sage-line); border-radius: 24px; overflow: hidden; }
.b5-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; min-height: 340px; }
.b5-body { padding: 32px; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.b5-body small { font-weight: 800; font-size: 12px; letter-spacing: .12em; color: var(--sage); }
.b5-body h3 { font-size: clamp(24px, 2.8vw, 34px); }
.b5-body p { color: var(--text-2); }
@media (max-width: 700px) { .b5 { grid-template-columns: 1fr; } .b5-img img { aspect-ratio: 4 / 3.4; min-height: 0; object-position: 50% 25%; } .b5-body { padding: 24px; } }

/* v11 · hero journey card (replaces portrait) */
.journey { position: relative; width: min(440px, 100%); background: var(--surface); border: 1px solid var(--line); border-radius: 28px; padding: 28px; display: flex; flex-direction: column; gap: 22px; box-shadow: 0 30px 60px -30px rgba(195,245,107,.22); }
.journey-head { display: flex; gap: 14px; align-items: center; }
.journey-head b { display: block; font-family: var(--font-display); font-size: 21px; }
.journey-head span { color: var(--muted); font-size: 14px; }
.journey-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; position: relative; }
.journey-steps::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 2px; background: linear-gradient(var(--sage), var(--sage-line)); border-radius: 2px; }
.journey-steps li { display: flex; gap: 16px; align-items: center; position: relative; }
.journey-steps b { display: block; font-size: 17px; }
.journey-steps span:not(.dot) { color: var(--text-2); font-size: 15px; }
.dot { width: 44px; height: 44px; border-radius: 50%; background: var(--bg); border: 2px solid var(--sage); color: var(--sage); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; position: relative; z-index: 1; }
.dot .ico { width: 20px; height: 20px; }
.dot-goal { background: var(--sage); color: var(--bg); }
.journey .chip-a { top: -18px; right: -14px; left: auto; }
.journey .chip-b { bottom: -18px; left: -14px; right: auto; animation-delay: -2.5s; }
.js .journey-steps li { opacity: 0; transform: translateX(-12px); animation: stepIn .6s ease forwards; animation-delay: calc(.3s + var(--d)); }
@keyframes stepIn { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .js .journey-steps li { opacity: 1; transform: none; animation: none; } }
@media (max-width: 640px) { .journey { padding: 22px; } .journey .chip-a { right: -4px; } .journey .chip-b { left: -4px; } }
.hero-copy { flex: 1 1 520px; }
.hero-art { flex: 0 1 420px; }

/* v12 · plain highlight (no box), 4 cards + brace + always-present card */
.pcards { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.pcard h3 { font-size: clamp(20px, 2vw, 24px); }
.brace { color: var(--sage); height: 46px; margin: 14px 0 10px; }
.brace svg { width: 100%; height: 100%; display: block; }
.always { display: flex; gap: 20px; align-items: flex-start; max-width: 760px; margin: 0 auto; background: var(--sage-dim); border: 1px solid var(--sage-line); border-radius: 24px; padding: 30px; }
.always h3 { font-size: clamp(22px, 2.4vw, 28px); margin: 6px 0 8px; }
.always p { color: var(--text-2); }
.btn { box-shadow: 0 0 0 0 rgba(195,245,107,0), 0 8px 28px -12px rgba(195,245,107,.6); }
@media (max-width: 640px) { .brace { height: 34px; } .always { padding: 22px; flex-direction: column; } }

/* v13 · one green; buttons stand out by shape + motion, not by a different colour */
.btn { position: relative; overflow: hidden; isolation: isolate; box-shadow: 0 0 0 0 rgba(195,245,107,.55); animation: ctaPulse 2.6s ease-out infinite; }
.btn::after { content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.65), transparent); transform: skewX(-20deg); animation: ctaShine 3.6s ease-in-out infinite; z-index: -1; }
.btn .arr { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; background: var(--on-cta); color: var(--cta); align-items: center; justify-content: center; transition: transform .2s ease; }
.btn .arr svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.btn:hover .arr { transform: translateX(4px); }
.btn-sm { animation: none; }
.btn-sm::after { display: none; }
@keyframes ctaPulse { 0% { box-shadow: 0 0 0 0 rgba(195,245,107,.5); } 70% { box-shadow: 0 0 0 14px rgba(195,245,107,0); } 100% { box-shadow: 0 0 0 0 rgba(195,245,107,0); } }
@keyframes ctaShine { 0%, 55% { left: -60%; } 85%, 100% { left: 130%; } }
@media (prefers-reduced-motion: reduce) { .btn, .btn::after { animation: none; } }

/* v17 · CROSS + FOOD band */
.formula-sec { padding: 88px 0; border-bottom: 1px solid var(--line); background: radial-gradient(ellipse at 50% 0%, #1C2412 0%, var(--bg) 70%); }
.formula-word .plus { color: var(--muted); }
.formula-word .mark { background: var(--cta); color: var(--on-cta); padding: 0 .18em; border-radius: 14px; }

/* v18 · Pack CrossFooder Completo */
.pack-sec { background: radial-gradient(ellipse at 50% 0%, #1C2412 0%, var(--bg) 65%); border-bottom: 1px solid var(--line); }
.plans { display: grid; grid-template-columns: 1.25fr 1fr; gap: 20px; align-items: stretch; }
.plan { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 24px; padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.plan small { font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.plan h3 { font-size: clamp(24px, 2.8vw, 34px); }
.plan .ticks { flex: 1; }
.plan .ticks b { font-weight: 800; }
.plan .btn { align-self: stretch; margin-top: 8px; }
.plan-top { border: 2px solid var(--cta); box-shadow: 0 24px 60px -30px rgba(195,245,107,.45); padding-top: 40px; }
.plan-top small { color: var(--sage); }
.plan-tag { position: absolute; top: -15px; left: 28px; background: var(--cta); color: var(--on-cta); font-weight: 800; font-size: 13px; letter-spacing: .04em; border-radius: 999px; padding: 6px 14px; }
.plan:not(.plan-top) .ticks li { color: var(--text-2); }
.btn-ghost { background: transparent; color: var(--text); border: 1.5px solid var(--line); animation: none; box-shadow: none; }
.btn-ghost::after { display: none; }
.btn-ghost:hover { background: var(--surface-2); border-color: var(--muted); box-shadow: none; }
.coach { margin-top: 28px; display: flex; gap: 24px; align-items: center; background: var(--sage-dim); border: 1px solid var(--sage-line); border-radius: 24px; padding: 28px; }
.coach-pic { flex: 0 0 auto; width: 112px; height: 112px; border-radius: 50%; background: var(--surface-2); border: 3px solid var(--cta); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 800; font-size: 48px; color: var(--sage); overflow: hidden; }
.coach-pic img { width: 100%; height: 100%; object-fit: cover; }
.coach-body { display: flex; flex-direction: column; gap: 8px; }
.coach-body small { font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--sage); }
.coach-body h3 { font-size: clamp(24px, 2.6vw, 30px); }
.coach-body p { color: var(--text-2); max-width: 640px; }
.creds { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.creds li { background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; font-size: 14px; font-weight: 700; }
@media (max-width: 860px) { .plans { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .plan { padding: 24px; } .plan-top { padding-top: 34px; } .coach { flex-direction: column; align-items: flex-start; padding: 22px; } .coach-pic { width: 88px; height: 88px; font-size: 38px; } }
@media (max-width: 640px) { .plan .btn { font-size: 16px; padding: 15px 18px; } }

/* v19 · versión más ligera */
.blist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 18px; }
.blist li { display: grid; grid-template-columns: 34px 1fr; column-gap: 12px; align-items: start; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; }
.blist b { font-size: 16px; line-height: 1.3; }
.blist li > span:not(.bn) { grid-column: 2; color: var(--muted); font-size: 14px; line-height: 1.4; }
.bn { grid-row: span 2; width: 30px; height: 30px; border-radius: 50%; background: var(--sage-dim); border: 1px solid var(--sage-line); color: var(--sage); font-weight: 800; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; }
.b5-body small .bn { width: 22px; height: 22px; font-size: 12px; margin-right: 8px; vertical-align: middle; }
.b5 { grid-template-columns: minmax(180px, 260px) 1fr; }
.b5-img img { min-height: 280px; }
.b5-body { padding: 26px; gap: 10px; }
.coach-mini { display: flex; gap: 14px; align-items: center; background: var(--sage-dim); border: 1px solid var(--sage-line); border-radius: 16px; padding: 12px 14px; }
.coach-mini .coach-pic { width: 56px; height: 56px; font-size: 24px; border-width: 2px; }
.coach-mini b { display: block; font-size: 16px; }
.coach-mini span { display: block; color: var(--text-2); font-size: 13.5px; line-height: 1.4; }
@media (max-width: 760px) { .blist { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .b5-img img { aspect-ratio: 16 / 9; object-position: 50% 30%; } .b5-body { padding: 20px; } }
@media (max-width: 640px) { .coach-mini .coach-pic { width: 48px; height: 48px; font-size: 20px; } }
@media (max-width: 700px) { .b5 { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .phases { grid-template-columns: 1fr 1fr; gap: 10px; }
  .phase { padding: 16px; gap: 8px; border-radius: 18px; }
  .phase h3 { font-size: 18px; }
  .phase p { font-size: 14px; line-height: 1.45; }
  .phase-weeks { font-size: 11.5px; padding: 4px 10px; }
  .pcards { gap: 10px; }
  .pcard { padding: 20px; gap: 8px; }
  .pcard p { font-size: 15px; }
}

/* v20 · teaser del pack, pirámide integrada y bonus en una línea */
.teaser { align-self: flex-start; display: flex; align-items: center; gap: 12px; max-width: 560px; text-decoration: none; background: var(--sage-dim); border: 1px solid var(--sage-line); border-radius: 16px; padding: 12px 16px; transition: border-color .2s, transform .2s; }
.teaser:hover { border-color: var(--sage); transform: translateY(-2px); }
.teaser-tag { flex: 0 0 auto; background: var(--cta); color: var(--on-cta); font-weight: 800; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; border-radius: 999px; padding: 4px 10px; }
.teaser-txt { color: var(--text-2); font-size: 15px; line-height: 1.4; }
.teaser-txt b { color: var(--text); }
.teaser .ico { flex: 0 0 auto; width: 20px; height: 20px; color: var(--sage); animation: nudge 1.8s ease-in-out infinite; }
@keyframes nudge { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .teaser .ico { animation: none; } }
.pyr-in { margin: 64px 0 56px; scroll-margin-top: 90px; }
.pyr-h { font-size: clamp(26px, 3vw, 36px); line-height: 1.1; }
.bonus-line { margin-top: 28px; display: flex; gap: 18px; align-items: flex-start; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: 22px 24px; }
.bonus-line b { font-family: var(--font-display); font-size: 22px; display: block; margin-bottom: 10px; }
.bonus-line ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.bonus-line li { background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; font-size: 14px; font-weight: 700; color: var(--text); }
@media (max-width: 640px) { .pyr-in { margin: 44px 0 36px; gap: 28px; } .bonus-line { flex-direction: column; padding: 20px; gap: 12px; } .teaser { padding: 10px 12px; } .teaser-txt { font-size: 14px; } }

/* v21 · programa con dos pilares: nutrición (Raúl) + entreno (Inés) */
.pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; }
.pillar { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 24px; padding: 30px; display: flex; flex-direction: column; gap: 20px; }
.pillar-train { border: 2px solid var(--sage-line); background: linear-gradient(180deg, #1C2412 0%, var(--surface) 55%); }
.pillar-tag { position: absolute; top: -14px; right: 24px; background: var(--cta); color: var(--on-cta); font-weight: 800; font-size: 12.5px; letter-spacing: .04em; border-radius: 999px; padding: 5px 12px; }
.pillar-head { display: flex; gap: 14px; align-items: center; }
.pillar-head small { display: block; font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--sage); }
.pillar-head h3 { font-size: clamp(26px, 2.8vw, 32px); }
.pillar-head .coach-pic { width: 56px; height: 56px; font-size: 24px; border-width: 2px; }
.pillar-head .ico-badge { width: 56px; height: 56px; border-radius: 50%; }
.pillar-cred { display: block; color: var(--muted); font-size: 13.5px; line-height: 1.4; margin-top: 4px; }
.pillar-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pillar-list li { padding: 14px 0; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 4px; }
.pillar-list li:first-child { border-top: 0; padding-top: 0; }
.pillar-list b { font-family: var(--font-display); font-size: 19px; text-transform: uppercase; letter-spacing: -0.01em; line-height: 1.15; }
.pillar-list span { color: var(--text-2); font-size: 15.5px; line-height: 1.55; }
.ticks li.off { color: var(--muted); text-decoration: line-through; text-decoration-color: rgba(152,152,143,.6); }
.ticks li.off .ico { color: var(--muted); }
@media (max-width: 860px) { .pillars { grid-template-columns: 1fr; gap: 26px; } }
@media (max-width: 640px) { .pillar { padding: 22px; gap: 14px; } .pillar-list b { font-size: 17px; } .pillar-list span { font-size: 15px; } .pillar-list li { padding: 12px 0; } }
@media (min-width: 641px) { .phase h3 { font-size: clamp(20px, 1.75vw, 25px); } }

/* v22 · mini pirámide en el pilar de entreno */
.pyr-mini { margin-top: auto; display: flex; gap: 18px; align-items: center; background: rgba(13,13,12,.45); border: 1px solid var(--sage-line); border-radius: 18px; padding: 16px 18px; }
.pyr-mini-stack { flex: 0 0 150px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.pyr-mini-stack i { font-style: normal; display: block; text-align: center; font-size: 11px; font-weight: 800; padding: 5px 2px; border-radius: 6px; background: var(--sage-dim); border: 1px solid var(--sage); color: var(--sage); white-space: nowrap; overflow: hidden; }
.pyr-mini-stack i.box { background: var(--surface-2); border-color: var(--line); color: var(--text-2); }
.pyr-mini-stack i.base { background: var(--cta); border-color: var(--cta); color: var(--on-cta); }
.pyr-mini p { color: var(--text-2); font-size: 15px; line-height: 1.5; }
.pyr-mini p b { color: var(--text); }
@media (max-width: 640px) { .pyr-mini { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px; } .pyr-mini-stack { flex: none; width: 200px; align-self: center; } }

/* v23 · la fuerza de Inés impulsa la pirámide (no es una programación aparte) */
.pyr-mini-wrap { flex: 0 0 auto; display: flex; align-items: stretch; gap: 8px; }
.pyr-mini-stack i { background: var(--surface-2); border-color: var(--line); color: var(--text-2); }
.pyr-mini-stack i.base { background: var(--cta); border-color: var(--cta); color: var(--on-cta); }
.pyr-boost { width: 30px; border: 2px solid var(--sage); border-left: 0; border-radius: 0 10px 10px 0; display: flex; align-items: center; justify-content: center; position: relative; }
.pyr-boost span { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 10.5px; font-weight: 800; line-height: 1.1; color: var(--on-cta); background: var(--cta); border-radius: 6px; padding: 6px 3px; text-align: center; position: absolute; right: -15px; }
@media (max-width: 640px) { .pyr-mini-wrap { align-self: center; } .pyr-mini-stack { width: 180px; } }
.pyr-boost { margin-bottom: 32px; }

/* v24 · fotos difuminadas en las tarjetas de Raúl e Inés */
.pillar { padding-top: 0; overflow: visible; }
.pillar-photo { position: relative; margin: 0 -30px; height: 300px; border-radius: 22px 22px 0 0; overflow: hidden; }
.pillar-train .pillar-photo { margin: 0 -30px; border-radius: 22px 22px 0 0; }
.pillar-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.pillar-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(27,27,25,0) 25%, rgba(27,27,25,.55) 60%, var(--surface) 100%); }
.pillar:first-child .pillar-photo img { filter: brightness(.82) saturate(.95); }
.pillar-train .pillar-photo::after { background: linear-gradient(180deg, rgba(28,36,18,0) 25%, rgba(28,36,18,.6) 62%, #1C2412 100%); }
.pillar-photo .pillar-head { position: absolute; left: 30px; right: 30px; bottom: 14px; z-index: 1; display: block; }
.pillar-photo .pillar-cred { color: var(--text-2); }
.pillar-train { background: linear-gradient(180deg, #1C2412 0%, #1C2412 300px, var(--surface) 100%); }
.pillar-tag { z-index: 2; }
@media (max-width: 640px) { .pillar-photo { margin: 0 -22px; height: 240px; } .pillar-train .pillar-photo { margin: 0 -22px; } .pillar-photo .pillar-head { left: 22px; right: 22px; } }
.pillar-photo { height: 340px; }
.pillar:first-child .pillar-photo img { object-position: 50% 0%; }
.pillar-train .pillar-photo img { object-position: 50% 0%; }
.pillar-photo::after { background: linear-gradient(180deg, rgba(27,27,25,0) 40%, rgba(27,27,25,.7) 72%, var(--surface) 100%); }
.pillar-train .pillar-photo::after { background: linear-gradient(180deg, rgba(28,36,18,0) 40%, rgba(28,36,18,.72) 72%, #1C2412 100%); }
.pillar-train { background: linear-gradient(180deg, #1C2412 0%, #1C2412 340px, var(--surface) 100%); }
@media (max-width: 640px) { .pillar-photo { height: 280px; } }

/* v25 · foto más grande y texto debajo, para que se vea el físico */
.pillar-photo { height: 430px; }
.pillar-photo::after { background: linear-gradient(180deg, rgba(27,27,25,0) 62%, var(--surface) 100%); }
.pillar-train .pillar-photo::after { background: linear-gradient(180deg, rgba(28,36,18,0) 62%, #1C2412 100%); }
.pillar-train { background: linear-gradient(180deg, #1C2412 0%, #1C2412 430px, var(--surface) 100%); }
.pillar > .pillar-head { display: block; margin-top: -26px; position: relative; z-index: 1; }
.pillar:first-child .pillar-photo img { object-position: 50% 0%; }
.pillar-train .pillar-photo img { object-position: 50% 30%; }
@media (max-width: 640px) { .pillar-photo { height: 340px; } .pillar > .pillar-head { margin-top: -18px; } }

/* v26 · nueva foto de Inés (con Raúl detrás) */
.pillar-photo { height: 500px; }
.pillar-train .pillar-photo img { object-position: 50% 20%; }
.pillar-train { background: linear-gradient(180deg, #1C2412 0%, #1C2412 500px, var(--surface) 100%); }
@media (max-width: 640px) { .pillar-photo { height: 360px; } }
.pillar-train .pillar-photo img { object-position: 50% 0%; }
.pillar-train .pillar-photo img { object-position: 50% 4%; }
.pillar-train .pillar-photo img { object-position: 50% 0%; }
/* v29 · foto del remo en la tarjeta de Raúl */
.pillar:first-child .pillar-photo img { filter: none; object-position: 50% 0%; }

/* v31 · Inés aislada dentro del pack */
.coach-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); background: linear-gradient(90deg, #1C2412 0%, var(--surface) 100%); border: 2px solid var(--sage-line); border-radius: 26px; overflow: hidden; margin-bottom: 36px; }
.cf-photo { position: relative; min-height: 100%; }
.cf-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0%; display: block; }
.cf-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,36,18,0) 60%, #1C2412 100%); }
.cf-body { padding: 32px 34px; display: flex; flex-direction: column; gap: 6px; }
.cf-body small { font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--sage); }
.cf-body h3 { font-size: clamp(30px, 3.4vw, 40px); }
.cf-body .pillar-list { margin-top: 16px; }
@media (max-width: 860px) {
  .coach-feature { grid-template-columns: 1fr; background: linear-gradient(180deg, #1C2412 0%, var(--surface) 100%); }
  .cf-photo { height: 340px; min-height: 0; }
  .cf-photo::after { background: linear-gradient(180deg, rgba(28,36,18,0) 60%, #1C2412 100%); }
  .cf-body { padding: 4px 22px 24px; margin-top: -24px; position: relative; z-index: 1; }
}
.coach-feature { background: #1C2412; } @media (max-width: 860px) { .coach-feature { background: linear-gradient(180deg, #1C2412 0%, #181C13 100%); } }
.cf-photo img { object-position: 50% 30%; }

/* v39 · casilla de privacidad en todos los formularios */
.consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--text-2); line-height: 1.45; cursor: pointer; }
.consent input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--cta); flex: 0 0 auto; }
.consent a { color: var(--text); }
