/* ==========================================================================
   FiftyPlus — Homepage redesign additions (brief, June 2026)
   Loads ON TOP of home.css + redefine.css. New homepage-only sections:
   full-bleed video hero, merged nav, trust bar, lime specialist band,
   approach-on-green, testimonials-on-green, quiet newsletter strip.
   ========================================================================== */

.fp-home { --rd-nav-h: 76px; }

/* ── Merged nav over the dark hero (solidifies on scroll) ───────────────── */
.fp-home .rd-nav.fp-nav .fp-nav__links a { color: rgba(255,255,255,0.86); }
.fp-home .rd-nav.fp-nav .fp-nav__links a:hover { color: #fff; }
.fp-home .rd-nav.fp-nav .fp-nav__login-link {
  color: var(--fp-secondary);
}
.fp-home .rd-nav.fp-nav .fp-nav__login-link:hover {
  color: var(--fp-lime-dark);
}
.fp-home .rd-nav.fp-nav[data-scrolled="true"] .fp-nav__login-link {
  color: var(--fp-secondary);
}
.fp-home .rd-nav.fp-nav[data-scrolled="true"] .fp-nav__login-link:hover {
  color: var(--fp-secondary-dark);
}
.fp-home .rd-nav.fp-nav .fp-nav__burger { color: #fff; }
.fp-home[data-header="solid"] .fp-hero { margin-top: 0; }

/* ── Hero — desktop: full-bleed overlay; mobile: split photo + copy panel ─ */
.fp-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: clamp(48px, 10vw, 96px) 0;
  text-align: center;
  margin-top: calc(-1 * var(--rd-nav-h));
}

.fp-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.fp-hero__poster {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  z-index: 0;
}

.fp-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.fp-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(178deg, rgba(26,40,34,0.55) 0%, rgba(22,38,31,0.72) 100%);
}

.fp-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
}

.fp-hero__inner {
  position: relative;
  width: 100%;
  padding: calc(var(--rd-nav-h) + 20px) 28px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.fp-hero__eyebrow {
  font-family: var(--fp-font-heading); font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--fp-lime);
  margin: 0 0 20px; padding: 6px 14px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 1px solid rgba(185,251,159,0.35); border-radius: 9999px;
}
.fp-hero__eyebrow::before { display: none; }
.fp-hero__title {
  margin: 0 auto; max-width: 14ch; font-family: var(--fp-font-heading);
  font-size: clamp(36px, 6.4vw, 82px); font-weight: 700;
  line-height: 1.06; letter-spacing: -0.03em; color: #fff; text-wrap: balance;
}
.fp-hero__title .accent { color: var(--fp-lime); }
.fp-hero__sub {
  margin: 22px auto 32px; max-width: 34ch;
  font-size: clamp(17px, 2.1vw, 22px); line-height: 1.65;
  color: rgba(255,255,255,0.9); text-align: center;
}
.fp-hero__ctaWrap { display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; max-width: 360px; }
.fp-hero .btn-redefine-cta { width: 100%; }

/* ── Trust bar (anchored under hero) ───────────────────────────────────── */
.fp-trustbar { background: var(--band-green); padding: 26px 0; }
.fp-trustbar__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.fp-trustbar__item {
  position: relative; text-align: center; padding: 6px 22px; text-decoration: none;
  display: flex; flex-direction: column; align-items: center; gap: 5px;
}
.fp-trustbar__item + .fp-trustbar__item::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 40px; background: rgba(255,255,255,0.18);
}
.fp-trustbar__value {
  font-family: var(--fp-font-heading); font-size: clamp(16px, 1.9vw, 20px); font-weight: 700;
  color: #fff; line-height: 1.2; display: inline-flex; align-items: center; gap: 8px;
}
.fp-trustbar__value .stars { color: var(--fp-lime); letter-spacing: 1px; }
.fp-trustbar__label { font-size: 14.5px; color: rgba(255,255,255,0.78); line-height: 1.3; }
a.fp-trustbar__item:hover .fp-trustbar__value { color: var(--fp-lime); }

/* ── Approach checklist on green band ───────────────────────────────────── */
.band-green .fp-approach-list li { color: #fff; border-bottom-color: rgba(255,255,255,0.14); }
.band-green .fp-approach-close { color: #fff; }

/* Pillars subhead inside the approach section */
.fp-pillars-head { margin: clamp(56px, 7vw, 84px) auto 0; text-align: center; }
.fp-pillars-head .fp-eyebrow { justify-content: center; }

/* ── Specialist statement (lime band) ──────────────────────────────────── */
.band-lime { background: var(--fp-lime); color: var(--fp-green-dark); }
.fp-specialist { text-align: center; }
.fp-specialist__text {
  margin: 0 auto; max-width: 18ch;
  font-family: var(--fp-font-heading); font-weight: 700; letter-spacing: -0.02em;
  font-size: clamp(28px, 4vw, 50px); line-height: 1.12; color: var(--fp-green-dark);
}
.fp-specialist__sub {
  margin: 22px auto 0; max-width: 640px;
  font-size: clamp(17px, 1.9vw, 20px); line-height: 1.55; color: rgba(42,82,70,0.82);
}

/* ── Programme guarantee block inside the Redefine card ─────────────────── */
.fp-price-card .rd-prog-guarantee { margin: 4px 0 28px; }

/* ── Membership footnote ───────────────────────────────────────────────── */
.fp-price-card__foot { margin: 18px 0 0; font-size: 14.5px; color: var(--fp-fg-3); text-align: center; font-style: italic; }

/* ── Testimonials on green band ────────────────────────────────────────── */
.band-green .rd-google { background: rgba(255,255,255,0.96); }

/* ── Location secondary path ───────────────────────────────────────────── */
.fp-loc-secondary { margin-top: 26px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.16); }
.fp-loc-secondary__lead { margin: 0 0 12px; font-size: 16px; color: rgba(255,255,255,0.8); }
.fp-quiet-link {
  display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
  font-family: var(--fp-font-heading); font-weight: 600; font-size: 16px; color: var(--fp-lime);
  border-bottom: 1px solid rgba(185,251,159,0.45); padding-bottom: 3px;
  transition: border-color var(--fp-dur-fast) var(--fp-ease);
}
.fp-quiet-link:hover { border-bottom-color: var(--fp-lime); }
.fp-quiet-link svg { width: 17px; height: 17px; }

/* ── Final CTA + quiet newsletter strip ────────────────────────────────── */
.fp-final { text-align: center; }
.fp-final__title { max-width: 16ch; margin: 0 auto; }
.fp-final__reassure { margin: 24px 0 0; font-family: var(--fp-font-heading); font-size: 16px; font-weight: 600; color: rgba(255,255,255,0.78); }
.fp-news-strip {
  margin: clamp(48px, 6vw, 72px) auto 0; max-width: 760px;
  padding-top: clamp(32px, 4vw, 44px); border-top: 1px solid rgba(255,255,255,0.16);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 28px;
}
.fp-news-strip__text { margin: 0; font-size: 16.5px; line-height: 1.5; color: rgba(255,255,255,0.82); max-width: 420px; text-align: left; }

/* ── Responsive ────────────────────────────────────────────────────────── */
.fp-hero__sub--mobile { display: none; }

@media (max-width: 920px) {
  .fp-trustbar__grid { grid-template-columns: repeat(2, 1fr); row-gap: 26px; }
  .fp-trustbar__item:nth-child(odd)::before { display: none; }
}

@media (max-width: 760px) {
  /* Mobile overlay — fixed height so portrait PNG cannot stretch the page */
  .fp-hero {
    display: flex;
    align-items: flex-end;
    height: clamp(440px, 52svh, 520px);
    min-height: 0;
    max-height: 520px;
    padding: 0 0 28px;
    margin-top: calc(-1 * var(--rd-nav-h));
    overflow: hidden;
  }

  .fp-hero__media {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #1b372d;
  }

  .fp-hero__poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center 18%;
  }

  .fp-hero__video {
    display: none;
  }

  .fp-hero__overlay {
    display: block;
    z-index: 2;
    background:
      linear-gradient(180deg, rgba(26, 40, 34, 0.5) 0%, rgba(26, 40, 34, 0.12) 36%, rgba(22, 38, 31, 0.82) 72%, rgba(22, 38, 31, 0.96) 100%);
  }

  .fp-hero__content {
    position: relative;
    z-index: 3;
    background: none;
    padding: 0;
    flex-shrink: 0;
  }

  .fp-hero__inner {
    padding: 0 20px;
  }

  .fp-hero__title {
    max-width: 11ch;
    font-size: clamp(32px, 8.5vw, 42px);
  }

  .fp-hero__sub {
    margin: 12px auto 18px;
    font-size: 16px;
    line-height: 1.5;
    max-width: 30ch;
  }

  .fp-hero__ctaWrap {
    max-width: 100%;
  }

  .fp-home .rd-nav.fp-nav:not([data-scrolled="true"]) {
    background: transparent;
  }

  .fp-hero__sub--desktop { display: none; }
  .fp-hero__sub--mobile { display: block; }
}

@media (max-width: 560px) {
  .fp-trustbar__grid { grid-template-columns: repeat(2, 1fr); row-gap: 18px; column-gap: 8px; }
  .fp-trustbar__item { min-height: 56px; padding: 10px 12px; }
  .fp-trustbar__item::before { display: none !important; }
  .fp-news-strip { flex-direction: column; }
  .fp-news-strip__text { text-align: center; }
}

@media (max-width: 480px) {
  .fp-hero {
    height: clamp(400px, 48svh, 460px);
    max-height: 460px;
    padding-bottom: 22px;
  }

  .fp-hero__poster {
    object-position: center 15%;
  }

  .fp-hero__title {
    font-size: clamp(30px, 8vw, 38px);
  }

  .fp-hero__sub {
    margin: 10px auto 16px;
    font-size: 15px;
  }

  .fp-hero__eyebrow { font-size: 0.68rem; margin-bottom: 12px; }

  .fp-home .fp-trustbar {
    padding: 14px 0;
  }
}
