/* ==========================================================================
   Cullen Family Charity — shared stylesheet
   Used by every page (index.html, history.html, the-gift.html, mission.html,
   timeline.html, get-involved.html, donate.html, board.html) so the look
   stays consistent and there's only one place to change colors/fonts/spacing.
   ========================================================================== */
:root{
  --cream: #F3ECDD;
  --parchment: #EAE0C9;
  --evergreen: #2F5233;
  --evergreen-deep: #1C3220;
  --brick: #A3341F;
  --brick-deep: #7C2717;
  --gold: #C9A227;
  --ink: #2B2018;
  --line: rgba(43,32,24,0.15);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:'Work Sans', sans-serif; font-weight:400; line-height:1.6;
}
h1,h2,h3{font-family:'Fraunces', serif; font-weight:600; margin:0; letter-spacing:-0.01em;}
a{color:inherit;}
.wrap{max-width:1080px; margin:0 auto; padding:0 32px;}
.eyebrow{
  font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--brick);
}
section.alt .eyebrow{color:var(--gold);}

/* NAV */
nav{position:sticky; top:0; z-index:30; background:rgba(243,236,221,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
nav .wrap{display:flex; align-items:center; justify-content:space-between; height:84px;}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand img{width:55px; height:55px; border-radius:50%; object-fit:cover;}
.brand-text{font-family:'Fraunces', serif; font-weight:600; font-size:1.31rem; line-height:1.15;}
.brand-text small{display:block; font-family:'Space Mono',monospace; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--brick); font-weight:400; margin-top:2px;}
.navlinks{display:flex; gap:22px; font-size:0.9rem; align-items:center;}
.navlinks a{text-decoration:none; color:var(--evergreen-deep); opacity:0.85; white-space:nowrap;}
.navlinks a:hover{opacity:1;}
.navlinks a.current{opacity:1; border-bottom:2px solid var(--brick); padding-bottom:4px;}
.nav-cta{background:var(--evergreen); color:var(--cream); padding:10px 20px; border-radius:2px; text-decoration:none; font-size:0.86rem; font-weight:500; transition:background 0.2s ease; white-space:nowrap;}
.nav-cta:hover{background:var(--evergreen-deep);}
.nav-right{display:flex; align-items:center; gap:22px;}

/* mobile hamburger */
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px; margin-left:8px;}
.nav-toggle span{display:block; width:24px; height:2px; background:var(--evergreen-deep); margin:5px 0; transition:transform 0.2s ease, opacity 0.2s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* HERO (home page) */
header.hero{padding:96px 0 84px; position:relative; overflow:hidden;
  background: radial-gradient(ellipse 900px 500px at 88% -10%, rgba(201,162,39,0.14), transparent 60%);}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
.hero h1{font-size:clamp(2.2rem, 4vw, 3.3rem); line-height:1.08; color:var(--evergreen-deep);}
.hero p.lead{margin-top:22px; font-size:1.08rem; max-width:48ch; color:rgba(43,32,24,0.85);}
.hero-actions{margin-top:32px; display:flex; gap:16px; flex-wrap:wrap;}
.btn-primary{background:var(--brick); color:var(--cream); text-decoration:none; padding:14px 26px; border-radius:2px; font-weight:500; font-size:0.94rem; display:inline-block; transition:transform 0.15s ease, background 0.2s ease;}
.btn-primary:hover{background:var(--brick-deep); transform:translateY(-1px);}
.btn-ghost{border:1px solid var(--evergreen-deep); color:var(--evergreen-deep); text-decoration:none; padding:13px 26px; border-radius:2px; font-weight:500; font-size:0.94rem; display:inline-block;}
.hero-tag{margin-top:26px; font-family:'Space Mono',monospace; font-size:0.76rem; color:rgba(43,32,24,0.55); letter-spacing:0.04em;}
.house-signature{position:relative; height:340px;}
.house-signature svg{width:100%; height:100%;}

/* PAGE HEADER (interior pages, replaces the big hero) */
header.page-header{padding:64px 0 48px; background: radial-gradient(ellipse 900px 500px at 88% -10%, rgba(201,162,39,0.14), transparent 60%);}
header.page-header h1{font-size:clamp(2rem, 3.4vw, 2.7rem); color:var(--evergreen-deep);}
header.page-header p.lead{margin-top:16px; font-size:1.05rem; max-width:60ch; color:rgba(43,32,24,0.85);}
.breadcrumb{font-family:'Space Mono',monospace; font-size:0.74rem; letter-spacing:0.06em; text-transform:uppercase; color:rgba(43,32,24,0.5); margin-bottom:14px;}
.breadcrumb a{color:var(--brick); text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}

/* SECTION shared */
section{padding:84px 0;}
section.alt{background:var(--evergreen-deep); color:var(--cream);}
.section-head{max-width:660px; margin-bottom:48px;}
.section-head h2{font-size:clamp(1.7rem, 2.8vw, 2.25rem); margin-top:10px;}

/* HISTORY / GIFT two-column */
.split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.split p{font-size:0.98rem; color:rgba(43,32,24,0.82); margin:0 0 14px;}
.fact-list{list-style:none; padding:0; margin:22px 0 0; border-top:1px solid var(--line);}
.fact-list li{display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); font-size:0.9rem;}
.fact-list .k{font-family:'Space Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--brick); padding-top:2px;}
.fact-list .v{text-align:right; max-width:30ch; color:rgba(43,32,24,0.85);}

/* VIDEO preview card */
.video-card{display:block; text-decoration:none; max-width:640px; margin-top:36px;}
.video-thumb{position:relative; border-radius:2px; overflow:hidden; background:var(--evergreen-deep); aspect-ratio:16/9;}
.video-thumb img{width:100%; height:100%; display:block; object-fit:cover;}
.video-play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
.video-play-circle{width:64px; height:64px; border-radius:50%; background:rgba(28,50,32,0.85); display:flex; align-items:center; justify-content:center; transition:background 0.2s ease, transform 0.15s ease;}
.video-card:hover .video-play-circle{background:var(--evergreen-deep); transform:scale(1.06);}
.video-play-triangle{width:0; height:0; border-top:12px solid transparent; border-bottom:12px solid transparent; border-left:20px solid var(--cream); margin-left:4px;}
.video-caption h3{margin-top:16px; font-size:1.1rem; color:var(--ink);}
.video-caption p{font-size:0.88rem; color:rgba(43,32,24,0.65); margin-top:6px;}

/* MISSION pillars */
.pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid rgba(243,236,221,0.2);}
.pillar{padding:32px 26px 32px 0; border-right:1px solid rgba(243,236,221,0.2);}
.pillar:last-child{border-right:none;}
.pillar .num{font-family:'Space Mono',monospace; font-size:0.76rem; color:var(--gold);}
.pillar h3{font-size:1.15rem; margin-top:12px; color:var(--cream);}
.pillar p{margin-top:10px; font-size:0.92rem; color:rgba(243,236,221,0.75);}

.verse{
  margin-top:56px; padding-top:44px; border-top:1px solid rgba(243,236,221,0.2);
  font-family:'EB Garamond', serif; font-style:italic; font-size:1.4rem; line-height:1.5;
  max-width:640px; color:var(--cream);
}
.verse cite{display:block; margin-top:16px; font-family:'Space Mono',monospace; font-style:normal; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold);}

/* TIMELINE */
.timeline{position:relative; margin-top:20px;}
.timeline::before{content:""; position:absolute; left:0; right:0; top:11px; height:1px; background:var(--line);}
.timeline-row{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.tl-item{position:relative; padding-top:34px;}
.tl-item::before{
  content:"✓"; position:absolute; top:1px; left:0; width:20px; height:20px; border-radius:50%;
  background:var(--evergreen); color:var(--cream); border:none;
  display:flex; align-items:center; justify-content:center;
  font-size:0.66rem; font-weight:700; line-height:1;
}
.tl-item.future::before{content:none;}
.tl-item .when{font-family:'Space Mono',monospace; font-size:0.74rem; color:var(--evergreen); text-transform:uppercase; letter-spacing:0.05em;}
.tl-item h3{font-size:1.02rem; margin-top:8px;}
.tl-item p{font-size:0.86rem; margin-top:6px; color:rgba(43,32,24,0.75);}

/* INVOLVED */
.involve-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
.signup{background:#fff; border:1px solid var(--line); padding:34px; border-radius:2px;}
.signup h3{font-size:1.2rem;}
.signup p{font-size:0.92rem; color:rgba(43,32,24,0.75); margin-top:10px;}
.signup form{margin-top:22px; display:flex; gap:10px; flex-wrap:wrap;}
.signup input[type=email]{flex:1; min-width:180px; padding:12px 14px; border:1px solid var(--line); border-radius:2px; font-family:'Work Sans',sans-serif; font-size:0.92rem; background:var(--cream);}
.signup button{background:var(--evergreen); color:var(--cream); border:none; padding:12px 22px; border-radius:2px; font-size:0.9rem; font-weight:500; cursor:pointer;}
.involve-list{list-style:none; padding:0; margin:0;}
.involve-list li{padding:18px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:baseline; gap:20px;}
.involve-list li:last-child{border-bottom:1px solid var(--line);}
.involve-list .role{font-family:'Fraunces', serif; font-size:1.05rem;}
.involve-list .desc{font-size:0.86rem; color:rgba(43,32,24,0.65); text-align:right; max-width:30ch;}
.involve-list .soon{font-family:'Space Mono',monospace; font-size:0.66rem; text-transform:uppercase; color:var(--brick); letter-spacing:0.05em; margin-left:8px;}

/* DONATE page */
.donate-card{background:#fff; border:1px solid var(--line); padding:40px; border-radius:2px; max-width:640px;}
.donate-card h3{font-size:1.3rem;}
.donate-card p{font-size:0.98rem; color:rgba(43,32,24,0.8); margin-top:14px;}
.donate-note{margin-top:22px; padding:16px 18px; background:var(--parchment); border-left:3px solid var(--gold); font-size:0.88rem; color:rgba(43,32,24,0.85);}

/* BOARD page */
.board-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.board-card{background:#fff; border:1px solid var(--line); padding:26px 24px; border-radius:2px;}
.board-card h3{font-size:1.08rem;}
.board-card .role{font-family:'Space Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--brick); margin-top:6px; display:block;}
.board-card p{font-size:0.86rem; color:rgba(43,32,24,0.65); margin-top:12px;}

/* HOME page section links */
.link-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.link-card{display:block; text-decoration:none; background:#fff; border:1px solid var(--line); padding:28px 24px; border-radius:2px; transition:border-color 0.2s ease, transform 0.15s ease;}
.link-card:hover{border-color:var(--brick); transform:translateY(-2px);}
.link-card .eyebrow{display:block; margin-bottom:10px;}
.link-card h3{font-size:1.1rem;}
.link-card p{font-size:0.88rem; color:rgba(43,32,24,0.7); margin-top:10px;}
.link-card .arrow{display:inline-block; margin-top:14px; font-family:'Space Mono',monospace; font-size:0.78rem; color:var(--brick);}

/* FOOTER */
footer{background:var(--evergreen-deep); color:rgba(243,236,221,0.85); padding:56px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(243,236,221,0.14); align-items:start;}
.footer-brand{display:flex; gap:14px; align-items:flex-start;}
.footer-brand img{width:52px; height:52px; border-radius:50%; object-fit:cover; flex-shrink:0;}
footer h3{color:var(--cream); font-size:0.98rem; margin-bottom:14px;}
footer a{text-decoration:none; color:rgba(243,236,221,0.75); font-size:0.88rem; display:block; margin-bottom:8px;}
footer a:hover{color:var(--cream);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:0.78rem; color:rgba(243,236,221,0.5); flex-wrap:wrap; gap:10px;}

@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;} .house-signature{display:none;}
  .split{grid-template-columns:1fr;}
  .pillars{grid-template-columns:1fr;}
  .pillar{border-right:none; border-bottom:1px solid rgba(243,236,221,0.2);}
  .timeline-row{grid-template-columns:1fr 1fr; row-gap:30px;}
  .timeline::before{display:none;}
  .involve-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:26px;}
  .link-grid{grid-template-columns:1fr;}
  .board-grid{grid-template-columns:1fr 1fr;}

  .nav-toggle{display:block;}
  .navlinks{
    display:flex; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0; background:var(--cream);
    border-bottom:1px solid var(--line); padding:8px 0;
    max-height:0; overflow:hidden; transition:max-height 0.25s ease;
  }
  .navlinks.open{max-height:420px;}
  .navlinks a{padding:14px 32px; width:100%; border-bottom:1px solid var(--line);}
  .nav-right{gap:0;}
  .nav-cta{display:none;}
}
@media (max-width:520px){
  .board-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{transition:none !important;} }

.reveal{opacity:0; transform:translateY(14px); transition:opacity 0.6s ease, transform 0.6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

.placeholder-flag{background:var(--gold); color:var(--evergreen-deep); font-size:0.82rem; font-weight:500; text-align:center; padding:9px 16px;}
