/* Featured content row, scoped to the Faith Force homepage. */
.ffhs { --ffhs-visible:3; --ffhs-gap:18px; background:#0a0f1e; }
.ffhs-shell { max-width:1176px; margin-inline:auto; }
.ffhs .ffhs-viewport { overflow:hidden; }
.ffhs .ffhs-track { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ffhs-gap); }
.ffhs-shell.is-ready .ffhs-track { display:flex; gap:var(--ffhs-gap); will-change:transform; }
.ffhs-shell.is-ready .ffhs-card { flex:0 0 calc((100% - (var(--ffhs-visible) - 1) * var(--ffhs-gap)) / var(--ffhs-visible)); }
.ffhs-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; background:#17253b; border:1px solid rgba(255,255,255,.17); border-radius:18px; color:#fff; text-decoration:none; box-shadow:0 15px 32px rgba(0,0,0,.18); }
.ffhs-card:hover { border-color:rgba(212,160,23,.6); color:#fff; text-decoration:none; }
.ffh-home .ffhs-card:focus-visible { outline:3px solid #fff; outline-offset:-4px; }
.ffhs-controls button:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.ffhs-art { display:block; flex:0 0 auto; width:100%; aspect-ratio:1; overflow:hidden; background:linear-gradient(135deg,#22395a,#371f37); }
.ffhs-art img { display:block; width:100%; height:100%; object-fit:cover; }
.ffhs-copy { display:grid; flex:none; grid-template-rows:14px 30px 44px 36px; gap:8px; padding:18px; }
.ffhs-type { color:var(--ff-brand-yellow); font-size:.72rem; font-weight:800; line-height:1.25; letter-spacing:.12em; text-transform:uppercase; }
.ffhs-copy strong { min-width:0; margin:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:#fff; font-family:var(--ff-display,'Bangers',cursive); font-size:clamp(1.3rem,1.8vw,1.65rem); font-weight:400; line-height:30px; letter-spacing:.025em; }
.ffhs-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin:0; color:#c8d3e1; font-size:.88rem; line-height:22px; }
.ffhs-cta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; padding-top:10px; border-top:1px solid rgba(255,255,255,.17); color:var(--ff-brand-yellow); font-weight:800; }

.ffhs-controls { display:flex; justify-content:center; gap:12px; margin-top:24px; }
.ffhs-controls[hidden] { display:none; }
.ffhs-controls button { min-width:48px; min-height:48px; padding:10px 16px; border:1px solid rgba(212,160,23,.6); border-radius:9px; background:#152745; color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.ffhs-controls button:hover { background:#213b5e; }
.ffhs-controls button[hidden] { display:none; }
.ffhs-controls button:disabled { opacity:.45; cursor:default; }
.ffhs-empty { color:#c8d3e1; }
@media (max-width:900px) { .ffhs-shell { max-width:778px; } .ffhs { --ffhs-visible:2; } .ffhs .ffhs-track:not(.ffhs-ready-track) { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .ffhs-shell { max-width:380px; } .ffhs { --ffhs-visible:1; } .ffhs .ffhs-track:not(.ffhs-ready-track) { grid-template-columns:1fr; } .ffhs-copy { padding:18px; } }
@media (prefers-reduced-motion:reduce) { .ffhs .ffhs-track { transition:none !important; } }

.ffhs [data-ffhs-status] { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }

/* Enlarge the owner-supplied screens while preserving their main content. */
.ffhs-art--contain { background:#0a0f1e; }
.ffhs-art--contain img { object-fit:contain; transform:scale(var(--ffhs-image-zoom,1)); transform-origin:center; }

/* A quiet inset frame gives every image the same finished edge. */
.ffhs-art { position:relative; }
.ffhs-art::after { content:''; position:absolute; inset:8px; z-index:1; border:1px solid rgba(226,197,123,.46); border-radius:12px; box-shadow:0 0 0 8px #111b30,inset 0 0 0 1px rgba(255,255,255,.08); pointer-events:none; transition:border-color .2s ease; }
.ffhs-card:hover .ffhs-art::after,.ffhs-card:focus-visible .ffhs-art::after { border-color:rgba(226,197,123,.85); }
@media (prefers-reduced-motion:reduce) { .ffhs-art::after { transition:none; } }
