/* Support Faith Force: voluntary, page-scoped presentation. */
.ffs-support { --ffs-gold:var(--ff-brand-yellow); --ffs-red:var(--ff-brand-red); background:#0b1425; color:#fff; overflow:hidden; }
.ffs-support * { box-sizing:border-box; }
.ffs-support .container { max-width:1240px; }
.ffs-support a:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.ffs-support p { color:#cbd5e2; line-height:1.65; }
.ffs-support h1,.ffs-support h2,.ffs-support h3 { color:#fff; }
.ffs-kicker { display:inline-flex; align-items:center; gap:8px; color:var(--ffs-gold); font-size:.76rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.ffs-hero { position:relative; isolation:isolate; background:radial-gradient(circle at 82% 16%,rgba(122,0,1,.23),transparent 33%),radial-gradient(circle at 4% 93%,rgba(212,160,23,.12),transparent 28%),linear-gradient(120deg,#0c1629,#1a2e48); border-bottom:7px solid var(--ffs-gold); }
.ffs-hero:after { content:''; position:absolute; inset:0 0 0 48%; z-index:-1; opacity:.13; background:repeating-linear-gradient(135deg,transparent 0 25px,rgba(255,255,255,.1) 25px 26px); }
.ffs-support .ffs-hero .container.ffs-hero-inner { padding-top:125px; padding-bottom:75px; }
.admin-bar .ffs-support .ffs-hero .container.ffs-hero-inner { padding-top:157px; }
.ffs-hero h1 { max-width:900px; margin:15px 0 24px; font-family:var(--ff-display,'Bangers',cursive); font-size:clamp(3.8rem,7vw,6.4rem); font-weight:400; letter-spacing:.03em; line-height:1.03; }
.ffs-hero h1 em { color:var(--ffs-gold); font-style:normal; }
.ffs-hero-lead { margin:0 0 13px; color:#fff !important; font-family:var(--ff-heading,'Raleway',sans-serif); font-size:clamp(1.45rem,2.4vw,2rem); font-weight:800; }
.ffs-hero-copy { max-width:690px; margin:0 0 28px; color:#e5ecf4 !important; font-size:clamp(1.03rem,1.45vw,1.18rem); }
.ffs-button { display:inline-flex; align-items:center; justify-content:space-between; gap:25px; min-height:50px; padding:13px 21px; border-radius:9px; text-decoration:none; font-weight:800; transition:transform .2s ease,background .2s ease; }
.ffs-button:hover { transform:translateY(-2px); text-decoration:none; }
.ffs-button-gold { background:var(--ffs-gold); color:#132038 !important; }
.ffs-button-gold:hover { background:var(--ff-brand-yellow); color:#132038 !important; }
.ffs-why { padding:clamp(65px,7vw,100px) 0; background:radial-gradient(circle at 0 100%,rgba(122,0,1,.1),transparent 35%),#0b1425; }
.ffs-section-heading { max-width:720px; margin-bottom:32px; }
.ffs-section-heading h2,.ffs-next h2 { margin:10px 0 13px; font-family:var(--ff-display,'Bangers',cursive); font-size:clamp(2.8rem,5vw,4.5rem); font-weight:400; letter-spacing:.03em; line-height:1.04; }
.ffs-section-heading p { margin:0; }
.ffs-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.ffs-card { padding:clamp(24px,3vw,34px); border:1px solid rgba(212,160,23,.22); border-radius:17px; background:linear-gradient(145deg,#1b2b44,#142138); }
.ffs-card:nth-child(2) { border-color:rgba(122,0,1,.35); }
.ffs-card > span { display:grid; place-items:center; width:47px; height:47px; margin-bottom:19px; border-radius:13px; background:rgba(212,160,23,.14); color:var(--ffs-gold); font-size:1.45rem; transform:rotate(-7deg); }
.ffs-card:nth-child(2) > span { background:rgba(122,0,1,.2); color:#fff; }
.ffs-card h3 { margin:0 0 10px; font-family:var(--ff-display,'Bangers',cursive); font-size:2rem; font-weight:400; letter-spacing:.03em; }
.ffs-card p { margin:0; font-size:.94rem; }
.ffs-next { padding:clamp(46px,6vw,75px) 0; background:linear-gradient(110deg,var(--ff-brand-red),var(--ff-brand-red) 55%,var(--ff-brand-red)); }
.ffs-next-inner { display:flex; align-items:end; justify-content:space-between; gap:35px; }
.ffs-next h2 { margin-bottom:8px; }
.ffs-next p { max-width:610px; margin:0; color:#fff; }
.ffs-next .ffs-kicker { color:var(--ff-brand-yellow); }
.ffs-next-actions { display:flex; flex-direction:column; align-items:flex-start; gap:13px; flex:none; padding-bottom:5px; }
.ffs-next-actions a { color:#fff; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.ffs-next-actions a:hover { color:var(--ff-brand-yellow); }
@media (max-width:760px) { .ffs-support .ffs-hero .container.ffs-hero-inner { padding-top:103px; padding-bottom:62px; } .admin-bar .ffs-support .ffs-hero .container.ffs-hero-inner { padding-top:135px; } .ffs-card-grid { grid-template-columns:1fr; } .ffs-card { display:grid; grid-template-columns:47px minmax(0,1fr); gap:0 17px; } .ffs-card > span { grid-row:1/3; margin:0; } .ffs-next-inner { align-items:start; flex-direction:column; gap:20px; } }
@media (max-width:520px) { .ffs-support .ffs-hero .container.ffs-hero-inner { padding-top:96px; padding-bottom:50px; } .admin-bar .ffs-support .ffs-hero .container.ffs-hero-inner { padding-top:128px; } .ffs-hero h1 { font-size:clamp(3.3rem,14vw,4.4rem); } .ffs-button { width:100%; } .ffs-card { display:block; } .ffs-card > span { margin-bottom:14px; } }
@media (prefers-reduced-motion:reduce) { .ffs-support *, .ffs-support *:before, .ffs-support *:after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Stripe's supplied public widget; payment is completed on Stripe. */
.ffs-hero-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); align-items:center; gap:48px; }
.ffs-hero-intro,.ffs-giving { min-width:0; }
.ffs-giving { padding:24px; border:1px solid rgba(212,160,23,.3); border-radius:20px; background:rgba(10,15,30,.45); text-align:center; }
.ffs-giving stripe-buy-button { display:block; width:100%; }
.ffs-giving-fallback { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; margin-top:12px; color:var(--ff-brand-yellow); font-weight:700; text-underline-offset:4px; }
.ffs-giving-fallback:hover { color:var(--ff-brand-yellow); }
@media(max-width:1000px) { .ffs-hero-layout { grid-template-columns:1fr; gap:30px; } .ffs-giving { width:100%; max-width:480px; } }
@media(max-width:520px) { .ffs-giving { padding:16px 8px; } }
