
  :root {
    --bg:#0a0a0a; --bg-2:#141414; --bg-3:#1c1c1c;
    --blue:#1d6dfc; --blue-2:#3b8bff; --blue-deep:#0a3a8c;
    --white:#fff; --off:#f5f3ee; --gray:#a3a3a3; --gray-2:#4a4a4a;
    --warm-bg:#f5f1e8; --warm-2:#ebe5d4; --ink:#1a1a1a;
    --gold:#fbbf24;
  }
  * { box-sizing:border-box; margin:0; padding:0; }
  html { scroll-behavior:smooth; }
  body { font-family:'Manrope',system-ui,sans-serif; background:var(--bg); color:var(--white); line-height:1.6; overflow-x:hidden; }
  h1,h2,h3,.display { font-family:'Anton',Impact,sans-serif; font-weight:400; letter-spacing:.01em; line-height:.95; text-transform:uppercase; }
  a { color:inherit; text-decoration:none; }
  img { display:block; max-width:100%; height:auto; }

  .nav { position:sticky; top:0; z-index:100; background:rgba(10,10,10,.92); backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,.08); }
  .nav-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:14px 24px; }
  .logo { background:none; border:none; cursor:pointer; padding:0; display:flex; align-items:center; }
  .logo img { height:48px; width:auto; display:block; }
  .logo.logo-ff img { height:36px; }
  .nav-links { display:flex; gap:32px; align-items:center; }
  .nav-links button { background:none; border:none; color:var(--white); font-family:'Manrope',sans-serif; font-size:14px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; padding:8px 0; position:relative; transition:color .2s; }
  .nav-links button:hover { color:var(--blue-2); }
  .nav-links button.active { color:var(--blue-2); }
  .nav-links button.active::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--blue); }
  .nav-cta { padding:10px 20px; background:var(--blue); color:var(--white); border-radius:4px; font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase; transition:background .2s; border:none; cursor:pointer; font-family:inherit; }
  .nav-cta:hover { background:var(--blue-2); }
  .menu-toggle { display:none; background:none; border:none; color:white; cursor:pointer; font-size:22px; }

  @media (max-width:900px) {
    .nav-links { display:none; }
    .nav-links.open { display:flex; flex-direction:column; gap:0; position:absolute; top:100%; left:0; right:0; background:var(--bg); padding:16px 24px 24px; border-bottom:1px solid rgba(255,255,255,.08); }
    .nav-links.open button { padding:14px 0; text-align:left; border-bottom:1px solid rgba(255,255,255,.05); }
    .nav-links.open .nav-cta { margin-top:12px; padding:14px; }
    .menu-toggle { display:block; }
  }

  .page { display:none; }
  .page.active { display:block; }

  .btn { display:inline-block; padding:18px 32px; font-family:'Anton',sans-serif; font-size:18px; letter-spacing:.06em; text-transform:uppercase; background:var(--blue); color:white; border:none; cursor:pointer; transition:all .2s; text-align:center; border-radius:2px; }
  .btn:hover { background:var(--blue-2); transform:translateY(-2px); box-shadow:0 8px 24px rgba(29,109,252,.4); }
  .btn-outline { background:transparent; border:2px solid var(--white); color:var(--white); }
  .btn-outline:hover { background:var(--white); color:var(--bg); box-shadow:0 8px 24px rgba(255,255,255,.2); }
  .btn-warm { background:var(--ink); color:var(--off); }
  .btn-warm:hover { background:var(--blue); }

  /* HERO */
  .hero { position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; padding:80px 24px; }
  .hero-bg { position:absolute; inset:0; background-image:linear-gradient(180deg,rgba(10,10,10,.5) 0%,rgba(10,10,10,.85) 100%),url('img/group-large.jpg'); background-size:cover; background-position:center; z-index:0; }
  .hero-content { position:relative; z-index:2; max-width:1200px; margin:0 auto; width:100%; }
  .eyebrow { display:inline-block; font-size:12px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--blue-2); margin-bottom:24px; padding-left:14px; position:relative; }
  .eyebrow::before { content:''; position:absolute; left:0; top:50%; width:8px; height:2px; background:var(--blue-2); }
  .hero h1 { font-size:clamp(48px,8vw,112px); margin-bottom:24px; max-width:14ch; }
  .hero h1 .blue { color:var(--blue-2); }
  .hero p.lead { font-size:clamp(17px,2vw,22px); max-width:620px; margin-bottom:40px; color:rgba(255,255,255,.85); font-weight:400; }
  .hero-ctas { display:flex; flex-wrap:wrap; gap:16px; }

  /* SOCIAL PROOF BAR */
  .social-bar { background:var(--bg-2); border-bottom:1px solid rgba(255,255,255,.05); padding:24px; }
  .social-inner { max-width:1280px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:48px; flex-wrap:wrap; }
  .stars-row { display:flex; align-items:center; gap:16px; }
  .stars { color:var(--gold); font-size:22px; letter-spacing:2px; }
  .rating-text { font-family:'Anton',sans-serif; font-size:24px; }
  .rating-sub { color:var(--gray); font-size:13px; letter-spacing:.05em; text-transform:uppercase; }
  .social-bar .divider { width:1px; height:32px; background:rgba(255,255,255,.1); }
  .social-bar .pill { display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--gray); font-weight:600; }
  .social-bar .pill strong { color:var(--white); }
  @media (max-width:700px) { .social-bar .divider { display:none; } .social-inner { gap:20px; flex-direction:column; } }

  /* PROGRAMS */
  .programs { background:var(--bg-2); padding:100px 24px; }
  .container { max-width:1280px; margin:0 auto; }
  .section-head { text-align:center; margin-bottom:64px; }
  .section-head h2 { font-size:clamp(40px,6vw,72px); margin-bottom:16px; }
  .section-head h2 .blue { color:var(--blue-2); }
  .section-head p { color:var(--gray); font-size:18px; max-width:560px; margin:0 auto; }

  .program-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:24px; }
  .program-card { background:var(--bg); border:1px solid rgba(255,255,255,.08); padding:48px; position:relative; overflow:hidden; transition:all .3s; cursor:pointer; }
  .program-card:hover { border-color:var(--blue); transform:translateY(-4px); }
  .program-card .tag { display:inline-block; font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; padding:6px 12px; background:var(--blue); color:white; margin-bottom:24px; }
  .program-card.warm .tag { background:var(--ink); color:var(--off); }
  .program-card h3 { font-size:40px; margin-bottom:16px; }
  .program-card .who { font-size:16px; color:var(--gray); margin-bottom:24px; line-height:1.5; }
  .program-card ul { list-style:none; margin-bottom:32px; }
  .program-card li { padding:10px 0 10px 28px; position:relative; border-bottom:1px solid rgba(255,255,255,.05); font-size:15px; color:rgba(255,255,255,.85); }
  .program-card li::before { content:'→'; position:absolute; left:0; top:10px; color:var(--blue-2); font-weight:700; }
  .program-card li:last-child { border-bottom:none; }
  .program-card .offer { background:var(--bg-3); padding:16px; margin-bottom:24px; border-left:3px solid var(--blue); }
  .program-card .offer-label { font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--blue-2); font-weight:700; }
  .program-card .offer-text { font-size:17px; font-weight:700; margin-top:4px; }

  .why { padding:120px 24px; background:var(--bg); position:relative; }
  .why-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:32px; margin-top:64px; }
  .why-item { padding:32px; border:1px solid rgba(255,255,255,.08); background:var(--bg-2); position:relative; transition:all .3s; }
  .why-item:hover { border-color:var(--blue); transform:translateY(-4px); }
  .why-item .num { font-family:'Anton',sans-serif; font-size:80px; color:var(--blue); opacity:.3; line-height:.8; margin-bottom:16px; }
  .why-item h4 { font-family:'Anton',sans-serif; font-size:24px; text-transform:uppercase; margin-bottom:12px; letter-spacing:.02em; }
  .why-item p { color:var(--gray); font-size:15px; }

  /* SCHEDULE */
  .schedule-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; max-width:1100px; margin:0 auto; }
  @media (max-width:800px) { .schedule-grid { grid-template-columns:1fr; } }
  .sched-block { background:var(--bg-2); padding:36px 32px; border:1px solid rgba(255,255,255,.08); }
  .sched-day { font-family:'Anton',sans-serif; font-size:22px; text-transform:uppercase; color:var(--blue-2); margin-bottom:16px; padding-bottom:12px; border-bottom:2px solid var(--blue); letter-spacing:.04em; }
  .sched-row { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.05); gap:16px; flex-wrap:wrap; }
  .sched-row:last-child { border-bottom:none; }
  .sched-time { font-family:'Anton',sans-serif; font-size:17px; letter-spacing:.04em; }
  .sched-prog { font-size:12px; padding:4px 10px; border-radius:2px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
  .sched-prog.bc { background:var(--blue); color:white; }
  .sched-prog.ff { background:var(--off); color:var(--ink); }
  .sched-prog.pt { background:var(--gold); color:var(--ink); }
  .sched-prog.rest { background:rgba(255,255,255,.1); color:var(--gray); }

  /* PT BANNER */
  .pt-banner { padding:120px 24px; background:var(--bg); }
  .pt-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; align-items:center; max-width:1200px; margin:0 auto; }
  @media (max-width:800px) { .pt-grid { grid-template-columns:1fr; gap:32px; } }
  .pt-grid h2 { font-size:clamp(36px,5vw,56px); margin-bottom:24px; }
  .pt-grid h2 .blue { color:var(--blue-2); }
  .pt-grid p { color:var(--gray); margin-bottom:24px; font-size:17px; }
  .pt-list { list-style:none; margin-bottom:32px; }
  .pt-list li { padding:10px 0 10px 28px; position:relative; color:rgba(255,255,255,.85); font-size:15px; border-bottom:1px solid rgba(255,255,255,.05); }
  .pt-list li::before { content:'→'; position:absolute; left:0; top:10px; color:var(--gold); font-weight:700; }
  .pt-img { aspect-ratio:1/1; background:linear-gradient(135deg,rgba(10,10,10,.6),rgba(251,191,36,.15)),url('img/dog.jpg') center/cover; }

  /* TRANSFORMATIONS */
  .transformations { padding:120px 24px; background:var(--bg-2); }
  .trans-feature {
    display:grid; grid-template-columns:1.4fr 1fr; gap:0;
    margin-bottom:48px; background:var(--bg);
    border:1px solid rgba(255,255,255,.08); overflow:hidden;
  }
  .trans-feature-photos {
    display:grid; grid-template-columns:repeat(3,1fr); gap:4px;
    min-height:380px; background:var(--bg);
  }
  .vicky-pic { background-size:cover; background-position:center top; }
  .vp1 { background-image:url('img/vicky-1.jpg'); }
  .vp2 { background-image:url('img/vicky-2.jpg'); }
  .vp3 { background-image:url('img/vicky-3.jpg'); }
  .trans-feature-info { padding:48px; display:flex; flex-direction:column; justify-content:center; }
  .trans-feature-info h3 {
    font-family:'Anton',sans-serif; font-size:48px; text-transform:uppercase;
    letter-spacing:.02em; line-height:.95; margin:8px 0 16px; color:white;
  }
  .trans-feature-info p { color:var(--gray); margin-bottom:24px; font-size:16px; }
  .trans-stages { display:flex; flex-direction:column; gap:12px; }
  .trans-stages > div { display:flex; gap:16px; align-items:center; font-size:14px; color:rgba(255,255,255,.85); }
  .trans-stages .num {
    flex-shrink:0;
    width:32px; height:32px; border-radius:50%;
    background:var(--blue); color:white;
    display:flex; align-items:center; justify-content:center;
    font-family:'Anton',sans-serif; font-size:16px;
  }
  @media (max-width:800px) {
    .trans-feature { grid-template-columns:1fr; }
    .trans-feature-photo { min-height:280px; }
    .trans-feature-info { padding:32px 24px; }
    .trans-feature-info h3 { font-size:36px; }
  }
  .trans-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
  .trans-card { background:var(--bg); border:1px solid rgba(255,255,255,.08); overflow:hidden; transition:all .3s; }
  .trans-card:hover { border-color:var(--blue); transform:translateY(-4px); }
  .trans-card .photo { aspect-ratio:1/1; background-size:cover; background-position:center; }
  .trans-card .info { padding:20px 24px; }
  .trans-card .stat { font-family:'Anton',sans-serif; font-size:32px; color:var(--blue-2); line-height:1; margin-bottom:6px; }
  .trans-card .label { font-size:12px; color:var(--gray); letter-spacing:.1em; text-transform:uppercase; font-weight:600; }

  /* STORY */
  .story { padding:120px 24px; background:var(--bg-2); }
  .story-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; max-width:1200px; margin:0 auto; }
  .story-img { aspect-ratio:4/5; background:url('img/jonathan-now.jpg') center/cover; position:relative; }
  .story-img::before { content:''; position:absolute; inset:-16px -16px 16px 16px; border:2px solid var(--blue); z-index:-1; }
  .story-content h2 { font-size:clamp(36px,5vw,60px); margin-bottom:32px; }
  .story-content p { margin-bottom:20px; color:rgba(255,255,255,.85); font-size:17px; }
  .story-quote { font-family:'Anton',sans-serif; font-size:28px; text-transform:uppercase; line-height:1.1; color:var(--blue-2); margin:32px 0; padding-left:24px; border-left:4px solid var(--blue); }
  @media (max-width:800px) { .story-grid { grid-template-columns:1fr; gap:40px; } }

  /* GALLERY */
  .gallery { padding:120px 24px; background:var(--bg); }
  .gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:12px; grid-auto-rows:200px; max-width:1400px; margin:0 auto; }
  .gallery-item { background-size:cover; background-position:center; overflow:hidden; position:relative; transition:transform .4s; }
  .gallery-item:hover { transform:scale(.98); }
  .g1 { grid-column:span 6; grid-row:span 2; background-image:url('img/group-large.jpg'); }
  .g2 { grid-column:span 3; background-image:url('img/community-300.jpg'); }
  .g3 { grid-column:span 3; background-image:url('img/community-600.jpg'); }
  .g4 { grid-column:span 3; background-image:url('img/dog.jpg'); }
  .g5 { grid-column:span 3; background-image:url('img/forever-group.jpg'); }
  @media (max-width:800px) { .gallery-grid { grid-auto-rows:140px; } .g1 { grid-column:span 12; grid-row:span 1; } .g2,.g3,.g4,.g5 { grid-column:span 6; } }

  /* TESTIMONIALS */
  .testimonials { padding:120px 24px; background:var(--bg-2); }
  .testi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; margin-top:64px; }
  .testi { background:var(--bg); padding:36px; border-top:3px solid var(--blue); position:relative; }
  .testi .stars { color:var(--gold); margin-bottom:16px; letter-spacing:3px; font-size:18px; }
  .testi p { font-size:18px; margin-bottom:24px; color:rgba(255,255,255,.95); font-weight:500; line-height:1.5; }
  .testi .who { font-size:13px; color:var(--gray); text-transform:uppercase; letter-spacing:.1em; font-weight:700; }
  .testi .who span { display:block; color:var(--blue-2); margin-top:4px; font-weight:500; text-transform:none; letter-spacing:0; }
  .testi-source { text-align:center; margin-top:32px; color:var(--gray); font-size:13px; }
  .testi-source a { color:var(--blue-2); }

  /* FINAL CTA */
  .final-cta { padding:140px 24px; text-align:center; background:linear-gradient(135deg,rgba(10,10,10,.85),rgba(29,109,252,.4)),url('img/group-large.jpg') center/cover; position:relative; }
  .final-cta h2 { font-size:clamp(44px,7vw,88px); margin-bottom:24px; max-width:16ch; margin-left:auto; margin-right:auto; }
  .final-cta p { font-size:19px; margin-bottom:40px; max-width:560px; margin-left:auto; margin-right:auto; }
  .final-cta .btn-row { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

  footer { background:var(--bg); padding:80px 24px 40px; border-top:1px solid rgba(255,255,255,.08); }
  .footer-grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
  @media (max-width:800px) { .footer-grid { grid-template-columns:1fr 1fr; } }
  footer h5 { font-family:'Anton',sans-serif; font-size:14px; letter-spacing:.15em; text-transform:uppercase; margin-bottom:16px; color:var(--blue-2); }
  footer ul { list-style:none; }
  footer li { padding:6px 0; color:var(--gray); font-size:14px; }
  footer a { color:var(--gray); font-size:14px; transition:color .2s; }
  footer a:hover { color:white; }
  footer button { background:none; border:none; color:var(--gray); cursor:pointer; padding:6px 0; font-family:inherit; font-size:14px; transition:color .2s; text-align:left; }
  footer button:hover { color:white; }
  .footer-bottom { max-width:1280px; margin:0 auto; padding-top:24px; border-top:1px solid rgba(255,255,255,.05); color:var(--gray); font-size:13px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; }
  .footer-brand p { color:var(--gray); font-size:14px; margin-top:12px; max-width:320px; }

  /* BOOT CAMP */
  .bc-hero { background:linear-gradient(110deg,rgba(10,10,10,.92) 30%,rgba(10,10,10,.5) 100%),url('img/community-600.jpg') center/cover; padding:120px 24px 100px; }
  .bc-hero-inner { max-width:1200px; margin:0 auto; }
  .bc-hero-logo { height:140px; width:auto; display:block; margin-bottom:24px; opacity:.92; }
  @media (max-width:700px) { .bc-hero-logo { height:90px; } }
  .bc-hero h1 { font-size:clamp(44px,8vw,104px); margin-bottom:24px; max-width:16ch; }
  .bc-hero h1 .price { color:var(--blue-2); }
  .bc-hero p.lead { font-size:19px; max-width:580px; margin-bottom:32px; color:rgba(255,255,255,.85); }
  .offer-box { background:var(--bg-2); border:2px solid var(--blue); padding:28px 32px; max-width:520px; margin-bottom:40px; }
  .offer-box .price-big { font-family:'Anton',sans-serif; font-size:56px; color:var(--blue-2); line-height:.9; margin-bottom:4px; }
  .offer-box .price-big small { font-size:16px; color:var(--gray); margin-left:8px; font-family:'Manrope'; }
  .offer-box .price-sub { font-size:14px; color:var(--gray); margin-bottom:20px; }
  .offer-box ul { list-style:none; margin-bottom:24px; }
  .offer-box li { padding:6px 0 6px 24px; position:relative; font-size:15px; }
  .offer-box li::before { content:'✓'; color:var(--blue-2); position:absolute; left:0; font-weight:800; }

  .who-for { padding:100px 24px; background:var(--bg); }
  .who-list { list-style:none; max-width:800px; margin:0 auto; }
  .who-list li { padding:24px 0 24px 60px; border-bottom:1px solid rgba(255,255,255,.08); position:relative; font-size:19px; }
  .who-list li::before { content:'✓'; position:absolute; left:0; top:18px; width:40px; height:40px; background:var(--blue); color:white; display:flex; align-items:center; justify-content:center; font-weight:800; border-radius:50%; }

  .three-steps { padding:120px 24px; background:var(--bg-2); }
  .step-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1200px; margin:64px auto 0; }
  @media (max-width:800px) { .step-grid { grid-template-columns:1fr; } }
  .step { background:var(--bg); padding:40px 32px; position:relative; border-top:4px solid var(--blue); }
  .step .num { font-family:'Anton',sans-serif; font-size:100px; color:var(--blue); line-height:.8; margin-bottom:16px; }
  .step h4 { font-family:'Anton',sans-serif; font-size:22px; text-transform:uppercase; margin-bottom:12px; }
  .step p { color:var(--gray); font-size:15px; }

  .faq-section { padding:100px 24px; background:var(--bg); }
  .faq-list { max-width:800px; margin:0 auto; }
  .faq-item { border-bottom:1px solid rgba(255,255,255,.1); }
  .faq-q { width:100%; background:none; border:none; color:white; padding:28px 0; font-family:'Anton',sans-serif; font-size:22px; text-transform:uppercase; text-align:left; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; letter-spacing:.02em; }
  .faq-q::after { content:'+'; font-size:28px; color:var(--blue-2); transition:transform .3s; }
  .faq-item.open .faq-q::after { transform:rotate(45deg); }
  .faq-a { max-height:0; overflow:hidden; transition:max-height .4s; }
  .faq-item.open .faq-a { max-height:400px; }
  .faq-a-inner { padding:0 0 28px; color:var(--gray); font-size:16px; line-height:1.7; }

  /* FOREVER */
  .forever-page { background:var(--warm-bg); color:var(--ink); }
  .forever-page .nav { background:rgba(245,241,232,.95); border-color:rgba(0,0,0,.08); }
  .forever-page .nav-links button, .forever-page .menu-toggle { color:var(--ink); }
  .forever-page .nav-links button.active { color:var(--blue); }
  .forever-page .nav-links button.active::after { background:var(--blue); }
  .forever-page footer { background:var(--bg); color:var(--gray); }
  .forever-page footer li { color:var(--gray); }
  .forever-page footer h5 { color:var(--blue-2); }
  .forever-page footer button { color:var(--gray); }
  .forever-page .footer-brand p { color:var(--gray); }
  .forever-page .footer-bottom { color:var(--gray); }

  .ff-hero { padding:120px 24px 100px; background:linear-gradient(105deg,rgba(245,241,232,.95) 35%,rgba(245,241,232,.6) 100%),url('img/forever-group.jpg') center/cover; }
  .ff-hero-inner { max-width:1200px; margin:0 auto; }
  .ff-hero-logo { height:90px; width:auto; display:block; margin-bottom:32px; }
  @media (max-width:600px) { .ff-hero-logo { height:64px; margin-bottom:24px; } }
  .ff-hero .eyebrow { color:var(--blue); }
  .ff-hero h1 { color:var(--ink); font-size:clamp(40px,7vw,88px); max-width:18ch; margin-bottom:24px; }
  .ff-hero h1 .accent { color:var(--blue); }
  .ff-hero p.lead { font-size:19px; color:rgba(26,26,26,.78); max-width:580px; margin-bottom:40px; }
  .ff-offer { background:white; border:1px solid rgba(0,0,0,.1); border-left:4px solid var(--blue); padding:28px; max-width:520px; margin-bottom:32px; box-shadow:0 4px 24px rgba(0,0,0,.05); }
  .ff-offer .label { font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--blue); font-weight:800; }
  .ff-offer h3 { font-family:'Anton',sans-serif; font-size:32px; margin:8px 0; color:var(--ink); }
  .ff-offer p { color:rgba(26,26,26,.7); font-size:15px; }

  .ff-social { background:white; padding:32px 24px; border-bottom:1px solid rgba(0,0,0,.06); }
  .ff-social .social-inner { color:var(--ink); }
  .ff-social .rating-text { color:var(--ink); }
  .ff-social .rating-sub, .ff-social .pill { color:rgba(26,26,26,.6); }
  .ff-social .pill strong { color:var(--ink); }

  .pillars { padding:120px 24px; background:white; color:var(--ink); }
  .pillars .section-head h2 { color:var(--ink); }
  .pillars .section-head h2 .blue { color:var(--blue); }
  .pillars .section-head p { color:rgba(26,26,26,.65); }
  .pillar-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; max-width:1200px; margin:0 auto; }
  .pillar { background:var(--warm-bg); padding:40px 28px; text-align:center; border:1px solid rgba(0,0,0,.06); transition:all .3s; }
  .pillar:hover { border-color:var(--blue); transform:translateY(-4px); }
  .pillar .icon { font-family:'Anton',sans-serif; font-size:56px; color:var(--blue); line-height:1; margin-bottom:16px; }
  .pillar h4 { font-family:'Anton',sans-serif; font-size:22px; text-transform:uppercase; margin-bottom:10px; color:var(--ink); }
  .pillar p { color:rgba(26,26,26,.7); font-size:14px; line-height:1.5; }

  .ff-why { padding:100px 24px; background:var(--warm-2); color:var(--ink); }
  .ff-why .section-head h2 { color:var(--ink); }
  .ff-why-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; max-width:1200px; margin:0 auto; align-items:center; }
  @media (max-width:800px) { .ff-why-grid { grid-template-columns:1fr; gap:32px; } }
  .ff-why-img { aspect-ratio:4/3; background:url('img/ff-group-flex.jpg') center/cover; }
  .ff-why-list { list-style:none; }
  .ff-why-list li { padding:20px 0 20px 48px; border-bottom:1px solid rgba(0,0,0,.08); position:relative; }
  .ff-why-list li::before { content:''; position:absolute; left:0; top:26px; width:32px; height:2px; background:var(--blue); }
  .ff-why-list h5 { font-family:'Anton',sans-serif; font-size:18px; text-transform:uppercase; margin-bottom:6px; color:var(--ink); }
  .ff-why-list p { color:rgba(26,26,26,.7); font-size:15px; }

  .ff-orientation { padding:120px 24px; background:white; color:var(--ink); }
  .ff-orientation .section-head h2 { color:var(--ink); }
  .ff-orientation .step-grid .step { background:var(--warm-bg); border-top-color:var(--blue); }
  .ff-orientation .step h4 { color:var(--ink); }
  .ff-orientation .step p { color:rgba(26,26,26,.7); }

  .ff-testimonials { padding:120px 24px; background:var(--warm-bg); color:var(--ink); }
  .ff-testimonials .section-head h2 { color:var(--ink); }
  .ff-testimonials .testi { background:white; border-top-color:var(--blue); }
  .ff-testimonials .testi p { color:var(--ink); }
  .ff-testimonials .testi .who { color:rgba(26,26,26,.6); }
  .ff-testimonials .testi-source { color:rgba(26,26,26,.6); }

  .ff-faq { background:var(--warm-2); color:var(--ink); }
  .ff-faq .section-head h2 { color:var(--ink); }
  .ff-faq .faq-q { color:var(--ink); }
  .ff-faq .faq-q::after { color:var(--blue); }
  .ff-faq .faq-item { border-color:rgba(0,0,0,.1); }
  .ff-faq .faq-a-inner { color:rgba(26,26,26,.7); }

  .ff-community { padding:120px 24px; background:white; color:var(--ink); }
  .ff-community .section-head h2 { color:var(--ink); }
  .ff-community .section-head p { color:rgba(26,26,26,.65); }
  .ff-community-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:1200px; margin:0 auto; }
  @media (max-width:700px) { .ff-community-grid { grid-template-columns:1fr; } }
  .ff-community-photo { aspect-ratio:4/3; background-size:cover; background-position:center; }
  .ff-community-photo.p1 { background-image:url('img/ff-group-50sessions.jpg'); }
  .ff-community-photo.p2 { background-image:url('img/ff-group-flex.jpg'); }

  .ff-final { background:var(--ink); color:var(--off); padding:120px 24px; text-align:center; }
  .ff-final h2 { color:var(--off); font-size:clamp(36px,6vw,72px); max-width:22ch; margin:0 auto 24px; }
  .ff-final p { color:rgba(245,243,238,.7); font-size:18px; max-width:540px; margin:0 auto 40px; }

  /* ABOUT */
  .about-hero { padding:100px 24px 60px; background:var(--bg-2); }
  .about-hero-inner { max-width:900px; margin:0 auto; text-align:center; }
  .about-hero h1 { font-size:clamp(44px,7vw,88px); margin-bottom:24px; }
  .about-hero h1 .blue { color:var(--blue-2); }
  .about-hero p { font-size:18px; color:var(--gray); max-width:600px; margin:0 auto; }

  .about-body { padding:80px 24px 120px; background:var(--bg); }
  .about-grid { max-width:900px; margin:0 auto; }

  .then-now {
    display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
    margin:0 auto 56px; max-width:980px;
  }
  .then-now-card { position:relative; }
  .then-now-img { aspect-ratio:3/4; background-size:cover; background-position:center top; }
  .then-now-card.then1 .then-now-img { background-image:url('img/jonathan-then.jpg'); }
  .then-now-card.then2 .then-now-img { background-image:url('img/jonathan-fish.jpg'); }
  .then-now-card.now .then-now-img { background-image:url('img/jonathan-now.jpg'); }
  .then-now-label {
    position:absolute; top:12px; left:12px;
    background:var(--gray-2); color:white;
    font-family:'Anton',sans-serif; font-size:14px;
    letter-spacing:.12em; text-transform:uppercase;
    padding:5px 12px;
  }
  .then-now-card.now .then-now-label { background:var(--blue); }
  .then-now-stat {
    position:absolute; bottom:0; left:0; right:0;
    background:linear-gradient(0deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,0) 100%);
    color:white; padding:36px 14px 14px;
    font-family:'Anton',sans-serif; font-size:15px;
    letter-spacing:.04em; text-transform:uppercase; line-height:1.1;
  }
  @media (max-width:600px) {
    .then-now { gap:6px; }
    .then-now-label { font-size:11px; padding:3px 8px; top:8px; left:8px; }
    .then-now-stat { font-size:11px; padding:24px 8px 8px; letter-spacing:.02em; }
  }

  .about-text p { font-size:18px; margin-bottom:24px; line-height:1.75; color:rgba(255,255,255,.88); }
  .about-text p:first-of-type::first-letter { font-family:'Anton',sans-serif; font-size:80px; line-height:.8; float:left; padding-right:12px; padding-top:8px; color:var(--blue-2); }
  .about-pull { font-family:'Anton',sans-serif; font-size:clamp(28px,4vw,40px); text-transform:uppercase; line-height:1.05; color:var(--blue-2); margin:40px 0; padding:32px 0 32px 32px; border-left:4px solid var(--blue); }
  .about-cta { margin-top:40px; padding:32px; background:var(--bg-2); border:1px solid rgba(255,255,255,.08); }
  .about-cta h3 { font-family:'Anton',sans-serif; font-size:28px; text-transform:uppercase; margin-bottom:12px; }
  .about-cta p { font-size:16px; margin-bottom:24px; color:var(--gray); }
  .about-cta .btn-row { display:flex; gap:12px; flex-wrap:wrap; }

  /* ============== ELITE PERSONAL TRAINING PAGE ============== */
  .elite-page { background:#070707; color:#f5f3ee; }
  .elite-page .nav { background:rgba(7,7,7,.95); border-color:rgba(251,191,36,.15); }
  .elite-page .nav-cta { background:var(--gold); color:#0a0a0a; }
  .elite-page .nav-cta:hover { background:#fcd24d; }
  .elite-page .nav-links button.active { color:var(--gold); }
  .elite-page .nav-links button.active::after { background:var(--gold); }

  .elite-hero {
    position:relative; min-height:90vh;
    display:flex; align-items:center;
    padding:80px 24px;
    background:
      radial-gradient(circle at 70% 50%, rgba(251,191,36,.08) 0%, transparent 60%),
      linear-gradient(180deg, rgba(7,7,7,.65) 0%, rgba(7,7,7,.92) 100%),
      url('img/jonathan-now.jpg') center/cover;
  }
  .elite-hero::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 30% 50%, rgba(0,0,0,.5), transparent);
    z-index:0;
  }
  .elite-hero-content { position:relative; z-index:2; max-width:1200px; margin:0 auto; width:100%; }
  .elite-eyebrow {
    display:inline-block; font-size:11px; font-weight:800;
    letter-spacing:.4em; text-transform:uppercase;
    color:var(--gold); margin-bottom:32px;
    padding:8px 16px; border:1px solid var(--gold);
  }
  .elite-hero h1 {
    font-size:clamp(56px,9vw,140px); margin-bottom:24px;
    max-width:14ch; line-height:.92;
  }
  .elite-hero h1 .gold { color:var(--gold); }
  .elite-hero p.lead {
    font-size:clamp(18px,1.8vw,22px); max-width:580px;
    color:rgba(245,243,238,.75); margin-bottom:48px;
    font-weight:300; line-height:1.6;
  }
  .elite-stat-bar {
    display:flex; gap:48px; flex-wrap:wrap; margin-bottom:48px;
    padding-top:32px; border-top:1px solid rgba(251,191,36,.2);
  }
  .elite-stat .num {
    font-family:'Anton',sans-serif; font-size:44px;
    color:var(--gold); line-height:1;
  }
  .elite-stat .label {
    font-size:12px; letter-spacing:.18em; text-transform:uppercase;
    color:rgba(245,243,238,.6); margin-top:6px;
  }

  .elite-btn {
    display:inline-block; padding:22px 40px;
    font-family:'Anton',sans-serif; font-size:18px;
    letter-spacing:.12em; text-transform:uppercase;
    background:var(--gold); color:#0a0a0a;
    border:none; cursor:pointer; transition:all .3s;
  }
  .elite-btn:hover { background:#fcd24d; transform:translateY(-2px); box-shadow:0 12px 32px rgba(251,191,36,.3); }
  .elite-btn-outline {
    background:transparent; color:var(--gold);
    border:2px solid var(--gold);
  }
  .elite-btn-outline:hover { background:var(--gold); color:#0a0a0a; }

  /* Section base */
  .elite-section { padding:140px 24px; }
  .elite-section-alt { background:#0d0d0d; }
  .elite-container { max-width:1200px; margin:0 auto; }
  .elite-section-head { max-width:760px; margin:0 auto 80px; text-align:center; }
  .elite-section-head .elite-eyebrow { background:transparent; border:none; padding:0; margin-bottom:20px; color:var(--gold); }
  .elite-section-head h2 { font-size:clamp(40px,5.5vw,72px); margin-bottom:24px; line-height:1; }
  .elite-section-head h2 .gold { color:var(--gold); }
  .elite-section-head p { font-size:18px; color:rgba(245,243,238,.65); line-height:1.7; }

  /* Who this is for */
  .for-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:64px;
    max-width:1100px; margin:0 auto;
  }
  @media (max-width:800px) { .for-grid { grid-template-columns:1fr; gap:32px; } }
  .for-col h3 {
    font-family:'Anton',sans-serif; font-size:28px;
    text-transform:uppercase; letter-spacing:.04em;
    margin-bottom:24px; padding-bottom:16px;
    border-bottom:2px solid;
  }
  .for-col.yes h3 { color:var(--gold); border-color:var(--gold); }
  .for-col.no h3 { color:rgba(245,243,238,.4); border-color:rgba(245,243,238,.15); }
  .for-col ul { list-style:none; }
  .for-col li {
    padding:14px 0 14px 32px; position:relative;
    font-size:16px; line-height:1.5;
    border-bottom:1px solid rgba(245,243,238,.06);
  }
  .for-col.yes li::before {
    content:'→'; position:absolute; left:0; top:14px;
    color:var(--gold); font-weight:700;
  }
  .for-col.no li { color:rgba(245,243,238,.5); }
  .for-col.no li::before {
    content:'×'; position:absolute; left:0; top:14px;
    color:rgba(245,243,238,.3); font-weight:700;
  }

  /* What's included - editorial style */
  .pillars-elite { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(251,191,36,.1); }
  @media (max-width:800px) { .pillars-elite { grid-template-columns:1fr; } }
  .pillar-elite {
    padding:48px; background:#0a0a0a;
    transition:background .3s;
  }
  .pillar-elite:hover { background:#0f0f0f; }
  .pillar-elite .num {
    font-family:'Anton',sans-serif; font-size:14px;
    letter-spacing:.3em; color:var(--gold); margin-bottom:16px;
  }
  .pillar-elite h4 {
    font-family:'Anton',sans-serif; font-size:32px;
    text-transform:uppercase; line-height:1; margin-bottom:16px;
    letter-spacing:.02em;
  }
  .pillar-elite p { color:rgba(245,243,238,.7); font-size:15px; line-height:1.7; }

  /* Methodology - quote style */
  .method-quote {
    max-width:900px; margin:0 auto; text-align:center;
    padding:80px 24px;
    border-top:1px solid rgba(251,191,36,.2);
    border-bottom:1px solid rgba(251,191,36,.2);
  }
  .method-quote blockquote {
    font-family:'Anton',sans-serif; font-size:clamp(28px,4vw,44px);
    text-transform:uppercase; line-height:1.1;
    color:white; margin-bottom:32px;
  }
  .method-quote blockquote .gold { color:var(--gold); }
  .method-quote cite {
    font-style:normal; font-size:13px;
    letter-spacing:.2em; text-transform:uppercase;
    color:rgba(245,243,238,.5);
  }

  /* Process steps - timeline */
  .timeline {
    max-width:880px; margin:0 auto;
    position:relative;
    padding-left:48px;
  }
  .timeline::before {
    content:''; position:absolute; left:16px; top:8px; bottom:8px;
    width:1px; background:rgba(251,191,36,.3);
  }
  .timeline-step { position:relative; padding-bottom:56px; }
  .timeline-step:last-child { padding-bottom:0; }
  .timeline-step::before {
    content:''; position:absolute; left:-37px; top:8px;
    width:9px; height:9px; border-radius:50%;
    background:var(--gold);
    box-shadow:0 0 0 4px rgba(251,191,36,.15);
  }
  .timeline-step .step-num {
    font-family:'Anton',sans-serif; font-size:13px;
    letter-spacing:.3em; color:var(--gold); margin-bottom:8px;
  }
  .timeline-step h4 {
    font-family:'Anton',sans-serif; font-size:26px;
    text-transform:uppercase; margin-bottom:12px;
  }
  .timeline-step p { color:rgba(245,243,238,.7); font-size:16px; line-height:1.7; max-width:600px; }

  /* Investment block */
  .invest-block {
    max-width:780px; margin:0 auto; text-align:center;
    padding:64px 48px;
    border:1px solid rgba(251,191,36,.3);
    background:radial-gradient(circle at 50% 0%, rgba(251,191,36,.06) 0%, transparent 70%);
  }
  .invest-block .lock-line {
    font-size:11px; letter-spacing:.3em; text-transform:uppercase;
    color:var(--gold); margin-bottom:24px;
  }
  .invest-block h3 {
    font-family:'Anton',sans-serif; font-size:clamp(36px,5vw,56px);
    margin-bottom:24px; line-height:1;
  }
  .invest-block p {
    font-size:17px; color:rgba(245,243,238,.7);
    margin-bottom:32px; line-height:1.7;
  }

  /* Final CTA */
  .elite-final {
    padding:160px 24px; text-align:center;
    background:
      radial-gradient(ellipse at 50% 0%, rgba(251,191,36,.12) 0%, transparent 60%),
      #050505;
    border-top:1px solid rgba(251,191,36,.2);
  }
  .elite-final h2 {
    font-size:clamp(44px,7vw,96px);
    max-width:18ch; margin:0 auto 32px; line-height:.95;
  }
  .elite-final h2 .gold { color:var(--gold); }
  .elite-final p { font-size:19px; color:rgba(245,243,238,.7); margin-bottom:48px; max-width:520px; margin-left:auto; margin-right:auto; }

/* ══════════════════════════════════════════
   Office Challenge Announcement Banner
══════════════════════════════════════════ */
/* ═══════════════════════════════════════════════
     MARQUEE ANNOUNCEMENT BAR
     Paste this entire file's <style> into your
     site's CSS and the HTML into the top of <body>
     Replace YOUR_GHL_FORM_LINK with your GHL URL
  ═══════════════════════════════════════════════ */

  .announcement-bar {
    width: 100%;
    background: linear-gradient(90deg, #7b0000, #c0000c, #e8a000, #c0000c, #7b0000);
    background-size: 300% 100%;
    animation: bgShift 6s ease infinite;
    border-top: 2px solid #f0b429;
    border-bottom: 2px solid #f0b429;
    position: relative;
    overflow: hidden;
    z-index: 9999;
    height: 44px;
    display: flex;
    align-items: center;
  }

  @keyframes bgShift {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }

  /* Shimmer overlay */
  .announcement-bar::after {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent);
    animation: shimmer 3s ease infinite;
    pointer-events: none;
  }

  @keyframes shimmer {
    0%   { left: -60%; }
    100% { left: 160%; }
  }

  /* Scrolling track */
  .marquee-track {
    position: relative;
    overflow: hidden;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
  }

  .marquee-inner {
    display: flex;
    align-items: center;
    white-space: nowrap;
    will-change: transform;
    animation: marqueeScroll 35s linear infinite;
  }

  @keyframes marqueeScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }

  .marquee-content {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 0;
  }

  .marquee-item {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 0 32px;
  }

  .marquee-text {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 17px;
    letter-spacing: 2px;
    color: #ffffff;
    text-transform: uppercase;
  }

  .marquee-text .gold { color: #f0b429; }

  .marquee-star {
    color: #f0b429;
    font-size: 12px;
  }

  .marquee-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f0b429;
    color: #1a0000;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 14px;
    letter-spacing: 1.5px;
    padding: 4px 14px;
    border-radius: 2px;
    text-decoration: none;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    animation: btnPulse 1.4s ease-in-out infinite;
  }

  @keyframes btnPulse {
    0%   { background: #f0b429; color: #1a0000; }
    40%  { background: #c0000c; color: #ffffff; }
    60%  { background: #ff4500; color: #ffffff; }
    100% { background: #f0b429; color: #1a0000; }
  }

  .marquee-cta::after {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.55), transparent);
    animation: btnShine 1.4s ease-in-out infinite;
    pointer-events: none;
  }

  @keyframes btnShine {
    0%   { left: -75%; }
    50%  { left: 130%; }
    100% { left: 130%; }
  }

  /* Close button */
  .bar-close {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.25);
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 50%;
    color: white;
    font-size: 13px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    line-height: 1;
    transition: background 0.2s;
  }

  .bar-close:hover { background: rgba(0,0,0,0.5); }
/* ══ End Office Challenge Banner ══ */

/* ── Office Challenge CTA Strip ── */
.oc-cta-strip {
  width: 100%;
  background: #0a0a0a;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.oc-cta-label {
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.75);
}

.oc-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 28px;
  font-family: 'Anton', sans-serif;
  font-size: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 3px;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  animation: ocBtnPulse 1.4s ease-in-out infinite;
}

@keyframes ocBtnPulse {
  0%   { background: #f0b429; color: #1a0000; box-shadow: 0 0 0 0 rgba(240,180,41,0); }
  35%  { background: #c0000c; color: #ffffff; box-shadow: 0 0 18px 4px rgba(192,0,12,0.5); }
  55%  { background: #ff4500; color: #ffffff; box-shadow: 0 0 18px 4px rgba(255,69,0,0.5); }
  100% { background: #f0b429; color: #1a0000; box-shadow: 0 0 0 0 rgba(240,180,41,0); }
}

.oc-cta-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
  animation: ocBtnShine 1.4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes ocBtnShine {
  0%   { left: -75%; }
  50%  { left: 130%; }
  100% { left: 130%; }
}

@media(max-width:600px) {
  .oc-cta-strip { flex-direction: column; gap: 10px; padding: 12px 16px; }
  .oc-cta-label { text-align: center; font-size: 12px; }
}
/* ── End Office Challenge CTA Strip ── */

/* ── Footer Legal Links ── */
.footer-legal {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 24px 0;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: var(--gray, #a3a3a3);
  border-top: 1px solid rgba(255,255,255,.05);
  flex-wrap: wrap;
}
.footer-legal a {
  color: var(--gray, #a3a3a3);
  text-decoration: none;
  transition: color .2s;
}
.footer-legal a:hover { color: #fff; }
.footer-legal span { color: rgba(255,255,255,.2); }
.forever-page .footer-legal { border-color: rgba(0,0,0,.06); }
.forever-page .footer-legal a { color: rgba(26,26,26,.5); }
.forever-page .footer-legal a:hover { color: #1a1a1a; }
.forever-page .footer-legal span { color: rgba(0,0,0,.15); }
/* ── End Footer Legal Links ── */
