/*
Theme Name: ForgeFit Gym
Theme URI: https://example.com/forgefit-gym
Author: ForgeFit
Author URI: https://example.com
Description: A modern, responsive WordPress gym and fitness theme with editable homepage sections, dynamic article carousel, featured blog story, readable single-post layouts, WooCommerce support, Gutenberg support, and Elementor-friendly page templates.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: forgefit-gym
Tags: fitness, gym, custom-logo, custom-menu, featured-images, full-width-template, e-commerce, blog, block-styles, wide-blocks
*/

:root {
  --ff-bg: #0a0a0a;
  --ff-surface: #121212;
  --ff-surface-2: #181818;
  --ff-text: #f5f5f2;
  --ff-muted: #aaa9a3;
  --ff-accent: #d9ff43;
  --ff-accent-2: #ffffff;
  --ff-border: rgba(255,255,255,.12);
  --ff-radius: 20px;
  --ff-container: 1240px;
  --ff-header-height: 82px;
}

*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ff-bg);color:var(--ff-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}body.admin-bar .ff-site-header{top:32px}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit}button{cursor:pointer}.ff-container{width:min(calc(100% - 40px),var(--ff-container));margin-inline:auto}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen-reader-text:focus{clip:auto!important;width:auto;height:auto;background:#fff;color:#000;padding:10px;z-index:99999}

.ff-site-header{position:sticky;top:0;z-index:999;background:rgba(10,10,10,.84);backdrop-filter:blur(18px);border-bottom:1px solid var(--ff-border)}.ff-header-inner{height:var(--ff-header-height);display:flex;align-items:center;justify-content:space-between;gap:24px}.ff-brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:-.04em;font-size:1.55rem}.ff-brand .custom-logo{max-height:52px;width:auto}.ff-brand-mark{width:36px;height:36px;border-radius:10px;background:var(--ff-accent);display:grid;place-items:center;color:#070707;font-weight:1000}.ff-primary-nav ul{list-style:none;display:flex;gap:28px;padding:0;margin:0;align-items:center}.ff-primary-nav a{font-size:.88rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:#e6e6e2;transition:.2s}.ff-primary-nav a:hover,.ff-primary-nav .current-menu-item>a{color:var(--ff-accent)}.ff-header-actions{display:flex;align-items:center;gap:12px}.ff-menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--ff-border);border-radius:50%;background:transparent;color:#fff}.ff-menu-toggle span,.ff-menu-toggle:before,.ff-menu-toggle:after{content:"";display:block;width:18px;height:2px;background:currentColor;margin:4px auto;transition:.2s}.ff-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:999px;border:1px solid transparent;background:var(--ff-accent);color:#080808;font-weight:900;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em;transition:transform .2s,box-shadow .2s,background .2s}.ff-btn:hover{transform:translateY(-2px);box-shadow:0 12px 35px rgba(217,255,67,.18)}.ff-btn--ghost{background:transparent;color:#fff;border-color:var(--ff-border)}.ff-btn--white{background:#fff;color:#070707}.ff-btn--dark{background:#080808;color:#fff}

.ff-hero{position:relative;min-height:calc(100vh - var(--ff-header-height));display:flex;align-items:end;overflow:hidden;background:#101010}.ff-hero-bg{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.01)}.ff-hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.50) 52%,rgba(0,0,0,.32) 100%),linear-gradient(0deg,rgba(0,0,0,.72),transparent 55%)}.ff-hero-content{position:relative;z-index:2;padding:110px 0 84px;max-width:960px}.ff-eyebrow{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:900;color:var(--ff-accent);margin-bottom:18px}.ff-eyebrow:before{content:"";width:34px;height:2px;background:currentColor}.ff-hero h1{font-size:clamp(4rem,10vw,9.5rem);line-height:.82;letter-spacing:-.075em;text-transform:uppercase;margin:0 0 28px;font-weight:950;max-width:980px}.ff-hero p{font-size:clamp(1rem,1.5vw,1.22rem);max-width:660px;color:#d2d2cd;margin:0 0 34px}.ff-actions{display:flex;flex-wrap:wrap;gap:12px}.ff-scroll-cue{position:absolute;right:34px;bottom:30px;z-index:2;text-transform:uppercase;font-size:.66rem;letter-spacing:.14em;color:#d9d9d3;writing-mode:vertical-rl}

.ff-section{padding:110px 0}.ff-section--light{background:#f1f1ec;color:#0a0a0a}.ff-section--surface{background:var(--ff-surface)}.ff-section--tight{padding:70px 0}.ff-section-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:52px}.ff-section-head h2{font-size:clamp(2.8rem,6vw,6.6rem);line-height:.9;letter-spacing:-.06em;text-transform:uppercase;margin:0;font-weight:950}.ff-section-head p{max-width:520px;margin:0;color:var(--ff-muted);justify-self:end}.ff-section--light .ff-section-head p{color:#5e5e59}.ff-kicker{text-transform:uppercase;font-size:.72rem;letter-spacing:.14em;font-weight:900;color:var(--ff-accent);display:block;margin-bottom:16px}.ff-section--light .ff-kicker{color:#465000}

.ff-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ff-border);border-bottom:1px solid var(--ff-border)}.ff-stat{padding:38px 28px;border-right:1px solid var(--ff-border)}.ff-stat:last-child{border-right:0}.ff-stat strong{display:block;font-size:clamp(2.4rem,5vw,5rem);line-height:1;letter-spacing:-.05em}.ff-stat span{display:block;margin-top:10px;color:var(--ff-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.11em}

.ff-grid{display:grid;gap:22px}.ff-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ff-card{position:relative;border:1px solid var(--ff-border);border-radius:var(--ff-radius);overflow:hidden;background:var(--ff-surface);min-height:330px}.ff-card-media{height:100%;min-height:330px;background:#222 center/cover no-repeat;transition:transform .5s}.ff-card:hover .ff-card-media{transform:scale(1.035)}.ff-card-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.10) 68%);display:flex;align-items:flex-end;padding:28px}.ff-card h3{margin:0 0 8px;font-size:1.75rem;line-height:1;text-transform:uppercase;letter-spacing:-.03em}.ff-card p{margin:0;color:#c8c8c2;font-size:.92rem}.ff-card-meta{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:16px;text-transform:uppercase;font-size:.68rem;letter-spacing:.1em;color:#dcdcd6}.ff-card-num{position:absolute;top:22px;right:22px;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.75rem}

.ff-split{display:grid;grid-template-columns:1.05fr .95fr;min-height:680px}.ff-split-media{background:#202020 center/cover no-repeat;min-height:540px}.ff-split-content{padding:80px clamp(32px,6vw,90px);display:flex;flex-direction:column;justify-content:center}.ff-split-content h2{font-size:clamp(3rem,6.2vw,6.8rem);line-height:.88;text-transform:uppercase;letter-spacing:-.06em;margin:0 0 24px}.ff-split-content p{color:var(--ff-muted);max-width:580px;font-size:1.05rem}.ff-checks{list-style:none;padding:0;margin:28px 0 34px;display:grid;gap:13px}.ff-checks li{display:flex;gap:12px;align-items:center}.ff-checks li:before{content:"✓";width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--ff-accent);color:#080808;font-weight:900;font-size:.75rem;flex:0 0 auto}

.ff-feature{border-top:1px solid var(--ff-border);padding:26px 0;display:grid;grid-template-columns:90px 1fr auto;gap:24px;align-items:center}.ff-feature:last-child{border-bottom:1px solid var(--ff-border)}.ff-feature-icon{width:64px;height:64px;border-radius:18px;background:var(--ff-surface-2);display:grid;place-items:center;font-size:1.7rem}.ff-feature h3{font-size:1.35rem;text-transform:uppercase;margin:0 0 4px}.ff-feature p{margin:0;color:var(--ff-muted)}.ff-feature-arrow{font-size:1.8rem;color:var(--ff-accent)}

.ff-trainer{min-height:470px}.ff-trainer .ff-card-media{min-height:470px}.ff-trainer-role{color:var(--ff-accent)!important;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem!important;font-weight:800}

.ff-pricing{padding:34px;border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-surface);display:flex;flex-direction:column;min-height:500px}.ff-pricing--featured{background:var(--ff-accent);color:#080808;border-color:var(--ff-accent);transform:translateY(-14px)}.ff-pricing-badge{align-self:flex-start;border:1px solid currentColor;border-radius:999px;padding:6px 10px;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;margin-bottom:24px}.ff-pricing h3{font-size:1.65rem;text-transform:uppercase;margin:0}.ff-price{font-size:clamp(3.5rem,6vw,5.5rem);line-height:1;letter-spacing:-.06em;font-weight:950;margin:16px 0 8px}.ff-price small{font-size:.9rem;letter-spacing:0;font-weight:700}.ff-pricing-desc{color:var(--ff-muted);margin-bottom:24px}.ff-pricing--featured .ff-pricing-desc{color:#333}.ff-pricing ul{list-style:none;padding:0;margin:0 0 34px;display:grid;gap:12px}.ff-pricing li{padding-bottom:12px;border-bottom:1px solid var(--ff-border)}.ff-pricing--featured li{border-color:rgba(0,0,0,.18)}.ff-pricing .ff-btn{margin-top:auto}

.ff-testimonial{padding:34px;border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-surface)}.ff-stars{color:var(--ff-accent);letter-spacing:.12em}.ff-testimonial blockquote{font-size:1.15rem;margin:24px 0 28px}.ff-testimonial footer{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ff-muted);font-weight:800}

.ff-schedule-wrap{overflow:auto;border:1px solid var(--ff-border);border-radius:var(--ff-radius)}.ff-schedule{width:100%;border-collapse:collapse;min-width:800px}.ff-schedule th,.ff-schedule td{padding:20px;border-bottom:1px solid var(--ff-border);border-right:1px solid var(--ff-border);text-align:left}.ff-schedule th{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ff-muted);background:#111}.ff-schedule td strong{display:block;text-transform:uppercase}.ff-schedule td span{font-size:.76rem;color:var(--ff-muted)}

.ff-bmi{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.ff-bmi-box{padding:34px;border-radius:var(--ff-radius);background:#fff;color:#080808}.ff-field{display:grid;gap:8px;margin-bottom:18px}.ff-field label{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.ff-field input,.ff-field textarea,.ff-field select{width:100%;padding:14px 16px;border:1px solid #d8d8d2;background:#f5f5f0;border-radius:12px;color:#111;outline:none}.ff-field input:focus,.ff-field textarea:focus{border-color:#7b8b16}.ff-bmi-result{margin-top:18px;padding:18px;border-radius:14px;background:#efefe9;font-weight:800}.ff-note{font-size:.76rem;color:#757570;margin-top:10px}

.ff-cta{position:relative;overflow:hidden;border-radius:30px;background:var(--ff-accent);color:#080808;padding:clamp(44px,7vw,88px);display:flex;justify-content:space-between;align-items:end;gap:40px}.ff-cta h2{font-size:clamp(3rem,7vw,7rem);line-height:.84;text-transform:uppercase;letter-spacing:-.07em;margin:0;max-width:850px}.ff-cta p{max-width:460px;margin:18px 0 0;color:#343434}.ff-cta-actions{flex:0 0 auto}

.ff-content{padding:80px 0}.ff-content-area{max-width:900px}.ff-content-area h1{font-size:clamp(2.8rem,6vw,5.5rem);letter-spacing:-.05em;text-transform:uppercase}.ff-content-area a{text-decoration:underline;text-decoration-color:var(--ff-accent);text-underline-offset:3px}.ff-content-area img{border-radius:var(--ff-radius)}.alignwide{max-width:var(--ff-container);margin-left:50%;transform:translateX(-50%);width:min(calc(100vw - 40px),var(--ff-container))}.alignfull{max-width:none;width:100vw;margin-left:50%;transform:translateX(-50%)}

.ff-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ff-post-card{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius);overflow:hidden}.ff-post-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.ff-post-body{padding:24px}.ff-post-body h2{font-size:1.4rem;margin:8px 0 10px}.ff-post-meta{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ff-muted)}

.woocommerce ul.products li.product,.woocommerce div.product{color:var(--ff-text)}.woocommerce ul.products li.product{background:var(--ff-surface);border:1px solid var(--ff-border);border-radius:16px;padding:16px}.woocommerce ul.products li.product a img{border-radius:12px}.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit{background:var(--ff-accent)!important;color:#080808!important;border-radius:999px!important;font-weight:900!important}.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--ff-accent)!important}.woocommerce-message,.woocommerce-info{border-top-color:var(--ff-accent)!important;background:#171717!important;color:#fff!important}

.ff-site-footer{padding:75px 0 24px;background:#050505;border-top:1px solid var(--ff-border)}.ff-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:42px}.ff-footer-brand p{color:var(--ff-muted);max-width:350px}.ff-site-footer h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ff-muted);margin:0 0 18px}.ff-site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.ff-footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:38px;margin-top:48px;border-top:1px solid var(--ff-border);color:#777;font-size:.78rem}.ff-socials{display:flex;gap:14px}

.ff-reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.ff-reveal.is-visible{opacity:1;transform:none}

@media(max-width:980px){body.admin-bar .ff-site-header{top:46px}.ff-primary-nav{position:fixed;left:0;right:0;top:var(--ff-header-height);background:#0a0a0a;border-bottom:1px solid var(--ff-border);padding:22px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.22s}.ff-primary-nav.is-open{opacity:1;visibility:visible;transform:none}.ff-primary-nav ul{flex-direction:column;align-items:flex-start;gap:18px}.ff-menu-toggle{display:block}.ff-header-actions .ff-btn{display:none}.ff-section-head{grid-template-columns:1fr}.ff-section-head p{justify-self:start}.ff-grid-3{grid-template-columns:repeat(2,1fr)}.ff-grid-4{grid-template-columns:repeat(2,1fr)}.ff-stats{grid-template-columns:repeat(2,1fr)}.ff-stat:nth-child(2){border-right:0}.ff-stat:nth-child(-n+2){border-bottom:1px solid var(--ff-border)}.ff-split{grid-template-columns:1fr}.ff-bmi{grid-template-columns:1fr}.ff-footer-grid{grid-template-columns:1fr 1fr}.ff-blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.ff-container{width:min(calc(100% - 28px),var(--ff-container))}.ff-hero{min-height:760px}.ff-hero-content{padding:88px 0 60px}.ff-hero h1{font-size:clamp(3.6rem,18vw,6rem)}.ff-scroll-cue{display:none}.ff-section{padding:76px 0}.ff-grid-3,.ff-grid-4{grid-template-columns:1fr}.ff-stats{grid-template-columns:1fr}.ff-stat{border-right:0!important;border-bottom:1px solid var(--ff-border)}.ff-stat:last-child{border-bottom:0}.ff-split-media{min-height:430px}.ff-split-content{padding:60px 24px}.ff-feature{grid-template-columns:64px 1fr}.ff-feature-arrow{display:none}.ff-pricing--featured{transform:none}.ff-cta{align-items:flex-start;flex-direction:column}.ff-footer-grid{grid-template-columns:1fr}.ff-footer-bottom{flex-direction:column}.ff-blog-grid{grid-template-columns:1fr}.ff-header-inner{height:72px}.ff-primary-nav{top:72px}.ff-brand{font-size:1.25rem}}

/* Homepage normal typography
   Keeps the ForgeFit layout/colors intact while making homepage copy easier to read. */
body.home main .ff-hero h1,
body.home main .ff-section-head h2,
body.home main .ff-split-content h2,
body.home main .ff-cta h2 {
  text-transform: none;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.02;
}

body.home main .ff-hero h1 {
  font-size: clamp(3.2rem, 7vw, 7rem);
}

body.home main .ff-section-head h2,
body.home main .ff-split-content h2 {
  font-size: clamp(2.4rem, 5vw, 5rem);
}

body.home main .ff-cta h2 {
  font-size: clamp(2.6rem, 5.5vw, 5.4rem);
}

body.home main .ff-eyebrow,
body.home main .ff-kicker,
body.home main .ff-stat span,
body.home main .ff-card h3,
body.home main .ff-card-meta,
body.home main .ff-feature h3,
body.home main .ff-trainer-role,
body.home main .ff-pricing-badge,
body.home main .ff-pricing h3,
body.home main .ff-testimonial footer,
body.home main .ff-schedule th,
body.home main .ff-schedule td strong,
body.home main .ff-field label,
body.home main .ff-btn {
  text-transform: none;
  letter-spacing: normal;
}

body.home main .ff-eyebrow,
body.home main .ff-kicker,
body.home main .ff-card-meta,
body.home main .ff-trainer-role,
body.home main .ff-pricing-badge,
body.home main .ff-testimonial footer,
body.home main .ff-schedule th,
body.home main .ff-field label,
body.home main .ff-btn {
  font-weight: 700;
}

body.home main .ff-card h3,
body.home main .ff-feature h3,
body.home main .ff-pricing h3,
body.home main .ff-schedule td strong {
  font-weight: 700;
}

@media(max-width:640px){
  body.home main .ff-hero h1{font-size:clamp(3rem,14vw,5rem)}
}


/* ===== Dynamic article showcase ===== */
.ff-journal{padding:110px 0;overflow:hidden}.ff-journal .ff-section-head{margin-bottom:30px}.ff-journal-shell{position:relative}.ff-journal-track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:calc((100% - min(430px,78vw))/2);padding:28px max(22px,calc((100% - min(430px,78vw))/2)) 44px;scrollbar-width:none;perspective:1200px}.ff-journal-track::-webkit-scrollbar{display:none}.ff-journal-card{flex:0 0 min(430px,78vw);scroll-snap-align:center;background:#15203d;border:1px solid rgba(255,255,255,.13);border-radius:26px;overflow:hidden;box-shadow:0 20px 55px rgba(0,0,0,.28);transform:scale(.88);opacity:.68;transition:transform .32s ease,opacity .32s ease,box-shadow .32s ease}.ff-journal-card.is-active{transform:scale(1);opacity:1;box-shadow:0 28px 75px rgba(0,0,0,.42)}.ff-journal-card.is-before{transform:perspective(900px) rotateY(7deg) scale(.88)}.ff-journal-card.is-after{transform:perspective(900px) rotateY(-7deg) scale(.88)}.ff-journal-link{display:block;height:100%}.ff-journal-media{aspect-ratio:16/10;background:#202b48;overflow:hidden}.ff-journal-media img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.ff-journal-card:hover .ff-journal-media img{transform:scale(1.035)}.ff-journal-placeholder,.ff-featured-placeholder{width:100%;height:100%;min-height:250px;display:grid;place-items:center;background:radial-gradient(circle at 25% 25%,rgba(217,255,67,.2),transparent 28%),linear-gradient(135deg,#1d2a4d,#0f162a);color:var(--ff-accent);font-weight:900;text-transform:uppercase;letter-spacing:.12em}.ff-journal-body{padding:24px 26px 26px}.ff-journal-pill{display:inline-flex;padding:7px 12px;border-radius:999px;background:var(--ff-accent);color:#07100b;font-size:.69rem;font-weight:900;margin-bottom:18px}.ff-journal-body h3{font-size:clamp(1.25rem,2.2vw,1.72rem);line-height:1.18;margin:0 0 22px;min-height:2.36em}.ff-journal-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:.77rem;color:#bfc6d5}.ff-journal-footer strong{color:var(--ff-accent);white-space:nowrap}.ff-journal-arrow{position:absolute;top:50%;z-index:5;width:48px;height:48px;border:1px solid var(--ff-border);border-radius:50%;background:rgba(7,7,7,.82);color:#fff;font-size:1.25rem;display:grid;place-items:center;transform:translateY(-50%);backdrop-filter:blur(10px)}.ff-journal-arrow:hover{background:var(--ff-accent);color:#080808}.ff-journal-arrow--prev{left:-8px}.ff-journal-arrow--next{right:-8px}.ff-empty-journal{padding:34px;border:1px dashed rgba(255,255,255,.22);border-radius:var(--ff-radius);background:var(--ff-surface)}.ff-empty-journal h3{margin:0 0 8px;font-size:1.4rem}.ff-empty-journal p{margin:0;color:var(--ff-muted)}

/* Featured article under coaches */
.ff-featured-article{background:linear-gradient(180deg,#0a0a0a,#0d0d0d)}.ff-featured-post{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);border:1px solid var(--ff-border);border-radius:28px;overflow:hidden;background:var(--ff-surface)}.ff-featured-media{min-height:520px;background:#111;display:block}.ff-featured-media img{width:100%;height:100%;min-height:520px;object-fit:cover}.ff-featured-placeholder{min-height:520px}.ff-featured-copy{padding:clamp(34px,5vw,72px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.ff-featured-copy h3{font-size:clamp(2rem,4vw,4rem);line-height:1.02;letter-spacing:-.045em;margin:14px 0 20px}.ff-featured-copy p{font-size:1.05rem;color:var(--ff-muted);max-width:560px;margin:0 0 30px}

/* Article archive cards */
.ff-post-card{transition:transform .2s ease,border-color .2s ease}.ff-post-card:hover{transform:translateY(-4px);border-color:rgba(217,255,67,.35)}.ff-post-card-media{display:block;aspect-ratio:16/10;overflow:hidden;background:#15203d}.ff-post-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.ff-post-card:hover .ff-post-card-media img{transform:scale(1.03)}.ff-post-card .ff-journal-placeholder{min-height:100%}.ff-post-body p{color:var(--ff-muted)}.ff-text-link{display:inline-flex;margin-top:8px;color:var(--ff-accent);font-weight:800}.ff-pagination{margin-top:44px}.ff-pagination .nav-links{display:flex;gap:10px;flex-wrap:wrap}.ff-pagination .page-numbers{min-width:42px;height:42px;border:1px solid var(--ff-border);border-radius:50%;display:grid;place-items:center}.ff-pagination .current{background:var(--ff-accent);color:#080808;border-color:var(--ff-accent)}

/* Single article reading experience */
.ff-single{padding:72px 0 100px}.ff-single-shell{max-width:1120px}.ff-single-article{margin:0 auto}.ff-single-back{display:inline-flex;color:var(--ff-accent);font-weight:800;margin-bottom:32px}.ff-single-header{max-width:900px;margin:0 auto 38px;text-align:center}.ff-single-header h1{font-size:clamp(2.6rem,6vw,6.2rem);line-height:.96;letter-spacing:-.055em;margin:14px 0 20px}.ff-single-deck{font-size:clamp(1.05rem,2vw,1.35rem);color:var(--ff-muted);max-width:760px;margin:0 auto}.ff-single-hero{max-width:1080px;margin:0 auto 54px;border-radius:28px;overflow:hidden;background:#111}.ff-single-hero img{width:100%;max-height:700px;object-fit:cover}.ff-single-content{max-width:780px;margin:0 auto;font-size:1.08rem;line-height:1.82;color:#e8e8e3}.ff-single-content>*:first-child{margin-top:0}.ff-single-content h2,.ff-single-content h3,.ff-single-content h4{line-height:1.15;letter-spacing:-.025em;margin-top:2em}.ff-single-content h2{font-size:2rem}.ff-single-content h3{font-size:1.5rem}.ff-single-content p{margin:0 0 1.35em}.ff-single-content ul,.ff-single-content ol{padding-left:1.35em;margin-bottom:1.5em}.ff-single-content blockquote{margin:2em 0;padding:24px 28px;border-left:4px solid var(--ff-accent);background:var(--ff-surface);border-radius:0 16px 16px 0}.ff-single-content a{color:var(--ff-accent);text-decoration:underline;text-underline-offset:3px}.ff-single-content img{border-radius:18px;margin:28px auto}.ff-post-nav{max-width:780px;margin:64px auto 0;padding-top:28px;border-top:1px solid var(--ff-border);display:grid;grid-template-columns:1fr 1fr;gap:24px}.ff-post-nav>div:last-child{text-align:right}.ff-post-nav a{color:var(--ff-accent);font-weight:800}.ff-blog-page .ff-section-head{margin-bottom:38px}

@media(max-width:980px){.ff-featured-post{grid-template-columns:1fr}.ff-featured-media,.ff-featured-media img,.ff-featured-placeholder{min-height:420px}.ff-journal-arrow{display:none}}
@media(max-width:640px){.ff-journal{padding:76px 0}.ff-journal-track{gap:16px;padding-inline:18px;scroll-padding-inline:18px}.ff-journal-card{flex-basis:84vw;transform:scale(.96);opacity:.8}.ff-journal-card.is-active{transform:scale(1)}.ff-journal-card.is-before,.ff-journal-card.is-after{transform:scale(.96)}.ff-journal-body{padding:20px}.ff-journal-body h3{min-height:auto}.ff-journal-footer{align-items:flex-end}.ff-featured-media,.ff-featured-media img,.ff-featured-placeholder{min-height:310px}.ff-featured-copy{padding:30px 24px}.ff-single{padding-top:44px}.ff-single-header{text-align:left}.ff-single-header h1{font-size:clamp(2.5rem,12vw,4.2rem)}.ff-single-hero{border-radius:18px;margin-bottom:36px}.ff-single-content{font-size:1rem;line-height:1.72}.ff-post-nav{grid-template-columns:1fr}.ff-post-nav>div:last-child{text-align:left}}
