:root{
  --ink:#10251F;
  --ink-soft:#3B564D;
  --paper:#F0F2ED;
  --paper-2:#E4E8E0;
  --mint:#69C4A1;
  --deep:#1B5B4A;
  --indigo:#4A5FA8;
  --line:rgba(16,37,31,.14);
  --measure:66ch;
  --display:"Fraunces",Georgia,serif;
  --body:"Karla",system-ui,sans-serif;
}
/* The palette is fixed by design — hold it steady in dark viewers. */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#10251F;--ink-soft:#3B564D;--paper:#F0F2ED;--paper-2:#E4E8E0;
    --mint:#69C4A1;--deep:#1B5B4A;--indigo:#4A5FA8;--line:rgba(16,37,31,.14);
  }
}
:root[data-theme="dark"]{
  --ink:#10251F;--ink-soft:#3B564D;--paper:#F0F2ED;--paper-2:#E4E8E0;
  --mint:#69C4A1;--deep:#1B5B4A;--indigo:#4A5FA8;--line:rgba(16,37,31,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;margin:0;
  font-variation-settings:"SOFT" 20,"WONK" 1}
img{max-width:100%}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--deep)}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* nav */
.nav{position:sticky;top:0;z-index:40;background:rgba(240,242,237,.92);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:62px}
.brand{font-family:var(--display);font-size:19px;font-weight:600;text-decoration:none;letter-spacing:-.01em;margin-right:auto;display:flex;align-items:center;gap:10px}
.brand img{height:30px;width:auto;display:block}
.brand span{color:var(--deep)}
.nav a.lnk{font-size:14px;text-decoration:none;color:var(--ink-soft);font-weight:500}
.nav a.lnk:hover{color:var(--ink)}
.btn{display:inline-block;font-family:var(--body);font-weight:600;font-size:14px;
  text-decoration:none;padding:10px 18px;border-radius:2px;border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);transition:transform .12s ease,background .12s ease}
.btn:hover{transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.big{font-size:16px;padding:14px 26px}
.navlinks{display:flex;gap:24px;align-items:center}
@media(max-width:860px){.navlinks{display:none}}

/* hero */
.hero{position:relative;color:var(--paper);padding:76px 0 0;overflow:hidden;background:linear-gradient(180deg,rgba(16,37,31,.88),rgba(16,37,31,.94)),url('assets/img-a238d644d9.jpg') center 30%/cover no-repeat}
.hero .grid{display:block}
/* upcoming events announcement (top of hero) */
.announce{background:rgba(240,242,237,.06);border:1px solid rgba(105,196,161,.35);border-radius:4px;padding:20px 22px 18px;margin:0 0 44px}
.announce .top{display:flex;align-items:baseline;gap:6px 16px;flex-wrap:wrap}
.announce .eyebrow{color:var(--mint);margin:0}
.announce h2{font-family:var(--body);font-size:16px;font-weight:500;color:#C3D2CB;line-height:1.4;margin:0}
.announce .evgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0 0}
.announce .ev{position:relative;background:rgba(16,37,31,.55);border-top:2px solid var(--mint);padding:14px 16px 14px;display:flex;flex-direction:column}
.announce .ev .when{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--mint)}
.announce .ev h3{font-size:17px;color:var(--paper);margin-top:6px;line-height:1.22}
.announce .ev .sum{font-size:14px;line-height:1.5;color:#C3D2CB;margin:6px 0 12px}
.announce .ev .row{margin-top:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.announce .ev .btn{font-size:13px;padding:7px 13px}
.announce details{font-size:14px;color:#C3D2CB;font-family:var(--body)}
.announce summary{display:inline-flex;align-items:baseline;white-space:nowrap;font-family:var(--body);cursor:pointer;color:var(--paper);font-weight:500;font-size:13px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(240,242,237,.4);list-style:none}
.announce summary::-webkit-details-marker{display:none}
.announce summary::after{content:"+";display:inline-block;margin-left:5px;color:var(--mint);font-weight:600}
.announce details[open] summary::after{content:"\2013"}
.announce details .more{position:absolute;left:0;right:0;top:calc(100% - 2px);z-index:5;background:#16332B;border:1px solid rgba(105,196,161,.45);border-top:0;padding:4px 16px 14px;box-shadow:0 14px 30px rgba(0,0,0,.35)}
.announce details p{margin:10px 0 0;line-height:1.55}
.announce .foot{font-size:14px;color:#C3D2CB;margin:12px 0 0}
.announce .foot strong{color:var(--paper);font-weight:600}
@media(max-width:1000px){.announce .evgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.announce details[open]{flex-basis:100%}.announce details .more{position:static;border:0;box-shadow:none;background:none;padding:0}.announce{padding:16px 14px}.announce .evgrid{grid-template-columns:1fr;gap:10px}.announce .ev .sum{margin-bottom:10px}}

.hero h1{font-size:clamp(40px,5.8vw,72px);letter-spacing:-.025em;color:var(--paper)}
.hero p.lede{max-width:56ch;color:#C3D2CB;font-size:19px;margin:26px 0 30px}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:64px}
.hero .btn{border-color:var(--mint);background:var(--mint);color:var(--ink)}
.hero .btn.ghost{background:transparent;color:var(--paper);border-color:rgba(240,242,237,.4)}
.hero .btn.ghost:hover{background:var(--paper);color:var(--ink)}
@media(max-width:860px){.hero .grid{grid-template-columns:1fr;gap:36px}}

/* applications-open flag */
.openflag{display:inline-flex;align-items:center;gap:10px;margin:0 0 26px;
  font-size:14px;font-weight:600;letter-spacing:.01em;color:var(--mint);
  border:1px solid rgba(105,196,161,.4);border-radius:2px;padding:8px 14px}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--mint);flex:none;
  box-shadow:0 0 0 0 rgba(105,196,161,.6);animation:pl 2.4s ease-out infinite}
@keyframes pl{70%{box-shadow:0 0 0 9px rgba(105,196,161,0)}100%{box-shadow:0 0 0 0 rgba(105,196,161,0)}}
@media(prefers-reduced-motion:reduce){.pulse{animation:none}}

/* volunteer */
.volunteer{background:var(--ink);color:var(--paper)}
.volunteer .eyebrow{color:var(--mint)}
.volunteer .sec-head h2{color:var(--paper)}
.volunteer .sec-head p{color:#C3D2CB}
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}
.vcard{border:1px solid rgba(240,242,237,.2);border-radius:3px;padding:22px}
.vcard h3{font-size:18px;color:var(--paper);margin-bottom:8px}
.vcard p{font-size:14.5px;color:#B9C9C2;margin:0;line-height:1.5}
@media(max-width:860px){.vgrid{grid-template-columns:1fr}}

/* who comes / vetting */
.who{background:var(--paper-2)}
.gate{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:3px;overflow:hidden;margin-bottom:40px}
.gate div{background:#fff;padding:24px 22px}
.gate .stage{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;
  color:var(--deep);margin:0 0 10px}
.gate h3{font-size:19px;margin-bottom:8px}
.gate p{margin:0;font-size:15px;color:var(--ink-soft);line-height:1.55}
@media(max-width:860px){.gate{grid-template-columns:1fr}}

.rate{background:var(--ink);color:var(--paper);border-radius:3px;padding:30px 32px;
  display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center}
.rate .fig{font-family:var(--display);font-size:clamp(52px,8vw,86px);line-height:.85;
  letter-spacing:-.03em;color:var(--mint)}
.rate .fig small{display:block;font-family:var(--body);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:#8FA69D;font-weight:600;margin-top:12px}
.rate p{margin:0;color:#C3D2CB;font-size:16px;max-width:52ch}
@media(max-width:720px){.rate{grid-template-columns:1fr;gap:18px}}

.tbd{margin-top:32px;border:1px dashed var(--line);border-radius:3px;padding:22px 24px;background:#fff}
.tbd h3{font-size:19px;margin-bottom:8px}
.tbd p{margin:0;color:var(--ink-soft);font-size:16px;max-width:60ch}

/* towns rotation infographic */
.towns{margin-top:40px;background:#fff;border:1px solid var(--line);border-radius:3px;
  padding:30px 32px}
.towns .hd{max-width:60ch;margin-bottom:26px}
.towns .hd h3{font-size:23px;margin-bottom:8px}
.towns .hd p{margin:0;color:var(--ink-soft);font-size:16px}
.tgrid{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:40px;align-items:start}
@media(max-width:860px){.tgrid{grid-template-columns:1fr;gap:28px}.towns{padding:24px 22px}}

.nimap{width:100%;height:auto;display:block}
.nimap .land{fill:var(--paper-2);stroke:var(--line);stroke-width:1.5}
.nimap .lough{fill:#CBD9D2;stroke:none}
.nimap .bann{fill:none;stroke:var(--indigo);stroke-width:2.2;stroke-linecap:round;opacity:.65}
.nimap .pin{fill:var(--deep);transition:r .15s ease,fill .15s ease}
.nimap .halo{fill:var(--mint);opacity:0;transition:opacity .15s ease}
.nimap .lbl{font-family:var(--body);font-size:12px;font-weight:600;fill:var(--ink)}
.nimap .sub{font-family:var(--body);font-size:10px;fill:var(--ink-soft)}
.nimap g.town.on .halo{opacity:.35}
.nimap g.town.on .pin{fill:var(--deep);r:7}
.nimap .cap{font-family:var(--body);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;fill:#8B9E96;font-weight:600}

.tcards{list-style:none;padding:0;margin:0}
.tcards li{border-bottom:1px solid var(--line);padding:16px 0;cursor:default}
.tcards li:first-child{padding-top:0}
.tcards li.on{background:linear-gradient(90deg,rgba(105,196,161,.16),transparent 70%)}
.tcards .nm{font-family:var(--display);font-size:20px;font-weight:600;margin:0}
.tcards .co{font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:600;
  color:var(--deep);margin:3px 0 8px}
.tcards p{margin:0;font-size:15px;color:var(--ink-soft);line-height:1.55}
.bannnote{margin-top:20px;font-size:14px;color:var(--ink-soft);display:flex;gap:10px;align-items:flex-start}
.bannnote i{width:22px;height:2px;background:var(--indigo);opacity:.65;flex:none;margin-top:9px;border-radius:2px}

/* events */
.board{display:grid;grid-template-columns:1fr 1fr;gap:44px}
@media(max-width:860px){.board{grid-template-columns:1fr;gap:32px}}
.evlist{list-style:none;padding:0;margin:0}
.evlist li{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:16px 0;
  border-bottom:1px solid var(--line);align-items:baseline}
.evlist .when{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--deep)}
.evlist .what{font-size:16px}
.evlist .what span{display:block;color:var(--ink-soft);font-size:15px;margin-top:3px}
.evlist.past .when{color:#8B9E96}
.evlist.past .what{color:var(--ink-soft)}

/* stat strip */
.strip{background:var(--deep);color:var(--paper)}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:30px 28px}
.strip .n{font-family:var(--display);font-size:34px;font-weight:500;line-height:1}
.strip .l{font-size:13px;color:#B8D2C8;margin-top:6px}
@media(max-width:720px){.strip .wrap{grid-template-columns:repeat(2,1fr);gap:26px}}

/* photo gallery */
.gallery{padding:0}
.gallery .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--ink)}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}
@media(max-width:720px){.gallery .grid3{grid-template-columns:1fr}}

/* sections */
section{padding:84px 0}
.sec-head{max-width:var(--measure);margin-bottom:44px}
.sec-head h2{font-size:clamp(30px,4vw,44px);letter-spacing:-.02em;margin:14px 0 16px}
.sec-head p{color:var(--ink-soft);margin:0;font-size:18px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:52px}
@media(max-width:860px){.two{grid-template-columns:1fr;gap:36px}section{padding:60px 0}}

/* month timeline */
.month{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:3px;overflow:hidden}
.week{background:#fff;padding:24px 22px}
.week .wk{font-family:var(--display);font-size:15px;font-weight:600;color:var(--deep);
  letter-spacing:.02em;margin-bottom:10px}
.week p{margin:0;font-size:15px;color:var(--ink-soft);line-height:1.55}
@media(max-width:860px){.month{grid-template-columns:1fr}}

/* host */
.host{background:var(--paper-2)}
.host-photo{width:100%;border-radius:3px;overflow:hidden;margin-top:28px;border:1px solid var(--line)}
.host-photo img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover}
.host-photo .cap{padding:10px 14px;font-size:13px;color:var(--ink-soft);background:#fff}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:14px 0 14px 30px;border-bottom:1px solid var(--line);position:relative;font-size:16px}
.checks li:before{content:"";position:absolute;left:0;top:22px;width:14px;height:1px;background:var(--deep)}
.checks li b{font-weight:600}
.callout{border-left:3px solid var(--deep);padding:4px 0 4px 20px;margin:26px 0;
  font-size:16px;color:var(--ink-soft)}

/* give */
.give{background:var(--ink);color:var(--paper)}
.give h2{color:var(--paper)}
.give .sec-head p{color:#C3D2CB}
.give .eyebrow{color:var(--mint)}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}
.tier{border:1px solid rgba(240,242,237,.2);border-radius:3px;padding:22px}
.tier .amt{font-family:var(--display);font-size:30px;font-weight:500;color:var(--mint)}
.tier p{font-size:15px;color:#B9C9C2;margin:8px 0 0;line-height:1.5}
.pays{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.pays .btn{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.pays .btn.ghost{background:transparent;color:var(--paper);border-color:rgba(240,242,237,.4)}
.pays .btn.ghost:hover{background:var(--paper);color:var(--ink)}
.taxline{font-size:14px;color:#8FA69D;margin-top:20px}
.sponsor-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;
  background:rgba(240,242,237,.06);border:1px solid rgba(240,242,237,.2);border-radius:3px;
  padding:28px 32px;margin-bottom:28px}
.sponsor-cta-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:600;color:var(--mint);margin:0 0 8px}
.sponsor-cta h3{font-size:24px;color:var(--paper);margin:0 0 10px}
.sponsor-cta p{font-size:15px;color:#B9C9C2;margin:0;max-width:44ch;line-height:1.55}
.sponsor-cta .btn{flex:none;background:var(--mint);border-color:var(--mint);color:var(--ink)}
@media(max-width:720px){.sponsor-cta{flex-direction:column;align-items:flex-start}}
@media(max-width:720px){.tiers{grid-template-columns:1fr}}

/* faq */
details{border-bottom:1px solid var(--line);padding:0}
details summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;
  font-size:17px;font-weight:500;font-family:var(--display)}
details summary::-webkit-details-marker{display:none}
details summary:after{content:"+";position:absolute;right:6px;top:18px;font-size:22px;
  color:var(--deep);font-family:var(--body);font-weight:400}
details[open] summary:after{content:"–"}
details .ans{padding:0 60px 22px 0;color:var(--ink-soft);font-size:16px;max-width:var(--measure)}
details .ans p{margin:0 0 12px}
details .ans p:last-child{margin:0}

/* why we exist — the closing note */
.why{background:var(--paper-2);border-top:1px solid var(--line)}
.why .inner{max-width:60ch}
.why h2{font-size:clamp(30px,4vw,44px);letter-spacing:-.02em;margin:14px 0 26px}
.why p{color:var(--ink-soft);font-size:18px;margin:0 0 20px}
.why p.first{font-size:21px;color:var(--ink);line-height:1.5}
.why .close{margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}
.why figure.solo{margin:28px 0;max-width:330px;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.why figure.solo img{width:100%;display:block}
.why figure.solo figcaption{padding:9px 12px;font-size:12.5px;color:var(--ink-soft);background:#fff}
.why-photos{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:60ch;margin:30px 0}
.why-photos figure{margin:0;border-radius:3px;overflow:hidden;border:1px solid var(--line)}
.why-photos img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.why-photos figcaption{padding:9px 12px;font-size:12.5px;color:var(--ink-soft);background:#fff}
@media(max-width:600px){.why-photos{grid-template-columns:1fr}}

/* footer */
.partners{background:#fff;border-top:1px solid var(--line);padding:56px 0 60px}
.partners .ph-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:28px}
.partners h2{font-size:clamp(26px,3.2vw,34px);letter-spacing:-.02em;margin-top:10px}
.partners .ph-head p{margin:0;max-width:44ch;color:var(--ink-soft);font-size:16px;text-wrap:pretty}
.partners ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.partners li{border:1px solid var(--line);border-radius:3px;display:flex;align-items:center;justify-content:center;padding:26px 28px;min-height:150px}
.partners img{max-width:100%;max-height:96px;width:auto;height:auto;display:block}
@media(max-width:700px){.partners ul{grid-template-columns:1fr}.partners li{min-height:120px}}
footer{background:var(--ink);color:#A9BDB5;padding:56px 0 40px;font-size:15px}
footer a{color:var(--paper);text-decoration:none;border-bottom:1px solid rgba(240,242,237,.3)}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:38px}
footer h4{font-family:var(--display);color:var(--paper);font-size:17px;font-weight:500;margin:0 0 12px}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin-bottom:9px}
footer .fine{border-top:1px solid rgba(240,242,237,.14);padding-top:22px;font-size:13px;color:#7E938B}
@media(max-width:860px){footer .cols{grid-template-columns:1fr;gap:30px}}

:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--paper);color:var(--ink);padding:10px 16px;z-index:99}


/* ======== the month (rebuilt) ======== */
.m-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:8px 0 34px}
.m-stats div{background:#fff;padding:18px 16px}
.m-stats b{display:block;font-family:var(--display);font-weight:500;font-size:34px;line-height:1;color:var(--deep)}
.m-stats span{display:block;margin-top:6px;font-size:13.5px;line-height:1.4;color:var(--ink-soft)}
.m-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 40px}
.m-photos figure{margin:0;position:relative;overflow:hidden;border-radius:3px;background:var(--paper-2);aspect-ratio:4/3}
.m-photos img{width:100%;height:100%;object-fit:cover;display:block}
.m-photos figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;background:linear-gradient(180deg,rgba(16,37,31,0),rgba(16,37,31,.88));color:#fff;font-size:14px;line-height:1.35}
.m-photos figcaption b{display:block;font-family:var(--display);font-weight:500;font-size:18px;margin-bottom:2px}
.m-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 14px;font-size:13px;color:var(--ink-soft)}
.m-legend span{display:inline-flex;align-items:center;gap:7px}
.m-dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.t-trip{background:#4A5FA8}.t-svc{background:#1B5B4A}.t-faith{background:#B7791F}.t-disc{background:#69C4A1}.t-fam{background:#C8553D}
.m-weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.m-week{background:#fff;border-top:3px solid var(--deep);padding:18px 18px 16px}
.m-week h3{font-size:19px;margin:0}
.m-week .dates{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--deep);margin:4px 0 12px}
.m-week ul{list-style:none;margin:0;padding:0}
.m-week li{display:grid;grid-template-columns:9px 1fr;gap:10px;align-items:start;padding:7px 0;border-top:1px solid var(--line);font-size:14.5px;line-height:1.4}
.m-week li:first-child{border-top:0}
.m-week li .m-dot{margin-top:6px}
.m-week li small{display:block;font-size:12.5px;color:var(--ink-soft);margin-top:1px}
.m-foot{margin:22px 0 0;font-size:14.5px;color:var(--ink-soft);max-width:72ch}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:980px){.m-weeks{grid-template-columns:1fr 1fr}.m-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.m-weeks{grid-template-columns:1fr}.m-photos{grid-template-columns:1fr 1fr;gap:8px}.m-photos figure{aspect-ratio:1/1}.m-photos figcaption{font-size:0;padding:26px 10px 9px}.m-photos figcaption b{font-size:15px;margin:0}.m-stats{grid-template-columns:1fr 1fr}.m-stats div:last-child{grid-column:1/-1}.m-stats b{font-size:28px}}
/* ======== leadership ======== */
.lp{background:var(--paper-2);border-top:1px solid var(--line);padding:84px 0}
.lp-bio{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;margin-top:8px}
@media(max-width:860px){.lp-bio{grid-template-columns:1fr}}
.lp-card{background:#fff;border:1px solid var(--line);border-radius:3px;padding:28px}
.lp-shot{width:96px;height:96px;border-radius:50%;overflow:hidden;border:1px solid var(--line);margin-bottom:16px}
.lp-shot img{width:100%;height:100%;object-fit:cover;display:block}
.lp-name{font-family:var(--display);font-size:25px;line-height:1.1}
.lp-title{font-size:13px;font-weight:600;color:var(--deep);margin:4px 0 16px}
.lp-creds{list-style:none;padding:0;margin:0}
.lp-creds li{font-size:14.5px;color:var(--ink-soft);line-height:1.55;padding:11px 0;border-top:1px solid var(--line)}
.lp-creds li:first-child{border-top:0;padding-top:0}
.lp-creds b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:3px}
.lp-dark{background:var(--ink);color:#C3D2CB;border-radius:3px;padding:28px}
.lp-dark h3{color:var(--paper);font-size:23px;margin:10px 0 12px}
.lp-dark p{font-size:15.5px;margin:0}
.lp-dark .eyebrow{color:var(--mint)}
.lp-people{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}
@media(max-width:860px){.lp-people{grid-template-columns:1fr}}
.lp-person{background:#fff;border:1px solid var(--line);border-radius:3px;padding:26px 24px;overflow:auto}
.lp-person .lp-shot{width:84px;height:84px;float:left;margin:0 16px 10px 0}
.lp-person p{font-size:14.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 12px}
.lp-person p:last-child{margin-bottom:0}
.lp-chart{display:flex;flex-direction:column;align-items:center;margin-top:26px}
.lp-node{background:#fff;border:1px solid var(--line);border-radius:3px;padding:20px 22px;text-align:center;width:100%;max-width:620px}
.lp-node.board{max-width:820px;border-left:3px solid var(--deep)}
.lp-node.paid{border-left:3px solid var(--mint)}
.lp-role{font-family:var(--display);font-size:20px}
.lp-who{font-size:14px;font-weight:600;color:var(--deep);margin-top:3px}
.lp-sub{font-size:13.5px;color:var(--ink-soft);margin-top:8px;line-height:1.5}
.lp-boardlist{font-size:13px;color:var(--ink-soft);margin-top:14px;padding-top:12px;border-top:1px solid var(--line);line-height:1.7}
.lp-conn{width:1px;height:26px;background:var(--line)}
.lp-hline{height:1px;background:var(--line);width:min(760px,92%)}
.lp-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;width:100%;margin-top:0}
@media(max-width:860px){.lp-row{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.lp-row{grid-template-columns:1fr}}
.lp-row .lp-node{max-width:none}

/* ======== sponsorship ======== */
.sp{padding:84px 0;border-top:1px solid var(--line);background:var(--paper)}
.sp-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;background:var(--ink);color:var(--paper);
  border-radius:3px;padding:28px 30px;margin:26px 0 22px}
@media(max-width:700px){.sp-strip{grid-template-columns:1fr;gap:18px}}
.sp-strip .n{font-family:var(--display);font-size:32px;color:var(--mint);line-height:1}
.sp-strip .l{font-size:13px;color:#A9BDB5;margin-top:6px}
.sp-reach{background:#fff;border:1px solid var(--line);border-left:3px solid var(--mint);border-radius:3px;
  padding:30px 32px;margin:0 0 40px}
.sp-reach h3{font-size:27px;margin:10px 0 14px;letter-spacing:-.015em}
.sp-reach p{color:var(--ink-soft);font-size:16px;line-height:1.65;margin:0 0 12px;max-width:var(--measure)}
.sp-reach p:last-child{margin-bottom:0}
.sp-reach b{color:var(--ink)}
.sp-pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:860px){.sp-pkgs{grid-template-columns:1fr}}
.sp-pkg{background:#fff;border:1px solid var(--line);border-radius:3px;padding:26px 24px;display:flex;flex-direction:column}
.sp-pkg.featured{border:2px solid var(--deep);box-shadow:0 10px 30px rgba(16,37,31,.08)}
.sp-pkg .name{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--deep)}
.sp-amt{font-family:var(--display);font-size:38px;margin:8px 0 16px;line-height:1}
.sp-pkg ul{list-style:none;padding:0;margin:0 0 22px;flex:1}
.sp-pkg li{font-size:14.5px;color:var(--ink-soft);line-height:1.5;padding:9px 0 9px 20px;position:relative;border-top:1px solid var(--line)}
.sp-pkg li:first-child{border-top:0}
.sp-pkg li:before{content:"";position:absolute;left:0;top:17px;width:8px;height:8px;border-radius:50%;background:var(--mint)}
.sp-flex{display:grid;grid-template-columns:1.6fr auto;gap:28px;align-items:center;background:#fff;
  border:1px solid var(--line);border-radius:3px;padding:28px;margin-top:22px}
@media(max-width:780px){.sp-flex{grid-template-columns:1fr}}
.sp-flex h3{font-size:24px;margin:10px 0 10px}
.sp-flex p{color:var(--ink-soft);font-size:15.5px;margin:0;max-width:60ch}
.sp-steps{counter-reset:s;list-style:none;padding:0;margin:26px 0 0;max-width:var(--measure)}
.sp-steps li{counter-increment:s;position:relative;padding:0 0 22px 52px;font-size:16px;color:var(--ink-soft);line-height:1.6}
.sp-steps li:before{content:counter(s);position:absolute;left:0;top:-2px;width:34px;height:34px;border-radius:50%;
  background:var(--deep);color:var(--paper);font-family:var(--display);font-size:17px;display:flex;align-items:center;justify-content:center}
.sp-steps b{color:var(--ink)}


/* ======== for parents / ROI ======== */
.parents{padding:84px 0;background:var(--paper);border-top:1px solid var(--line)}
.parents .two{align-items:start}
.pcol h3{font-size:24px;margin:0 0 6px;letter-spacing:-.015em}
.pcol .lead{color:var(--ink-soft);font-size:15.5px;margin:0 0 18px;max-width:52ch}
.plist{list-style:none;padding:0;margin:0}
.plist li{padding:14px 0;border-top:1px solid var(--line);font-size:15.5px;line-height:1.6;color:var(--ink-soft)}
.plist li:first-child{border-top:0;padding-top:0}
.plist b{color:var(--ink);display:block;margin-bottom:2px}
.pquote{background:var(--ink);color:#C3D2CB;border-radius:3px;padding:30px 32px;margin-top:32px;display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:center}
@media(max-width:780px){.pquote{grid-template-columns:1fr}}
.pquote p{margin:0;font-size:17px;line-height:1.6;color:var(--paper)}
.pquote .eyebrow{color:var(--mint);margin-bottom:10px}
.pquote small{display:block;color:#A9BDB5;font-size:13.5px;margin-top:10px}

/* ======== sample schedule ======== */
.sched{padding:84px 0;background:var(--paper-2);border-top:1px solid var(--line)}
.sched-note{background:#fff;border:1px solid var(--line);border-left:3px solid var(--mint);border-radius:3px;
  padding:18px 22px;margin:22px 0 30px;font-size:15px;color:var(--ink-soft);max-width:var(--measure)}
.sched-note b{color:var(--ink)}
.sched-key{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft);margin-bottom:26px}
.sched-key span{display:flex;align-items:center;gap:7px}
.dot-fam{width:10px;height:10px;border-radius:2px;background:#F4D35E;display:inline-block}
.dot-teen{width:10px;height:10px;border-radius:2px;background:var(--mint);display:inline-block}
.swk{background:#fff;border:1px solid var(--line);border-radius:3px;margin-bottom:16px;overflow:hidden}
.swk-hd{background:var(--ink);color:var(--paper);padding:12px 20px;font-family:var(--display);font-size:18px;
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.swk-hd small{font-family:var(--sans);font-size:12px;color:#A9BDB5;letter-spacing:.04em}
.sday{display:grid;grid-template-columns:132px 1fr;gap:16px;padding:13px 20px;border-top:1px solid var(--line)}
.sday:first-of-type{border-top:0}
@media(max-width:620px){.sday{grid-template-columns:1fr;gap:4px}}
.sday .d{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--deep);padding-top:2px}
.sday .ev{font-size:15px;color:var(--ink-soft);line-height:1.55}
.sday .ev i{font-style:normal;display:block}
.sday .ev .fam{color:var(--ink);font-weight:600}
.sday .ev .fam:after{content:"family event";font-weight:400;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  background:#F4D35E;color:#3a2f00;padding:2px 6px;border-radius:2px;margin-left:8px;white-space:nowrap}
.sday .ev .teen{font-size:13px;color:var(--deep)}
.sday .ev .teen:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--mint);margin-right:7px}
.sday.free{background:var(--paper-2)}
.sday.free .ev{color:var(--ink);font-weight:600}

/* ======== 50 years ======== */
.fifty{background:var(--ink);color:#C3D2CB;padding:74px 0;border-top:1px solid var(--line)}
.fifty .inner{max-width:var(--measure)}
.fifty .eyebrow{color:var(--mint)}
.fifty h2{color:var(--paper);font-size:34px;margin:10px 0 16px;letter-spacing:-.02em}
.fifty p{font-size:16.5px;line-height:1.7;margin:0 0 14px}
.fifty a.inline{color:var(--mint);font-weight:600}
.fifty .tally{display:flex;gap:20px;align-items:baseline;margin:26px 0 24px;padding:22px 24px;
  border:1px solid rgba(195,210,203,.28);border-radius:3px;background:rgba(255,255,255,.05);flex-wrap:wrap}
.fifty .tally b{font-family:var(--display);font-size:clamp(40px,7vw,62px);line-height:.85;color:var(--mint);
  letter-spacing:-.03em;font-weight:500}
.fifty .tally p{margin:0;font-size:16.5px;color:var(--paper);max-width:34ch;line-height:1.5}
.fifty .voices{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 26px}
.fifty .voices span{border:1px solid rgba(195,210,203,.28);border-radius:2px;padding:6px 12px;font-size:12.5px;letter-spacing:.04em}


/* ======== photos & summary strip ======== */
.ph-row{display:grid;grid-template-columns:1fr 1.25fr;gap:18px;align-items:start;margin:4px 0 32px}
@media(max-width:820px){.ph-row{grid-template-columns:1fr}}
.ph{margin:0;background:#fff;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.ph img{width:100%;display:block}
.ph figcaption{padding:10px 14px;font-size:12.5px;line-height:1.45;color:var(--ink-soft)}
.ph-wide{margin:26px 0 0;max-width:520px}
.fifty .ph{background:rgba(255,255,255,.06);border-color:rgba(195,210,203,.25)}
.fifty .ph figcaption{color:#A9BDB5}

/* ======== curriculum ======== */
.curr{padding:84px 0;background:var(--paper);border-top:1px solid var(--line)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:10px}
@media(max-width:900px){.pillars{grid-template-columns:1fr}}
.pillar{background:#fff;border:1px solid var(--line);border-radius:3px;padding:28px 26px;display:flex;flex-direction:column}
.pillar .pico{width:46px;height:46px;border-radius:50%;background:var(--paper-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--deep)}
.pillar .pico svg{width:24px;height:24px}
.pillar h3{font-size:22px;margin:0 0 4px}
.pillar .pl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);font-weight:600;margin-bottom:12px}
.pillar p{font-size:15px;color:var(--ink-soft);line-height:1.6;margin:0 0 16px}
.pillar ul{list-style:none;padding:0;margin:0 0 4px;border-top:1px solid var(--line)}
.pillar li{font-size:13.5px;color:var(--ink-soft);padding:9px 0 9px 18px;border-bottom:1px solid var(--line);position:relative;line-height:1.45}
.pillar li:before{content:"";position:absolute;left:0;top:15px;width:7px;height:7px;border-radius:50%;background:var(--mint)}
.curr-close{background:var(--ink);color:#C3D2CB;border-radius:3px;padding:30px 32px;margin-top:26px}
.curr-close p{margin:0;font-size:16.5px;line-height:1.65;color:var(--paper);max-width:70ch}
.curr-close .eyebrow{color:var(--mint);margin-bottom:10px}


.sched-banner{background:#FFF8E1;border:1px solid #E8D48A;border-left:3px solid #D4A72C;border-radius:3px;
  padding:16px 20px;margin:0 0 20px;font-size:15px;color:#4a3c10;max-width:var(--measure);line-height:1.6}
.sched-banner b{color:#2f2508}
.bigtrips{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:8px 0 30px}
@media(max-width:820px){.bigtrips{grid-template-columns:1fr}}
.trip{background:#fff;border:1px solid var(--line);border-radius:3px;padding:22px 22px 20px}
.trip .tico{width:38px;height:38px;border-radius:50%;background:var(--paper-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--deep);margin-bottom:13px}
.trip .tico svg{width:20px;height:20px}
.trip h4{font-family:var(--display);font-size:20px;margin:0 0 3px;font-weight:400;letter-spacing:-.01em}
.trip .thrs{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--deep);font-weight:600;margin-bottom:10px}
.trip p{font-size:14.5px;color:var(--ink-soft);line-height:1.6;margin:0}


/* ======== polish pass (board feedback) ======== */
p,li,figcaption,.strip .l,.lp-sub{text-wrap:pretty}
h1,h2,h3{text-wrap:balance}
.nav .wrap{max-width:1600px;gap:24px}
.brand{white-space:nowrap;flex-shrink:0}
.navlinks{gap:20px}
.nav a.lnk{white-space:nowrap;font-size:13.5px}
.nav .btn{flex-shrink:0}
@media(max-width:1599px){.navlinks .n2{display:none}}
@media(max-width:1099px){.navlinks .n1{display:none}}
.why p.first{font-size:18px;line-height:1.65}
.whyband{background:var(--paper);border-bottom:1px solid var(--line);padding:72px 0 76px}
.whyband .inner{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:start}
@media(max-width:880px){.whyband .inner{grid-template-columns:1fr;gap:18px}}
.whyband h2{font-size:clamp(28px,3.6vw,40px);letter-spacing:-.02em;margin:14px 0 0;line-height:1.1}
.whyband p{color:var(--ink-soft);font-size:18px;margin:0 0 16px}
.whyband p b{color:var(--ink);font-weight:600}
.whyband a.more{font-weight:600;color:var(--deep);text-decoration:none;border-bottom:1px solid currentColor}
.lp-people{grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.lp-people{grid-template-columns:1fr}}
.lp-person .lp-shot{float:none;margin:0 0 14px}
.lp-person .lp-title{margin-bottom:12px}
.lp-node.board{display:block}
.lp-boardlist{list-style:none;margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px 20px;font-size:13.5px;color:var(--ink);line-height:1.45}
.lp-boardlist em{font-style:normal;display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--deep);font-weight:600}
@media(max-width:700px){.lp-boardlist{grid-template-columns:repeat(2,1fr)}}

/* ======== email pop-up ======== */
.em-back{position:fixed;inset:0;background:rgba(16,37,31,.62);z-index:90;display:none;align-items:center;justify-content:center;padding:20px}
.em-back.on{display:flex}
.em-box{background:var(--paper);color:var(--ink);border-radius:4px;max-width:520px;width:100%;padding:30px 30px 26px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);position:relative;border-top:4px solid var(--mint)}
.em-box .eyebrow{margin:0 0 8px}
.em-box h3{font-size:26px;margin:0 0 8px;letter-spacing:-.01em}
.em-box p{margin:0 0 18px;color:var(--ink-soft);font-size:15.5px}
.em-field{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);
  border-radius:3px;padding:12px 14px;margin-bottom:10px}
.em-field .k{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);font-weight:600;display:block;margin-bottom:2px}
.em-field .v{font-size:15px;font-weight:600;word-break:break-all;color:var(--ink)}
.em-field.sub .v{font-weight:500;color:var(--ink-soft);word-break:normal;overflow-wrap:anywhere}
.em-copy{flex:0 0 auto;font:600 12.5px var(--body);border:1px solid var(--ink);background:transparent;color:var(--ink);
  padding:7px 12px;border-radius:2px;cursor:pointer}
.em-copy:hover,.em-copy.done{background:var(--ink);color:var(--paper)}
.em-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.em-actions .btn{flex:1 1 auto;text-align:center}
.em-x{position:absolute;top:10px;right:12px;border:0;background:transparent;font-size:26px;line-height:1;cursor:pointer;color:var(--ink-soft);padding:4px 8px}
.em-x:hover{color:var(--ink)}
.em-gmail{display:block;text-align:center;margin-top:14px;font-size:13.5px;color:var(--deep);font-weight:600}
@media(max-width:520px){.em-box{padding:24px 20px 20px}.em-box h3{font-size:22px}}

/* ======== multi-page additions ======== */
.nav a.lnk.on{color:var(--ink);font-weight:600}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;width:42px;height:40px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 10px;border:1px solid var(--line);border-radius:2px}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary span{display:block;height:2px;background:var(--ink);border-radius:1px}
.mnav-panel{position:absolute;right:0;top:48px;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 30px rgba(16,37,31,.18);min-width:210px;padding:8px 0;z-index:60}
.mnav-panel a{display:block;padding:11px 18px;text-decoration:none;font-weight:500;color:var(--ink)}
.mnav-panel a[aria-current]{color:var(--deep);font-weight:700}
@media(max-width:860px){.mnav{display:block}.nav .wrap{gap:12px}}
@media(max-width:560px){.nav .wrap>.btn{display:none}.brand{font-size:17px}.mnav-panel a.give{color:var(--deep);font-weight:700;border-top:1px solid var(--line);margin-top:6px;padding-top:14px}}
@media(min-width:561px){.mnav-panel a.give{display:none}}
.contact-pg{padding:84px 0}
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ccard{background:#fff;border:1px solid var(--line);padding:26px 26px 24px}
.ccard h3{font-size:22px;margin-bottom:14px}
.ccard dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0;font-size:15.5px}
.ccard dt{font-weight:600;color:var(--ink)}
.ccard dd{margin:0;color:var(--ink-soft);overflow-wrap:anywhere}
.ccard a{color:var(--deep)}
.cbtns{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.cbtns .btn{color:var(--paper)}.cbtns .btn.ghost{color:var(--ink)}
@media(max-width:760px){.cgrid{grid-template-columns:1fr}.ccard dl{grid-template-columns:1fr;gap:2px}.ccard dd{margin-bottom:10px}}
