/* ===================================================================
   Freedom Gathering
   Approved direction (Tonia + Cathy, 2026-10-03): "A Lamp on the Street"
   structure in the ministry's own black, red, gold and white. Pages stay
   white so the photographs carry the color. Colors sampled from the
   real logo file (assets/img/logo.png), not guessed.
   =================================================================== */
:root{
  --black:#0d0d0d;
  --black-2:#1a1a1a;
  --red:#ce0000;       /* logo heart */
  --red-dk:#a30000;
  --gold:#ebc55e;      /* logo tagline: use on dark backgrounds only */
  --gold-dk:#8a6a1f;   /* gold that passes contrast on white */
  --ink:#141414;
  --body:#45403b;
  --muted:#77706a;
  --bg:#ffffff;
  --bg-soft:#f7f5f2;
  --line:#e8e3dd;
  --wrap:1200px;
  --shadow:0 20px 50px rgba(0,0,0,.12);
  --display:'Oswald','Arial Narrow',sans-serif;
  --text:'Source Sans 3',-apple-system,Segoe UI,Roboto,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--text);font-size:18px;color:var(--body);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);line-height:1.05;font-weight:700;text-transform:uppercase;letter-spacing:.01em}
a{color:var(--red);text-decoration:none;transition:.2s}
a:hover{color:var(--red-dk)}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.kicker{font-family:var(--text);font-size:14px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--red)}
.kicker.gold{color:var(--gold)}
.lead{font-size:20px;color:var(--body)}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:0;background:var(--black);color:#fff;padding:10px 16px;z-index:200}
.skip:focus{left:10px;top:10px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:6px;font-family:var(--text);
  font-weight:700;font-size:15px;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;border:2px solid transparent;transition:.2s}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dk);color:#fff}
.btn-line{background:#fff;border-color:var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-line-light{background:transparent;border-color:rgba(255,255,255,.8);color:#fff}
.btn-line-light:hover{background:#fff;color:var(--ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
:focus-visible{outline:3px solid var(--gold-dk);outline-offset:3px}

/* nav */
.navbar{position:sticky;top:0;z-index:100;background:var(--black);border-bottom:3px solid var(--red)}
.nav-inner{max-width:var(--wrap);margin:0 auto;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav-logo{display:flex;align-items:center;gap:12px;color:#fff}
.nav-logo img{width:62px;height:auto}
.nav-word{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:.06em;line-height:1;color:#fff}
.nav-word small{display:block;font-family:var(--text);font-size:11px;font-weight:600;letter-spacing:.16em;color:var(--gold);margin-top:5px;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:24px}
.nav-links a{color:#fff;font-weight:600;font-size:16px}
.nav-links a:hover,.nav-links a.active{color:var(--gold)}
.nav-links a.nav-cta{background:var(--red);color:#fff;padding:10px 20px;border-radius:6px;text-transform:uppercase;letter-spacing:.8px;font-size:14px;font-weight:700}
.nav-links a.nav-cta:hover{background:var(--red-dk);color:#fff}
.hamburger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.hamburger span{display:block;width:26px;height:3px;background:#fff;margin:5px 0;border-radius:2px}

/* home hero: white, words left, photo right */
.hero{padding:56px 0 0}
.hero .wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
.hero .kicker{margin-bottom:14px;font-size:16px}
.hero h1{font-size:clamp(52px,7vw,96px);margin-bottom:18px}
.hero h1 span{display:block}
.hero .lead{margin-bottom:28px;max-width:520px}
.hero-photo{border-radius:10px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;background:var(--bg-soft) center/cover no-repeat}

.hero-photo img,.media img,.person .photo img,.spotlight .photo img,.post .thumb img{width:100%;height:100%;object-fit:cover}
.person .photo,.spotlight .photo,.post .thumb{overflow:hidden}

/* the heartbeat line that runs between sections */
.pulse{display:block;width:100%;height:60px;color:var(--red)}
.pulse path{fill:none;stroke:currentColor;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;padding:10px 0 40px}
.stats div{padding:6px 12px;border-left:1px solid var(--line)}
.stats div:first-child{border-left:0}
.stats b{display:block;white-space:nowrap;font-family:var(--display);font-size:46px;color:var(--ink);line-height:1.1}
.stats span{font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-dk)}

/* sections */
.section{padding:84px 0}
.section.soft{background:var(--bg-soft)}
.section.dark{background:var(--black);color:#e9e5df}
.section.dark h2,.section.dark h3{color:#fff}
.section-head{max-width:760px;margin:0 auto 44px;text-align:center}
.section-head h2{font-size:clamp(36px,4.5vw,56px);margin:10px 0 14px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split.flip .media{order:2}
.split h2{font-size:clamp(36px,4.5vw,58px);margin:10px 0 18px}
.split p{margin-bottom:16px}
.media{border-radius:10px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;background:var(--bg-soft) center/cover no-repeat}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:30px;display:flex;flex-direction:column}
.card h3{font-size:26px;margin:8px 0 10px}
.card p{flex:1;margin-bottom:18px}
.card .btn{align-self:flex-start}

/* calendar */
.cal-wrap{max-width:1000px;margin:0 auto}
.cal-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-bar h3{font-size:32px}
.cal-bar button{white-space:nowrap;background:#fff;border:2px solid var(--ink);border-radius:6px;font:700 15px var(--text);padding:8px 16px;cursor:pointer}
.cal-bar button:hover{background:var(--ink);color:#fff}
.cal{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);background:#fff}
.cal .dow{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-dk);padding:10px 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-soft)}
.cal .day{min-height:108px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}
.cal .day.out{background:#fbfaf8;color:#c3bdb6}
.cal .day.today{box-shadow:inset 0 0 0 2px var(--red)}
.cal .num{font-weight:700;color:var(--ink);margin-bottom:4px}
.cal .ev{display:block;border-left:3px solid var(--red);padding:2px 6px;margin-top:4px;line-height:1.3;font-size:13px;color:var(--ink);background:#fff6f6}
.cal .ev.gold{border-left-color:var(--gold-dk);background:#fbf6e8}
.cal-list{display:none}
.cal-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:15px}
.cal-legend span::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;background:var(--red)}
.cal-legend span.gold::before{background:var(--gold-dk)}

/* partner marquee: food coming in, food going out */
.partners{background:#fff;border-top:1px solid var(--line);padding:46px 0 52px;overflow:hidden}
.strip-label{text-align:center;margin:0 0 14px}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee + .strip-label{margin-top:30px}
.track{display:flex;gap:16px;width:max-content;animation:scroll 60s linear infinite}
.track.reverse{animation-direction:reverse}
.marquee:hover .track{animation-play-state:paused}
.chip{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:12px 24px;font-family:var(--display);font-size:20px;letter-spacing:.04em;color:var(--ink);text-transform:uppercase}
.chip small{font-family:var(--text);font-size:13px;color:var(--muted);text-transform:none;letter-spacing:0;margin-left:6px}
@keyframes scroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.track{animation:none;flex-wrap:wrap;justify-content:center;width:auto}.track [aria-hidden]{display:none}}

/* interior page banner */
.banner{background:var(--black);color:#fff;padding:70px 0 60px;border-bottom:3px solid var(--red)}
.banner h1{color:#fff;font-size:clamp(46px,6vw,78px);margin-top:8px}
.banner p{max-width:680px;margin-top:14px;font-size:20px;color:#dcd6cf}

/* team */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.person{text-align:center}
.person .photo{aspect-ratio:1;border-radius:10px;background:var(--bg-soft) center/cover no-repeat;margin-bottom:16px;box-shadow:var(--shadow)}
.person h2{font-size:28px}
.person .photo.mono{display:flex;align-items:center;justify-content:center;background:var(--black);color:var(--gold);font-family:var(--display);font-size:96px;letter-spacing:.04em}
.person .role{color:var(--red);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:14px;margin:4px 0 10px}
.spotlight{display:grid;grid-template-columns:320px 1fr;gap:40px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:34px}
.spotlight .photo{aspect-ratio:1;border-radius:10px;background:var(--bg-soft) center/cover no-repeat}
.spotlight blockquote{font-size:22px;line-height:1.5;color:var(--ink);margin:12px 0 14px;border-left:4px solid var(--red);padding-left:18px}

/* gallery */
.gallery{columns:3 280px;column-gap:16px}
.gallery figure{break-inside:avoid;margin-bottom:16px;border-radius:8px;overflow:hidden;background:var(--bg-soft)}
.gallery img{width:100%;height:auto}
.gallery figcaption{font-size:14px;padding:8px 12px;color:var(--muted)}

/* blog */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.post{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.post .thumb{aspect-ratio:16/10;background:var(--bg-soft) center/cover no-repeat}
.post .inner{padding:24px;display:flex;flex-direction:column;flex:1}
.post time{font-size:14px;color:var(--muted);font-weight:600}
.post h2{font-size:28px;margin:6px 0 10px}
.post p{flex:1;margin-bottom:14px}
.article{max-width:760px;margin:0 auto}
.article p{margin-bottom:18px}
.article h2{font-size:34px;margin:34px 0 12px}

/* forms */
.form{display:grid;gap:16px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:30px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{font-weight:700;font-size:15px;color:var(--ink);display:grid;gap:6px}
.form input,.form select,.form textarea{font:inherit;font-size:17px;padding:12px 14px;border:1px solid #cfc8c0;border-radius:6px;background:#fff;color:var(--ink);width:100%}
.form textarea{min-height:130px;resize:vertical}
.form .note{font-size:14px;color:var(--muted)}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-status{font-weight:700;min-height:1.2em}
.form-status.ok{color:#1d7a35}
.form-status.err{color:var(--red)}
.form button[disabled]{opacity:.6;cursor:wait}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.tabs a{padding:10px 18px;border:2px solid var(--ink);border-radius:6px;font-weight:700;color:var(--ink);text-transform:uppercase;font-size:14px;letter-spacing:.8px}
.tabs a:hover{background:var(--ink);color:#fff}

/* give */
.give-box{background:var(--black);color:#e9e5df;border-radius:12px;padding:44px;text-align:center}
.give-box h2{color:#fff;font-size:44px;margin:8px 0 12px}
.give-box .btn{margin-top:22px;font-size:17px;padding:18px 40px}
.trust{font-size:15px;color:#bdb6ae;margin-top:18px}
.needs{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.need{border:1px solid var(--line);border-radius:10px;padding:28px;background:#fff}
.need-feature{margin-bottom:24px;border:2px solid var(--red);text-align:center}
.need-feature p{max-width:680px;margin:0 auto 18px}
.need-feature .btn-row{justify-content:center}
.need h3{font-size:28px;margin:6px 0 10px}

/* closing call to action */
.cta-band{background:var(--red);color:#fff;padding:56px 0;text-align:center}
.cta-band h2{color:#fff;font-size:clamp(34px,4vw,50px);margin-bottom:10px}
.cta-band p{max-width:640px;margin:0 auto 24px;font-size:20px}
.cta-band .btn-row{justify-content:center}

/* footer */
.footer{background:var(--black);color:#bdb6ae;padding:60px 0 28px;font-size:16px}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
.footer .foot-h{color:var(--gold);font-size:18px;margin-bottom:12px;letter-spacing:.06em}
.footer a{color:#e9e5df;display:block;margin-bottom:6px}
.footer a:hover{color:var(--gold)}
.footer .brand img{width:150px;margin-bottom:12px}
.footer .legal{border-top:1px solid #2c2c2c;margin-top:40px;padding-top:20px;font-size:14px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* phone action bar: Donate and Volunteer always one tap away */
.mobile-bar{display:none}
@media (max-width:620px){
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:90;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(13,13,13,.96);border-top:2px solid var(--red)}
  .mobile-bar .btn{padding:13px 10px;font-size:15px}
  body{padding-bottom:76px}
}

/* responsive */
@media (max-width:960px){
  .hero .wrap,.split,.spotlight{grid-template-columns:1fr}
  .split.flip .media{order:0}
  .cards,.team,.posts{grid-template-columns:1fr 1fr}
  .footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .hamburger{display:block}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--black);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 18px}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 0;border-bottom:1px solid #262626}
  .nav-links a.nav-cta{text-align:center;margin-top:12px;border:0}
  .stats{grid-template-columns:1fr 1fr;row-gap:22px}
  .stats div:nth-child(3){border-left:0}
  .cal{display:none}
  .cal-list{display:block}
  .cal-list li{list-style:none;border-left:4px solid var(--red);background:#fff;padding:10px 14px;margin-bottom:8px}
  .cal-list li.gold{border-left-color:var(--gold-dk)}
  .cal-list b{color:var(--ink);display:block}
  .cal-bar{gap:10px}
  .cal-bar h3{font-size:24px;text-align:center}
  .cal-bar button{padding:8px 12px;font-size:14px}
  .stats b{font-size:38px}
}
@media (max-width:620px){
  body{font-size:17px}
  .section{padding:60px 0}
  .cards,.team,.posts,.needs,.form .row,.footer .cols{grid-template-columns:1fr}
  .give-box{padding:32px 20px}
  .nav-word{font-size:18px}
  .nav-logo img{width:48px}
}
