:root{
  --midnight:#12233D; --deep:#0B1729; --stone:#E9E8E3; --paper:#F6F5F1;
  --brass:#C29A45; --brass-ink:#6F5216; --brick:#8E3B2C; --ink:#1A1F29; --muted:#4A5262;
  --display:"Old Standard TT","Century Schoolbook",Georgia,serif;
  --body:"Source Sans 3","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:1.0625rem/1.65 var(--body);color:var(--ink);background:var(--paper)}
img,svg{max-width:100%}
a{color:var(--midnight)}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--brass);color:var(--deep);padding:.6rem 1rem;z-index:10}
.skip:focus{left:0}
h1,h2,h3{font-family:var(--display);line-height:1.15;margin:0 0 .6em;font-weight:700}
h2{font-size:clamp(1.7rem,3.6vw,2.4rem)}
h3{font-size:1.3rem}
p{margin:0 0 1.1em;max-width:62ch}
.wrap{max-width:1080px;margin:0 auto;padding:0 1.5rem}

/* header */
.site-header{background:var(--midnight);color:var(--stone)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;padding-bottom:1rem}
.brand{display:flex;align-items:center;gap:.75rem;color:var(--stone);text-decoration:none;font-family:var(--display);font-size:1.2rem;font-weight:700}
.brand svg{width:34px;height:34px;flex:none}
.nav ul{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0}
.nav a{color:var(--stone);text-decoration:none;padding:.35rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--brass)}
.menu-btn{display:none;background:none;border:1px solid var(--brass);color:var(--stone);font:inherit;padding:.4rem .8rem;border-radius:3px}

/* hero */
.hero{background:var(--midnight);color:var(--stone);position:relative;overflow:hidden}
.hero .wrap{position:relative;padding-top:5rem;padding-bottom:4.5rem}
.hero h1{font-size:clamp(2.8rem,8vw,6rem);letter-spacing:-.01em;margin-bottom:.35em;max-width:11ch}
.hero .lede{font-size:1.25rem;max-width:34ch;color:#D6D8DC}
.hero .rule{width:96px;height:3px;background:var(--brass);border:0;margin:0 0 1.6rem}
.hero .emblem{position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:min(52vw,520px);opacity:.16;pointer-events:none}
.actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.btn{display:inline-block;padding:.8rem 1.4rem;border-radius:3px;font-weight:600;text-decoration:none;border:2px solid var(--brass);cursor:pointer;font-family:var(--body);font-size:1rem}
.btn.primary{background:var(--brass);color:var(--deep)}
.btn.primary:hover{background:#D4AC58}
.btn.ghost{color:var(--stone);background:transparent}
.btn.ghost:hover{background:rgba(194,154,69,.15)}
.page-hero .wrap{padding-top:3.5rem;padding-bottom:3rem}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);max-width:none}

/* meeting strip */
.meeting{background:var(--deep);color:var(--stone);border-top:1px solid rgba(194,154,69,.5)}
.meeting .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;padding-top:1.6rem;padding-bottom:1.6rem}
.meeting dt{font-size:.9rem;color:var(--brass)}
.meeting dd{margin:.15rem 0 0;font-family:var(--display);font-size:1.25rem}

/* sections */
section.block{padding:4.5rem 0}
section.alt{background:var(--stone)}
.split{display:grid;grid-template-columns:1fr 2fr;gap:2.5rem;border-top:2px solid var(--midnight);padding-top:1.5rem}
.split + .split{margin-top:3rem}
.facts{list-style:none;margin:0;padding:0}
.facts li{padding:1rem 0;border-bottom:1px solid #C9C7BE}
.facts li:first-child{padding-top:0}
.facts strong{font-family:var(--display);font-size:1.15rem;display:block}
.cta{background:var(--midnight);color:var(--stone);padding:4.5rem 0}
.cta h2{font-size:clamp(2rem,5vw,3.2rem)}
.cta p{color:#D6D8DC}

/* steps */
.steps{list-style:none;counter-reset:s;margin:0;padding:0}
.steps li{counter-increment:s;display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid #C9C7BE}
.steps li::before{content:counter(s);font-family:var(--display);font-size:2rem;font-weight:700;color:var(--brass-ink);line-height:1}
.steps h3{margin-bottom:.2em}
.steps p{margin:0}

/* faq */
details{border-bottom:1px solid #C9C7BE;padding:1rem 0}
details summary{cursor:pointer;font-family:var(--display);font-size:1.2rem;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";color:var(--brass-ink);font-size:1.5rem;line-height:1}
details[open] summary::after{content:"\2212"}
details p{margin:.8rem 0 0}

/* form */
form{display:grid;gap:1.1rem;max-width:560px}
label{display:grid;gap:.35rem;font-weight:600}
input,textarea,select{font:inherit;padding:.7rem .8rem;border:1px solid #8B909B;border-radius:3px;background:#fff;color:var(--ink)}
textarea{min-height:130px}
.hint{font-weight:400;color:var(--muted);font-size:.95rem}

/* placeholders */
.todo{background:#FFF1B8;outline:1px dashed #B58900;padding:0 .25em;color:#4a3a00}

/* footer */
.site-footer{background:var(--deep);color:#C4C8D0;padding:3rem 0 2rem;font-size:.97rem}
.site-footer a{color:var(--stone)}
.site-footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.site-footer h3{color:var(--stone);font-size:1.05rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:.4rem}
.fine{margin-top:2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.15);font-size:.9rem}

@media (max-width:760px){
  .menu-btn{display:block}
  .nav{width:100%}
  .site-header .wrap{flex-wrap:wrap}
  .nav ul{display:none;flex-direction:column;gap:.2rem;padding:.6rem 0}
  .nav.open ul{display:flex}
  .split{grid-template-columns:1fr;gap:1rem}
  .site-footer .cols{grid-template-columns:1fr}
  .hero .wrap{padding-top:3.5rem;padding-bottom:3.5rem}
}
@media (prefers-reduced-motion:no-preference){
  .hero h1,.hero .lede,.hero .rule,.hero .actions{animation:rise .7s ease both}
  .hero .rule{animation-delay:.05s}.hero .lede{animation-delay:.15s}.hero .actions{animation-delay:.25s}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.cal-wrap{margin:1.5rem 0}
.cal-wrap iframe{width:100%;height:680px;border:1px solid #B9B7AE;background:#fff;border-radius:3px}
@media (max-width:760px){.cal-wrap iframe{height:560px}}

/* community giving */
.giving{background:var(--midnight);color:var(--stone);padding:4.5rem 0}
.giving .split{border-top-color:var(--brass)}
.giving h2{color:var(--stone)}
.giving p{color:#D6D8DC}
.give{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2.5rem}
.gcard{background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid rgba(194,154,69,.35);border-top:4px solid var(--brass);border-radius:6px;padding:1.6rem 1.6rem 1.4rem;transition:transform .25s ease,border-color .25s ease}
.gcard:hover{transform:translateY(-4px);border-color:var(--brass)}
.gicon{width:64px;height:64px;border-radius:50%;background:rgba(194,154,69,.14);border:1px solid rgba(194,154,69,.55);display:grid;place-items:center;color:var(--brass);margin-bottom:1rem}
.gicon svg{width:38px;height:38px}
.gcard .big{font-family:var(--display);font-size:clamp(2rem,4.4vw,3rem);font-weight:700;color:var(--brass);line-height:1.05;margin:0 0 .5rem}
.gcard h3{color:var(--stone);margin:0 0 .4rem}
.gcard p:last-child{margin:0;max-width:none}
.awards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2.5rem}
.award{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start;background:rgba(255,255,255,.06);border-left:4px solid var(--brass);border-radius:4px;padding:1.4rem}
.award .gicon{margin:0}
.award h3{color:var(--stone);margin:0 0 .4rem}
.award p{margin:0;max-width:none}
.give-note{margin-top:2.5rem}

/* blood drive feature */
.feature{display:grid;grid-template-columns:1.35fr 1fr;gap:1.5rem;margin-top:1.5rem;align-items:stretch}
.feature figure{margin:0;overflow:hidden;border-radius:6px;border:1px solid rgba(194,154,69,.35)}
.feature img{display:block;width:100%;height:100%;object-fit:cover}
.feature .gcard{display:flex;flex-direction:column;justify-content:center}
@media (max-width:760px){.feature{grid-template-columns:1fr}}

/* scholarship gallery */
.gallery{display:grid;grid-template-columns:1fr 1.5fr;gap:1.25rem;margin-top:2.5rem}
.gallery figure{position:relative;margin:0;overflow:hidden;border-radius:6px;border:1px solid rgba(194,154,69,.35);background:#0B1729}
.gallery figure.tall{grid-row:1 / span 2}
.gallery img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}
.gallery figure.tall img{aspect-ratio:auto;object-position:50% 30%}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.2rem 1rem .9rem;font-size:.95rem;line-height:1.4;color:#F1F0EB;background:linear-gradient(to top,rgba(11,23,41,.92),rgba(11,23,41,0))}
.gallery.two{grid-template-columns:1fr 1fr}
.gallery.two img{aspect-ratio:4/3}
.gallery-title{color:var(--stone);font-size:1.4rem;margin:3.5rem 0 0}
.gallery.lamar{grid-template-columns:repeat(3,1fr)}
.gallery.lamar figure.wide{grid-column:span 2}
.gallery.lamar figure:not(.wide) img{aspect-ratio:auto;height:100%;min-height:100%}
.gallery.lamar figure:not(.wide) img[src*="recipient.jpg"]{object-position:50% 25%}
.gallery figure.medal{background:#fff}
.gallery figure.medal img{object-fit:contain;padding:1.2rem 1.2rem 3rem}
.gallery figure.medal figcaption{color:#F1F0EB}
@media (max-width:760px){.gallery.lamar{grid-template-columns:1fr}.gallery.lamar figure.wide{grid-column:auto}.gallery.lamar figure.wide img{aspect-ratio:4/3}.gallery.lamar figure:not(.wide) img{aspect-ratio:4/3;height:auto}.gallery.lamar figure:not(.wide) img[src*="recipient.jpg"]{aspect-ratio:3/4}.gallery.two{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gallery figure.tall{grid-row:auto}.gallery figure.tall img{aspect-ratio:3/4}}

/* home community tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:2.5rem}
.tile{display:block;text-decoration:none;color:var(--ink);text-align:center;padding:1.5rem 1rem 1.3rem;background:#fff;border:1px solid #D9D7CE;border-bottom:4px solid var(--brass);border-radius:6px}
.tile:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(18,35,61,.15)}
.tile .gicon{margin:0 auto .9rem;background:var(--midnight);border-color:var(--midnight)}
.tile strong{display:block;font-family:var(--display);font-size:1.45rem;line-height:1.1;color:var(--midnight);margin-bottom:.3rem}
.tile span{color:var(--muted);font-size:.95rem}
@media (max-width:900px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.give,.awards{grid-template-columns:1fr}.award{grid-template-columns:1fr}}

/* reveal on scroll */
.js-reveal .gcard,.js-reveal .award,.js-reveal .tile,.js-reveal .gallery figure{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js-reveal .in,.js-reveal .gallery figure.in{opacity:1;transform:none}
.js-reveal .gcard.in:hover,.js-reveal .tile.in:hover{transform:translateY(-4px)}

/* home hero logo */
.hero-grid{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:3rem}
.hero-logo{width:100%;max-width:380px;height:auto;justify-self:center}
@media (max-width:760px){
  .hero-grid{grid-template-columns:1fr;gap:1.5rem}
  .hero-logo{order:-1;max-width:170px;justify-self:start}
}
.hero-grid h1{font-size:clamp(2.6rem,6vw,4.75rem);max-width:none}

/* home hero photo */
.hero-photo{background:linear-gradient(90deg,rgba(11,23,41,.94) 0%,rgba(18,35,61,.80) 42%,rgba(18,35,61,.55) 100%),linear-gradient(to bottom,rgba(18,35,61,0) 70%,rgba(11,23,41,.9) 100%),url("courthouse.jpg") 50% 28%/cover no-repeat,var(--midnight)}
@media (max-width:760px){.hero-photo{background:linear-gradient(to bottom,rgba(11,23,41,.75),rgba(18,35,61,.85)),url("courthouse.jpg") 50% 20%/cover no-repeat,var(--midnight)}}

/* 2B1ASK1 plate */
.plate{justify-self:center;display:flex;align-items:center;justify-content:center;gap:.6rem;background:#fff;border:4px solid #1B3A8A;border-radius:14px;box-shadow:0 0 0 4px #fff,0 12px 30px rgba(0,0,0,.35);padding:.9rem 1.4rem;max-width:100%}
.plate span{font-family:"Oswald","Arial Narrow","Impact",sans-serif;font-weight:600;font-size:clamp(2.3rem,5vw,3.7rem);line-height:1;letter-spacing:.03em;color:#1B3A8A}
.plate svg{width:clamp(3.2rem,7vw,5rem);height:auto;flex:none}
.page-hero .hero-grid h1{font-size:clamp(2.2rem,5vw,3.6rem)}
@media (max-width:760px){.plate{justify-self:start}}

/* blood drive notice, card, expiry */
[hidden]{display:none !important}
.notice{background:var(--brass);color:var(--deep);font-size:.98rem}
.notice .wrap{padding-top:.6rem;padding-bottom:.6rem}
.notice a{color:var(--deep);font-weight:600}
.drive-card{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:center;background:#fff;border:1px solid #D9D7CE;border-left:6px solid var(--brick);border-radius:6px;padding:1.8rem;box-shadow:0 8px 24px rgba(18,35,61,.08)}
.date-tile{background:var(--midnight);color:var(--stone);text-align:center;border-radius:6px;padding:1rem 1.6rem;min-width:120px;font-family:var(--display)}
.date-tile small{display:block;font:600 .85rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.date-tile b{display:block;font-size:3.6rem;line-height:1.05}
.drive-card h2{font-size:1.7rem;margin:0 0 .6rem}
.drive-card p{margin-bottom:.8rem}
.drive-next .btn{margin-top:.2rem}
@media (max-width:640px){.drive-card{grid-template-columns:1fr;gap:1.2rem}.date-tile{justify-self:start}}

/* forms */
.honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{margin:0;min-height:1.5em;font-weight:600}
.form-status.ok{color:#1F5F3A}
.form-status.err{color:#8E3B2C}

/* header/footer mark */
.brand-mark{width:auto;height:38px;flex:none}
.foot-brand{display:flex;align-items:center;gap:.8rem;margin-bottom:.7rem}
.foot-brand h3{margin:0}
.foot-brand .brand-mark{height:42px}
.plate-img{justify-self:center;width:min(100%,520px);height:auto}
@media (max-width:760px){.plate-img{justify-self:start}}

/* cleaner meeting strip */
.meeting .wrap{display:block;padding-top:.3rem;padding-bottom:.3rem}
.meeting dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0}
.meeting dl>div{padding:1.15rem 1.5rem;border-left:1px solid rgba(194,154,69,.3)}
.meeting dl>div:first-child{border-left:0;padding-left:0}
.meeting dt{font:600 .85rem/1.2 var(--body);color:var(--brass);margin:0 0 .35rem}
.meeting dd{margin:0;font:600 1.1rem/1.3 var(--body);color:var(--stone)}
@media (max-width:760px){
  .meeting dl{grid-template-columns:1fr 1fr}
  .meeting dl>div{padding:1rem .8rem;border-left:0;border-top:1px solid rgba(194,154,69,.25)}
  .meeting dl>div:nth-child(-n+2){border-top:0}
  .meeting dl>div:nth-child(odd){padding-left:0}
}

/* home: who we are + membership */
.section-title{font-size:clamp(2rem,4.6vw,3.2rem);margin-bottom:.4em}
.lead{font-size:1.3rem;line-height:1.5;max-width:38ch;margin:0 auto 1rem}
.who{text-align:center}
.who .sub{color:var(--muted);margin:0 auto;max-width:none}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin:3rem 0 2.5rem}
.picon{width:84px;height:84px;border-radius:50%;background:var(--midnight);color:var(--brass);display:grid;place-items:center;margin:0 auto 1.2rem;box-shadow:0 0 0 5px var(--paper),0 0 0 7px var(--brass)}
.picon svg{width:42px;height:42px}
.pillar h3{font-size:1.55rem;margin-bottom:.3rem}
.pillar p{margin:0 auto;max-width:24ch;color:var(--muted)}
.member{background:var(--midnight);color:var(--stone);padding:4.5rem 0;text-align:center}
.member .section-title{color:var(--stone)}
.member .lead{color:#D6D8DC}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin:2.5rem 0 2.5rem;text-align:left}
.member .gcard p{color:#D6D8DC;margin:0;max-width:none}
.member .gcard h3{font-size:1.35rem}
@media (max-width:900px){.mgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.pillars{grid-template-columns:1fr}.mgrid{grid-template-columns:1fr}}
.js-reveal .pillar{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js-reveal .pillar.in{opacity:1;transform:none}

/* home CTA graphic */
.cta .plate-img{width:min(100%,540px)}
@media (max-width:760px){.cta .plate-img{order:-1;width:min(100%,340px)}}


/* ---------- inner pages: shared graphic components ---------- */
.narrow{max-width:900px}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
.btn.ghost-dark{color:var(--midnight);border-color:var(--midnight);background:transparent}
.btn.ghost-dark:hover{background:rgba(18,35,61,.08)}
.page-hero.has-mark::after{content:"";position:absolute;right:6%;top:50%;transform:translateY(-50%);width:300px;height:260px;background:url("logo-mark.png") center/contain no-repeat;opacity:.13;pointer-events:none}
@media (max-width:760px){.page-hero.has-mark::after{width:170px;height:150px;right:-20px;opacity:.1}}

/* timeline */
.timeline{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin:3rem 0 0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:16.6%;right:16.6%;top:42px;height:2px;background:var(--brass)}
.timeline li{position:relative;padding:0 .5rem}
.tl-year{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:var(--midnight);color:var(--brass);font:700 1.15rem var(--display);margin:0 auto 1.1rem;box-shadow:0 0 0 5px var(--paper),0 0 0 7px var(--brass);position:relative}
.timeline h3{font-size:1.5rem;margin-bottom:.3rem}
.timeline p{margin:0 auto;max-width:28ch;color:var(--muted)}
@media (max-width:760px){.timeline{grid-template-columns:1fr}.timeline::before{display:none}}

/* about: freemasonry split */
.about-split{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center}
.emblem-panel{background:radial-gradient(circle at 50% 40%,#1d3a63,#0B1729);border:1px solid rgba(194,154,69,.5);border-radius:10px;padding:2.5rem;display:grid;place-items:center;box-shadow:0 14px 34px rgba(11,23,41,.25)}
.emblem-panel img{width:78%;height:auto}
@media (max-width:760px){.about-split{grid-template-columns:1fr}}

/* faq cards */
.faq{text-align:left;margin-top:2.2rem}
.faq details{background:#fff;border:1px solid #D9D7CE;border-left:5px solid var(--brass);border-radius:6px;padding:1.1rem 1.4rem;margin-bottom:.9rem;box-shadow:0 4px 14px rgba(18,35,61,.06);transition:box-shadow .25s ease}
.faq details[open]{box-shadow:0 10px 26px rgba(18,35,61,.13)}
.faq details summary::after{width:34px;height:34px;border-radius:50%;background:var(--midnight);color:var(--brass);display:grid;place-items:center;flex:none;font-size:1.3rem;line-height:1}
.faq details summary{align-items:center}

/* requirements */
.reqs{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:2.5rem;text-align:left}
.req{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:start;background:#fff;border:1px solid #D9D7CE;border-left:5px solid var(--brass);border-radius:6px;padding:1.4rem;box-shadow:0 4px 14px rgba(18,35,61,.06)}
.req:last-child:nth-child(odd){grid-column:1/-1}
.req h3{font-size:1.3rem;margin:0 0 .3rem}
.req p{margin:0;max-width:none}
.ricon{width:52px;height:52px;border-radius:50%;background:var(--midnight);color:var(--brass);display:grid;place-items:center;flex:none}
.ricon svg{width:28px;height:28px}
.ricon.dark{width:72px;height:72px;margin:0 auto 1rem}
.ricon.dark svg{width:36px;height:36px}
@media (max-width:760px){.reqs{grid-template-columns:1fr}}

/* stepper */
.stepper{list-style:none;max-width:760px;margin:2.5rem auto 2rem;padding:0;text-align:left}
.stepper li{position:relative;display:grid;grid-template-columns:64px 1fr;gap:1.4rem;padding-bottom:2rem}
.stepper li:not(:last-child)::before{content:"";position:absolute;left:31px;top:64px;bottom:0;width:2px;background:rgba(194,154,69,.55)}
.snum{width:64px;height:64px;border-radius:50%;background:var(--brass);color:var(--deep);display:grid;place-items:center;font:700 1.6rem var(--display);box-shadow:0 0 0 5px var(--midnight),0 0 0 7px rgba(194,154,69,.6)}
.stepper h3{color:var(--stone);font-size:1.4rem;margin:.35rem 0 .3rem}
.stepper p{margin:0;color:#D6D8DC;max-width:none}

/* form card */
.form-card{background:#fff;border:1px solid #D9D7CE;border-top:5px solid var(--brass);border-radius:8px;padding:2.4rem;box-shadow:0 14px 34px rgba(18,35,61,.12)}
.form-card .section-title{font-size:2rem;text-align:center}
.form-card>p{text-align:center;margin-left:auto;margin-right:auto}
.form-card form{max-width:none}
@media (max-width:640px){.form-card{padding:1.5rem}}

/* events */
.cal-frame{background:#fff;border:1px solid #D9D7CE;border-top:5px solid var(--brass);border-radius:8px;padding:1rem;box-shadow:0 14px 34px rgba(18,35,61,.12);margin-top:2rem;text-align:left}
.cal-frame .cal-wrap{margin:0}
.gicon.xl{width:170px;height:170px;justify-self:center;margin:0}
.gicon.xl svg{width:84px;height:84px}
@media (max-width:760px){.gicon.xl{width:110px;height:110px;justify-self:start}.gicon.xl svg{width:56px;height:56px}}

/* contact cards */
.ccards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2.5rem}
.ccard{display:block;text-decoration:none;color:var(--ink);text-align:center;padding:1.8rem 1.2rem 1.5rem;background:#fff;border:1px solid #D9D7CE;border-bottom:4px solid var(--brass);border-radius:6px;box-shadow:0 4px 14px rgba(18,35,61,.06)}
a.ccard:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(18,35,61,.15)}
.ccard h3{font-size:1.4rem;margin-bottom:.3rem}
.ccard p{margin:0 auto;max-width:26ch;color:var(--muted)}
@media (max-width:760px){.ccards{grid-template-columns:1fr}}

/* reveal for new components */
.js-reveal .req,.js-reveal .ccard,.js-reveal .timeline li,.js-reveal .stepper li{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js-reveal .req.in,.js-reveal .ccard.in,.js-reveal .timeline li.in,.js-reveal .stepper li.in{opacity:1;transform:none}

@media (max-width:760px){
  .brand{font-size:1.02rem;gap:.55rem}
  .brand .brand-mark{height:32px}
  .site-header .wrap{flex-wrap:wrap;row-gap:0}
}

/* photo page headers */
.page-hero.photo{position:relative;background-repeat:no-repeat;background-size:cover;background-color:var(--midnight)}
.page-hero.photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,23,41,.94) 0%,rgba(18,35,61,.80) 55%,rgba(18,35,61,.62) 100%)}
.page-hero.photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(to bottom,rgba(11,23,41,0),rgba(11,23,41,.55));pointer-events:none}
.page-hero.photo .wrap{position:relative;z-index:1;padding-top:5rem;padding-bottom:4.5rem}
.photo-about{background-image:url("bg-downtown.jpg");background-position:50% 55%}
.photo-contact{background-image:url("bg-courthouse-flags.jpg");background-position:50% 30%}
.photo-join{background-image:url("bg-historic.jpg");background-position:50% 62%}
.photo-events{background-image:url("bg-mural.jpg");background-position:50% 50%}
.photo-events::before{background:linear-gradient(90deg,rgba(11,23,41,.95) 0%,rgba(18,35,61,.88) 55%,rgba(18,35,61,.78) 100%)}
.photo-join::before{background:linear-gradient(90deg,rgba(11,23,41,.94) 0%,rgba(18,35,61,.80) 50%,rgba(18,35,61,.72) 100%)}
@media (max-width:760px){
  .page-hero.photo::before{background:linear-gradient(rgba(11,23,41,.86),rgba(18,35,61,.90))}
  .page-hero.photo .wrap{padding-top:3.5rem;padding-bottom:3.5rem}
}
