@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/cormorant-garamond-latin-700-normal.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-sans-3-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-sans-3-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/source-sans-3-latin-700-normal.woff2) format('woff2');}
{{fonts}}
h1,h2,h3,h4,blockquote{text-wrap:balance}
p,li,figcaption,dd,dt,.lede,.body{text-wrap:pretty}
:root{
  --green:#2E522C; --green-deep:#1E3A1D; --gold:#B88618; --gold-text:#A8790F;
  --charcoal:#33312D; --parchment:#F6F2E9; --stone:#E2DCCE; --green-ink:#142613;
  --ink-soft:#5C5850;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --wrap:1220px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--charcoal);background:#fff;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--green);text-underline-offset:3px}
a:hover{color:var(--green-deep)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.12;margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.center{text-align:center}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:#fff;padding:10px 16px;z-index:200;border:2px solid var(--green)}
.concept{background:var(--charcoal);color:#F1EEE7;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:7px 16px}

/* header */
header.site{background:var(--parchment);border-bottom:1px solid var(--stone);position:sticky;top:0;z-index:60}
.toprow{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0}
.toprow img.logo{height:56px;width:auto}
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.act{display:inline-flex;flex-direction:column;line-height:1.15;text-decoration:none;border:1px solid var(--stone);background:#fff;padding:9px 18px;border-radius:2px;color:var(--green-deep)}
.act strong{font-family:var(--sans);font-size:14.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.act span{font-size:11.5px;color:var(--ink-soft);letter-spacing:.06em}
.act:hover{border-color:var(--green);color:var(--green-deep)}
.act.give{background:var(--green);border-color:var(--green);color:#fff;justify-content:center}
.act.give strong{color:#fff}.act.give span{color:#D6E4D2}
.act.give:hover{background:var(--green-deep);border-color:var(--green-deep)}


.menutoggle{position:absolute;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}
label.menubtn{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--green);cursor:pointer;padding:12px 0}
label.menubtn .bars{display:inline-block;width:20px;height:2px;background:var(--green);position:relative}
label.menubtn .bars::before,label.menubtn .bars::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--green)}
label.menubtn .bars::before{top:-6px}label.menubtn .bars::after{top:6px}

/* buttons */
.btn{display:inline-block;font-family:var(--sans);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;padding:15px 30px;border-radius:2px;text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn-light{background:var(--parchment);color:var(--green-deep);border-color:var(--parchment)}
.btn-light:hover{background:#fff;color:var(--green-deep)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn-ghost:hover{background:rgba(255,255,255,.14);color:#fff}
.btn-green{background:var(--green);color:#fff;border-color:var(--green)}
.btn-green:hover{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}
.btn-outline{background:transparent;color:var(--green);border-color:var(--green)}
.btn-outline:hover{background:var(--green);color:#fff}

/* hero */
.hero{position:relative;min-height:min(74vh,620px);display:flex;align-items:flex-end;justify-content:center;text-align:center;background:var(--green-deep)}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62;object-position:center 44%}
.hero img.poster{display:none}
@media(prefers-reduced-motion:reduce){.hero video.bg{display:none}.hero img.poster{display:block}}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,34,17,.62) 0%,rgba(18,34,17,.40) 38%,rgba(18,34,17,.90) 100%)}
.hero .inner{position:relative;padding:92px 24px 62px;max-width:880px}
.hero .kicker{color:#E4D5A8;font-size:13px;letter-spacing:.28em;text-transform:uppercase;margin:0 0 20px;font-weight:600}
.hero h1{color:#fff;font-size:clamp(44px,7vw,82px);text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero .slogan{display:inline-block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(19px,2vw,28px);color:#F2E9D2;margin:26px 0 0;padding-top:20px;border-top:1px solid rgba(184,134,24,.85);text-shadow:0 1px 10px rgba(0,0,0,.4)}
.hero p.lede{color:#F2EFE6;font-size:clamp(17px,2vw,20px);max-width:600px;margin:22px auto 0;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.hero .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px}

/* this week module */
.thisweek{background:var(--parchment);border-bottom:1px solid var(--stone)}
.tw-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:26px 0 0;flex-wrap:wrap}
.tw-head h2{font-size:30px;color:var(--green-deep)}
.tw-head a{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.times{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--stone);background:#fff;margin-top:20px}
.times .cell{padding:28px 22px;text-align:center;border-left:1px solid var(--stone)}
.times .cell:first-child{border-left:0}
.times h3{font-family:var(--sans);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--green);font-weight:700;margin-bottom:10px}
.times p{margin:0;font-family:var(--serif);font-size:21px;line-height:1.42;color:var(--charcoal)}
.times span{display:block;font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);margin-top:6px}
.bulletinbar{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--green);color:#fff;padding:26px 34px;margin:16px 0 34px;flex-wrap:wrap}
.bulletinbar h3{color:#fff;font-size:28px}
.bulletinbar p{margin:6px 0 0;color:#D6E4D2;font-size:15.5px}
.bulletinbar .bb-actions{display:flex;gap:12px;flex-wrap:wrap}

/* four next steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:52px;text-align:left}
.step{background:#fff;border:1px solid var(--stone);display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color .2s}
.step:hover{border-color:var(--green)}
.step img{aspect-ratio:4/3;object-fit:cover;width:100%}
.step .body{padding:24px 22px 26px;display:flex;flex-direction:column;flex:1}
.step .n{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--green);font-weight:700}
.step h3{font-size:26px;color:var(--green-deep);margin-top:8px}
.step p{color:var(--ink-soft);font-size:15.5px;margin:10px 0 18px;flex:1}
.step .go{font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
          color:var(--green);border-bottom:2px solid var(--gold);padding-bottom:3px;align-self:flex-start}
@media(max-width:980px){.steps{grid-template-columns:1fr 1fr;gap:18px}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* our parish */
.parishrow{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:center;text-align:left}
.parishrow .portrait{width:100%;aspect-ratio:1/1;border-radius:50%;overflow:hidden;border:1px solid var(--stone)}
.parishrow .portrait img{width:100%;height:100%;object-fit:cover}
.parishrow blockquote{margin:22px 0 0;font-family:var(--serif);font-size:22px;line-height:1.5;color:var(--charcoal)}
.parishpics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:56px}
.parishpics figure{margin:0;position:relative;overflow:hidden;background:var(--stone)}
.parishpics img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s ease}
.parishpics figure:hover img{transform:scale(1.04)}
.parishpics figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 14px 10px;color:#fff;font-size:12.5px;text-align:left;
  background:linear-gradient(180deg,rgba(20,38,19,0),rgba(20,38,19,.85))}
@media(max-width:860px){.parishrow{grid-template-columns:1fr;gap:28px}.parishrow .portrait{width:190px}.parishpics{grid-template-columns:1fr;gap:10px}}

/* sticky newsletter pill, desktop only */
        background:var(--green);color:#fff;padding:14px 24px;border-radius:999px;text-decoration:none;
        font-family:var(--sans);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(20,38,19,.30)}

/* quick links board */
.qlinks{background:#fff;border-top:1px solid var(--stone)}
.qgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--stone);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone)}
.ql{background:#fff;padding:24px 16px;text-align:center;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px}
.ql:hover{background:var(--parchment)}
.ql svg{width:30px;height:30px;stroke:var(--green);stroke-width:1.35;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ql strong{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--green-deep);line-height:1.2}
.ql span{font-size:12.5px;color:var(--ink-soft);line-height:1.35}
@media(max-width:1100px){.qgrid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.qgrid{grid-template-columns:repeat(3,1fr)}.ql{padding:18px 10px}.ql strong{font-size:15px}.ql span{display:none}}
@media(max-width:420px){.qgrid{grid-template-columns:repeat(2,1fr)}}

/* upcoming events, dated list */
.evlist{margin-top:44px;border-top:1px solid var(--stone);text-align:left}
.ev{display:grid;grid-template-columns:96px 1fr auto;gap:26px;align-items:center;padding:22px 0;
    border-bottom:1px solid var(--stone);text-decoration:none;color:inherit}
.ev:hover{background:#fff}
.ev .d{font-family:var(--serif);font-size:34px;color:var(--green-deep);line-height:1}
.ev .d small{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
             color:var(--green);font-weight:700;margin-bottom:4px}
.ev h3{font-family:var(--serif);font-size:24px;font-weight:600;color:var(--green-deep)}
.ev p{margin:5px 0 0;font-size:15px;color:var(--ink-soft)}
.ev .go{font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--green);white-space:nowrap}
@media(max-width:760px){.ev{grid-template-columns:72px 1fr;gap:16px;padding:18px 0}.ev .d{font-size:26px}.ev h3{font-size:20px}.ev .go{grid-column:2}}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}
.gal figure{margin:0;position:relative;overflow:hidden;background:var(--stone)}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s ease}
.gal figure:hover img{transform:scale(1.04)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;color:#fff;font-size:13px;
  background:linear-gradient(180deg,rgba(20,38,19,0),rgba(20,38,19,.85));text-align:left}
@media(max-width:760px){.gal{grid-template-columns:1fr 1fr;gap:10px}}

/* scripture + sacred art dividers */
.divider{position:relative;background:var(--green-ink,#142613);color:#fff;overflow:hidden}
.divider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.70}
.divider .veil{position:absolute;inset:0;background:radial-gradient(ellipse 92% 100% at 50% 50%,rgba(20,38,19,.86) 0%,rgba(20,38,19,.62) 62%,rgba(20,38,19,.16) 100%)}
.divider .inner{position:relative;max-width:900px;margin:0 auto;padding:64px 28px;text-align:center}
.divider .glyph{width:64px;height:2px;background:var(--gold);margin:0 auto 24px;display:block}
.divider blockquote{margin:0;font-family:var(--serif);font-size:clamp(23px,3vw,36px);line-height:1.32;font-weight:500;color:#fff}
.divider cite{display:block;margin-top:18px;font-family:var(--sans);font-style:normal;font-size:11.5px;
              letter-spacing:.22em;text-transform:uppercase;color:#F2E9D2;font-weight:700}
@media(max-width:620px){.divider .inner{padding:48px 22px}}

/* sections */
section{padding:88px 0}
.eyebrow{font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--green);font-weight:700;margin:0 0 16px;font-family:var(--sans)}
h2.big{font-size:clamp(34px,4.4vw,50px);color:var(--green-deep)}
.rule{width:64px;height:2px;background:var(--gold);margin:22px auto 0;border:0}
.rule.left{margin-left:0}
p.intro{max-width:660px;margin:22px auto 0;color:var(--ink-soft);font-size:18.5px}

/* newsletter */
.news{background:var(--stone);color:var(--charcoal);padding:78px 0}
.news h2{color:var(--green-deep);font-size:clamp(32px,4.2vw,46px)}
.news p{color:var(--ink-soft);max-width:560px;margin:20px auto 0}
.news form{display:flex;gap:12px;max-width:540px;margin:32px auto 0;flex-wrap:wrap;justify-content:center}
.news input{flex:1 1 280px;padding:15px 18px;border:1px solid var(--stone);background:#fff;color:var(--charcoal);font-family:var(--sans);font-size:16px;border-radius:2px}
.news input::placeholder{color:#8C877C}
.news input:focus{border-color:var(--green)}
.news small{display:block;margin-top:18px;color:var(--ink-soft);font-size:13.5px}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:52px}
.card{background:#fff;border:1px solid var(--stone);text-align:center;display:flex;flex-direction:column}
.card img{aspect-ratio:4/5;object-fit:cover;width:100%}
.card .body{padding:28px 26px 32px;flex:1;display:flex;flex-direction:column}
.card h3{font-size:27px;color:var(--green-deep)}
.card p{color:var(--ink-soft);font-size:16px;margin:14px 0 22px;flex:1}
.card a.more{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--green);border-bottom:2px solid var(--gold);padding-bottom:3px;align-self:center}

/* sacraments */
.sacraments{background:var(--parchment)}
.sacgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--stone);border:1px solid var(--stone);margin-top:48px}
.sac{background:var(--parchment);padding:30px 26px;text-decoration:none;display:block;color:inherit}
.sac:hover{background:#fff}
.sac h3{font-size:24px;color:var(--green-deep)}
.sac p{margin:8px 0 0;color:var(--ink-soft);font-size:15px}

/* split feature */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:500px}
.split img{width:100%;height:100%;object-fit:cover;min-height:330px}
.split .panel{background:var(--green-deep);color:#fff;display:flex;align-items:center;padding:74px 8%}
.split .panel h2{color:#fff;font-size:clamp(32px,3.9vw,46px)}
.split .panel p{color:#D5E2D1;margin:22px 0 0;max-width:440px}

/* events */
.events{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:52px;text-align:left}
.event{border:1px solid var(--stone);display:flex;flex-direction:column;text-decoration:none;color:inherit;background:#fff}
.event:hover{border-color:var(--green)}
.event img{aspect-ratio:16/10;object-fit:cover;width:100%}
.event .body{padding:26px 26px 30px;display:flex;gap:20px;align-items:flex-start;flex:1}
.event .date{flex:0 0 auto;text-align:center;border-right:1px solid var(--stone);padding-right:20px}
.event .date .m{display:block;font-family:var(--sans);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--green);font-weight:700}
.event .date .d{display:block;font-family:var(--serif);font-size:38px;color:var(--green-deep);line-height:1.05}
.event h3{font-size:23px;color:var(--green-deep)}
.event p{margin:8px 0 0;color:var(--ink-soft);font-size:15px}

/* ministries */
.mingrid.two{grid-template-columns:1fr 1fr}
@media(max-width:760px){.mingrid.two{grid-template-columns:1fr}}
.mingrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--stone);border:1px solid var(--stone);margin-top:48px;text-align:left}
.min{background:#fff;padding:28px 26px;text-decoration:none;color:inherit;display:block}
.min:hover{background:var(--parchment)}
.min h3{font-size:23px;color:var(--green-deep)}
.min p{margin:8px 0 0;color:var(--ink-soft);font-size:15px}
.min{transition:background .2s ease}
.minkick{display:block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.2em;
         text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.mingo{display:inline-block;margin-top:18px;font-family:var(--sans);font-size:12px;font-weight:700;
       letter-spacing:.12em;text-transform:uppercase;color:var(--green);
       border-bottom:2px solid var(--gold);padding-bottom:3px}

/* social */
.social{list-style:none;display:flex;gap:10px;margin:20px 0 0;padding:0}
.social a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;
  border:1px solid rgba(242,233,210,.34);border-radius:50%;color:#F2E9D2;transition:background .2s ease,border-color .2s ease}
.social a:hover{background:var(--gold);border-color:var(--gold);color:var(--green-ink)}
.social svg{width:19px;height:19px;fill:currentColor;display:block}

/* serve tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--stone);border:1px solid var(--stone);margin-top:48px;text-align:left}
.tile{background:var(--parchment);padding:34px 26px}
.tile h3{font-size:24px;color:var(--green-deep)}
.tile p{color:var(--ink-soft);font-size:15px;margin:10px 0 0}
.tile .num{font-family:var(--sans);font-size:12px;font-weight:700;color:var(--green);letter-spacing:.2em;display:block;margin-bottom:12px}

/* staff */
.staff{background:var(--parchment)}
.pastorrow{display:grid;grid-template-columns:0.8fr 1.2fr;gap:56px;align-items:center;text-align:left}
.frame{position:relative;padding:13px;background:#fff;border:1px solid var(--stone)}
.frame::after{content:"";position:absolute;inset:8px;border:1px solid rgba(184,134,24,.6);pointer-events:none}
.frame img{aspect-ratio:1/1;object-fit:cover;width:100%}
.pastorrow blockquote{margin:24px 0 0;font-family:var(--serif);font-size:22px;line-height:1.55;color:var(--charcoal)}
.sig{margin-top:24px;font-family:var(--serif);font-style:italic;font-size:22px;color:var(--green-deep)}
.sig span{display:block;font-family:var(--sans);font-style:normal;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}
.team{display:grid;grid-template-columns:repeat(5,1fr);gap:26px;margin-top:56px}
.person{text-align:center}
.avatar{width:104px;height:104px;border-radius:50%;background:#fff;border:1px solid var(--stone);margin:0 auto 14px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.ph img{width:56px;height:56px;object-fit:contain;opacity:.5}
.person h3{font-size:20px;color:var(--green-deep)}
.person p{margin:3px 0 0;font-size:13.5px;color:var(--ink-soft)}

.tbc{display:inline-block;background:#7A2E12;color:#fff;font-family:var(--sans);font-size:10px;
     letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:3px;
     vertical-align:middle;margin-left:6px}

/* history */
.histgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--stone);border:1px solid var(--stone);margin-top:48px;text-align:left}
.hist{background:#fff;padding:26px 24px}
.hist b{display:block;font-family:var(--serif);font-size:30px;color:var(--green-deep);font-weight:600;line-height:1}
.hist span{display:block;margin-top:10px;font-size:15px;color:var(--ink-soft)}
@media(max-width:900px){.histgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.histgrid{grid-template-columns:1fr}}

/* quicklinks */
.quick{background:var(--green);color:#fff}
.quick .grid{display:grid;grid-template-columns:repeat(3,1fr)}
.quick a{display:block;padding:44px 32px;text-align:center;text-decoration:none;border-left:1px solid rgba(255,255,255,.2);color:#fff}
.quick a:first-child{border-left:0}
.quick a:hover{background:var(--green-deep)}
.quick h3{font-size:27px;color:#fff}
.quick p{margin:8px 0 0;color:#D3E2CF;font-size:15px}

/* mobile action bar */

/* footer */
footer{background:var(--green-deep);color:#D9E4D5;padding:72px 0 34px;font-size:15.5px}
.footlogo{background:var(--parchment);display:inline-block;padding:20px 28px;border-radius:3px}
.footlogo img{height:50px;width:auto}
footer .grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:44px;margin-top:44px;text-align:left}
footer h4{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#E4D5A8;margin:0 0 16px;font-weight:700}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:9px}
footer a{color:#D9E4D5;text-decoration:none}
footer a:hover{color:#fff;text-decoration:underline}
.legal{border-top:1px solid rgba(255,255,255,.16);margin-top:52px;padding-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13.5px;color:#AFC0AA}

@media(max-width:1100px){
  .team{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .toprow{flex-wrap:wrap}
  label.menubtn{display:flex;order:3}
  .actions{order:2}
  .times{grid-template-columns:repeat(2,1fr)}
  .times .cell:nth-child(3){border-left:0}
  .times .cell:nth-child(n+3){border-top:1px solid var(--stone)}
  .cards,.events,.mingrid{grid-template-columns:1fr}
  .sacgrid{grid-template-columns:repeat(2,1fr)}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}
  .pastorrow{grid-template-columns:1fr;gap:32px}
  .quick .grid{grid-template-columns:1fr}
  .quick a{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding:30px}
  footer .grid{grid-template-columns:1fr 1fr;gap:30px}
  section{padding:62px 0}
  body{padding-bottom:58px}
}
@media(max-width:620px){
  .concept{font-size:10.5px;letter-spacing:.1em}
  .toprow{padding:10px 0}
  .hero{min-height:37vh}
  .hero .inner{padding:28px 20px 22px}
  .hero h1{font-size:clamp(34px,9vw,44px)}
  .hero .slogan{font-size:17px;margin-top:18px;padding-top:14px}
  .hero p.lede{display:none}        /* the slogan carries it; keeps times above the fold */
  .hero .btns{margin-top:20px}
  .hero .btns .btn-ghost{display:none}   /* bulletin is in the fixed bottom bar */
  .tw-head a{display:none}               /* same link lives in the menu */
  .times{grid-template-columns:1fr 1fr}
  .times .cell{border-left:1px solid var(--stone);padding:18px 14px}
  .times .cell:nth-child(odd){border-left:0}
  .times .cell:nth-child(-n+2){border-top:0}
  .times .cell p{font-size:18px}
  .tw-head{padding-top:16px}
  .tw-head h2{font-size:24px}
  .toprow img.logo{height:42px}
  .act{padding:8px 10px}
  .act span{display:none}
  .act strong{font-size:12.5px}
  .actions{gap:6px}
  .hero .inner{padding:66px 20px 46px}
  .times .cell{padding:16px 12px}
  .times .cell:first-child{border-top:0}
  .sacgrid,.tiles{grid-template-columns:1fr}
  .team{grid-template-columns:repeat(2,1fr)}
  footer .grid{grid-template-columns:1fr}
  .btn{width:100%;text-align:center}
  .bulletinbar{padding:24px}
}
/* ============ INNER PAGE COMPONENTS ============ */
.phero{position:relative;background:var(--green-ink);color:#fff;overflow:hidden;margin-top:0}
.phero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}
.phero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,38,19,.62) 0%,rgba(20,38,19,.78) 100%)}
.phero .inner{position:relative;max-width:900px;margin:0 auto;padding:76px 28px 66px;text-align:center}
.phero .kicker{font-family:var(--sans);font-size:12px;letter-spacing:.26em;text-transform:uppercase;
  color:#F2E9D2;font-weight:700;margin:0 0 18px}
.phero h1{font-size:clamp(38px,5.4vw,62px);line-height:1.06;color:#fff;margin:0}
.phero .rule{background:var(--gold);margin:24px auto 0}
.phero .plede{max-width:640px;margin:24px auto 0;font-size:18.5px;color:rgba(255,255,255,.9)}
@media(max-width:620px){.phero .inner{padding:52px 22px 46px}.phero .plede{font-size:17px}}

.crumb{background:var(--parchment);border-bottom:1px solid var(--stone);font-family:var(--sans);font-size:13px}
.crumb .wrap{padding:14px 28px}
.crumb a{color:var(--green);text-decoration:none;font-weight:600}
.crumb a:hover{text-decoration:underline}
.crumb span{color:var(--ink-soft);margin:0 8px}

/* sticky internal jump menu */
.jump{position:sticky;top:98px;z-index:60;background:#fff;border-bottom:1px solid var(--stone);
  box-shadow:0 2px 10px rgba(20,38,19,.05)}
.jump ul{list-style:none;margin:0 auto;padding:0 20px;max-width:1200px;display:flex;gap:2px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.jump li{flex:0 0 auto}
.jump a{display:block;padding:15px 16px;font-family:var(--sans);font-size:12.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);text-decoration:none;
  border-bottom:3px solid transparent;white-space:nowrap}
.jump a:hover{color:var(--green);border-bottom-color:var(--gold);background:var(--parchment)}

/* generic page section */
.entry{padding:76px 0}
.entry.tint{background:var(--parchment)}
.entry.stone{background:var(--stone)}
.entry h2{font-size:clamp(30px,3.8vw,44px);color:var(--green-deep);margin:0}
.entry h3{font-size:24px;color:var(--green-deep);margin:0}
.entry .lead{font-size:18.5px;color:var(--ink-soft);margin:20px 0 0;max-width:70ch}
.entry p{color:var(--ink-soft);margin:16px 0 0;max-width:70ch}
.entry ul.plain{margin:18px 0 0;padding-left:22px;color:var(--ink-soft);max-width:70ch}
.entry ul.plain li{margin:8px 0}
@media(max-width:620px){.entry{padding:52px 0}}

/* fact strip: times, place, who to call */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;
  background:var(--stone);border:1px solid var(--stone);margin-top:34px}
.fact{background:#fff;padding:22px 24px}
.entry.tint .fact,.entry.stone .fact{background:#fff}
.fact dt{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);margin:0 0 8px}
.fact dd{margin:0;font-family:var(--serif);font-size:20px;color:var(--green-deep);line-height:1.35}
.fact dd small{display:block;font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);margin-top:6px}
.fact dd a{color:var(--green);text-decoration:none;border-bottom:1px solid var(--gold)}

/* split: portrait or artwork beside copy */
.split{display:grid;grid-template-columns:0.85fr 1.15fr;gap:52px;align-items:start}
.split .shot{margin:0;border:1px solid var(--stone);background:#fff;padding:10px}
.split .shot img{display:block;width:100%;height:auto}
.split .shot figcaption{font-family:var(--sans);font-size:12.5px;color:var(--ink-soft);padding:10px 4px 2px}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:32px}}

/* person cards */
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--stone);
  border:1px solid var(--stone);margin-top:44px}
.person{background:#fff;padding:30px 26px;text-align:left}
.person .ph{width:96px;height:96px;border-radius:50%;object-fit:cover;display:block;margin-bottom:18px;
  background:var(--stone)}
.person .ph.empty{display:flex;align-items:center;justify-content:center;font-family:var(--serif);
  font-size:32px;color:var(--green);background:var(--parchment);border:1px solid var(--stone)}
.person h3{font-size:22px;margin:0}
.person .role{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);margin:8px 0 0}
.person a{display:inline-block;margin-top:12px;font-size:14.5px;color:var(--green);
  text-decoration:none;border-bottom:1px solid var(--gold);word-break:break-word}
@media(max-width:860px){.people{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.people{grid-template-columns:1fr}}

/* simple listing rows (bulletins, events) */
.rows{margin-top:38px;border-top:1px solid var(--stone)}
.row{display:grid;grid-template-columns:120px 1fr auto;gap:26px;align-items:center;padding:20px 0;
  border-bottom:1px solid var(--stone);text-decoration:none;color:inherit}
.row:hover{background:#fff}
.row .when{font-family:var(--serif);font-size:22px;color:var(--green-deep);line-height:1.2}
.row .when small{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--green);font-weight:700;margin-bottom:4px}
.row h3{font-size:21px;margin:0}
.row p{margin:5px 0 0;font-size:15px;color:var(--ink-soft)}
.row .go{font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  font-weight:700;color:var(--green);white-space:nowrap}
@media(max-width:760px){.row{grid-template-columns:92px 1fr;gap:16px}.row .go{grid-column:2}}

/* callout */
.callout{margin-top:34px;border-left:4px solid var(--gold);background:#fff;padding:24px 28px}
.entry.tint .callout{background:#fff}
.callout p{margin:0;max-width:none}
.callout p + p{margin-top:12px}

/* at-a-glance ministry index */
.azwrap{margin-top:34px}
.az{columns:4;column-gap:40px;list-style:none;margin:0;padding:0}
.az li{break-inside:avoid;margin:0 0 2px;padding:0}
.az a{display:block;padding:8px 10px;text-decoration:none;color:var(--green-deep);
  font-size:15.5px;border-bottom:1px solid transparent;border-radius:2px}
.az a:hover{background:#fff;border-bottom-color:var(--gold);color:var(--green)}
.az a .tag{float:right;font-family:var(--sans);font-size:9.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);padding-top:5px}
@media(max-width:1100px){.az{columns:3}}
@media(max-width:760px){.az{columns:2;column-gap:24px}.az a{font-size:15px;padding:9px 8px}}
@media(max-width:430px){.az{columns:1}.az a{border-bottom:1px solid var(--stone);border-radius:0}}

/* simplified two-column footer */
footer .grid.two{grid-template-columns:1fr 1.35fr;gap:56px}
footer ul.twocol{columns:2;column-gap:32px}
footer ul.twocol li{break-inside:avoid}
@media(max-width:860px){footer .grid.two{grid-template-columns:1fr;gap:38px}}
@media(max-width:520px){footer ul.twocol{columns:1}}

/* single-scroll alphabetical directory */
.dirlist{margin-top:40px;border-top:1px solid var(--stone)}
.dirrow{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:baseline;
  padding:18px 6px;border-bottom:1px solid var(--stone);text-decoration:none;color:inherit}
.dirrow:hover{background:#fff}
.dirrow .nm{font-family:var(--serif);font-size:23px;color:var(--green-deep);line-height:1.25}
.dirrow .ds{display:block;font-family:var(--sans);font-size:14.5px;color:var(--ink-soft);
  margin-top:5px;line-height:1.5}
.dirrow .go{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--green);white-space:nowrap;border-bottom:2px solid var(--gold);
  padding-bottom:3px}
.dirrow:hover .go{color:var(--green-deep)}
@media(max-width:620px){
  .dirrow{grid-template-columns:1fr;gap:0;padding:16px 4px}
  .dirrow .nm{font-size:21px}
  .dirrow .go{margin-top:10px;display:inline-block}
}

/* ---- bulletin shelf + CSS-only PDF reader ---- */
.shelf{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:44px}
.bul{margin:0}

.bul .cov{position:relative;display:block;text-decoration:none;border:1px solid var(--stone);background:#fff;padding:8px;
  box-shadow:0 2px 10px rgba(20,38,19,.07);transition:transform .25s ease,box-shadow .25s ease}
.bul .cov:hover{transform:translateY(-4px);box-shadow:0 10px 26px rgba(20,38,19,.16)}
.bul .cov img{display:block;width:100%;height:auto}
.bul .cov .open{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  background:var(--green-deep);color:#fff;font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:10px 16px;opacity:0;transition:opacity .25s ease;
  white-space:nowrap}
.bul .cov:hover .open{opacity:1}
.bul .cap{margin:14px 2px 0}
.bul .cap b{display:block;font-family:var(--serif);font-size:20px;color:var(--green-deep);font-weight:600}
.bul .cap span{display:block;font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin-top:4px}
.bul .cap a{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--green);text-decoration:none;border-bottom:2px solid var(--gold);
  padding-bottom:2px;display:inline-block;margin-top:10px}
@media(max-width:1000px){.shelf{grid-template-columns:1fr 1fr;gap:22px}}
@media(max-width:520px){.shelf{grid-template-columns:1fr;gap:30px}}






/* ============ SITE MENU (hamburger, desktop and mobile) ============ */
nav.sitemenu{display:none;border-top:1px solid var(--stone);background:#fff;
  box-shadow:0 14px 30px rgba(20,38,19,.12)}
.menutoggle:checked ~ nav.sitemenu{display:block}
nav.sitemenu .wrap{padding-top:30px;padding-bottom:34px}
nav.sitemenu .cols{display:grid;grid-template-columns:repeat(4,1fr);gap:34px}
nav.sitemenu .menuhead{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold);margin:0 0 14px;padding-bottom:10px;
  border-bottom:1px solid var(--stone)}
nav.sitemenu ul{list-style:none;margin:0;padding:0}
nav.sitemenu li{margin:0}
nav.sitemenu a{display:block;padding:7px 0;text-decoration:none;color:var(--green-deep);
  font-size:16px;line-height:1.35}
nav.sitemenu a:hover{color:var(--green);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--gold)}
@media(max-width:900px){nav.sitemenu .cols{grid-template-columns:1fr 1fr;gap:26px}}
@media(max-width:560px){
  nav.sitemenu .cols{grid-template-columns:1fr;gap:22px}
  nav.sitemenu .wrap{padding-top:22px;padding-bottom:26px}
  nav.sitemenu a{padding:9px 0;font-size:17px}
}

/* ============ STICKY NEWSLETTER BAR ============ */
.nlbar{position:fixed;left:0;right:0;bottom:0;z-index:200;display:flex;align-items:center;
  justify-content:center;gap:14px;padding:13px 20px;background:var(--green-deep);color:#fff;
  text-decoration:none;border-top:2px solid var(--gold);box-shadow:0 -4px 18px rgba(20,38,19,.22)}
.nlbar:hover{background:var(--green-ink)}
.nlbar svg{width:22px;height:22px;stroke:var(--gold);stroke-width:1.6;fill:none;flex:0 0 auto}
.nlbar span{display:block;text-align:left}
.nlbar strong{display:block;font-family:var(--sans);font-size:14px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;line-height:1.2}
.nlbar small{display:block;font-family:var(--sans);font-size:12.5px;color:rgba(242,233,210,.82);
  margin-top:3px}
body{padding-bottom:74px}
@media(max-width:620px){
  .nlbar{gap:11px;padding:11px 14px}
  .nlbar strong{font-size:12.5px;letter-spacing:.06em}
  .nlbar small{font-size:11px;margin-top:2px}
  body{padding-bottom:70px}
}
@media(max-width:400px){.nlbar small{display:none}body{padding-bottom:54px}}
.callout h3{font-size:21px;color:var(--green-deep);margin:0 0 10px}
.callout .btns{margin-top:20px}

/* homepage only: the section row under the header */
nav.main{border-top:1px solid var(--stone)}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;align-items:stretch}
nav.main li{flex:1}
nav.main a{display:block;padding:14px 8px 15px;text-align:center;text-decoration:none;color:var(--green-deep);border-left:1px solid var(--stone)}
nav.main li:first-child a{border-left:0}
nav.main a strong{display:block;font-family:var(--sans);font-size:15px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--green)}
nav.main a span{display:block;font-size:12px;color:var(--ink-soft);margin-top:2px}
nav.main a:hover{background:#fff}
nav.main a:hover strong{color:var(--green-deep)}
.menutoggle:checked ~ nav.main{display:none}
@media(max-width:760px){nav.main a span{display:none}nav.main a{padding:12px 6px}nav.main a strong{font-size:13px;letter-spacing:.1em}}
@media(max-width:480px){nav.main{display:none}}

/* ---- header: exactly two shapes, so the sticky jump strip has a known offset ----
   Wide (>1100px): one row, logo + four actions + menu.
   Narrow: row one is logo + menu, row two is the action chips, which scroll
   sideways if they run out of room. The 1100px switch is where the four chips
   plus the menu button stop fitting beside the logo. */
@media(max-width:1100px){
  .toprow{flex-wrap:wrap;row-gap:0;padding:12px 0 0}
  .toprow > a:first-child{order:1}
  .toprow img.logo{height:44px}
  label.menubtn{order:2;padding:6px 0}
  .actions{order:3;flex:1 0 100%;justify-content:flex-start;gap:8px;
           padding:10px 0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .act{flex:0 0 auto;padding:8px 13px}
  .act span{display:none}
  .act strong{font-size:13px}
}
@media(max-width:620px){
  .toprow{padding:10px 0 0}
  .toprow img.logo{height:38px}
  .act{padding:7px 11px}
  .act strong{font-size:12px}
}
@media(max-width:430px){
  .toprow img.logo{height:32px}
  label.menubtn{font-size:11.5px;gap:8px}
}

/* The jump strip is sticky only where the header is a stable 89px. Below that it
   is static: a sticky header plus a sticky strip eats too much of a small screen. */
.jump{position:sticky;top:89px}
@media(max-width:1100px){.jump{position:static;top:auto}}

/* event location line */
.row p.where,.ev p.where{margin:6px 0 0;font-family:var(--sans);font-size:12.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}

/* footer section headings are h2 for document structure, styled as small caps */
footer h2.foothead{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.2em;color:#E4D5A8;
  text-transform:uppercase;color:#F2E9D2;margin:0 0 16px}

/* Keyboard focus: one clear, consistent ring everywhere. :focus-visible so it
   appears for keyboard users without ringing every mouse click. */
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px}
.nlbar:focus-visible,.act:focus-visible,.btn:focus-visible{outline-offset:2px}
.divider a:focus-visible,.phero a:focus-visible,footer a:focus-visible,.nlbar:focus-visible{outline-color:#F2E9D2}

/* the hidden checkbox drives the menu, so mirror its focus onto the visible label */
.menutoggle:focus-visible ~ .wrap .menubtn{outline:3px solid var(--gold);outline-offset:3px}
