/* Approved ForgeFit Editorial home. Isolated to #forgefit-approved-home. */
body:has(#forgefit-approved-home){background:#050709;color:#f9f9fb}
body:has(#forgefit-approved-home) .topbar{display:none}
body:has(#forgefit-approved-home) .bottom-nav{display:flex;background:#090d10f2;border-color:#34383e;border-radius:20px 20px 0 0}
body:has(#forgefit-approved-home) .bottom-nav button[aria-current=page]{color:#ff711c;background:#ff711c15}
body:has(#forgefit-approved-home) .bottom-nav button{font-size:.66rem}
body:has(#forgefit-approved-home) #main{max-width:920px;padding:0 0 104px;min-height:100vh}
.ffh{--ffh-orange:#ff711c;--ffh-mute:#9da2a8;--ffh-border:#393b40;color:#f5f6f8;background:#060809;min-width:0;overflow:hidden;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.ffh *{box-sizing:border-box}
.ffh button{font:inherit;cursor:pointer;touch-action:manipulation}
.ffh-hero{height:495px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 74% 28%,#59402a,#0a0f11 56%,#050606)}
.ffh-hero-photo{position:absolute;right:-1%;top:-15px;width:81%;height:105%;background:url('./assets/ui/forgefit-approved-woman.webp') center center/cover no-repeat;z-index:-2;filter:contrast(1.08) saturate(.8)}
.ffh-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#030507 0%,#030507e8 24%,#03050770 52%,#03050714 100%),linear-gradient(0deg,#060809 0%,transparent 33%);z-index:-1}
.ffh-brandbar{display:flex;justify-content:space-between;align-items:center;padding:21px 18px 0;position:relative;z-index:3}
.ffh-logo{font-size:clamp(1.25rem,4vw,1.7rem);font-weight:860;letter-spacing:-.04em}
.ffh-logo span{color:var(--ffh-orange);font-size:1.3em}
.ffh-brand-actions{display:flex;gap:10px}
.ffh-brand-actions button{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;color:#fff;border:1px solid #ff7b3255;background:#121417ac;font-size:1.35rem}
.ffh-hero-copy{position:relative;z-index:2;padding:52px 18px 0;width:min(80%,490px)}
.ffh-tagline{font-size:.61rem;letter-spacing:.14em;font-weight:800;color:#b2b6bb;white-space:nowrap}
.ffh-hero h1{font-size:clamp(1.83rem,7.9vw,3.8rem);line-height:1.09;font-weight:930;letter-spacing:-.05em;margin:20px 0 15px;text-shadow:0 2px 20px #000b}
.ffh-hero h1 em{font-style:normal;color:var(--ffh-orange);display:inline-block}
.ffh-hero-copy>p{color:#c4c7cc;font-size:.91rem;line-height:1.35;font-weight:450;text-shadow:0 1px 12px #000}
.ffh-quote{display:flex;align-items:center;gap:9px;margin-top:18px;padding:12px 14px;max-width:225px;border:1px solid #665849aa;border-radius:13px;background:#080b0dc9;font-size:.8rem;line-height:1.35}
.ffh-quote b{font-size:2.7rem;line-height:1;color:var(--ffh-orange)}
.ffh-card{background:linear-gradient(145deg,#11171b,#0c1013 80%);border:1px solid var(--ffh-border);border-radius:19px;box-shadow:0 7px 25px #0005}
.ffh-session{margin:-8px 13px 14px;padding:18px 15px;position:relative;z-index:4;backdrop-filter:blur(8px);background:linear-gradient(120deg,#15191eeb,#0b1115ef)}
.ffh-session-header{display:flex;align-items:center;gap:12px;font-size:.68rem;font-weight:820;letter-spacing:.08em}
.ffh-session-header b{padding:5px 10px;border-radius:99px;background:#b84b1599;color:white;font-size:.72rem;letter-spacing:normal}
.ffh-session h2{font-size:1.62rem;margin:10px 0 3px;letter-spacing:-.02em;font-weight:850}
.ffh-session>p{font-size:.81rem;color:#aeb6bd;line-height:1.4}
.ffh-exercises{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 8px}
.ffh-exercise{min-width:0}
.ffh-photo-tile{height:64px;border-radius:11px;overflow:hidden;background:#252c2e}
.ffh-photo-tile img{width:100%;height:100%;object-fit:cover;object-position:center 27%;display:block;filter:contrast(1.03) saturate(.8)}
.ffh-empty-tile{display:grid;place-items:center;color:var(--ffh-orange)}
.ffh-exercise strong{font-size:.68rem;line-height:1.2;font-weight:650;display:block;margin-top:7px;overflow-wrap:anywhere}
.ffh-exercise small{display:block;margin-top:4px;color:var(--ffh-mute);font-size:.62rem}
.ffh-buttons{display:flex;align-items:stretch;gap:7px;margin-top:14px}
.ffh-main-btn{flex:2;display:flex;justify-content:center;align-items:center;gap:6px;border:0;border-radius:12px;padding:11px 7px;min-height:52px;font-size:.78rem!important;font-weight:810!important;background:linear-gradient(110deg,#ff8729,#ff6617);color:#fff;box-shadow:0 5px 20px #ff6d1a2b;white-space:nowrap}
.ffh-main-btn span{display:none}
.ffh-secondary{flex:1;min-width:0;border:1px solid #565a61;border-radius:12px;background:#1a2027;color:#fff;font-size:.68rem!important;padding:6px 4px;line-height:1.2}
.ffh-stats{margin:0 13px 14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ffh-stat{min-height:146px;padding:11px 7px;min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.ffh-stat h3{font-size:.66rem;font-weight:550;line-height:1.35;color:#dce0e5;min-height:26px}
.ffh-stat strong{font-size:.94rem;line-height:1.2;overflow-wrap:anywhere;font-weight:830;margin-top:auto;letter-spacing:-.02em}
.ffh-stat small{font-size:.62rem;line-height:1.4;color:var(--ffh-mute);margin-top:4px}
.ffh-ring{display:grid;place-items:center;margin:8px auto 9px;width:57px;height:57px;border-radius:50%;background:conic-gradient(var(--ffh-orange) calc(var(--fill)*1%),#34383e 0)}
.ffh-ring:before{content:"";position:absolute;width:43px;height:43px;border-radius:50%;background:#11161a}
.ffh-ring span{z-index:1;font-weight:850;font-size:.95rem}
.ffh-bars{height:63px;display:flex;align-items:flex-end;gap:6px;justify-content:center;width:100%;padding:6px 0}
.ffh-bars i{width:9px;border-radius:8px;background:linear-gradient(#64b4ff,#ff701b);height:20%}
.ffh-bars i:nth-child(2){height:35%}.ffh-bars i:nth-child(3){height:49%}.ffh-bars i:nth-child(4){height:70%}.ffh-bars i:nth-child(5){height:92%}
.ffh-stat-icon{display:block;margin:17px auto 9px;color:var(--ffh-orange);font-size:1.6rem}
.ffh-program{margin:0 13px 16px;padding:15px}
.ffh-section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.ffh-section-heading h2,.ffh-quick-section h2{font-size:1rem;font-weight:800}
.ffh-section-heading button{background:none;border:0;color:#b4bcc4;font-size:.76rem}
.ffh-program-inner{display:flex;gap:12px;align-items:center}
.ffh-program-photo{width:88px;align-self:stretch;min-height:69px;border-radius:12px;background:linear-gradient(130deg,#1115,#0505),url('./assets/ui/forgefit-approved-woman.webp') center center / cover}
.ffh-program-description{flex:1;min-width:0}
.ffh-program-description strong{display:block;font-size:.9rem}
.ffh-program-description small{display:block;color:#aeb3bb;font-size:.72rem;margin-top:5px}
.ffh-progressbar{height:7px;background:#32393f;border-radius:8px;overflow:hidden;margin-top:13px}
.ffh-progressbar span{display:block;height:100%;background:var(--ffh-orange);border-radius:8px}
.ffh-quick-section{margin:0 13px 15px}
.ffh-quick-section h2{margin:0 0 12px 4px}
.ffh-quick{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.ffh-quick button{min-width:0;min-height:78px;padding:9px 3px 7px;border:1px solid #30353a;border-radius:13px;background:linear-gradient(150deg,#171b1f,#0b0f12);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:.65rem}
.ffh-quick button b{font-size:1.37rem;color:#ebf0f6}
.ffh-quick button:first-child{background:#302017;border-color:#b75e25}.ffh-quick button:first-child b{color:var(--ffh-orange)}
.ffh-tip{margin:0 13px 16px;padding:14px 12px;display:flex;align-items:center;gap:12px;position:relative;overflow:hidden}
.ffh-tip:after{content:"";position:absolute;right:0;top:0;width:38%;height:100%;background:linear-gradient(90deg,#101316,transparent),url('./assets/ui/forgefit-approved-woman.webp') center / cover;opacity:.35}
.ffh-tip>span{flex:none;display:grid;place-items:center;font-size:1.7rem;color:var(--ffh-orange);background:#52260e55;border-radius:50%;width:44px;height:44px}
.ffh-tip>div{position:relative;z-index:1;max-width:84%}
.ffh-tip h2{color:var(--ffh-orange);font-size:.89rem}
.ffh-tip p{font-size:.74rem;color:#e2e7ee;line-height:1.45}
.ffh-bottom{position:fixed;bottom:0;left:0;right:0;z-index:45;display:flex;justify-content:center;gap:0;background:#080c0eec;backdrop-filter:blur(15px);padding:8px max(7px,calc((100vw - 850px)/2)) calc(8px + env(safe-area-inset-bottom));border-top:1px solid #353a40;border-radius:20px 20px 0 0}
.ffh-bottom button{flex:1;max-width:170px;min-width:0;min-height:56px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;border:0;background:none;color:#aaaeb6;font-size:.62rem!important}
.ffh-bottom button b{font-size:1.33rem}
.ffh-bottom button[aria-current]{color:var(--ffh-orange);font-weight:800}
.ffh button:focus-visible{outline:3px solid #ffa755;outline-offset:2px}
@media(min-width:500px){.ffh-hero{height:520px}.ffh-hero-copy{padding-top:88px}.ffh-hero h1{font-size:3.5rem}.ffh-session,.ffh-stats,.ffh-program,.ffh-quick-section,.ffh-tip{margin-left:24px;margin-right:24px}.ffh-photo-tile{height:94px}.ffh-quick button{min-height:92px}}
@media(max-width:359px){.ffh-hero{height:448px}.ffh-hero-copy{padding-top:42px}.ffh-hero h1{font-size:1.73rem}.ffh-quote{padding:8px 10px;margin-top:11px}.ffh-session{padding:12px}.ffh-session h2{font-size:1.4rem}.ffh-exercises{gap:5px}.ffh-photo-tile{height:54px}.ffh-exercise strong{font-size:.60rem}.ffh-buttons{flex-wrap:wrap}.ffh-main-btn{flex-basis:100%}.ffh-secondary{flex:1}.ffh-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ffh-stat{min-height:135px}.ffh-quick button{font-size:.57rem}}
@media(prefers-reduced-motion:reduce){.ffh *{scroll-behavior:auto!important;transition:none!important}}

/* Stable image elements for offline/Chromium previews and iPhone PWA. */
.ffh-program-photo{overflow:hidden;flex:none}
.ffh-program-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:contrast(1.05) saturate(.65)}
.ffh-tip:after{background:linear-gradient(90deg,#101316,transparent);opacity:.64;z-index:0}
.ffh-tip-photo{position:absolute;right:0;top:0;height:100%;width:43%;object-fit:cover;object-position:55% center;opacity:.42;pointer-events:none;z-index:0}
.ffh-tip>span,.ffh-tip>div{position:relative;z-index:1}

/* iPhone Home header: status bar / Dynamic Island must never cover either action.
   Reserve the top safe-area inside the hero, keeping the cinematic composition.
   68px is the fallback for standalone PWA contexts reporting 0px safe-area. */
@media (max-width:499px) {
 .ffh { --ffh-safe-top:max(68px,calc(env(safe-area-inset-top,0px) + 16px)); }
 .ffh-brandbar {
  padding-top:var(--ffh-safe-top);
  padding-left:max(18px,env(safe-area-inset-left,0px));
  padding-right:max(18px,env(safe-area-inset-right,0px));
 }
 .ffh-hero {height:calc(474px + var(--ffh-safe-top));}
 .ffh-brand-actions button {
  width:46px;height:46px;min-width:46px;min-height:46px;flex-shrink:0;
 }
}
@media(max-width:359px){
 .ffh-hero {height:calc(427px + var(--ffh-safe-top));}
}
