:root{
  --navy-deep:#0d1b2e;
  --navy:#132a44;
  --navy-light:#1f3a5f;
  --gold:#c9a44c;
  --gold-bright:#e0c374;
  --parchment:#f3ecd9;
  --parchment-dim:#e8dfc4;
  --ink:#20241f;
  --hairline:rgba(201,164,76,0.35);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--parchment);
  color:var(--ink);
  font-family:'Source Serif 4', serif;
  line-height:1.6;
}
h1,h2,h3,.eyebrow,nav a,.btn{font-family:'Cinzel', serif;}
h1,h2,h3{letter-spacing:0.03em; font-weight:600; margin:0; color:var(--navy-deep);}
a{color:inherit;}
img{max-width:100%;}

.ashlar{
  background-color:var(--navy-deep);
  background-image:
    linear-gradient(var(--navy) 1px, transparent 1px),
    linear-gradient(90deg, var(--navy) 1px, transparent 1px);
  background-size:64px 40px;
}

/* ---------- Nav ---------- */
header{position:sticky; top:0; z-index:50; background:var(--navy-deep); border-bottom:1px solid var(--hairline);}
.nav-wrap{max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:14px 24px; gap:20px;}
.brandmark{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.brandmark svg{width:32px; height:32px; flex-shrink:0;}
.brandmark span{color:var(--parchment); font-size:0.82rem; letter-spacing:0.1em; white-space:nowrap;}
nav ul{list-style:none; display:flex; gap:20px; margin:0; padding:0; flex-wrap:wrap; justify-content:flex-end;}
nav a{
  color:var(--parchment-dim); text-decoration:none;
  font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
  border-bottom:1px solid transparent; padding-bottom:4px;
  transition:color .2s, border-color .2s; white-space:nowrap;
}
nav a:hover{color:var(--gold-bright); border-color:var(--gold);}
nav a.active{color:var(--gold-bright); border-color:var(--gold);}

/* ---------- Page header (non-home pages) ---------- */
.page-hero{
  color:var(--parchment); text-align:center; padding:64px 24px 56px;
}
.page-hero .eyebrow{display:block; color:var(--gold-bright); font-size:0.72rem; letter-spacing:0.28em; text-transform:uppercase; margin-bottom:14px;}
.page-hero h1{font-size:clamp(1.9rem, 4vw, 2.8rem); color:var(--parchment);}
.page-hero .sub{font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.15rem; color:var(--parchment-dim); margin-top:12px;}

/* ---------- Home Hero ---------- */
.hero{position:relative; color:var(--parchment); text-align:center; padding:96px 24px 88px; overflow:hidden;}
.hero .emblem{width:120px; height:120px; margin:0 auto 30px; display:block;}
.hero .eyebrow{display:block; color:var(--gold-bright); font-size:0.76rem; letter-spacing:0.32em; text-transform:uppercase; margin-bottom:18px;}
.hero h1{font-size:clamp(2.2rem, 5vw, 3.6rem); color:var(--parchment); text-shadow:0 1px 0 rgba(0,0,0,.3);}
.hero .sub{font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.35rem; color:var(--parchment-dim); margin-top:16px;}
.hero .rule{width:120px; height:1px; background:var(--gold); margin:34px auto; opacity:.7;}
.hero .founded{font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-bright);}

/* ---------- Tab cards on home ---------- */
.tab-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:1px; background:var(--hairline); border:1px solid var(--hairline);}
.tab-card{background:var(--parchment); padding:34px 26px; text-decoration:none; color:var(--ink); transition:background .2s;}
.tab-card:hover{background:var(--parchment-dim);}
.tab-card .eyebrow{color:var(--gold); font-size:0.66rem; letter-spacing:0.18em; text-transform:uppercase; display:block; margin-bottom:10px;}
.tab-card h3{font-size:1.15rem; margin-bottom:8px;}
.tab-card p{margin:0; font-size:0.9rem; color:#4a4536;}

/* ---------- Sections ---------- */
section{max-width:1120px; margin:0 auto; padding:72px 24px;}
.section-head{text-align:center; max-width:640px; margin:0 auto 48px;}
.section-head .eyebrow{display:block; color:var(--gold); font-size:0.72rem; letter-spacing:0.3em; text-transform:uppercase; margin-bottom:12px;}
.section-head h2{font-size:clamp(1.6rem, 3vw, 2.1rem);}
.section-head p{color:#4a4536; margin-top:14px; font-size:1.02rem;}
.divider{height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent); max-width:1120px; margin:0 auto;}

/* About / History */
.about-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;}
.about-grid p{margin:0 0 18px; color:#332f24;}
.pull-fact{background:var(--navy-deep); color:var(--parchment); padding:36px 30px; border-top:2px solid var(--gold);}
.pull-fact .num{font-family:'Cinzel', serif; font-size:2.6rem; color:var(--gold-bright); display:block; line-height:1;}
.pull-fact .label{font-size:0.76rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--parchment-dim); margin-top:8px; display:block;}
.pull-fact p{color:var(--parchment-dim); font-size:0.94rem; margin-top:20px;}

.timeline{border-left:2px solid var(--gold); margin-left:8px; padding-left:28px; display:flex; flex-direction:column; gap:28px;}
.timeline .item .year{font-family:'Cinzel', serif; color:var(--gold); font-size:0.85rem; letter-spacing:0.1em;}
.timeline .item h4{margin:6px 0; font-size:1.05rem; color:var(--navy-deep); font-family:'Cormorant Garamond', serif;}
.timeline .item p{margin:0; color:#4a4536; font-size:0.92rem;}

/* Officers */
.roster{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:1px; background:var(--hairline); border:1px solid var(--hairline);}
.roster .seat{background:var(--parchment); padding:28px 22px; text-align:center;}
.roster .seat .title{font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:10px;}
.roster .seat .name{font-family:'Cormorant Garamond', serif; font-size:1.3rem; color:var(--navy-deep);}
.roster .seat.filled{background:var(--navy-deep);}
.roster .seat.filled .name{color:var(--parchment);}
.roster .seat.filled .title{color:var(--gold-bright);}

/* Meeting */
.meet-card{background:var(--navy-deep); color:var(--parchment); padding:48px; display:grid; grid-template-columns:auto 1fr; gap:40px; align-items:center; border:1px solid var(--hairline);}
.meet-card .compass-small{width:70px; height:70px;}
.meet-card h3{color:var(--parchment); font-size:1.3rem; margin-bottom:8px;}
.meet-card .when{color:var(--gold-bright); font-family:'Cormorant Garamond', serif; font-size:1.3rem; font-style:italic;}
.meet-card p{color:var(--parchment-dim); margin:10px 0 0; font-size:0.95rem;}

.info-cards{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:24px; margin-top:40px;}
.info-cards .card{border:1px solid var(--hairline); padding:26px; background:var(--parchment);}
.info-cards .card h4{font-family:'Cormorant Garamond', serif; font-size:1.1rem; color:var(--navy-deep); margin-bottom:8px;}
.info-cards .card p{margin:0; font-size:0.9rem; color:#4a4536;}

/* Events / Calendar / Charities */
.events{display:flex; flex-direction:column; gap:1px; background:var(--hairline); border:1px solid var(--hairline);}
.event-row{background:var(--parchment); padding:26px 28px; display:grid; grid-template-columns:120px 1fr; gap:24px; align-items:start;}
.event-row .when{font-family:'Cinzel', serif; font-size:0.78rem; letter-spacing:0.08em; color:var(--gold); text-transform:uppercase; padding-top:2px;}
.event-row h3{font-size:1.1rem; margin-bottom:6px;}
.event-row p{margin:0; color:#4a4536; font-size:0.95rem;}
.event-row .org-link{
  display:inline-block; margin-top:12px; color:var(--gold); text-decoration:none;
  font-size:0.78rem; letter-spacing:0.06em; border-bottom:1px solid var(--gold);
  padding-bottom:1px; font-family:'Cinzel', serif; text-transform:uppercase;
}
.event-row .org-link:hover{color:var(--navy-light); border-color:var(--navy-light);}
.sponsor-block{
  margin-top:24px; padding-top:20px; border-top:1px solid var(--hairline);
}
.sponsor-block .eyebrow{
  display:block; color:var(--gold); font-size:0.68rem; letter-spacing:0.2em;
  text-transform:uppercase; margin-bottom:12px; font-family:'Cinzel', serif;
}
.sponsor-block img{
  display:block; max-width:320px; width:100%; height:auto;
  border:1px solid var(--hairline); margin-bottom:12px;
}
.sponsor-block p{margin:0; font-family:'Cormorant Garamond', serif; font-style:italic; font-size:0.98rem; color:#4a4536;}
.event-row.with-poster{grid-template-columns:160px 1fr;}
.event-row .poster{
  border:1px solid var(--hairline); display:block; width:100%; height:auto;
}
.poster-extra{
  display:block; width:100%; max-width:160px; height:auto;
  border:1px solid var(--hairline); margin-top:10px;
}
.events.past .event-row{opacity:0.72; filter:grayscale(35%);}
.events.past .when{color:#8a7a54;}
@media (max-width:600px){
  .event-row.with-poster{grid-template-columns:1fr;}
  .event-row .poster{max-width:220px; margin:0 auto;}
}

/* Membership steps */
.steps{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:24px;}
.steps .step{border:1px solid var(--hairline); padding:28px; background:var(--parchment); position:relative;}
.steps .step .n{font-family:'Cinzel', serif; color:var(--gold); font-size:1.6rem; display:block; margin-bottom:12px;}
.steps .step h4{font-family:'Cormorant Garamond', serif; font-size:1.1rem; color:var(--navy-deep); margin-bottom:8px;}
.steps .step p{margin:0; font-size:0.9rem; color:#4a4536;}

/* Visit / contact */
.visit{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--hairline);}
.visit .info{padding:48px; background:var(--parchment);}
.visit .map{background:var(--navy-deep); padding:48px; display:flex; flex-direction:column; justify-content:center; color:var(--parchment);}
.visit dl{margin:24px 0 0;}
.visit dt{font-size:0.7rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin-top:18px;}
.visit dd{margin:4px 0 0; font-size:1.02rem;}
.visit .map h3{color:var(--parchment); font-size:1.05rem; font-weight:500; margin-bottom:10px;}
.visit .map p{color:var(--parchment-dim); font-size:0.92rem;}

.btn{display:inline-block; margin-top:28px; padding:13px 28px; background:var(--gold); color:var(--navy-deep); text-decoration:none; font-size:0.74rem; letter-spacing:0.18em; text-transform:uppercase; border:1px solid var(--gold); transition:background .2s, color .2s;}
.btn:hover{background:transparent; color:var(--gold-bright);}

footer{background:var(--navy-deep); color:var(--parchment-dim); text-align:center; padding:40px 24px; font-size:0.82rem; border-top:1px solid var(--hairline);}
footer .mark{width:26px; height:26px; margin:0 auto 14px; display:block; opacity:.85;}
footer .fine{font-size:0.72rem; color:#7d8ba0; margin-top:10px; letter-spacing:0.04em;}

.note{background:#fff8e1; border:1px dashed var(--gold); color:#5a4a1a; font-size:0.85rem; padding:14px 18px; margin-top:16px;}

@media (max-width:900px){
  nav ul{gap:12px;}
  nav a{font-size:0.62rem;}
}
@media (max-width:820px){
  .about-grid, .visit{grid-template-columns:1fr;}
  .meet-card{grid-template-columns:1fr; text-align:center; justify-items:center;}
  .event-row{grid-template-columns:1fr; gap:6px;}
  .nav-wrap{flex-direction:column; align-items:flex-start;}
  nav ul{justify-content:flex-start;}
}
