/* ============================================================
   We Care Fairfield County — shared stylesheet
   Brand: navy #1F486D · sky #D8EEFA · Poppins
   ============================================================ */

:root{
  --navy:#1F486D;
  --navy-deep:#16344f;
  --sky:#D8EEFA;
  --white:#ffffff;
  --ink:#1d2733;
  --muted:#5a6b7b;
  --line:#c9def0;
  --heart:#e0556b;        /* warm accent for the donor heart */
  --purple:#4a2d85;       /* suicide-prevention awareness purple */
  --focus:#ffce4a;
  --maxw:1300px;
  --radius:6px;
  --shadow:0 6px 20px rgba(22,52,79,.12);
  --shadow-sm:0 2px 8px rgba(22,52,79,.10);
}

*,*::before,*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--sky);
  -webkit-font-smoothing:antialiased;
  padding-bottom:64px; /* room for sticky help bar */
}

img{max-width:100%;height:auto;display:block;}
a{color:var(--navy);}

.container{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:24px;
}

/* Skip link ------------------------------------------------- */
.skip-link{
  position:absolute;left:-999px;top:0;z-index:200;
  background:var(--navy);color:#fff;padding:12px 18px;
  border-radius:0 0 var(--radius) 0;font-weight:600;
}
.skip-link:focus{left:0;}

/* Visible focus everywhere ---------------------------------- */
a:focus-visible,button:focus-visible,summary:focus-visible,
.btn:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:2px;
}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-header{background:var(--navy);position:relative;z-index:50;}
.nav-wrap{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding-block:14px;
}
.brand{display:inline-flex;flex:0 1 auto;min-width:0;}
.brand img{max-width:560px;width:100%;height:auto;}

.nav-toggle{
  display:none;align-items:center;gap:10px;
  background:transparent;border:0;color:#fff;cursor:pointer;
  font:600 16px/1 'Poppins',sans-serif;padding:10px;
}
.nav-toggle .bars{display:inline-block;width:26px;height:18px;position:relative;}
.nav-toggle .bars span{
  position:absolute;left:0;height:2px;width:100%;background:#fff;border-radius:2px;
  transition:transform .25s ease,opacity .2s ease;
}
.nav-toggle .bars span:nth-child(1){top:0;}
.nav-toggle .bars span:nth-child(2){top:8px;}
.nav-toggle .bars span:nth-child(3){top:16px;}
.nav-toggle[aria-expanded="true"] .bars span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .bars span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] .bars span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.main-nav ul{
  list-style:none;margin:0;padding:0;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.main-nav a{
  display:inline-flex;align-items:center;gap:7px;
  color:#fff;text-decoration:none;font-size:15px;font-weight:500;
  letter-spacing:.02em;text-transform:uppercase;
  padding:10px 14px;border-radius:var(--radius);
  transition:background .2s ease,color .2s ease;
}
.main-nav a:hover,.main-nav a:focus-visible{background:rgba(255,255,255,.14);}
.main-nav a[aria-current="page"]{background:#fff;color:var(--navy);}
.main-nav a .ico{width:18px;height:18px;flex:0 0 auto;}

@media (max-width:1024px){
  .brand img{max-width:420px;}
  .nav-toggle{display:inline-flex;}
  .main-nav{
    display:none;width:100%;flex-basis:100%;
  }
  .nav-wrap{flex-wrap:wrap;}
  .main-nav.open{display:block;}
  .main-nav ul{flex-direction:column;align-items:stretch;gap:2px;padding-bottom:10px;}
  .main-nav a{padding:14px 12px;border-radius:4px;}
}

/* ============================================================
   BANNER
   ============================================================ */
.banner{
  position:relative;background:var(--navy) center 28%/cover no-repeat;
  min-height:480px;display:flex;align-items:flex-end;
}
.banner.tall{min-height:600px;}
.banner::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(31,72,109,.25) 0%,rgba(31,72,109,.78) 100%);
}
.banner__inner{position:relative;z-index:2;width:100%;background:rgba(31,72,109,.80);}
.banner__inner .container{padding-block:26px;}
.banner h1{
  margin:0;color:#fff;font-weight:600;line-height:1.12;
  font-size:clamp(28px,4.5vw,46px);letter-spacing:.01em;
}
/* simple page banner (no photo) */
.pagehead{background:var(--navy);}
.pagehead .container{padding-block:46px;}
.pagehead h1{
  margin:0;color:#fff;font-weight:600;
  font-size:clamp(30px,5vw,52px);letter-spacing:.02em;
}

/* slideshow banner */
.banner .slideshow{position:absolute;inset:0;z-index:0;}
.slideshow .slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;
  background:center/cover no-repeat;
}
.slideshow .slide.active{opacity:1;}
.banner::after{z-index:1;}
.banner__inner{z-index:2;}

/* ============================================================
   GENERIC SECTIONS / TYPOGRAPHY
   ============================================================ */
main{display:block;}
.section{padding-block:48px;}
.section.tight{padding-block:32px;}
.lead{
  font-size:clamp(18px,2.2vw,22px);line-height:1.55;
  color:var(--navy);max-width:62ch;margin-inline:auto;text-align:center;
}
h2.section-title{
  text-align:center;color:var(--navy);font-weight:600;
  font-size:clamp(24px,3.4vw,34px);margin:0 0 8px;
}
.prose{max-width:80ch;margin-inline:auto;}
.prose p{margin:0 0 16px;}
.prose h3{color:var(--navy);font-weight:600;font-size:20px;margin:24px 0 10px;}
.prose ul{margin:0 0 16px;padding-left:22px;}
.prose li{margin:6px 0;}
.prose a{color:var(--navy);font-weight:500;}
a.u-anim{
  color:var(--navy);text-decoration:none;position:relative;font-weight:500;
}
a.u-anim::after{
  content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;
  background:currentColor;transition:width .25s ease;
}
a.u-anim:hover::after,a.u-anim:focus-visible::after{width:100%;}

/* external-link cue */
.ext-ico{
  width:.7em;height:.7em;display:inline-block;vertical-align:baseline;
  margin-left:3px;opacity:.7;flex:none;
}

/* button trio + themeable buttons */
.btn-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  max-width:1100px;margin-inline:auto;
}
@media (max-width:760px){.btn-row{grid-template-columns:1fr;}}
.btn{
  display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:80px;padding:16px;font-weight:500;font-size:18px;
  text-decoration:none;color:var(--navy);background:#fff;
  border:1.5px solid var(--navy);border-radius:var(--radius);
  transition:background .3s ease,color .3s ease,box-shadow .3s ease;
}
.btn:hover,.btn:focus-visible{background:var(--navy);color:#fff;box-shadow:var(--shadow);}
.btn--solid{background:var(--navy);color:#fff;}
.btn--solid:hover,.btn--solid:focus-visible{background:var(--navy-deep);color:#fff;}
.btn--inline{display:inline-flex;min-height:0;padding:13px 22px;font-size:16px;}

/* ============================================================
   STATS (count-up)
   ============================================================ */
.stats{background:var(--navy);color:#fff;border-radius:var(--radius);overflow:hidden;}
.stats__head{text-align:center;padding:34px 20px 6px;}
.stats__head h2{margin:0;font-weight:600;font-size:clamp(22px,3vw,30px);}
.stats__head .src{display:block;margin-top:8px;font-size:13px;color:#bcd4ea;font-weight:400;}
.stats__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  padding:18px 20px 40px;
}
@media (max-width:760px){.stats__grid{grid-template-columns:1fr;gap:24px;}}
.stat{text-align:center;}
.stat .num{
  font-size:clamp(40px,6vw,64px);font-weight:600;line-height:1;
  letter-spacing:.01em;
}
.stat .label{display:block;margin-top:10px;font-size:16px;letter-spacing:.08em;color:#cfe0f0;text-transform:uppercase;}

/* image / logo blocks */
.logo988{
  display:block;width:100%;max-width:1000px;margin:8px auto 0;
}
.callout-note{
  text-align:center;color:var(--navy);font-weight:600;
  font-size:clamp(18px,2.4vw,22px);max-width:60ch;margin:0 auto;
}

/* two-column media row */
.media-row{
  display:grid;grid-template-columns:repeat(2,1fr);gap:32px;align-items:center;
  max-width:1100px;margin-inline:auto;
}
@media (max-width:860px){.media-row{grid-template-columns:1fr;gap:20px;}}
.media-row video{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);background:#000;}

/* video embed with play overlay */
.video-embed{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#000;}
.video-embed video{display:block;width:100%;height:auto;}
.video-play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  border:0;cursor:pointer;background:rgba(22,52,79,.28);
  transition:opacity .3s ease,background .25s ease;
}
.video-play:hover,.video-play:focus-visible{background:rgba(22,52,79,.14);}
.video-play .pp{
  width:84px;height:84px;border-radius:50%;background:rgba(255,255,255,.94);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.32);transition:transform .2s ease;
}
.video-play:hover .pp,.video-play:focus-visible .pp{transform:scale(1.07);}
.video-play .pp svg{width:36px;height:36px;fill:var(--navy);margin-left:5px;}
.video-play.is-hidden{opacity:0;pointer-events:none;}

.train-row{
  display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:center;
  max-width:1000px;margin:0 auto 28px;
}
.train-row img{margin-inline:auto;}
@media (max-width:620px){.train-row{grid-template-columns:1fr;text-align:center;}}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow-sm);
}

/* members list */
.members{
  display:grid;grid-template-columns:1fr 1fr;gap:8px 40px;
  max-width:1000px;margin-inline:auto;
}
@media (max-width:700px){.members{grid-template-columns:1fr;}}
.members ul{margin:0;padding-left:22px;}
.members li{margin:8px 0;}

/* resources columns */
.res-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
  max-width:var(--maxw);margin-inline:auto;
}
@media (max-width:1024px){.res-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.res-grid{grid-template-columns:1fr;}}
.res-col h2{
  color:var(--navy);font-size:19px;font-weight:600;margin:0 0 12px;
  padding-bottom:8px;border-bottom:2px solid var(--navy);letter-spacing:.04em;
}
.res-col ul{margin:0;padding-left:20px;}
.res-col li{margin:9px 0;}

/* ============================================================
   FAQ
   ============================================================ */
.faq{max-width:860px;margin-inline:auto;}
.faq details{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:12px;box-shadow:var(--shadow-sm);overflow:hidden;
}
.faq summary{
  list-style:none;cursor:pointer;padding:18px 52px 18px 22px;position:relative;
  font-weight:600;color:var(--navy);font-size:18px;line-height:1.4;
  border-radius:var(--radius);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"";position:absolute;right:22px;top:50%;
  width:12px;height:12px;border-right:2.5px solid var(--navy);border-bottom:2.5px solid var(--navy);
  transform:translateY(-65%) rotate(45deg);transition:transform .25s ease;
}
.faq details[open] summary::after{transform:translateY(-35%) rotate(-135deg);}
.faq details[open] summary{border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;}
.faq .faq-body{padding:18px 22px 20px;color:var(--ink);}
.faq .faq-body p{margin:0;}
.faq .faq-body a{color:var(--navy);font-weight:600;}

/* ============================================================
   SOURCES LEGEND
   ============================================================ */
.sources{
  max-width:1100px;margin:0 auto;border-top:1px solid var(--line);
  padding-top:22px;font-size:13.5px;color:var(--muted);
}
.sources h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);margin:0 0 10px;}
.sources ol{margin:0;padding-left:20px;}
.sources li{margin:5px 0;}
.sources a{color:var(--muted);}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--navy);color:#fff;position:relative;}
.footer-divider{line-height:0;}
.footer-divider svg{display:block;width:100%;height:24px;}
.footer-divider svg path{fill:var(--sky);}
.avail{text-align:center;font-size:clamp(20px,2.6vw,24px);font-weight:500;padding:30px 20px 6px;letter-spacing:.02em;}
.foot-icons{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  max-width:1100px;margin:0 auto;padding:26px 24px 8px;text-align:center;
}
@media (max-width:760px){.foot-icons{grid-template-columns:1fr;gap:30px;}}
.foot-icons .ico-circle{
  width:60px;height:60px;margin:0 auto 12px;color:#fff;
}
.foot-icons .ico-circle svg{width:100%;height:100%;fill:currentColor;}
.foot-icons p{margin:0;font-size:16px;line-height:1.5;}
.foot-icons a{color:#fff;text-decoration:none;font-weight:600;}
.foot-icons a:hover{text-decoration:underline;}

.foot-bottom{border-top:1px solid rgba(255,255,255,.16);margin-top:18px;}
.foot-bottom .container{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:14px;padding-block:22px;
}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:15px;justify-content:center;}
.foot-links a{color:#fff;text-decoration:none;}
.foot-links a:hover{text-decoration:underline;}
.foot-social a{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-size:15px;font-weight:500;}
.foot-social a:hover{text-decoration:underline;}
.foot-social svg{width:22px;height:22px;fill:currentColor;flex:none;}
.copyright{font-size:14px;color:#cfe0f0;line-height:1.6;width:100%;text-align:center;padding-bottom:6px;}
.copyright a{color:#fff;}
.heart{color:var(--heart);display:inline-block;vertical-align:-2px;}
.heart svg{width:15px;height:15px;fill:currentColor;}

/* ============================================================
   STICKY HELP BAR
   ============================================================ */
.help-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:120;
  background:var(--purple);color:#fff;
  box-shadow:0 -4px 16px rgba(0,0,0,.22);
}
.help-bar .container{
  display:flex;align-items:center;justify-content:center;gap:10px 18px;
  flex-wrap:wrap;padding-block:11px;text-align:center;
}
.help-bar .msg{font-weight:600;font-size:16px;}
.help-bar .acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.help-bar a{
  display:inline-flex;align-items:center;gap:7px;
  background:#fff;color:var(--purple);text-decoration:none;font-weight:700;
  padding:8px 16px;border-radius:999px;font-size:15px;
  transition:transform .15s ease,background .2s ease;
}
.help-bar a:hover,.help-bar a:focus-visible{transform:translateY(-1px);background:#fff;}
.help-bar a svg{width:16px;height:16px;fill:currentColor;}
.help-bar a.ghost{background:rgba(255,255,255,.18);color:#fff;}
.help-bar a.ghost:hover{background:rgba(255,255,255,.30);}
@media (max-width:520px){
  .help-bar .msg{font-size:15px;}
  body{padding-bottom:96px;}
}

/* utilities */
.text-center{text-align:center;}
.mt-24{margin-top:24px;}
.mt-32{margin-top:32px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
