/* Stuart Library Foundation — static rebuild 2026-08-13
   Palette + type lifted from the approved Elementor build (post-187 kit):
   primary #3F4E93, accent #467FF7, secondary/light #EEF2F6, text #2E2E2E.
   Merriweather (headings) / Source Sans 3 (body) / Poppins (labels). */
:root {
  --primary: #3F4E93;
  --accent: #467FF7;
  --light: #EEF2F6;
  --text: #2E2E2E;
  --muted: #5b6570;
  --white: #ffffff;
  --deep: #1C244B;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Source Sans 3', sans-serif; color: var(--text); font-size: 18px; line-height: 1.65; background: var(--white); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); }
h1, h2, h3 { font-family: 'Merriweather', serif; color: var(--deep); line-height: 1.25; }
h1 { font-size: clamp(2rem, 5vw, 3rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.1rem); margin-bottom: .6em; }
h3 { font-size: 1.25rem; margin-bottom: .4em; }
h4 { font-family: 'Poppins', sans-serif; font-size: 1.05rem; color: var(--primary); margin-bottom: .3em; }
p { margin-bottom: 1em; }
.wrap { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
section { padding: 64px 0; }
.section-light { background: var(--light); }

/* header / nav */
header { background: var(--white); border-bottom: 1px solid #e3e8ef; position: sticky; top: 0; z-index: 50; }
.nav { display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; max-width: 1140px; margin: 0 auto; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand img { width: 54px; height: auto; }
.brand span { font-family: 'Merriweather', serif; font-weight: 700; color: var(--deep); font-size: 1.05rem; line-height: 1.2; }
.nav ul { list-style: none; display: flex; align-items: center; gap: 26px; }
.nav ul a { font-family: 'Poppins', sans-serif; font-size: .95rem; text-decoration: none; color: var(--text); }
.nav ul a:hover, .nav ul a[aria-current] { color: var(--accent); }
.btn { display: inline-block; background: var(--accent); color: var(--white) !important; font-family: 'Poppins', sans-serif; font-weight: 600; padding: 11px 26px; border-radius: 6px; text-decoration: none; transition: background .15s; }
.btn:hover { background: var(--primary); }
.menu-btn { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.menu-btn span { display: block; width: 26px; height: 3px; background: var(--deep); margin: 5px 0; border-radius: 2px; }

/* hero — solid brand colors pulled from the logo (Nate 8/13: one per page).
   Coral/green logo hues are darkened as backgrounds so white hero text
   holds WCAG AA contrast; full-strength hues stay in the logo itself. */
.hero { position: relative; color: var(--white); text-align: center; padding: 96px 24px; background: var(--hero-bg, var(--primary)); }
.hero h1 { color: var(--white); margin-bottom: .3em; }
.hero p.lead { font-size: 1.25rem; max-width: 760px; margin: 0 auto 1.4em; }
.hero .sub { font-family: 'Merriweather', serif; font-style: italic; font-size: 1.15rem; max-width: 820px; margin: 0 auto; }

/* cards */
.grid { display: grid; gap: 28px; }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.card { background: var(--white); border-radius: 10px; padding: 28px; box-shadow: 0 2px 12px rgba(28,36,75,.08); }
.section-light .card { box-shadow: 0 2px 10px rgba(28,36,75,.06); }
.stat { text-align: center; }
.stat .num { font-family: 'Merriweather', serif; font-size: 2.3rem; font-weight: 700; color: var(--accent); display: block; }
.stat p { color: var(--muted); margin: 0; }

/* quote */
blockquote { font-family: 'Merriweather', serif; font-style: italic; font-size: 1.15rem; border-left: 4px solid var(--accent); padding: 8px 0 8px 22px; margin: 1.2em 0; }
blockquote footer { font-family: 'Source Sans 3', sans-serif; font-style: normal; font-size: 1rem; color: var(--muted); margin-top: .5em; }

/* donate section */
.donate-band { background: var(--primary); color: var(--white); }
.donate-band h2, .donate-band h4 { color: var(--white); }
.donate-band .card { background: rgba(255,255,255,.08); box-shadow: none; color: var(--white); }
.donate-band a { color: #cfe0ff; }

/* footer */
footer.site { background: var(--deep); color: #c9d2e8; padding: 44px 0 28px; font-size: .95rem; }
footer.site a { color: #cfe0ff; text-decoration: none; }
footer.site .cols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; margin-bottom: 24px; }
footer.site .credit { border-top: 1px solid rgba(255,255,255,.15); padding-top: 18px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }

/* lists */
ul.checks { list-style: none; margin: 0 0 1em; }
ul.checks li { padding-left: 28px; position: relative; margin-bottom: .5em; }
ul.checks li::before { content: "\2713"; position: absolute; left: 0; color: var(--accent); font-weight: 700; }

/* steps (scholarship) */
.step { display: flex; gap: 18px; margin-bottom: 26px; }
.step .n { flex: 0 0 44px; height: 44px; border-radius: 50%; background: var(--accent); color: var(--white); font-family: 'Poppins', sans-serif; font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.deadline { background: var(--light); border-left: 4px solid var(--primary); padding: 14px 18px; border-radius: 0 8px 8px 0; margin-bottom: 1em; }

@media (max-width: 900px) {
  .grid-4, .grid-3 { grid-template-columns: repeat(2, 1fr); }
  footer.site .cols { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .grid-4, .grid-3, .grid-2 { grid-template-columns: 1fr; }
  .menu-btn { display: block; }
  .nav ul { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--white); flex-direction: column; padding: 18px 24px; gap: 16px; border-bottom: 1px solid #e3e8ef; box-shadow: 0 8px 16px rgba(28,36,75,.12); }
  .nav ul.open { display: flex; }
  .hero { padding: 72px 20px; }
}
