:root{
  --blue:#0b4668;--blue-dark:#07334d;--blue-deep:#052a40;--red:#c51845;--red-dark:#9f1237;
  --cream:#f6f2e9;--sand:#e7dcc9;--paper:#fff;--ink:#24323b;--muted:#62717b;--line:#e4e7e8;
  --shadow:0 24px 70px rgba(5,42,64,.14);--shadow-soft:0 12px 35px rgba(5,42,64,.09);--radius:26px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.68}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.container{width:min(1180px,calc(100% - 42px));margin:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;top:8px;z-index:999;background:#fff;padding:10px 14px;border-radius:8px}.skip-link:focus{left:8px}

/* HEADER */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(11,70,104,.08);backdrop-filter:blur(14px)}.nav-wrap{min-height:132px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;min-width:390px;flex:0 0 auto}.brand-logo{width:390px;height:112px;object-fit:contain;object-position:left center}.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.site-nav a{font-weight:700;font-size:.93rem;padding:11px 11px;border-radius:999px;color:#314852;transition:.2s}.site-nav a:hover,.site-nav a.active{background:#edf4f7;color:var(--blue)}.site-nav a:last-child{background:var(--red);color:#fff;padding-inline:17px;margin-left:3px}.site-nav a:last-child:hover,.site-nav a:last-child.active{background:var(--red-dark);color:#fff}.menu-toggle{display:none;border:0;background:transparent;padding:8px}.menu-toggle span:not(.sr-only){display:block;width:27px;height:2px;background:var(--blue);margin:5px}

/* TYPE + BUTTONS */
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;line-height:1.06;color:var(--blue-dark);margin:0 0 18px}h1{font-size:clamp(3.3rem,6.4vw,6.4rem);letter-spacing:-.05em}h2{font-size:clamp(2.35rem,4.2vw,4rem);letter-spacing:-.035em}h3{font-size:1.42rem}.eyebrow{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:800;color:var(--red)}.eyebrow:before{content:"";width:28px;height:2px;background:currentColor}.eyebrow.light{color:#fff}.lead{font-size:1.19rem;color:#42555f}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:29px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border-radius:999px;border:1px solid transparent;font-weight:800;transition:.2s;cursor:pointer}.btn:hover{transform:translateY(-1px)}.btn-red,.btn-primary{background:var(--red);color:#fff}.btn-red:hover,.btn-primary:hover{background:var(--red-dark)}.btn-ghost{border-color:rgba(255,255,255,.58);color:#fff;background:rgba(255,255,255,.08)}.btn-white{background:#fff;color:var(--blue-dark)}.btn-outline-white{border-color:rgba(255,255,255,.55);color:#fff}.btn-secondary{border-color:#b6c4ca;background:#fff;color:var(--blue-dark)}.text-link,.link-arrow{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font-weight:800;color:var(--red)}

/* HOME HERO */
.home-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--blue-deep) 0%,var(--blue) 58%,#2d6985 100%);color:#fff;padding:72px 0 84px}.home-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 9% 20%,rgba(255,255,255,.10),transparent 26%),radial-gradient(circle at 83% 80%,rgba(197,24,69,.25),transparent 25%)}.home-hero-grid{position:relative;display:grid;grid-template-columns:.92fr 1.08fr;gap:64px;align-items:center}.hero-copy h1{color:#fff;margin-top:17px}.hero-copy h1 em{font-weight:600;color:#f4c7d3}.hero-copy>p{font-size:1.16rem;max-width:650px;color:#e1edf2}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:46px}.hero-meta div{border-top:1px solid rgba(255,255,255,.28);padding-top:16px}.hero-meta strong{display:block;color:#fff;font-size:1.03rem}.hero-meta span{display:block;color:#c7dce5;font-size:.79rem;margin-top:3px}.photo-collage{position:relative;min-height:610px}.photo-main{margin:0;position:absolute;inset:20px 30px 0 34px;border-radius:34px;overflow:hidden;box-shadow:0 34px 90px rgba(0,0,0,.28);border:8px solid rgba(255,255,255,.93);background:#dce7eb}.photo-main img{width:100%;height:100%;object-fit:cover;object-position:center}.photo-main:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(4,29,44,.58))}.photo-main figcaption{position:absolute;z-index:2;left:24px;bottom:20px;color:#fff;font-weight:700;font-size:.92rem}.photo-small{margin:0;position:absolute;right:-10px;bottom:-28px;width:42%;background:#fff;padding:8px;border-radius:21px;box-shadow:0 18px 50px rgba(0,0,0,.25);transform:rotate(2deg)}.photo-small img{width:100%;aspect-ratio:1.25/1;object-fit:cover;border-radius:14px}.photo-small span{display:block;color:var(--blue-dark);font-size:.78rem;font-weight:800;padding:8px 7px 5px}.quickbar{background:#fff;box-shadow:0 18px 60px rgba(5,42,64,.08);position:relative;z-index:3}.quickbar-grid{display:grid;grid-template-columns:repeat(4,1fr)}.quickbar a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;padding:25px 26px;border-right:1px solid var(--line);column-gap:14px;transition:.2s}.quickbar a:last-child{border-right:0}.quickbar a:hover{background:#f7fafb}.quickbar a>span{grid-row:1/3;font-family:'Playfair Display';font-size:1.4rem;color:#c5d5dd}.quickbar strong{color:var(--blue-dark)}.quickbar small{color:var(--muted)}

/* SECTIONS */
.section{padding:94px 0}.section-soft{background:var(--cream)}.section-dark{background:var(--blue-deep);color:#d9e8ee}.section-dark h2,.section-dark h3{color:#fff}.section-heading{max-width:760px;margin-bottom:42px}.section-heading.centered{text-align:center;margin:0 auto 48px}.section-heading.centered .eyebrow{justify-content:center}.section-heading p{font-size:1.08rem;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}.wide-gap{gap:78px}.intro-section{background:#fff}.intro-section p{color:#53636b}.mission-panel{background:var(--cream);border-radius:32px;padding:38px;box-shadow:inset 0 0 0 1px #eee5d8}.mission-kicker{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:800;color:var(--red);margin-bottom:20px}.mission-steps{display:grid;gap:4px}.mission-steps>div{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:center;padding:17px 0;border-top:1px solid #dfd7c9}.mission-steps b{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff}.mission-steps p{margin:0}.mission-steps strong,.mission-steps span{display:block}.mission-steps strong{color:var(--blue-dark);font-size:1.02rem}.mission-steps span{color:#6d756f;font-size:.9rem}.mission-panel>a{display:inline-block;margin-top:20px;font-weight:800;color:var(--red)}
.photo-story{background:#f7fafb}.story-grid{display:grid;grid-template-columns:1.35fr .825fr .825fr;gap:20px}.story-card{border-radius:28px;overflow:hidden;box-shadow:var(--shadow-soft);min-height:370px;background:#fff}.story-card.large{position:relative;min-height:450px}.story-card.large img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.story-card.large:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(4,31,47,.9))}.story-card.large>div{position:absolute;z-index:2;left:30px;right:30px;bottom:28px;color:#fff}.story-card span{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800;margin-bottom:10px}.story-card.large h3{color:#fff;font-size:2rem}.story-card.large p{color:#e3edf2}.story-card a{font-weight:800}.story-color{height:100%;padding:34px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff}.story-color h3{color:#fff;font-size:2rem}.story-color p{color:rgba(255,255,255,.86)}.story-color.red{background:linear-gradient(145deg,#a71337,var(--red))}.story-color.blue{background:linear-gradient(145deg,var(--blue-deep),#176186)}
.message-section{background:#fff}.message-card{padding:48px;border-radius:32px;background:linear-gradient(145deg,var(--blue-deep),#0f5b83);color:#fff;box-shadow:var(--shadow)}.message-card h2{color:#fff}.message-card p{color:#d5e6ed}.sunday-card{border-radius:32px;padding:48px;background:var(--cream);position:relative;overflow:hidden}.sunday-card:after{content:"10";position:absolute;right:-5px;bottom:-72px;font-family:'Playfair Display';font-size:220px;color:rgba(11,70,104,.05);font-weight:700}.sunday-card small{text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--red)}.sunday-card>strong{display:block;font-family:'Playfair Display';font-size:3.8rem;line-height:1;color:var(--blue);margin:12px 0 18px}.sunday-card a{font-weight:800;color:var(--red)}

/* INNER HERO */
.page-hero-v2{padding:58px 0;background:linear-gradient(120deg,var(--blue-deep),var(--blue));color:#fff;overflow:hidden}.page-hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:52px;align-items:center}.page-hero-copy h1{font-size:clamp(3.2rem,5.6vw,5.4rem);color:#fff;margin-top:15px}.page-hero-copy p{font-size:1.15rem;color:#dceaf0;max-width:650px}.page-hero-image{position:relative;border-radius:28px;overflow:hidden;border:7px solid rgba(255,255,255,.94);box-shadow:0 30px 80px rgba(0,0,0,.24);height:390px}.page-hero-image img{width:100%;height:100%;object-fit:cover}.page-hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(2,25,38,.62))}.page-hero-image span{position:absolute;z-index:2;left:20px;bottom:16px;color:#fff;font-size:.82rem;font-weight:800}.photo-ribbon{padding:0 0 92px;background:#fff}.photo-ribbon-inner{background:var(--blue-deep);border-radius:34px;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;align-items:stretch;box-shadow:var(--shadow)}.photo-ribbon-inner>img{width:100%;height:100%;min-height:360px;object-fit:cover}.photo-ribbon-inner>div{padding:46px;color:#fff}.photo-ribbon h2{color:#fff}.photo-ribbon p{color:#d5e5ec}

/* LEGACY CONTENT SUPPORT */
.prose{max-width:860px}.prose h2{margin-top:48px;font-size:2.45rem}.prose h3{margin-top:32px}.prose p,.prose li{font-size:1.04rem;color:#4c5c64}.prose ul{padding-left:1.2rem}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-soft)}.card-icon{width:49px;height:49px;border-radius:16px;background:#fceaf0;color:var(--red);display:grid;place-items:center;font-weight:800;margin-bottom:20px}.card p{color:var(--muted)}.quote-panel{background:var(--blue-deep);color:#fff;padding:46px;border-radius:30px;box-shadow:var(--shadow)}.quote-panel h3{color:#f3b6c7;font-family:'DM Sans';text-transform:uppercase;letter-spacing:.14em;font-size:.8rem}.quote-panel blockquote{font-family:'Playfair Display';font-size:1.9rem;line-height:1.32;margin:0 0 14px}.quote-panel cite{color:#cddfe6;font-style:normal}.history-timeline{border-left:2px solid #d8e1e5;margin:35px 0;padding-left:28px}.timeline-item{position:relative;margin-bottom:32px}.timeline-item:before{content:"";position:absolute;left:-36px;top:7px;width:14px;height:14px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:0 0 0 2px #d8e1e5}.timeline-item strong{color:var(--red)}.schedule{display:grid;gap:14px}.schedule-item{display:grid;grid-template-columns:155px 1fr;gap:22px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(5,42,64,.04)}.schedule-time{font-weight:800;color:var(--red)}.schedule-item h3{font-family:'DM Sans';font-size:1.05rem;margin:0 0 4px}.schedule-item p{margin:0;color:var(--muted)}.media-card{min-height:280px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;background:linear-gradient(145deg,var(--blue-deep),#0e628d);color:#fff}.media-card h3,.media-card p{color:#fff}.media-card .btn{align-self:flex-start;background:#fff;color:var(--blue-dark)}.tag{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fbeaf0;color:var(--red-dark);font-size:.75rem;font-weight:800;margin-bottom:13px}.giving-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.giving-card{border:1px solid var(--line);border-radius:24px;padding:30px;background:#fff;box-shadow:var(--shadow-soft)}.giving-card.featured{background:var(--blue-deep);color:#fff}.giving-card.featured h3,.giving-card.featured p{color:#fff}.donation-group{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.donation-group .btn{min-height:44px;padding-inline:15px}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:42px}.contact-card{background:linear-gradient(145deg,var(--blue-deep),var(--blue));color:#fff;border-radius:30px;padding:38px;box-shadow:var(--shadow)}.contact-card h2,.contact-card h3{color:#fff}.contact-card a{color:#fff;text-decoration:underline;text-underline-offset:4px}.form-card{border:1px solid var(--line);border-radius:30px;padding:38px;background:#fff;box-shadow:var(--shadow-soft)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{margin-bottom:16px}.field.full{grid-column:1/-1}.field label{display:block;font-weight:800;color:var(--blue-dark);margin-bottom:7px}.field input,.field textarea,.field select{width:100%;border:1px solid #ccd6da;border-radius:12px;padding:13px 14px;background:#fbfcfc;color:var(--ink);outline:none}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,70,104,.09)}.notice{padding:14px 16px;border-radius:12px;margin-bottom:20px}.notice.success{background:#e7f4eb;color:#2f6841}.notice.error{background:#fdebec;color:#902d38}.hp{position:absolute;left:-9999px}.cta{padding:44px;border-radius:30px;background:linear-gradient(120deg,var(--red-dark),var(--red));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{color:#fff;font-size:2.5rem;margin-bottom:8px}.cta p{margin:0;color:#fae3ea}.cta .btn{background:#fff;color:var(--red-dark)}.map-card{border-radius:24px;background:#edf4f7;padding:28px;border:1px solid #d9e4e9}.legacy-box{border:1px dashed #c9d1d4;border-radius:20px;padding:25px;background:#fbfcfc}.mini-note{font-size:.9rem;color:var(--muted)}
.photo-feature{display:grid;grid-template-columns:1.07fr .93fr;gap:48px;align-items:center;margin-bottom:70px}.photo-frame{position:relative}.photo-frame img{width:100%;height:430px;object-fit:cover;border-radius:28px;box-shadow:var(--shadow);border:7px solid #fff}.photo-copy p{color:var(--muted);font-size:1.08rem}.worship-photo-band{padding:0 0 25px;background:#f5f8f9}.wide-photo-card{position:relative;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);border:7px solid #fff}.wide-photo-card img{width:100%;height:420px;object-fit:cover}.wide-photo-overlay{position:absolute;left:22px;right:22px;bottom:22px;padding:18px 22px;border-radius:16px;background:rgba(5,42,64,.90);color:#fff;display:flex;justify-content:space-between;gap:18px}.wide-photo-overlay strong{font-family:'Playfair Display';font-size:1.5rem}.wide-photo-overlay span{color:#dfeaf0}

/* FOOTER */
.site-footer{background:#031f30;color:#d6e5eb;padding:62px 0 22px}.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:54px}.footer-logo{display:inline-flex;background:#fff;border-radius:16px;padding:8px 12px}.footer-logo img{width:330px;height:150px;object-fit:contain}.footer-brand-block p{max-width:380px;color:#9fb7c2}.site-footer h3{font-family:'DM Sans';font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:#f4b8c8}.site-footer a{color:#eef6f9}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;margin-top:45px;display:flex;justify-content:space-between;gap:20px;font-size:.83rem;color:#829eaa}

/* Responsive */
@media(max-width:1050px){.brand{min-width:292px}.brand-logo{width:292px;height:92px}.site-nav a{padding:10px 9px;font-size:.88rem}.home-hero-grid{gap:38px}.photo-collage{min-height:540px}.story-grid{grid-template-columns:1.2fr .8fr}.story-card:nth-child(3){grid-column:1/-1;min-height:250px}}
@media(max-width:900px){.menu-toggle{display:block}.nav-wrap{min-height:104px}.brand{min-width:0}.brand-logo{width:300px;height:88px}.site-nav{display:none;position:absolute;left:20px;right:20px;top:104px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:10px;flex-direction:column;align-items:stretch}.site-nav.open{display:flex}.site-nav a{width:100%;text-align:left;border-radius:10px}.site-nav a:last-child{margin-left:0}.home-hero-grid,.page-hero-grid,.split,.contact-grid,.photo-ribbon-inner{grid-template-columns:1fr}.photo-collage{min-height:560px;max-width:690px}.quickbar-grid{grid-template-columns:1fr 1fr}.quickbar a:nth-child(2){border-right:0}.quickbar a:nth-child(-n+2){border-bottom:1px solid var(--line)}.cards-3,.giving-grid{grid-template-columns:1fr 1fr}.story-grid{grid-template-columns:1fr 1fr}.story-card.large{grid-column:1/-1}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand-block{grid-column:1/-1}.page-hero-image{height:360px}.photo-ribbon-inner>img{min-height:320px}}
@media(max-width:620px){.container{width:min(100% - 28px,1180px)}.nav-wrap{min-height:92px}.brand{min-width:0}.brand-logo{width:245px;height:78px}.site-nav{top:92px}.home-hero{padding:48px 0 70px}.hero-copy h1{font-size:3.55rem}.hero-meta{grid-template-columns:1fr;gap:10px}.hero-meta div{display:flex;justify-content:space-between;gap:12px}.photo-collage{min-height:410px}.photo-main{inset:12px 10px 0}.photo-small{width:45%;right:0;bottom:-20px}.quickbar-grid{grid-template-columns:1fr}.quickbar a{border-right:0;border-bottom:1px solid var(--line)!important}.section{padding:70px 0}.wide-gap{gap:36px}.mission-panel{padding:28px}.story-grid,.cards-3,.giving-grid,.footer-grid{grid-template-columns:1fr}.story-card.large{min-height:400px}.story-card:nth-child(3){grid-column:auto}.page-hero-v2{padding:42px 0 52px}.page-hero-copy h1{font-size:3.5rem}.page-hero-image{height:300px}.photo-ribbon{padding-bottom:70px}.photo-ribbon-inner>div{padding:30px}.photo-ribbon-inner>img{min-height:250px}.schedule-item{grid-template-columns:1fr;gap:5px}.form-grid{grid-template-columns:1fr}.cta{flex-direction:column;align-items:flex-start;padding:32px}.photo-feature{grid-template-columns:1fr;gap:28px}.photo-frame img{height:310px}.wide-photo-overlay{display:block;left:12px;right:12px;bottom:12px}.footer-brand-block{grid-column:auto}.footer-logo img{width:255px;height:120px}.footer-bottom{flex-direction:column}}

/* V3 schedule + link usability */
.schedule-highlight{border-color:rgba(197,24,69,.35);background:linear-gradient(135deg,#fff,#fff8fa);box-shadow:0 12px 30px rgba(197,24,69,.08)}
.schedule-highlight .schedule-time{font-size:1rem}
.schedule-link{display:inline-flex;margin-top:9px;font-weight:800;color:var(--red);text-decoration:underline;text-underline-offset:3px}
.calendar-note{display:inline-block;margin-top:8px;font-size:.9rem;font-weight:700;color:var(--blue)}
.site-nav a,.quickbar a,.btn,.text-link,.link-arrow,.schedule-link,.site-footer a{cursor:pointer}
.brand-logo{filter:none}

/* V6 GroupMe connection callouts */
.groupme-strip{padding:44px 0;background:#fff}
.groupme-card{display:grid;grid-template-columns:82px 1fr auto;gap:28px;align-items:center;padding:30px 34px;border:1px solid #d8e3e8;border-radius:28px;background:linear-gradient(135deg,#f8fbfc 0%,#fff 55%,#fff4f7 100%);box-shadow:var(--shadow-soft)}
.groupme-mark{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:var(--blue);color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:2.35rem;font-weight:700;box-shadow:0 12px 30px rgba(11,70,104,.2)}
.groupme-copy h2{font-size:2.35rem;margin:8px 0 7px}
.groupme-copy p{margin:0;max-width:720px;color:var(--muted)}
.groupme-action{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:280px}
.groupme-action .btn{text-align:center;width:100%}
.groupme-action small{color:var(--muted);font-size:.78rem}
.contact-groupme{margin:26px 0 4px;padding:24px;border-radius:20px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.2)}
.contact-groupme>span{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:800;color:#f4b8c8;margin-bottom:8px}
.contact-groupme h3{margin:0 0 9px;font-family:'DM Sans',system-ui,sans-serif;font-size:1.16rem}
.contact-groupme p{margin:0 0 18px;color:#e2edf2}
.contact-groupme .btn{text-decoration:none;color:var(--blue-dark)}
@media(max-width:900px){.groupme-card{grid-template-columns:72px 1fr}.groupme-action{grid-column:1/-1;align-items:flex-start;min-width:0}.groupme-action .btn{width:auto}}
@media(max-width:620px){.groupme-strip{padding:28px 0}.groupme-card{grid-template-columns:1fr;padding:26px}.groupme-mark{width:58px;height:58px;border-radius:18px;font-size:1.9rem}.groupme-copy h2{font-size:2rem}.groupme-action .btn{width:100%}}

/* V7 homepage info links + footer contrast logo */
.hero-info-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:32px}
.hero-info-card{display:flex;flex-direction:column;min-height:132px;padding:20px 18px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(255,255,255,.08);color:#fff;text-decoration:none;transition:transform .2s ease,background .2s ease,border-color .2s ease;backdrop-filter:blur(5px)}
.hero-info-card:hover{transform:translateY(-3px);background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.34)}
.hero-info-label{display:block;margin-bottom:10px;color:#f4b8c8;font-size:.76rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.hero-info-card strong{display:block;color:#fff;font-size:1.05rem;line-height:1.25;margin-bottom:auto}
.hero-info-card small{display:block;margin-top:13px;color:#dce8ed;font-size:.82rem;font-weight:700}
.hero-info-card small b{font-size:1rem;margin-left:3px}
.footer-logo{background:transparent;border-radius:0;padding:0}
.footer-logo img{width:360px;height:auto;max-height:155px;object-fit:contain;object-position:left center}
@media(max-width:900px){.hero-info-links{grid-template-columns:1fr 1fr}.hero-info-card:last-child{grid-column:1/-1}.footer-logo img{width:330px}}
@media(max-width:620px){.hero-info-links{grid-template-columns:1fr}.hero-info-card:last-child{grid-column:auto}.hero-info-card{min-height:0}.footer-logo img{width:min(100%,310px)}}
.hero-info-links .hero-info-label{color:#f4b8c8;margin:0 0 10px;font-size:.76rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.hero-info-links .hero-info-card small{color:#dce8ed;margin-top:13px}

/* V8 unified homepage next-step section */
.home-start{position:relative;z-index:5;margin-top:-34px;padding:0 0 26px;background:linear-gradient(to bottom,transparent 34px,#fff 34px)}
.home-start-shell{overflow:hidden;border:1px solid #dbe4e8;border-radius:30px;background:#fff;box-shadow:0 24px 70px rgba(5,42,64,.14)}
.home-start-heading{display:grid;grid-template-columns:.72fr 1.15fr 1.4fr;gap:26px;align-items:center;padding:28px 32px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,#f8fbfc 0%,#fff 62%,#fff7f9 100%)}
.home-start-heading .eyebrow{margin:0}.home-start-heading h2{font-family:'DM Sans',system-ui,sans-serif;font-size:clamp(1.55rem,2.4vw,2.2rem);letter-spacing:-.025em;margin:0;color:var(--blue-dark)}
.home-start-heading p{margin:0;color:var(--muted);font-size:.96rem;line-height:1.55}
.home-start-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.home-start-card{position:relative;display:grid;grid-template-columns:auto 1fr;gap:15px;min-height:245px;padding:28px 24px 25px;border-right:1px solid var(--line);background:#fff;transition:transform .22s ease,background .22s ease,box-shadow .22s ease;isolation:isolate}
.home-start-card:last-child{border-right:0}
.home-start-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .22s ease;z-index:-1}
.home-start-card:nth-child(2):before{background:var(--red)}
.home-start-card:nth-child(3):before{background:#486f82}
.home-start-card:nth-child(4):before{background:var(--red-dark)}
.home-start-card:hover{background:#f9fbfc;transform:translateY(-4px);box-shadow:0 15px 34px rgba(5,42,64,.08)}
.home-start-card:hover:before{transform:scaleX(1)}
.home-start-number{font-family:'Playfair Display',Georgia,serif;font-size:1.55rem;line-height:1;color:#bdcdd4;padding-top:4px}
.home-start-content{display:flex;flex-direction:column;min-width:0}
.home-start-kicker{display:block;color:var(--red);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;line-height:1.35}
.home-start-card:nth-child(1) .home-start-kicker,.home-start-card:nth-child(3) .home-start-kicker{color:var(--blue)}
.home-start-card h3{font-family:'DM Sans',system-ui,sans-serif;font-size:1.18rem;line-height:1.2;margin:0 0 11px;color:var(--blue-dark)}
.home-start-card p{margin:0 0 19px;color:var(--muted);font-size:.9rem;line-height:1.55}
.home-start-link{display:inline-flex;align-items:center;gap:6px;margin-top:auto;color:var(--blue);font-size:.86rem;font-weight:800}
.home-start-card:nth-child(2) .home-start-link,.home-start-card:nth-child(4) .home-start-link{color:var(--red)}
.home-start-link b{font-size:1rem;transition:transform .2s ease}.home-start-card:hover .home-start-link b{transform:translateX(3px)}
@media(max-width:980px){.home-start-heading{grid-template-columns:1fr 1.5fr}.home-start-heading p{grid-column:1/-1}.home-start-grid{grid-template-columns:1fr 1fr}.home-start-card:nth-child(2){border-right:0}.home-start-card:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:620px){.home-start{margin-top:-22px;padding-bottom:18px;background:linear-gradient(to bottom,transparent 22px,#fff 22px)}.home-start-shell{border-radius:22px}.home-start-heading{grid-template-columns:1fr;gap:9px;padding:24px 22px}.home-start-heading p{grid-column:auto}.home-start-grid{grid-template-columns:1fr}.home-start-card{min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:23px 22px}.home-start-card:last-child{border-bottom:0}.home-start-card:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* V9 contact layout + Be Third integrated into About */
.contact-side{display:grid;gap:22px;align-self:start}
.contact-info-card{padding:38px}
.contact-info-card>.eyebrow{margin-bottom:12px}
.contact-address{font-size:1.04rem;color:#e4eef2;margin:0 0 24px}
.contact-detail{padding:18px 0;border-top:1px solid rgba(255,255,255,.16)}
.contact-detail span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:#f4b8c8;margin-bottom:6px}
.contact-detail strong{display:block;color:#fff;font-size:1.35rem}
.contact-detail p{margin:0;color:#e4eef2}
.contact-card .contact-map-btn{margin-top:22px;text-decoration:none;color:var(--blue-dark);width:100%;gap:10px;box-shadow:0 10px 24px rgba(0,0,0,.12)}
.contact-card .contact-map-btn:hover{color:var(--blue-dark);background:#f8fbfc}
.contact-groupme-card{display:grid;grid-template-columns:64px 1fr;gap:20px;align-items:start;padding:28px;border:1px solid #d8e3e8;border-radius:26px;background:linear-gradient(135deg,#f8fbfc 0%,#fff 60%,#fff4f7 100%);box-shadow:var(--shadow-soft)}
.contact-groupme-mark{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:var(--blue);color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:1.9rem;font-weight:700;box-shadow:0 10px 24px rgba(11,70,104,.18)}
.contact-groupme-card .eyebrow{margin-bottom:8px}
.contact-groupme-card h3{font-family:'DM Sans',system-ui,sans-serif;font-size:1.25rem;margin:0 0 9px}
.contact-groupme-card p{margin:0 0 18px;color:var(--muted)}
.contact-groupme-card .btn{min-height:46px;padding-inline:18px}
.be-third-about{background:linear-gradient(180deg,#fff 0%,#f6f2e9 100%);scroll-margin-top:160px}
.be-third-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:stretch;margin-bottom:56px}
.be-third-copy{padding:34px;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow-soft)}
.be-third-copy h3{font-size:2rem}
.be-third-copy p{color:var(--muted)}
.be-third-steps{background:var(--blue-deep);border-radius:28px;padding:28px 32px;box-shadow:var(--shadow);display:grid;align-content:center}
.be-third-steps>div{display:grid;grid-template-columns:52px 1fr;gap:15px;align-items:center;padding:18px 0;border-top:1px solid rgba(255,255,255,.14)}
.be-third-steps>div:first-child{border-top:0}
.be-third-steps b{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--blue-deep)}
.be-third-steps p{margin:0}.be-third-steps strong,.be-third-steps span{display:block}.be-third-steps strong{color:#fff;font-size:1.03rem}.be-third-steps span{color:#cbdde5;font-size:.9rem;margin-top:2px}
.be-third-ministry-heading{margin-top:0;margin-bottom:28px}.be-third-ministry-heading h3{font-size:2.2rem;margin-top:9px}
.be-third-ministry-grid .card{box-shadow:none;background:rgba(255,255,255,.82)}
.be-third-cta{margin-top:30px;padding:28px 30px;border-radius:24px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:28px}
.be-third-cta h3{font-family:'DM Sans',system-ui,sans-serif;font-size:1.35rem;margin:8px 0 0}
@media(max-width:900px){.be-third-intro{grid-template-columns:1fr}.contact-groupme-card{grid-template-columns:56px 1fr}}
@media(max-width:620px){.contact-groupme-card{grid-template-columns:1fr;padding:24px}.be-third-copy,.be-third-steps{padding:25px}.be-third-cta{align-items:flex-start;flex-direction:column;padding:25px}.be-third-about{scroll-margin-top:130px}}

/* V10 single homepage church image */
.hero-photo-single{
  position:relative;
  margin:0;
  min-height:560px;
  border-radius:34px;
  overflow:hidden;
  border:8px solid rgba(255,255,255,.94);
  box-shadow:0 34px 90px rgba(0,0,0,.28);
  background:#dce7eb;
}
.hero-photo-single img{
  width:100%;
  height:100%;
  min-height:560px;
  object-fit:cover;
  object-position:center;
}
.hero-photo-single:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 58%,rgba(4,29,44,.62));
  pointer-events:none;
}
.hero-photo-single figcaption{
  position:absolute;
  left:26px;
  bottom:24px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:11px 16px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:999px;
  background:rgba(5,42,64,.72);
  color:#fff;
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.02em;
  backdrop-filter:blur(8px);
}
.hero-photo-single figcaption:before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:#f4b8c8;
}
@media(max-width:900px){
  .hero-photo-single,.hero-photo-single img{min-height:500px}
}
@media(max-width:620px){
  .hero-photo-single{min-height:360px;border-width:6px;border-radius:24px}
  .hero-photo-single img{min-height:360px}
  .hero-photo-single figcaption{left:16px;bottom:16px;font-size:.8rem;padding:9px 12px}
}


/* V11: streamlined header + sermon replay callout */
.message-replay{margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18)}
.message-replay p{margin:0 0 16px;color:#dceaf0;font-size:.95rem;line-height:1.62}
.message-replay-link{display:inline-flex;align-items:center;gap:10px;padding:12px 17px;border-radius:999px;background:#fff;color:var(--blue-deep);font-weight:800;transition:transform .2s ease,box-shadow .2s ease}
.message-replay-link:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.18)}

/* V14 refinements */
.worship-welcome-image:after{display:none}
.social-media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.social-media-card{min-height:300px}
@media(max-width:900px){.social-media-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.social-media-grid{grid-template-columns:1fr}}


/* V15: preserve full-width photos + calmer homepage navigation */
.hero-photo-single{
  min-height:0;
  height:auto;
}
.hero-photo-single img{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  object-fit:contain;
  object-position:center;
}
.hero-photo-single figcaption{
  left:24px;
  bottom:20px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  backdrop-filter:none;
  box-shadow:none;
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.01em;
  text-shadow:0 2px 12px rgba(0,0,0,.9);
}
.hero-photo-single figcaption:before{display:none}
.wide-photo-card img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
}
.home-start-heading{grid-template-columns:.55fr 1.05fr 1.5fr}
.home-start-card{min-height:225px}
@media(max-width:900px){
  .hero-photo-single,.hero-photo-single img{min-height:0}
}
@media(max-width:620px){
  .hero-photo-single{min-height:0}
  .hero-photo-single img{min-height:0}
  .hero-photo-single figcaption{left:14px;bottom:12px;padding:0;font-size:.78rem}
}

/* V16: updated title logo + messages card alignment */
.social-media-card{
  justify-content:flex-start;
  align-items:flex-start;
}
.social-media-card h3,
.social-media-card p{
  margin-top:0;
}
.social-media-card .btn{
  margin-top:auto;
}
.page-hero-image img[src$="messages-page.jpg"]{
  object-position:center center;
}

/* V17: simplified homepage church-life heading and cards */
.home-start-heading-unified{
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  align-items:end;
}
.home-start-heading-unified h2{
  margin:0;
  max-width:760px;
}
.home-start-heading-unified p{
  margin:0 0 6px;
}
.home-start-card .home-start-content h3{
  margin-top:2px;
}
@media(max-width:900px){
  .home-start-heading-unified{grid-template-columns:1fr;gap:14px;align-items:start}
  .home-start-heading-unified p{margin:0}
}

/* V18: GroupMe icon, tighter church-life cards, and unified mobile welcome section */
.groupme-mark,
.contact-groupme-mark{
  background:transparent;
  box-shadow:none;
  overflow:hidden;
}
.groupme-mark img,
.contact-groupme-mark img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  border-radius:inherit;
}

/* Remove the artificial vertical gap inside the four homepage cards. */
.home-start-card{
  min-height:0;
}
.home-start-content{
  justify-content:flex-start;
}
.home-start-card p{
  margin-bottom:16px;
}
.home-start-link{
  margin-top:0;
  width:max-content;
  padding:9px 13px;
  border:1px solid #c7d7df;
  border-radius:999px;
  background:#f4f8fa;
  line-height:1.2;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.home-start-card:nth-child(2) .home-start-link,
.home-start-card:nth-child(4) .home-start-link{
  border-color:#ebc2cd;
  background:#fff5f7;
}
.home-start-card:hover .home-start-link{
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
  transform:translateY(-1px);
}
.home-start-card:nth-child(2):hover .home-start-link,
.home-start-card:nth-child(4):hover .home-start-link{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}

/* On phones, present Welcome + Be Third as one connected section instead of two stacked blocks. */
@media(max-width:620px){
  .intro-section{
    padding-top:58px;
  }
  .intro-section .split{
    gap:0;
    border:1px solid #dde5e8;
    border-radius:24px;
    overflow:hidden;
    background:#fff;
    box-shadow:var(--shadow-soft);
  }
  .intro-section .split > div:first-child{
    padding:27px 24px 26px;
  }
  .intro-section .mission-panel{
    margin:0;
    padding:27px 24px;
    border-radius:0;
    box-shadow:none;
    border:0;
    border-top:1px solid #e4dccf;
    background:var(--cream);
  }
  .intro-section .text-link{
    margin-bottom:0;
  }
}

/* V19: navigation order, centered church-life cards, and homepage connection layout */
.site-nav a{padding:10px 9px;font-size:.9rem}
.site-nav a:last-child{padding-inline:16px}

.home-start-card{
  display:block;
  text-align:center;
  padding:28px 24px 26px;
}
.home-start-content{
  align-items:center;
  text-align:center;
}
.home-start-card h3,
.home-start-card p{
  text-align:center;
}
.home-start-link{
  margin-inline:auto;
  justify-content:center;
  min-width:145px;
  padding:10px 16px;
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
  box-shadow:0 7px 18px rgba(11,70,104,.12);
}
.home-start-card:nth-child(2) .home-start-link,
.home-start-card:nth-child(4) .home-start-link{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}
.home-start-card:hover .home-start-link,
.home-start-card:nth-child(2):hover .home-start-link,
.home-start-card:nth-child(4):hover .home-start-link{
  filter:brightness(.94);
  transform:translateY(-1px);
}

.home-connect-zone{
  padding:22px 0 78px;
  background:#fff;
}
.home-connect-stack{display:grid;gap:24px}
.home-sunday-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:34px;
  padding:30px 34px;
  border:1px solid #dfd8ca;
  border-radius:28px;
  background:linear-gradient(120deg,#f8f3e9 0%,#fff 70%);
  box-shadow:var(--shadow-soft);
}
.home-sunday-time{
  padding-right:32px;
  border-right:1px solid #ded5c6;
}
.home-sunday-time span{
  display:block;
  color:var(--red);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.72rem;
  font-weight:800;
  margin-bottom:6px;
}
.home-sunday-time strong{
  display:block;
  font-family:'Playfair Display',Georgia,serif;
  color:var(--blue);
  font-size:clamp(2.25rem,4vw,3.35rem);
  line-height:1;
  white-space:nowrap;
}
.home-sunday-copy h2{
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:1.55rem;
  letter-spacing:-.02em;
  margin:0 0 7px;
}
.home-sunday-copy p{margin:0;color:var(--muted)}
.home-sunday-action .btn{min-width:160px}

.home-connect-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.home-connect-card{
  min-height:330px;
  padding:38px;
  border-radius:30px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  box-shadow:var(--shadow-soft);
}
.home-connect-card h2{
  font-size:clamp(2rem,3.2vw,2.8rem);
  margin:12px 0 12px;
}
.home-connect-card p{margin:0;max-width:560px}
.home-connect-actions{margin-top:auto;padding-top:24px}
.home-podcast-card{
  background:linear-gradient(145deg,var(--blue-deep),#0f5b83);
  color:#fff;
}
.home-podcast-card h2{color:#fff}
.home-podcast-card p{color:#d5e6ed}
.home-groupme-card{
  position:relative;
  border:1px solid #d8e3e8;
  background:linear-gradient(135deg,#f8fbfc 0%,#fff 60%,#fff4f7 100%);
  color:var(--ink);
}
.home-groupme-icon{
  width:72px;
  height:72px;
  margin-bottom:6px;
}
.home-groupme-icon img{width:100%;height:100%;object-fit:contain;display:block}
.home-groupme-copy h2{margin-top:12px}
.home-groupme-copy p{color:var(--muted)}

@media(max-width:1050px){
  .site-nav a{font-size:.86rem;padding:9px 7px}
  .site-nav a:last-child{padding-inline:13px}
}
@media(max-width:900px){
  .site-nav a{font-size:.92rem;padding:10px 12px}
  .home-sunday-card{grid-template-columns:1fr auto;gap:22px}
  .home-sunday-time{grid-column:1/-1;padding:0 0 20px;border-right:0;border-bottom:1px solid #ded5c6}
  .home-connect-grid{grid-template-columns:1fr}
  .home-connect-card{min-height:0}
}
@media(max-width:620px){
  .home-start-card{padding:24px 22px}
  .home-start-link{width:auto;min-width:150px}
  .home-connect-zone{padding:18px 0 58px}
  .home-sunday-card{grid-template-columns:1fr;padding:26px 24px;gap:20px}
  .home-sunday-time{padding-bottom:18px}
  .home-sunday-action .btn{width:100%}
  .home-connect-card{padding:28px 24px;border-radius:24px}
  .home-connect-actions,.home-connect-actions .btn{width:100%}
}

/* V20: full-bleed homepage hero, aligned church-life actions, and reordered church story */
.home-hero.home-hero-photo{
  position:relative;
  min-height:clamp(620px,72vw,860px);
  padding:0;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--blue-deep);
}
.home-hero-background{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.home-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(3,31,48,.88) 0%,rgba(3,31,48,.68) 38%,rgba(3,31,48,.16) 72%,rgba(3,31,48,.06) 100%),linear-gradient(0deg,rgba(3,31,48,.58) 0%,transparent 42%);
}
.home-hero-full{
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 42px));
  min-height:clamp(620px,72vw,860px);
  padding:92px 0 58px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
}
.home-hero-full .hero-copy{
  max-width:680px;
}
.home-hero-full .hero-copy h1{
  max-width:760px;
}
.home-hero-caption{
  margin-top:34px;
  color:#fff;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.02em;
  text-shadow:0 2px 12px rgba(0,0,0,.85);
}

/* Make all four homepage card buttons sit at the same baseline. */
.home-start-card{
  display:flex;
  flex-direction:column;
  min-height:270px;
}
.home-start-content{
  flex:1;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.home-start-card p{
  margin-bottom:18px;
}
.home-start-link{
  margin-top:auto;
}
.home-start-link b{display:none}

.home-sunday-zone{
  padding-bottom:34px;
}
.home-community-zone{
  padding-top:18px;
}

@media(max-width:900px){
  .home-hero.home-hero-photo,
  .home-hero-full{
    min-height:700px;
  }
  .home-hero-overlay{
    background:linear-gradient(0deg,rgba(3,31,48,.9) 0%,rgba(3,31,48,.55) 52%,rgba(3,31,48,.12) 100%);
  }
  .home-hero-full{
    padding-bottom:48px;
  }
}
@media(max-width:620px){
  .home-hero.home-hero-photo,
  .home-hero-full{
    min-height:610px;
  }
  .home-hero-background{
    object-position:58% center;
  }
  .home-hero-full{
    width:min(100% - 28px,1180px);
    padding:62px 0 34px;
  }
  .home-hero-full .hero-copy h1{
    font-size:3.35rem;
  }
  .home-hero-caption{
    margin-top:24px;
    font-size:.82rem;
  }
  .home-start-card{
    min-height:250px;
  }
  .home-sunday-zone{
    padding-bottom:18px;
  }
  .intro-section{
    padding-top:48px;
  }
  .home-community-zone{
    padding-top:0;
  }
}

/* V21: preserve the church building, tighten homepage vertical rhythm */
/* Keep the bottom of the church photo visible on wide desktop screens; crop sky first. */
.home-hero-background{
  object-position:center bottom;
}

/* Compact the Church Life block without losing equal, bottom-aligned actions. */
.home-start{
  padding-bottom:8px;
}
.home-start-heading-unified{
  padding:18px 28px;
  gap:18px;
}
.home-start-heading-unified p{
  margin:0;
}
.home-start-card{
  min-height:0;
  padding:22px 20px 20px;
}
.home-start-card h3{
  margin-bottom:8px;
}
.home-start-card p{
  margin-bottom:12px;
  line-height:1.48;
}
.home-start-link{
  margin-top:auto;
}

/* Pull Sunday Worship closer to the four quick links. */
.home-sunday-zone{
  padding-top:8px;
  padding-bottom:10px;
}

/* Keep the church story visually connected to the Sunday callout. */
.intro-section{
  padding-top:44px;
  padding-bottom:46px;
}
.photo-story{
  padding-top:48px;
  padding-bottom:66px;
}
.photo-story .section-heading.centered{
  margin-bottom:34px;
}

@media(max-width:900px){
  .home-hero-background{
    object-position:center bottom;
  }
  .home-start-heading-unified{
    padding:18px 24px;
  }
  .home-sunday-zone{
    padding-top:8px;
    padding-bottom:8px;
  }
  .intro-section{
    padding-top:36px;
    padding-bottom:38px;
  }
  .photo-story{
    padding-top:38px;
    padding-bottom:56px;
  }
}

@media(max-width:620px){
  .home-hero-background{
    object-position:58% bottom;
  }
  .home-start{
    padding-bottom:6px;
  }
  .home-start-heading-unified{
    padding:18px 20px;
  }
  .home-start-card{
    min-height:0;
    padding:20px 20px 18px;
  }
  .home-start-card p{
    margin-bottom:12px;
  }
  .home-sunday-zone{
    padding-top:6px;
    padding-bottom:6px;
  }
  .intro-section{
    padding-top:30px;
    padding-bottom:32px;
  }
  .photo-story{
    padding-top:34px;
    padding-bottom:50px;
  }
  .photo-story .section-heading.centered{
    margin-bottom:28px;
  }
}

/* V22: centered hero image, balanced church-life heading, and equal Life at Golden Beach cards */
.home-hero-background{
  object-position:center center;
}
.home-start-heading-unified{
  align-items:center;
}
.home-start-heading-unified p{
  margin:0;
  align-self:center;
}

.photo-story .story-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}
.photo-story .story-card{
  min-height:410px;
}
.photo-story .story-card.large,
.photo-story .story-card.story-image-card{
  position:relative;
  min-height:410px;
}
.photo-story .story-card.large img,
.photo-story .story-card.story-image-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.photo-story .story-card.large:after,
.photo-story .story-card.story-image-card:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 34%,rgba(4,31,47,.9));
}
.photo-story .story-card.large > div,
.photo-story .story-card.story-image-card > div{
  position:absolute;
  z-index:2;
  left:30px;
  right:30px;
  bottom:28px;
  color:#fff;
}
.photo-story .story-card.story-image-card h3,
.photo-story .story-card.story-image-card p,
.photo-story .story-card.story-image-card a{
  color:#fff;
}
.photo-story .story-card.story-image-card p{
  color:#e3edf2;
}
.photo-story .story-color{
  justify-content:flex-end;
}

@media(max-width:900px){
  .photo-story .story-grid{
    grid-template-columns:1fr 1fr;
  }
  .photo-story .story-card:nth-child(3){
    grid-column:1/-1;
  }
}
@media(max-width:620px){
  .home-hero-background{
    object-position:center center;
  }
  .photo-story .story-grid{
    grid-template-columns:1fr;
  }
  .photo-story .story-card,
  .photo-story .story-card.large,
  .photo-story .story-card.story-image-card{
    min-height:380px;
  }
  .photo-story .story-card:nth-child(3){
    grid-column:auto;
  }
}

/* V23: homepage story readability + worship photo/mobile schedule refinements */
.photo-story .story-card.large:after,
.photo-story .story-card.story-image-card:after{
  background:linear-gradient(180deg,rgba(3,31,48,.06) 18%,rgba(3,31,48,.38) 52%,rgba(3,31,48,.94) 100%);
}
.photo-story .story-card.large > div,
.photo-story .story-card.story-image-card > div{
  text-shadow:0 2px 10px rgba(0,0,0,.48);
}
.photo-story .story-card h3{
  font-size:2.08rem;
  line-height:1.08;
}
.photo-story .story-card p{
  font-size:1.02rem;
  line-height:1.58;
}
.photo-story .story-card a{
  display:inline-flex;
  margin-top:6px;
  color:#fff;
  text-shadow:0 1px 8px rgba(0,0,0,.45);
}

/* Worship image row should sit on white and flow directly into What to Expect. */
.worship-photo-band{
  background:#fff;
  padding-bottom:0;
}
.worship-expect-section{
  padding-top:42px;
}
.wide-photo-overlay{
  align-items:center;
}
.wide-photo-overlay strong{
  display:flex;
  align-items:center;
}
.wide-photo-overlay span{
  display:flex;
  align-items:center;
  font-size:1.08rem;
  font-weight:700;
  line-height:1.35;
  text-align:right;
}

@media(max-width:620px){
  .worship-photo-band{
    padding-bottom:0;
  }
  .wide-photo-card{
    overflow:hidden;
    background:#fff;
  }
  .wide-photo-card img{
    width:100%;
    height:auto;
    object-fit:contain;
  }
  .wide-photo-overlay{
    position:static;
    left:auto;
    right:auto;
    bottom:auto;
    margin:0;
    border-radius:0;
    padding:18px 20px 19px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    text-align:center;
  }
  .wide-photo-overlay strong{
    font-size:1.45rem;
    text-align:center;
  }
  .wide-photo-overlay span{
    font-size:1.08rem;
    text-align:center;
    justify-content:center;
  }
  .worship-expect-section{
    padding-top:30px;
  }
}

/* V24: compact interior-page rhythm + updated invitation image treatment */
.photo-ribbon{
  padding-bottom:58px;
}
.photo-ribbon-inner > img{
  object-position:center center;
}
.photo-ribbon-inner > div{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.photo-ribbon-inner > div p{
  margin-bottom:0;
}

/* Worship page: keep the sequence tight and related. */
.worship-page .worship-expect-section{
  padding-top:38px;
  padding-bottom:34px;
}
.worship-page .worship-new-here-section{
  padding-top:0;
  padding-bottom:38px;
}
.worship-page .worship-recurring-section{
  padding-top:54px;
  padding-bottom:58px;
}
.worship-page .worship-recurring-section .section-heading{
  margin-bottom:28px;
}
.worship-page .photo-ribbon{
  padding-top:0;
  padding-bottom:54px;
}

/* Messages page: remove the oversized gaps between the content blocks. */
.messages-page .messages-platforms-section{
  padding-top:58px;
  padding-bottom:56px;
}
.messages-page .messages-platforms-section .section-heading{
  margin-bottom:30px;
}
.messages-page .messages-more-section{
  padding-top:56px;
  padding-bottom:56px;
}
.messages-page .photo-ribbon{
  padding-top:0;
  padding-bottom:54px;
}

@media(max-width:620px){
  .photo-ribbon{
    padding-bottom:44px;
  }
  .photo-ribbon-inner > div{
    padding:26px 24px;
  }
  .worship-page .worship-expect-section{
    padding-top:28px;
    padding-bottom:28px;
  }
  .worship-page .worship-new-here-section{
    padding-bottom:30px;
  }
  .worship-page .worship-recurring-section{
    padding-top:42px;
    padding-bottom:44px;
  }
  .messages-page .messages-platforms-section,
  .messages-page .messages-more-section{
    padding-top:44px;
    padding-bottom:44px;
  }
  .messages-page .messages-platforms-section .section-heading{
    margin-bottom:24px;
  }
}

/* V25: prayer story card, sermon guide viewer, and footer label refinements */
.photo-story .story-card.prayer-image-card:after{
  background:linear-gradient(180deg,rgba(3,31,48,.1) 10%,rgba(3,31,48,.45) 55%,rgba(3,31,48,.96) 100%);
}

.messages-more-simple{
  max-width:760px;
}
.messages-more-simple h2{
  margin-bottom:14px;
}
.messages-more-simple p{
  margin:0;
  color:var(--muted);
  font-size:1.05rem;
}

.messages-page .sermon-guide-section{
  padding-top:0;
  padding-bottom:56px;
}
.sermon-guide-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  padding:28px;
  box-shadow:var(--shadow-soft);
}
.sermon-guide-toolbar{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:22px;
}
.sermon-guide-toolbar label{
  font-weight:800;
  color:var(--blue-dark);
}
.sermon-guide-toolbar select{
  min-width:320px;
  max-width:100%;
  border:1px solid #ccd6da;
  border-radius:12px;
  padding:12px 14px;
  background:#fbfcfc;
  color:var(--ink);
}
.sermon-guide-image-wrap{
  border-radius:22px;
  overflow:hidden;
  background:#eef4f7;
  border:1px solid #dde6ea;
}
.sermon-guide-image-wrap img{
  display:block;
  width:100%;
  height:auto;
}
.sermon-guide-controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-top:16px;
}
.sermon-guide-controls span{
  color:var(--muted);
  font-weight:700;
}

@media(max-width:620px){
  .messages-page .sermon-guide-section{
    padding-top:0;
    padding-bottom:44px;
  }
  .sermon-guide-card{
    padding:20px;
  }
  .sermon-guide-toolbar{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
  .sermon-guide-toolbar select{
    min-width:0;
    width:100%;
  }
  .sermon-guide-controls{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* V26: sermon guide viewer controls */
.sermon-guide-toolbar-main{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  margin-bottom:22px;
}
.sermon-guide-date-control{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.sermon-guide-date-control label{
  font-weight:800;
  color:var(--blue-dark);
}
.sermon-guide-date-control select{
  min-width:360px;
  max-width:100%;
  border:1px solid #ccd6da;
  border-radius:12px;
  padding:12px 14px;
  background:#fbfcfc;
  color:var(--ink);
}
.sermon-guide-top-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.sermon-guide-page-number{
  margin-right:4px;
  color:var(--blue-dark);
  font-weight:800;
  white-space:nowrap;
}
.guide-control-btn{
  min-height:40px;
  border:1px solid #c8d4da;
  border-radius:10px;
  background:#fff;
  color:var(--blue-dark);
  padding:0 13px;
  font-weight:800;
  cursor:pointer;
}
.guide-control-btn:not(.guide-control-text){
  width:42px;
  padding:0;
  font-size:1.35rem;
}
.guide-control-btn.primary{
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
}
.guide-control-btn:hover:not(:disabled){
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(5,42,64,.10);
}
.guide-control-btn:disabled,
.sermon-guide-controls .btn:disabled{
  opacity:.4;
  cursor:not-allowed;
  transform:none;
}
.sermon-guide-empty{
  min-height:340px;
  border:1px dashed #c8d4da;
  border-radius:22px;
  background:#f7fafb;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:30px;
  color:var(--muted);
}
.sermon-guide-empty strong{
  color:var(--blue-dark);
  font-size:1.15rem;
  margin-bottom:5px;
}
.sermon-guide-image-wrap{
  overflow:auto;
  text-align:center;
}
.sermon-guide-image-wrap img{
  margin:0 auto;
  transition:width .18s ease;
}
.sermon-guide-controls{
  justify-content:flex-end;
}
.sermon-guide-controls span{
  margin-right:auto;
}

@media(max-width:900px){
  .sermon-guide-toolbar-main{
    align-items:stretch;
    flex-direction:column;
  }
  .sermon-guide-top-controls{
    justify-content:flex-start;
  }
}
@media(max-width:620px){
  .sermon-guide-date-control select{
    min-width:0;
    width:100%;
  }
  .sermon-guide-top-controls{
    display:grid;
    grid-template-columns:auto 1fr 1fr;
    gap:8px;
  }
  .sermon-guide-page-number{
    grid-column:1/-1;
    margin:0 0 3px;
  }
  .guide-control-btn:not(.guide-control-text){
    width:42px;
  }
  .guide-control-text{
    width:100%;
  }
  .sermon-guide-controls{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .sermon-guide-controls span{
    grid-column:1/-1;
    margin:0;
  }
  .sermon-guide-controls .btn{
    width:100%;
  }
}

/* V27: compact sermon-guide empty state and matched document controls */
[hidden]{display:none !important}
.sermon-guide-toolbar-main{
  align-items:flex-end;
  margin-bottom:12px;
}
.sermon-guide-date-control{
  flex:1 1 520px;
}
.sermon-guide-select-row{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.sermon-guide-select-row select{
  flex:0 1 520px;
  min-width:360px;
}
.sermon-guide-select-row .sermon-guide-page-number{
  margin:0;
  font-size:.94rem;
}
.sermon-guide-top-controls{
  flex:0 0 auto;
}
.sermon-guide-empty{
  min-height:0;
  border:0;
  border-radius:0;
  background:transparent;
  display:block;
  margin:2px 0 0;
  padding:0;
  color:var(--muted);
  text-align:left;
  font-weight:700;
}
.sermon-guide-controls{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:16px;
}
.sermon-guide-controls .guide-control-btn{
  min-height:40px;
}

@media(max-width:900px){
  .sermon-guide-toolbar-main{
    gap:14px;
  }
  .sermon-guide-top-controls{
    justify-content:flex-start;
  }
}
@media(max-width:620px){
  .sermon-guide-card{
    padding:20px;
  }
  .sermon-guide-select-row{
    align-items:center;
    gap:9px;
  }
  .sermon-guide-select-row select{
    flex:1 1 100%;
    min-width:0;
    width:100%;
  }
  .sermon-guide-select-row .sermon-guide-page-number{
    width:100%;
  }
  .sermon-guide-top-controls{
    display:grid;
    grid-template-columns:42px 42px 1fr 1fr;
    width:100%;
  }
  .sermon-guide-controls{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .sermon-guide-controls .guide-control-btn{
    width:100%;
  }
}

/* V28: compact mobile sermon selector + tighter calendar page */
@media(max-width:900px){
  .sermon-guide-toolbar-main{
    align-items:flex-start;
  }
  .sermon-guide-date-control{
    flex:0 0 auto;
    width:100%;
    min-height:0;
    align-items:flex-start;
  }
  .sermon-guide-select-row{
    width:100%;
    justify-content:flex-start;
    align-items:center;
  }
  .sermon-guide-select-row select{
    margin:0;
    align-self:flex-start;
    text-align:left;
  }
  .sermon-guide-empty{
    margin-top:6px;
  }
}
@media(max-width:620px){
  .sermon-guide-toolbar-main{
    gap:8px;
  }
  .sermon-guide-date-control{
    gap:6px;
  }
  .sermon-guide-select-row{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:7px;
  }
  .sermon-guide-select-row select{
    width:100%;
    max-width:none;
    flex:none;
  }
  .sermon-guide-select-row .sermon-guide-page-number{
    width:auto;
    align-self:flex-start;
  }
  .sermon-guide-empty{
    margin:4px 0 0;
    text-align:left;
  }
}

/* Calendar: compact the large vertical gaps and keep all gathering cards visually equal. */
.calendar-page .page-hero-v2{
  padding-top:44px;
  padding-bottom:44px;
}
.calendar-page main > .section:not(.section-soft){
  padding-top:52px;
  padding-bottom:46px;
}
.calendar-page main > .section.section-soft{
  padding-top:34px;
  padding-bottom:38px;
}
.calendar-page .section-heading{
  margin-bottom:28px;
}
.calendar-page .schedule{
  gap:10px;
}
.calendar-page .schedule-item{
  padding-top:18px;
  padding-bottom:18px;
}
.calendar-page .photo-ribbon{
  padding-top:0;
  padding-bottom:44px;
}
.calendar-page .schedule-item.schedule-highlight{
  border-color:var(--line);
  background:#fff;
  box-shadow:0 7px 20px rgba(5,42,64,.04);
}
@media(max-width:620px){
  .calendar-page .page-hero-v2{
    padding-top:34px;
    padding-bottom:36px;
  }
  .calendar-page main > .section:not(.section-soft){
    padding-top:38px;
    padding-bottom:34px;
  }
  .calendar-page main > .section.section-soft{
    padding-top:26px;
    padding-bottom:30px;
  }
  .calendar-page .section-heading{
    margin-bottom:22px;
  }
  .calendar-page .schedule{
    gap:9px;
  }
  .calendar-page .photo-ribbon{
    padding-bottom:34px;
  }
}

/* V29: cleaner, more compact Giving page */
.giving-page .page-hero-v2{
  padding-top:44px;
  padding-bottom:44px;
}
.giving-page .giving-overview-section{
  padding-top:50px;
  padding-bottom:40px;
}
.giving-page .giving-overview-section .giving-grid{
  align-items:stretch;
}
.giving-page .giving-card{
  box-shadow:0 7px 20px rgba(5,42,64,.04);
}
.giving-page .giving-card.featured{
  background:#fff;
  color:inherit;
}
.giving-page .giving-card.featured h3,
.giving-page .giving-card.featured p{
  color:inherit;
}
.giving-page .giving-support-section{
  padding-top:44px;
  padding-bottom:48px;
}
.giving-page .giving-support-section .section-heading{
  margin-bottom:26px;
}
.giving-support-panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.giving-support-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.giving-support-options > div{
  padding:26px 28px 24px;
  border-right:1px solid var(--line);
}
.giving-support-options > div:last-child{
  border-right:0;
}
.giving-support-options span{
  display:block;
  margin-bottom:8px;
  color:var(--red);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.giving-support-options h3{
  margin:0 0 8px;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:1.15rem;
}
.giving-support-options p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
}
.giving-support-action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px 28px;
  border-top:1px solid var(--line);
  background:#f8fbfc;
}
.giving-support-action strong{
  display:block;
  margin-bottom:3px;
  color:var(--blue-dark);
  font-size:1.08rem;
}
.giving-support-action p{
  margin:0;
  color:var(--muted);
}
.giving-page .photo-ribbon{
  padding-top:0;
  padding-bottom:44px;
}

@media(max-width:900px){
  .giving-support-options{
    grid-template-columns:1fr;
  }
  .giving-support-options > div{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .giving-support-options > div:last-child{
    border-bottom:0;
  }
}
@media(max-width:620px){
  .giving-page .page-hero-v2{
    padding-top:34px;
    padding-bottom:36px;
  }
  .giving-page .giving-overview-section{
    padding-top:38px;
    padding-bottom:30px;
  }
  .giving-page .giving-overview-section .giving-grid{
    gap:14px;
  }
  .giving-page .giving-card{
    padding:24px;
  }
  .giving-page .giving-support-section{
    padding-top:34px;
    padding-bottom:36px;
  }
  .giving-page .giving-support-section .section-heading{
    margin-bottom:22px;
  }
  .giving-support-options > div{
    padding:22px;
  }
  .giving-support-action{
    align-items:flex-start;
    flex-direction:column;
    padding:22px;
  }
  .giving-support-action .btn{
    width:100%;
  }
  .giving-page .photo-ribbon{
    padding-bottom:34px;
  }
}

/* V31: large-screen hero framing and phone-specific button/viewer refinements */
@media(min-width:1200px){
  .home-hero-background{
    object-position:center 42%;
  }
}

@media(max-width:620px){
  .worship-page .message-replay-link{
    width:100%;
    justify-content:center;
    text-align:center;
    gap:0;
  }
  .worship-page .message-replay-link span{
    display:none;
  }
}

/* V32: compact About page rhythm and updated church photography */
.about-page .page-hero-v2{
  padding-top:44px;
  padding-bottom:44px;
}
.about-page .page-hero-image img{
  object-position:center center;
}
.about-page .about-overview-section{
  padding-top:50px;
  padding-bottom:44px;
}
.about-page .about-overview-section .photo-feature{
  margin-bottom:34px;
  gap:30px;
}
.about-page .about-overview-section .photo-frame img{
  height:390px;
  object-position:center center;
}
.about-page .about-overview-section .prose h2{
  margin-top:24px;
}
.about-page .about-pastor-section{
  padding-top:34px;
  padding-bottom:34px;
}
.about-page .about-history-section{
  padding-top:50px;
  padding-bottom:46px;
}
.about-page .about-history-section .section-heading{
  margin-bottom:26px;
}
.about-page .history-timeline{
  margin-top:24px;
  margin-bottom:0;
}
.about-page .timeline-item{
  margin-bottom:24px;
}
.about-page .timeline-item:last-child{
  margin-bottom:0;
}
.about-page .about-mission-section{
  padding-top:50px;
  padding-bottom:48px;
}
.about-page .about-mission-section > .container > .section-heading:first-child{
  margin-bottom:28px;
}
.about-page .be-third-intro{
  margin-bottom:36px;
  gap:30px;
}
.about-page .be-third-copy{
  padding:30px;
}
.about-page .be-third-ministry-heading{
  margin-bottom:22px;
}
.about-page .be-third-ministry-grid{
  gap:16px;
}
.about-page .be-third-ministry-grid .card{
  padding:24px;
}
.about-page .be-third-cta{
  margin-top:22px;
}
.about-page .about-contact-section{
  padding-top:38px;
  padding-bottom:38px;
}
.about-page .photo-ribbon{
  padding-top:0;
  padding-bottom:44px;
}

@media(max-width:900px){
  .about-page .about-overview-section .photo-feature{
    margin-bottom:0;
  }
}

@media(max-width:620px){
  .about-page .page-hero-v2{
    padding-top:34px;
    padding-bottom:36px;
  }
  .about-page .about-overview-section{
    padding-top:38px;
    padding-bottom:34px;
  }
  .about-page .about-overview-section .photo-feature{
    gap:20px;
  }
  .about-page .about-overview-section .photo-frame img{
    height:330px;
  }
  .about-page .about-pastor-section{
    padding-top:28px;
    padding-bottom:28px;
  }
  .about-page .about-history-section{
    padding-top:38px;
    padding-bottom:36px;
  }
  .about-page .about-history-section .section-heading{
    margin-bottom:22px;
  }
  .about-page .history-timeline{
    margin-top:18px;
  }
  .about-page .timeline-item{
    margin-bottom:20px;
  }
  .about-page .about-mission-section{
    padding-top:38px;
    padding-bottom:38px;
  }
  .about-page .be-third-intro{
    gap:18px;
    margin-bottom:28px;
  }
  .about-page .be-third-copy,
  .about-page .be-third-steps{
    padding:22px;
  }
  .about-page .be-third-ministry-grid{
    gap:14px;
  }
  .about-page .about-contact-section{
    padding-top:30px;
    padding-bottom:30px;
  }
  .about-page .photo-ribbon{
    padding-bottom:34px;
  }
}

/* V33: About page image balance + grace/pastoral row */
.about-page .about-overview-section .photo-feature{
  align-items:stretch;
}
.about-page .about-overview-section .photo-frame{
  height:100%;
  min-height:430px;
}
.about-page .about-overview-section .photo-frame img{
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover;
  object-position:center center;
}
.about-page .about-overview-section .photo-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.about-page .about-grace-panel,
.about-page .about-pastor-card{
  height:100%;
  min-height:250px;
}
.about-page .about-pastor-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:22px;
  padding:38px;
}
.about-page .about-pastor-card h3{
  font-size:1.8rem;
  margin:10px 0 10px;
}
.about-page .about-pastor-card p{
  margin:0;
  max-width:700px;
}

@media(max-width:900px){
  .about-page .about-overview-section .photo-frame,
  .about-page .about-overview-section .photo-frame img{
    min-height:460px;
  }
  .about-page .about-grace-panel,
  .about-page .about-pastor-card{
    min-height:0;
  }
}

@media(max-width:620px){
  .about-page .about-overview-section .photo-frame,
  .about-page .about-overview-section .photo-frame img{
    height:420px;
    min-height:420px;
  }
  .about-page .about-pastor-card{
    padding:28px;
  }
}

/* V34: fuller homepage welcome, practical first-visit details, and contact photography */
.home-welcome-copy h2{
  font-size:clamp(2.2rem,3.35vw,3.25rem);
  line-height:1.08;
  max-width:720px;
}
.home-welcome-copy .lead{
  font-size:1.14rem;
}
.home-welcome-copy p{
  max-width:720px;
}
.pastor-signoff{
  margin:24px 0 0;
  padding-left:18px;
  border-left:3px solid var(--red);
}
.pastor-signoff strong,
.pastor-signoff span{
  display:block;
}
.pastor-signoff strong{
  color:var(--blue-dark);
  font-size:1.02rem;
}
.pastor-signoff span{
  margin-top:2px;
  color:var(--muted);
  font-size:.9rem;
}
.home-hero-caption{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px 18px;
}
.home-hero-address{
  position:relative;
  padding-left:18px;
}
.home-hero-address:before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:4px;
  height:4px;
  border-radius:50%;
  background:rgba(255,255,255,.8);
  transform:translateY(-50%);
}

.worship-page .worship-new-here-section{
  padding-top:4px;
  padding-bottom:38px;
  background:#fff;
}
.visitor-panel{
  border:1px solid var(--line);
  border-radius:30px;
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow-soft);
}
.visitor-intro{
  padding:32px 34px 25px;
  max-width:850px;
}
.visitor-intro h2{
  font-size:clamp(2.15rem,3.6vw,3.25rem);
  margin-top:8px;
  margin-bottom:12px;
}
.visitor-intro p{
  margin:0;
  color:var(--muted);
  font-size:1.03rem;
}
.visitor-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);
}
.visitor-detail{
  padding:25px 26px 27px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.visitor-detail:nth-child(3),
.visitor-detail:nth-child(5){
  border-right:0;
}
.visitor-detail:nth-child(4),
.visitor-detail:nth-child(5){
  border-bottom:0;
}
.visitor-detail:nth-child(4){
  grid-column:1/2;
}
.visitor-detail:nth-child(5){
  grid-column:2/4;
}
.visitor-detail > span{
  display:block;
  margin-bottom:10px;
  color:var(--red);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.12em;
}
.visitor-detail h3{
  margin:0 0 8px;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:1.1rem;
  color:var(--blue-dark);
}
.visitor-detail p{
  margin:0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.55;
}
.visitor-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px 30px;
  background:#f7fafb;
  border-top:1px solid var(--line);
}
.visitor-footer strong,
.visitor-footer span{
  display:block;
}
.visitor-footer strong{
  color:var(--blue-dark);
}
.visitor-footer span{
  margin-top:2px;
  color:var(--muted);
  font-size:.9rem;
}
.visitor-footer .button-row{
  flex:0 0 auto;
  margin-top:0;
}
.contact-outside-image img{
  object-position:center center;
}

@media(max-width:900px){
  .visitor-grid{
    grid-template-columns:1fr 1fr;
  }
  .visitor-detail,
  .visitor-detail:nth-child(3),
  .visitor-detail:nth-child(5){
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .visitor-detail:nth-child(even){
    border-right:0;
  }
  .visitor-detail:nth-child(4),
  .visitor-detail:nth-child(5){
    grid-column:auto;
  }
  .visitor-detail:nth-child(5){
    grid-column:1/-1;
    border-right:0;
    border-bottom:0;
  }
  .visitor-footer{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:620px){
  .home-welcome-copy h2{
    font-size:2.15rem;
  }
  .home-hero-caption{
    gap:4px;
    flex-direction:column;
    align-items:flex-start;
  }
  .home-hero-address{
    padding-left:0;
    font-size:.78rem;
  }
  .home-hero-address:before{
    display:none;
  }
  .worship-page .worship-new-here-section{
    padding-top:2px;
    padding-bottom:30px;
  }
  .visitor-panel{
    border-radius:24px;
  }
  .visitor-intro{
    padding:25px 22px 20px;
  }
  .visitor-intro h2{
    font-size:2.1rem;
  }
  .visitor-grid{
    grid-template-columns:1fr;
  }
  .visitor-detail,
  .visitor-detail:nth-child(3),
  .visitor-detail:nth-child(4),
  .visitor-detail:nth-child(5),
  .visitor-detail:nth-child(even){
    grid-column:auto;
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:21px 22px 22px;
  }
  .visitor-detail:nth-child(5){
    border-bottom:0;
  }
  .visitor-footer{
    padding:22px;
  }
  .visitor-footer .button-row,
  .visitor-footer .btn{
    width:100%;
  }
}

/* V35: subtle Scripture references, pastor signoff, and adjusted contact photo */
.scripture-note{
  margin:10px 0 16px;
  color:#6c777d;
  font-size:.84rem;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.035em;
}
.scripture-note span{
  white-space:nowrap;
  color:var(--red-dark);
}
.scripture-note-light{
  color:rgba(255,255,255,.84);
}
.scripture-note-light span{
  color:#fff;
}
.scripture-note-banner{
  margin:7px 0 0;
  color:#6b777d;
  font-size:.8rem;
}
.scripture-note-compact{
  margin:8px 0 0;
  font-size:.79rem;
}
.pastor-signoff{
  margin:22px 0 2px auto;
  padding:0;
  border:0;
  text-align:right;
  color:#68757b;
  font-size:.9rem;
  font-weight:600;
  font-style:italic;
}
.home-welcome-copy .pastor-signoff + .text-link{
  margin-top:6px;
}
.contact-outside-image img{
  object-position:center center;
}

@media(max-width:620px){
  .scripture-note{
    font-size:.8rem;
    margin-top:8px;
    margin-bottom:13px;
  }
  .pastor-signoff{
    font-size:.86rem;
  }
}

/* V36: show more of the church building on large desktop hero displays. */
@media(min-width:1200px){
  .home-hero-background{
    object-position:center 58%;
  }
}

/* V37: refine responsive image framing */
@media(min-width:1200px){
  .home-hero-background{
    object-position:center 64%;
  }
}

@media(max-width:620px){
  .about-page .about-overview-section .photo-frame img{
    object-position:center 24%;
  }
}

/* V38: title-only homepage Church Life heading */
.home-start-heading-title-only{
  grid-template-columns:1fr;
}
.home-start-heading-title-only h2{
  max-width:none;
}

/* V40: reordered primary navigation + simple photo gallery */
.gallery-hero{
  padding:48px 0;
}
.gallery-hero .page-hero-copy{
  max-width:720px;
}
.gallery-section{
  padding-top:48px;
  padding-bottom:64px;
  background:#fff;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.gallery-item{
  margin:0;
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  background:#f3f6f7;
  min-height:340px;
}
.gallery-item.gallery-wide{
  grid-column:1/-1;
  min-height:440px;
}
.gallery-item img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.gallery-item.gallery-wide img{
  max-height:560px;
}
@media(max-width:900px){
  .site-nav a{font-size:.84rem;padding-left:7px;padding-right:7px}
  .gallery-section{padding-top:38px;padding-bottom:52px}
  .gallery-item,.gallery-item.gallery-wide{min-height:320px}
}
@media(max-width:620px){
  .gallery-hero{padding:36px 0 40px}
  .gallery-grid{grid-template-columns:1fr;gap:16px}
  .gallery-item,.gallery-item.gallery-wide{grid-column:auto;min-height:0;border-radius:20px}
  .gallery-item img,.gallery-item.gallery-wide img{height:auto;max-height:none;object-fit:contain}
  .gallery-section{padding-top:30px;padding-bottom:44px}
}

/* V42: contact form flow, embedded map, and clearer calendar framing */
.contact-form-column{
  display:grid;
  gap:22px;
  align-self:start;
}
.contact-map-embed{
  margin-top:24px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  background:#dce7ec;
  aspect-ratio:4/3;
}
.contact-map-embed iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:300px;
  border:0;
}
.contact-card .contact-map-btn{
  margin-top:16px;
}
.calendar-page .section-heading > p:first-of-type{
  max-width:780px;
}
@media(max-width:900px){
  .contact-form-column{gap:18px}
}
@media(max-width:620px){
  .contact-map-embed{
    margin-top:20px;
    aspect-ratio:1/1;
  }
  .contact-map-embed iframe{min-height:280px}
  .contact-form-column{gap:16px}
}

/* V43: directions-mode map links */
.contact-map-embed{position:relative}
.contact-map-start{
  position:absolute;
  right:14px;
  bottom:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 15px;
  border-radius:999px;
  background:rgba(5,42,64,.94);
  color:#fff;
  font-weight:800;
  font-size:.88rem;
  box-shadow:0 8px 24px rgba(0,0,0,.22);
}
.contact-map-start:hover{transform:translateY(-1px)}
@media(max-width:620px){
  .contact-map-start{right:10px;bottom:10px;font-size:.82rem;padding:9px 13px}
}

/* V44: tighter contact form, compact GroupMe, aligned columns, and cropped Street View controls */
.contact-page .contact-grid{
  align-items:stretch;
}
.contact-page .contact-side{
  display:flex;
  min-width:0;
}
.contact-page .contact-info-card{
  width:100%;
  height:100%;
}
.contact-page .contact-form-column{
  height:100%;
  gap:14px;
}
.contact-page .form-card{
  padding:30px 32px;
}
.contact-page .form-card h2{
  margin-bottom:7px;
}
.contact-page .form-card .mini-note{
  margin-top:0;
  margin-bottom:16px;
}
.contact-page .form-grid{
  gap:10px 14px;
}
.contact-page .field{
  margin-bottom:4px;
}
.contact-page .field label{
  margin-bottom:5px;
}
.contact-page .field input,
.contact-page .field textarea,
.contact-page .field select{
  padding:11px 13px;
}
.contact-page .field textarea{
  min-height:118px;
}

/* Crop Google's bottom-right Street View controls outside the visible frame. */
.contact-page .contact-map-embed{
  margin-top:14px;
  position:relative;
  overflow:hidden;
}
.contact-page .contact-map-embed iframe{
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:calc(100% + 76px);
  min-height:0;
  border:0;
}

.contact-page .contact-groupme-card{
  grid-template-columns:50px 1fr;
  gap:14px;
  padding:17px 18px;
  border-radius:22px;
}
.contact-page .contact-groupme-mark{
  width:48px;
  height:48px;
  border-radius:15px;
}
.contact-page .contact-groupme-card .eyebrow{
  margin-bottom:4px;
}
.contact-page .contact-groupme-card h3{
  font-size:1.08rem;
  margin:0 0 5px;
}
.contact-page .contact-groupme-card p{
  margin:0 0 10px;
  font-size:.92rem;
  line-height:1.45;
}
.contact-page .contact-groupme-card .btn{
  min-height:40px;
  padding:9px 15px;
}

/* Retire the V43 in-map directions overlay. */
.contact-page .contact-map-start{
  display:none !important;
}

@media(max-width:900px){
  .contact-page .contact-grid{
    align-items:start;
  }
  .contact-page .contact-side{
    display:block;
  }
  .contact-page .contact-info-card{
    height:auto;
  }
  .contact-page .contact-form-column{
    height:auto;
    gap:14px;
  }
}
@media(max-width:620px){
  .contact-page .form-card{
    padding:24px 22px;
  }
  .contact-page .form-grid{
    gap:7px;
  }
  .contact-page .field{
    margin-bottom:3px;
  }
  .contact-page .field textarea{
    min-height:108px;
  }
  .contact-page .contact-map-embed{
    margin-top:12px;
  }
  .contact-page .contact-map-embed iframe{
    height:calc(100% + 70px);
  }
  .contact-page .contact-groupme-card{
    grid-template-columns:48px 1fr;
    padding:16px;
    gap:12px;
  }
  .contact-page .contact-groupme-card .btn{
    width:auto;
  }
}

/* V45: balanced 50/50 contact layout and standard interactive Google map */
.contact-page .contact-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:28px;
  align-items:stretch;
}
.contact-page .contact-side,
.contact-page .contact-form-column{
  min-width:0;
  height:100%;
}
.contact-page .contact-side{
  display:flex;
}
.contact-page .contact-info-card{
  width:100%;
  height:100%;
  padding:32px;
  display:flex;
  flex-direction:column;
}
.contact-page .contact-map-embed{
  position:relative;
  margin-top:10px;
  width:100%;
  min-height:410px;
  aspect-ratio:auto;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  background:#dce7ec;
}
.contact-page .contact-map-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  border:0;
}
.contact-page .contact-card .contact-map-btn{
  margin-top:14px;
}

.contact-page .contact-form-column{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:16px;
}
.contact-page .form-card{
  height:100%;
  padding:32px;
  display:flex;
  flex-direction:column;
}
.contact-page .form-card form{
  flex:1;
  display:flex;
}
.contact-page .form-grid{
  width:100%;
  flex:1;
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:16px;
  row-gap:15px;
  align-content:space-between;
}
.contact-page .field{
  margin-bottom:0;
}
.contact-page .field input,
.contact-page .field textarea,
.contact-page .field select{
  padding:12px 13px;
}
.contact-page .field textarea{
  min-height:132px;
}

.contact-page .contact-groupme-card{
  align-self:end;
  grid-template-columns:46px 1fr;
  gap:12px;
  padding:14px 16px;
  min-height:0;
  border-radius:20px;
}
.contact-page .contact-groupme-mark{
  width:44px;
  height:44px;
  border-radius:14px;
}
.contact-page .contact-groupme-card .eyebrow{
  margin-bottom:3px;
}
.contact-page .contact-groupme-card h3{
  font-size:1.03rem;
  line-height:1.2;
  margin:0 0 4px;
}
.contact-page .contact-groupme-card p{
  margin:0 0 8px;
  font-size:.9rem;
  line-height:1.4;
}
.contact-page .contact-groupme-card .btn{
  min-height:38px;
  padding:8px 14px;
}

@media(max-width:900px){
  .contact-page .contact-grid{
    grid-template-columns:1fr;
    gap:22px;
  }
  .contact-page .contact-side,
  .contact-page .contact-form-column,
  .contact-page .contact-info-card{
    height:auto;
  }
  .contact-page .contact-form-column{
    grid-template-rows:auto auto;
  }
  .contact-page .form-card{
    height:auto;
  }
  .contact-page .contact-map-embed{
    min-height:360px;
  }
  .contact-page .form-grid{
    align-content:start;
  }
}
@media(max-width:620px){
  .contact-page .contact-info-card,
  .contact-page .form-card{
    padding:24px 22px;
  }
  .contact-page .contact-map-embed{
    min-height:330px;
    margin-top:10px;
  }
  .contact-page .form-grid{
    grid-template-columns:1fr;
    row-gap:11px;
  }
  .contact-page .field.full{
    grid-column:auto;
  }
  .contact-page .field textarea{
    min-height:116px;
  }
  .contact-page .contact-groupme-card{
    grid-template-columns:44px 1fr;
    padding:14px;
  }
}

/* V46: restore the original Google Street View panorama at full frame. */
.contact-page .contact-map-embed iframe{
  inset:0;
  width:100%;
  height:100%;
  transform:none;
}

/* V47: API-controlled Street View + normal form spacing with flexible message area */
.contact-page .contact-map-embed{
  min-height:440px;
}
.contact-page .contact-streetview-api,
.contact-page .contact-streetview-fallback{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.contact-page .contact-streetview-api{
  z-index:2;
  visibility:hidden;
}
.contact-page .contact-streetview-api.is-ready{
  visibility:visible;
}
.contact-page .contact-streetview-fallback{
  z-index:1;
}
.contact-page .contact-streetview-fallback[hidden]{
  display:none;
}

/* Restore ordinary field rhythm. The message box takes the spare vertical room. */
.contact-page .form-card{
  min-height:0;
}
.contact-page .form-card form{
  min-height:0;
}
.contact-page .form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto auto minmax(190px,1fr) auto;
  column-gap:16px;
  row-gap:12px;
  align-content:stretch;
  min-height:0;
}
.contact-page .field{
  margin-bottom:0;
}
.contact-page .field.full:has(#message){
  display:flex;
  flex-direction:column;
  min-height:0;
}
.contact-page .field.full:has(#message) textarea{
  flex:1;
  min-height:190px;
  height:100%;
  resize:vertical;
}

@media(max-width:900px){
  .contact-page .contact-map-embed{
    min-height:390px;
  }
  .contact-page .form-grid{
    grid-template-rows:auto;
  }
  .contact-page .field.full:has(#message) textarea{
    min-height:170px;
    height:auto;
  }
}
@media(max-width:620px){
  .contact-page .contact-map-embed{
    min-height:340px;
  }
  .contact-page .form-grid{
    grid-template-columns:1fr;
    row-gap:11px;
  }
  .contact-page .field.full:has(#message) textarea{
    min-height:150px;
  }
}

/* V48: API-only Street View. No iframe fallback or iframe-only controls. */
.contact-page .contact-map-embed{
  position:relative;
  overflow:hidden;
}
.contact-page .contact-streetview-api{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  visibility:hidden;
}
.contact-page .contact-streetview-api.is-ready{
  visibility:visible;
}
.contact-page .contact-map-status{
  position:absolute;
  inset:0;
  z-index:1;
  display:grid;
  place-items:center;
  padding:28px;
  text-align:center;
  background:#e8f0f3;
  color:#53636b;
  font-weight:700;
  line-height:1.5;
}
.contact-page .contact-map-status[hidden]{
  display:none;
}

/* V49: restore simple embedded Street View map. */
.contact-page .map-wrap{
  width:100%;
  max-width:none;
  height:450px;
  min-height:0;
  overflow:hidden;
  border-radius:18px;
  position:relative;
}
.contact-page .map-wrap iframe{
  width:100%;
  height:100%;
  min-height:0;
  border:0;
  display:block;
  position:static;
  inset:auto;
  transform:none;
}
@media(max-width:620px){
  .contact-page .map-wrap{
    height:340px;
  }
}

/* V50: modern light/dark theme toggle */
.theme-toggle{
  flex:0 0 auto;
  width:44px;
  height:44px;
  margin-left:auto;
  padding:0;
  border:1px solid #d8e2e7;
  border-radius:999px;
  background:#f4f8fa;
  color:#173f55;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(5,42,64,.07);
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.theme-toggle:hover{transform:translateY(-1px);background:#eaf2f5}
.theme-toggle:focus-visible{outline:3px solid rgba(197,24,69,.24);outline-offset:3px}
.theme-toggle-icon{font-size:1.18rem;line-height:1;transform:translateY(-1px)}

/* Soft charcoal/navy dark mode — intentionally not black. */
html[data-theme="dark"]{
  color-scheme:dark;
  --paper:#1b2830;
  --ink:#e7eef2;
  --muted:#a9bac3;
  --line:#344750;
  --cream:#1e2c34;
  --sand:#31414a;
}
html[data-theme="dark"] body{background:#142129;color:#e7eef2}
html[data-theme="dark"] .site-header{
  background:rgba(20,33,41,.97);
  border-bottom-color:rgba(185,211,223,.12);
  box-shadow:0 8px 28px rgba(0,0,0,.12);
}
html[data-theme="dark"] .brand-logo{filter:brightness(0) invert(1);opacity:.95}
html[data-theme="dark"] .site-nav a{color:#cedbe1}
html[data-theme="dark"] .site-nav a:hover,
html[data-theme="dark"] .site-nav a.active{background:#273a44;color:#fff}
html[data-theme="dark"] .site-nav a:last-child{background:var(--red);color:#fff}
html[data-theme="dark"] .site-nav a:last-child:hover{background:var(--red-dark);color:#fff}
html[data-theme="dark"] .menu-toggle span:not(.sr-only){background:#e7f0f4}
html[data-theme="dark"] .theme-toggle{background:#263943;border-color:#3a505b;color:#f4d27a;box-shadow:0 7px 20px rgba(0,0,0,.18)}
html[data-theme="dark"] .theme-toggle:hover{background:#2d434e}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3{color:#edf5f8}
html[data-theme="dark"] .lead,
html[data-theme="dark"] .section-heading p,
html[data-theme="dark"] .prose p,
html[data-theme="dark"] .prose li,
html[data-theme="dark"] .intro-section p,
html[data-theme="dark"] .home-sunday-copy p,
html[data-theme="dark"] .home-groupme-copy p,
html[data-theme="dark"] .card p,
html[data-theme="dark"] .giving-card p,
html[data-theme="dark"] .schedule-item p,
html[data-theme="dark"] .mini-note,
html[data-theme="dark"] .messages-more-simple p,
html[data-theme="dark"] .visitor-intro p,
html[data-theme="dark"] .visitor-detail p,
html[data-theme="dark"] .giving-support-options p,
html[data-theme="dark"] .giving-support-action p{color:#b4c3ca}
html[data-theme="dark"] .scripture-note,
html[data-theme="dark"] .scripture-note-banner,
html[data-theme="dark"] .pastor-signoff{color:#aebdc4}
html[data-theme="dark"] .scripture-note span{color:#ef9eb3}
html[data-theme="dark"] .scripture-note-light{color:rgba(255,255,255,.84)}
html[data-theme="dark"] .scripture-note-light span{color:#fff}

html[data-theme="dark"] .intro-section,
html[data-theme="dark"] .message-section,
html[data-theme="dark"] .home-connect-zone,
html[data-theme="dark"] .photo-ribbon,
html[data-theme="dark"] .gallery-section,
html[data-theme="dark"] .worship-page .worship-new-here-section{background:#142129}
html[data-theme="dark"] .section-soft,
html[data-theme="dark"] .photo-story,
html[data-theme="dark"] .be-third-about{background:#192730}
html[data-theme="dark"] .home-start{background:linear-gradient(to bottom,transparent 34px,#142129 34px)}
html[data-theme="dark"] .home-start-shell,
html[data-theme="dark"] .home-start-card,
html[data-theme="dark"] .card,
html[data-theme="dark"] .giving-card,
html[data-theme="dark"] .form-card,
html[data-theme="dark"] .schedule-item,
html[data-theme="dark"] .be-third-copy,
html[data-theme="dark"] .about-grace-panel,
html[data-theme="dark"] .about-pastor-card,
html[data-theme="dark"] .sermon-guide-card,
html[data-theme="dark"] .visitor-panel,
html[data-theme="dark"] .giving-support-panel{
  background:#1b2931;
  border-color:#354851;
  color:#e7eef2;
  box-shadow:0 14px 34px rgba(0,0,0,.13);
}
html[data-theme="dark"] .home-start-heading{
  background:linear-gradient(120deg,#1d2d35 0%,#1b2931 62%,#29232a 100%);
  border-bottom-color:#354851;
}
html[data-theme="dark"] .home-start-heading h2,
html[data-theme="dark"] .home-start-card h3,
html[data-theme="dark"] .field label,
html[data-theme="dark"] .mission-steps strong,
html[data-theme="dark"] .sermon-guide-date-control label,
html[data-theme="dark"] .sermon-guide-page-number,
html[data-theme="dark"] .giving-support-action strong{color:#edf5f8}
html[data-theme="dark"] .home-start-card:hover{background:#22343d}
html[data-theme="dark"] .home-sunday-card{background:linear-gradient(120deg,#252c2b 0%,#1b2931 72%);border-color:#3b4949}
html[data-theme="dark"] .home-sunday-time{border-right-color:#43504f}
html[data-theme="dark"] .home-groupme-card,
html[data-theme="dark"] .contact-groupme-card{
  background:linear-gradient(135deg,#1c2d35 0%,#1b2931 60%,#29232a 100%);
  border-color:#354851;
  color:#e7eef2;
}
html[data-theme="dark"] .mission-panel{background:#1c2b33;box-shadow:inset 0 0 0 1px #354851}
html[data-theme="dark"] .mission-steps>div{border-top-color:#3a4c55}
html[data-theme="dark"] .mission-steps span{color:#aebcc3}
html[data-theme="dark"] .giving-page .giving-card.featured{background:#1b2931;color:#e7eef2}
html[data-theme="dark"] .giving-page .giving-card.featured h3,
html[data-theme="dark"] .giving-page .giving-card.featured p{color:inherit}
html[data-theme="dark"] .giving-support-action{background:#20313a;border-top-color:#354851}
html[data-theme="dark"] .giving-support-options>div{border-right-color:#354851}
html[data-theme="dark"] .visitor-grid,
html[data-theme="dark"] .visitor-detail{border-color:#354851}
html[data-theme="dark"] .history-timeline{border-left-color:#435660}
html[data-theme="dark"] .timeline-item:before{border-color:#1b2931;box-shadow:0 0 0 2px #435660}

html[data-theme="dark"] .field input,
html[data-theme="dark"] .field textarea,
html[data-theme="dark"] .field select,
html[data-theme="dark"] .sermon-guide-date-control select{
  background:#17252d;
  border-color:#415660;
  color:#edf4f7;
}
html[data-theme="dark"] .field input::placeholder,
html[data-theme="dark"] .field textarea::placeholder{color:#83969f}
html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .guide-control-btn{background:#263840;border-color:#455b66;color:#edf5f8}
html[data-theme="dark"] .guide-control-btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
html[data-theme="dark"] .sermon-guide-empty{background:#17252d;border-color:#465a64;color:#aebdc4}
html[data-theme="dark"] .sermon-guide-empty strong{color:#edf5f8}
html[data-theme="dark"] .sermon-guide-image-wrap{background:#101b21;border-color:#354851}
html[data-theme="dark"] .gallery-item{background:#1b2931;box-shadow:0 14px 34px rgba(0,0,0,.18)}
html[data-theme="dark"] .quickbar{background:#1b2931;box-shadow:0 18px 50px rgba(0,0,0,.14)}
html[data-theme="dark"] .quickbar a:hover{background:#22343d}
html[data-theme="dark"] .quickbar strong{color:#edf5f8}
html[data-theme="dark"] .map-card,
html[data-theme="dark"] .legacy-box{background:#1b2931;border-color:#354851}
html[data-theme="dark"] .notice.success{background:#213a2b;color:#bce0c7}
html[data-theme="dark"] .notice.error{background:#43252c;color:#f0bcc6}

/* Keep branded dark panels rich instead of flattening them. */
html[data-theme="dark"] .page-hero-v2,
html[data-theme="dark"] .home-podcast-card,
html[data-theme="dark"] .quote-panel,
html[data-theme="dark"] .contact-card,
html[data-theme="dark"] .section-dark,
html[data-theme="dark"] .photo-ribbon-inner{color:#fff}
html[data-theme="dark"] .page-hero-v2 h1,
html[data-theme="dark"] .home-podcast-card h2,
html[data-theme="dark"] .quote-panel h2,
html[data-theme="dark"] .quote-panel h3,
html[data-theme="dark"] .contact-card h2,
html[data-theme="dark"] .contact-card h3,
html[data-theme="dark"] .section-dark h2,
html[data-theme="dark"] .section-dark h3,
html[data-theme="dark"] .photo-ribbon-inner h2{color:#fff}

@media(max-width:900px){
  .theme-toggle{margin-left:auto}
  html[data-theme="dark"] .site-nav{background:#1b2931;border-color:#354851;box-shadow:0 18px 45px rgba(0,0,0,.28)}
}
@media(max-width:620px){
  html[data-theme="dark"] .home-start{background:linear-gradient(to bottom,transparent 22px,#142129 22px)}
  .theme-toggle{width:40px;height:40px}
}
html[data-theme="dark"] .be-third-cta{
  background:#1b2931;
  border-color:#354851;
}
html[data-theme="dark"] .worship-photo-band{background:#142129}
html[data-theme="dark"] .photo-frame img,
html[data-theme="dark"] .wide-photo-card{border-color:#30434c}


/* V51: floating theme control + dark-mode contrast cleanup */
.theme-toggle{
  position:fixed;
  left:20px;
  bottom:20px;
  z-index:1200;
  width:48px;
  height:48px;
  margin:0;
  border:1px solid rgba(7,51,77,.14);
  background:rgba(255,255,255,.96);
  color:#173f55;
  box-shadow:0 10px 30px rgba(5,42,64,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.theme-toggle:hover{
  transform:translateY(-2px);
  background:#f4f8fa;
  box-shadow:0 14px 34px rgba(5,42,64,.22);
}
.theme-toggle-icon{
  font-size:1.22rem;
  transform:none;
}

html[data-theme="dark"] .theme-toggle{
  background:rgba(36,54,63,.96);
  border-color:#4a616c;
  color:#f7d47d;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}
html[data-theme="dark"] .theme-toggle:hover{
  background:#304650;
}

/* Make important homepage time/accent text easy to read in dark mode. */
html[data-theme="dark"] .home-sunday-time strong{
  color:#d9edf7;
}
html[data-theme="dark"] .home-sunday-time span,
html[data-theme="dark"] .eyebrow,
html[data-theme="dark"] .mission-kicker,
html[data-theme="dark"] .schedule-time,
html[data-theme="dark"] .schedule-link,
html[data-theme="dark"] .timeline-item strong,
html[data-theme="dark"] .text-link,
html[data-theme="dark"] .link-arrow,
html[data-theme="dark"] .home-start-link{
  color:#f07d99;
}
html[data-theme="dark"] .tag{
  background:#442b34;
  color:#ffafc2;
}
html[data-theme="dark"] .card-icon{
  background:#432934;
  color:#ff9fb7;
}

/* Finish the Worship photo/caption treatment in dark mode. */
html[data-theme="dark"] .worship-photo-band{
  background:#142129;
}
html[data-theme="dark"] .wide-photo-card{
  background:#142129;
  border-color:#30434c;
}
html[data-theme="dark"] .wide-photo-overlay{
  background:rgba(27,46,56,.96);
  color:#fff;
}
html[data-theme="dark"] .wide-photo-overlay strong{
  color:#fff;
}
html[data-theme="dark"] .wide-photo-overlay span{
  color:#e4f0f4;
}

@media(max-width:620px){
  .theme-toggle{
    left:14px;
    bottom:14px;
    width:46px;
    height:46px;
  }
  html[data-theme="dark"] .wide-photo-card{
    background:#142129;
  }
}

/* V52: true viewport-floating theme toggle, theme-specific header logos, Worship footer cleanup */
.brand-logo-dark{display:none;}
html[data-theme="dark"] .brand-logo-light{display:none;}
html[data-theme="dark"] .brand-logo-dark{display:block;}
html[data-theme="dark"] .brand-logo{
  filter:none;
  opacity:1;
}

/* Keep the theme switch attached to the browser viewport, never to a page section. */
.theme-toggle{
  position:fixed !important;
  top:auto !important;
  right:auto !important;
  left:20px !important;
  bottom:20px !important;
  margin:0 !important;
  z-index:9999 !important;
}

/* The visitor footer was still inheriting the light background in dark mode. */
html[data-theme="dark"] .worship-page .visitor-footer{
  background:#20313a;
  border-top-color:#3b505a;
}
html[data-theme="dark"] .worship-page .visitor-footer strong{
  color:#eef6f8;
}
html[data-theme="dark"] .worship-page .visitor-footer span{
  color:#b8c8cf;
}

@media(max-width:620px){
  .theme-toggle{
    left:14px !important;
    bottom:14px !important;
  }
}


/* V54: dark mode for the mobile Welcome + Be Third combined card */
@media(max-width:620px){
  html[data-theme="dark"] .intro-section .split{
    background:#1b2931;
    border-color:#354851;
    box-shadow:0 14px 34px rgba(0,0,0,.18);
  }
  html[data-theme="dark"] .intro-section .split > div:first-child{
    background:#1b2931;
  }
  html[data-theme="dark"] .intro-section .mission-panel{
    background:#1c2b33;
    border-top-color:#354851;
    box-shadow:none;
  }
  html[data-theme="dark"] .intro-section .text-link,
  html[data-theme="dark"] .intro-section .mission-panel > a{
    color:#f07d99;
  }
}


/* V55: compact homepage hero on short desktop/720p screens */
@media (min-width:901px) and (max-height:820px){
  .home-hero.home-hero-photo,
  .home-hero-full{
    min-height:520px;
  }
  .home-hero-background{
    object-position:center 72%;
  }
  .home-hero-full{
    padding:42px 0 30px;
    justify-content:center;
  }
  .home-hero-full .hero-copy{
    max-width:650px;
  }
  .home-hero-full .hero-copy h1{
    font-size:clamp(3.7rem,5.2vw,4.8rem);
    line-height:.96;
    margin-bottom:18px;
  }
  .home-hero-full .hero-copy > p:not(.scripture-note){
    font-size:1rem;
    line-height:1.55;
    max-width:610px;
    margin-bottom:10px;
  }
  .home-hero-full .scripture-note{
    margin-top:7px;
    margin-bottom:15px;
  }
  .home-hero-full .button-row{
    margin-top:8px;
  }
  .home-hero-caption{
    margin-top:20px;
    font-size:.84rem;
  }
}

@media (min-width:901px) and (max-height:720px){
  .home-hero.home-hero-photo,
  .home-hero-full{
    min-height:480px;
  }
  .home-hero-background{
    object-position:center 75%;
  }
  .home-hero-full{
    padding-top:30px;
    padding-bottom:24px;
  }
  .home-hero-full .hero-copy h1{
    font-size:clamp(3.45rem,4.8vw,4.35rem);
  }
  .home-hero-caption{
    margin-top:16px;
  }
}

/* V58: make Sunday worship the first homepage action and keep it visible on short desktops */
.home-sunday-zone{
  position:relative;
  z-index:6;
  margin-top:-30px;
  padding:0 0 18px;
  background:linear-gradient(to bottom,transparent 30px,#fff 30px);
}
.home-start{
  margin-top:0;
  padding-top:0;
  padding-bottom:12px;
  background:#fff;
}

html[data-theme="dark"] .home-sunday-zone{
  background:linear-gradient(to bottom,transparent 30px,#142129 30px);
}
html[data-theme="dark"] .home-start{
  background:#142129;
}

@media (min-width:901px) and (max-height:820px){
  .home-hero.home-hero-photo,
  .home-hero-full{
    min-height:445px;
  }
  .home-hero-background{
    object-position:center 76%;
  }
  .home-hero-full{
    padding:32px 0 24px;
    justify-content:center;
  }
  .home-hero-full .hero-copy h1{
    font-size:clamp(3.45rem,4.8vw,4.45rem);
    margin-bottom:14px;
  }
  .home-hero-full .hero-copy > p:not(.scripture-note){
    margin-bottom:8px;
  }
  .home-hero-caption{
    margin-top:14px;
  }
  .home-sunday-zone{
    margin-top:-26px;
    background:linear-gradient(to bottom,transparent 26px,#fff 26px);
    padding-bottom:14px;
  }
  html[data-theme="dark"] .home-sunday-zone{
    background:linear-gradient(to bottom,transparent 26px,#142129 26px);
  }
  .home-sunday-card{
    padding:22px 28px;
    gap:24px;
  }
  .home-sunday-time{
    padding-right:24px;
  }
  .home-sunday-time strong{
    font-size:clamp(2rem,3.2vw,2.7rem);
  }
  .home-sunday-copy h2{
    font-size:1.4rem;
  }
  .home-sunday-copy p{
    font-size:.94rem;
    line-height:1.45;
  }
}

@media (min-width:901px) and (max-height:720px){
  .home-hero.home-hero-photo,
  .home-hero-full{
    min-height:390px;
  }
  .home-hero-background{
    object-position:center 80%;
  }
  .home-hero-full{
    padding:24px 0 20px;
  }
  .home-hero-full .hero-copy h1{
    font-size:clamp(3.1rem,4.3vw,3.95rem);
    margin-bottom:12px;
  }
  .home-hero-full .hero-copy > p:not(.scripture-note){
    font-size:.95rem;
    line-height:1.45;
  }
  .home-hero-full .scripture-note{
    margin:5px 0 11px;
  }
  .home-hero-full .button-row{
    margin-top:6px;
  }
  .home-hero-caption{
    margin-top:10px;
    font-size:.78rem;
  }
  .home-sunday-card{
    padding:18px 24px;
    gap:20px;
  }
  .home-sunday-time strong{
    font-size:2.2rem;
  }
  .home-sunday-copy h2{
    font-size:1.28rem;
  }
  .home-sunday-copy p{
    font-size:.9rem;
  }
  .scripture-note-banner{
    margin-top:6px!important;
    font-size:.8rem!important;
  }
}

@media(max-width:900px){
  .home-sunday-zone{
    margin-top:-22px;
    padding-bottom:12px;
    background:linear-gradient(to bottom,transparent 22px,#fff 22px);
  }
  html[data-theme="dark"] .home-sunday-zone{
    background:linear-gradient(to bottom,transparent 22px,#142129 22px);
  }
  .home-start{
    margin-top:0;
  }
}


/* V59: 720p homepage composition — restore image height and land Sunday card at viewport bottom */
@media (min-width:901px) and (max-height:720px){
  .home-hero.home-hero-photo,
  .home-hero-full{
    min-height:468px;
  }
  .home-hero-background{
    object-position:center 77%;
  }
  .home-hero-full{
    padding:30px 0 22px;
    justify-content:center;
  }
  .home-hero-full .hero-copy h1{
    font-size:clamp(3.2rem,4.45vw,4.05rem);
  }
  .home-sunday-zone{
    margin-top:-30px;
    padding-bottom:8px;
    background:linear-gradient(to bottom,transparent 30px,#fff 30px);
  }
  html[data-theme="dark"] .home-sunday-zone{
    background:linear-gradient(to bottom,transparent 30px,#142129 30px);
  }
  .home-sunday-card{
    padding:17px 24px;
  }
  .home-start{
    padding-top:8px;
  }
}


/* V60: sermon guide Spotify recording */
.sermon-guide-audio{
  display:flex;
  align-items:center;
  gap:24px;
  margin:18px 0 22px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#f7fafb;
}
.sermon-guide-audio-copy{
  flex:0 1 320px;
}
.sermon-guide-audio-copy .eyebrow{
  margin-bottom:5px;
}
.sermon-guide-audio-copy p{
  margin:0;
  color:var(--muted);
  line-height:1.5;
}
.sermon-guide-audio iframe{
  flex:1 1 560px;
  width:100%;
  min-width:0;
  height:152px;
  border:0;
  border-radius:12px;
}
html[data-theme="dark"] .sermon-guide-audio{
  background:#17252d;
  border-color:#3b505a;
}
html[data-theme="dark"] .sermon-guide-audio-copy p{
  color:#c2d0d6;
}
@media(max-width:760px){
  .sermon-guide-audio{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    padding:16px;
  }
  .sermon-guide-audio-copy{
    flex:none;
  }
  .sermon-guide-audio iframe{
    flex:none;
    width:100%;
  }
}


/* V61: temporary sermon-audio testing notice */
.sermon-guide-test-note{
  margin-top:10px !important;
  padding:8px 10px;
  border-radius:10px;
  background:#fff4dc;
  color:#6f5110 !important;
  font-size:.88rem;
  line-height:1.4 !important;
}
html[data-theme="dark"] .sermon-guide-test-note{
  background:#3c3320;
  color:#f2d992 !important;
}


/* V62: compact full-width Spotify sermon embed */
.sermon-guide-audio{
  display:block;
  margin:14px 0 18px;
  padding:0;
  border:0;
  border-radius:12px;
  background:transparent;
}
.sermon-guide-audio iframe{
  display:block;
  width:100%;
  height:100px;
  min-width:0;
  border:0;
  border-radius:12px;
}
.sermon-guide-test-note{
  margin:4px 2px 0 !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--muted) !important;
  font-size:.76rem;
  line-height:1.2 !important;
}
html[data-theme="dark"] .sermon-guide-audio{
  background:transparent;
  border-color:transparent;
}
html[data-theme="dark"] .sermon-guide-test-note{
  background:transparent !important;
  color:#aebdc4 !important;
}
@media(max-width:760px){
  .sermon-guide-audio{
    padding:0;
    gap:0;
  }
  .sermon-guide-audio iframe{
    width:100%;
    height:100px;
  }
}


/* V63: remove Spotify compact embed white strip + red test note */
.sermon-guide-audio iframe{
  height:80px !important;
}
.sermon-guide-test-note{
  color:#c91f45 !important;
  font-weight:700;
}
html[data-theme="dark"] .sermon-guide-test-note{
  color:#ff6b8b !important;
}
@media(max-width:760px){
  .sermon-guide-audio iframe{
    height:80px !important;
  }
}

/* V64: soften Spotify embed corners to 8px */
.sermon-guide-audio,
.sermon-guide-audio iframe{
  border-radius:8px !important;
}

/* V65: remove visible white Spotify iframe background in dark mode */
.spotify-embed-shell{
  width:100%;
  height:80px;
  overflow:hidden;
  border-radius:8px;
  background:#fff;
  line-height:0;
}
.spotify-embed-shell iframe{
  display:block;
  width:100%;
  height:80px !important;
  border:0;
  border-radius:8px !important;
  background:transparent;
}
html[data-theme="dark"] .spotify-embed-shell{
  background:#121212;
}


/* V66: mask Spotify iframe's internal white corner pixels in dark mode */
.spotify-embed-shell{
  position:relative;
}
html[data-theme="dark"] .spotify-embed-shell{
  background:#222;
}
html[data-theme="dark"] .spotify-embed-shell::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  border-radius:8px;
  box-shadow:inset 0 0 0 2px #222;
}


/* V67: legal pages + accessibility fundamentals */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid #c91f45;
  outline-offset:3px;
}
.footer-bottom{
  gap:18px;
  flex-wrap:wrap;
}
.footer-legal{
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.footer-legal a{
  text-decoration:underline;
  text-underline-offset:3px;
}
.legal-hero{
  padding:72px 0 54px;
  background:linear-gradient(135deg,#eef5f7,#fff7f8);
  border-bottom:1px solid var(--line);
}
.legal-hero-inner{
  max-width:840px;
}
.legal-hero h1{
  margin:4px 0 14px;
  font-family:'Playfair Display',serif;
  font-size:clamp(2.6rem,6vw,4.6rem);
  line-height:1.03;
  color:var(--blue-deep);
}
.legal-hero p{
  margin:0;
  max-width:720px;
  font-size:1.1rem;
  color:var(--muted);
}
.legal-content-section{
  padding-top:54px;
  padding-bottom:72px;
}
.legal-content{
  max-width:900px;
}
.legal-content h2{
  margin:36px 0 10px;
  color:var(--blue-deep);
  font-size:1.45rem;
}
.legal-content p,
.legal-content li{
  color:var(--ink);
}
.legal-content a{
  color:var(--red-dark);
  text-decoration:underline;
  text-underline-offset:3px;
}
.legal-updated{
  margin-top:0;
  color:var(--muted) !important;
}
html[data-theme="dark"] .legal-hero{
  background:linear-gradient(135deg,#17262e,#1e3038);
  border-color:#344b55;
}
html[data-theme="dark"] .legal-hero h1,
html[data-theme="dark"] .legal-content h2{
  color:#f3f7f9;
}
html[data-theme="dark"] .legal-hero p,
html[data-theme="dark"] .legal-updated{
  color:#b9c9d0 !important;
}
html[data-theme="dark"] .legal-content p,
html[data-theme="dark"] .legal-content li{
  color:#dce7eb;
}
html[data-theme="dark"] .legal-content a{
  color:#ff8ca6;
}
@media(max-width:620px){
  .legal-hero{padding:48px 0 38px;}
  .legal-content-section{padding-top:38px;padding-bottom:54px;}
  .footer-bottom{align-items:flex-start;}
  .footer-legal{width:100%;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto !important;}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* V68: floating Back to Top control */
.back-to-top{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:1200;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(7,51,77,.14);
  border-radius:50%;
  background:rgba(255,255,255,.96);
  color:#173f55;
  box-shadow:0 10px 30px rgba(5,42,64,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  font:inherit;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease, background .2s ease, box-shadow .2s ease;
}
.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.back-to-top:hover{
  transform:translateY(-2px);
  background:#f4f8fa;
  box-shadow:0 14px 34px rgba(5,42,64,.22);
}
.back-to-top:focus-visible{
  outline:3px solid rgba(197,24,69,.28);
  outline-offset:3px;
}
html[data-theme="dark"] .back-to-top{
  background:rgba(36,54,63,.96);
  border-color:#4a616c;
  color:#e9f3f7;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}
html[data-theme="dark"] .back-to-top:hover{
  background:#304650;
}
@media(max-width:620px){
  .back-to-top{
    right:14px;
    bottom:14px;
    width:46px;
    height:46px;
  }
}
@media(prefers-reduced-motion:reduce){
  .back-to-top{
    transition:none;
  }
}

/* V69: dated upcoming-event calendar list */
.calendar-event-list{gap:12px}
.calendar-event{
  grid-template-columns:190px 1fr;
  align-items:center;
  padding:20px 22px;
  border-width:1px;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.calendar-event .schedule-time{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
  color:var(--blue-dark);
  line-height:1.2;
}
.calendar-event .event-day{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:800;
  color:var(--red);
}
.calendar-event .event-date{
  font-size:1.18rem;
  font-weight:800;
  color:var(--blue-dark);
}
.calendar-event .event-time{
  margin-top:3px;
  font-size:.94rem;
  font-weight:700;
  color:var(--muted);
}
.calendar-event .event-copy h3{
  font-size:1.12rem;
  margin-bottom:5px;
}
.calendar-event .event-copy p{line-height:1.5}
.calendar-event.event-today{
  border:2px solid #e44266;
  box-shadow:0 10px 28px rgba(201,31,69,.12);
  background:linear-gradient(90deg,#fff7f9 0%,#fff 38%);
}
.event-today-label{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  margin-bottom:6px;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.calendar-event.event-worship{
  border-left:4px solid var(--red);
}
.event-badge{
  display:inline-flex;
  margin-bottom:6px;
  padding:4px 8px;
  border-radius:999px;
  background:#fff0f4;
  color:var(--red-dark);
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
html[data-theme="dark"] .calendar-event{
  background:#1b2a32;
  border-color:#344a55;
}
html[data-theme="dark"] .calendar-event .event-date,
html[data-theme="dark"] .calendar-event .schedule-time{color:#e5f0f5}
html[data-theme="dark"] .calendar-event .event-time{color:#b9c9d0}
html[data-theme="dark"] .calendar-event.event-today{
  border-color:#ff6b8b;
  background:linear-gradient(90deg,#33232c 0%,#1b2a32 42%);
  box-shadow:0 10px 28px rgba(255,107,139,.1);
}
html[data-theme="dark"] .calendar-event.event-worship{border-left-color:#ff6b8b}
html[data-theme="dark"] .event-badge{background:#432934;color:#ffafc2}
@media(max-width:620px){
  .calendar-event{grid-template-columns:1fr;gap:10px;padding:18px}
  .calendar-event .schedule-time{gap:2px}
  .calendar-event .event-date{font-size:1.12rem}
}

/* V70: compact calendar badges */
.calendar-event{
  position:relative;
}
.event-today-label{
  position:absolute;
  top:12px;
  right:14px;
  margin:0;
  padding:4px 8px;
  font-size:.68rem;
  line-height:1;
  z-index:2;
}
.event-title-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:5px;
}
.calendar-event .event-title-row h3{
  margin:0;
}
.event-title-row .event-badge{
  margin:0;
}
@media(max-width:620px){
  .event-today-label{
    top:10px;
    right:12px;
  }
  .event-title-row{
    gap:8px;
  }
}


/* V71: simplify homepage hero copy + event month rhythm */
.hero-inline-scripture{
  color:#f3c4d0;
  font-weight:700;
}
.home-hero-address:only-child{
  padding-left:0;
}
.home-hero-address:only-child::before{
  display:none;
}

/* Give the Sunday invitation a little breathing room before Church Life. */
.home-start{
  padding-top:34px;
}
@media (min-width:901px) and (max-height:820px){
  .home-start{ padding-top:28px; }
}
@media(max-width:900px){
  .home-start{ padding-top:28px; }
}
@media(max-width:620px){
  .home-start{ padding-top:24px; }
}
html[data-theme="dark"] .hero-inline-scripture{
  color:#f6a8ba;
}

/* Slight visual pause when the event feed moves into a new month. */
.calendar-event.event-month-break{
  margin-top:14px;
}
@media(max-width:620px){
  .calendar-event.event-month-break{ margin-top:10px; }
}

/* V72: clearer calendar month separation + white Church Life button text in dark mode */
.calendar-event.event-month-break{
  position:relative;
  margin-top:34px;
}
.calendar-event.event-month-break::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-18px;
  height:1px;
  background:rgba(11,70,104,.14);
}
html[data-theme="dark"] .calendar-event.event-month-break::before{
  background:rgba(218,235,242,.16);
}
html[data-theme="dark"] .home-start-link,
html[data-theme="dark"] .home-start-card:nth-child(2) .home-start-link,
html[data-theme="dark"] .home-start-card:nth-child(4) .home-start-link{
  color:#fff !important;
}
@media(max-width:620px){
  .calendar-event.event-month-break{
    margin-top:28px;
  }
  .calendar-event.event-month-break::before{
    top:-15px;
  }
}


/* V74: centered month divider + sitemap + footer credit */
/* Center the divider evenly between the final event of one month and the first event of the next. */
.calendar-event.event-month-break::before{
  top:-23px;
}
@media(max-width:620px){
  .calendar-event.event-month-break::before{
    top:-19px;
  }
}

.footer-bottom{
  align-items:center;
}
.footer-credit{
  color:#9fb7c2;
  white-space:nowrap;
}
.footer-mission{
  margin-left:auto;
}
@media(max-width:900px){
  .footer-mission{
    margin-left:0;
  }
}
@media(max-width:620px){
  .footer-bottom{
    gap:10px;
  }
  .footer-credit,
  .footer-mission{
    width:100%;
  }
}

/* Human-friendly sitemap */
.sitemap-page .legal-hero{
  background:linear-gradient(135deg,#eef5f7 0%,#fff 52%,#fff5f7 100%);
}
.sitemap-intro{
  max-width:760px;
  margin-bottom:34px;
  color:var(--muted);
  font-size:1.03rem;
}
.sitemap-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.sitemap-group{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:28px;
  box-shadow:var(--shadow-soft);
}
.sitemap-group h2{
  margin:0 0 8px;
  font-size:1.45rem;
}
.sitemap-group > p{
  margin:0 0 18px;
  color:var(--muted);
  font-size:.94rem;
}
.sitemap-links{
  display:grid;
  gap:8px;
}
.sitemap-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  border:1px solid #dce5e9;
  border-radius:12px;
  background:#f8fbfc;
  color:var(--blue-dark);
  font-weight:700;
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.sitemap-link::after{
  content:"→";
  color:var(--red);
  font-weight:800;
}
.sitemap-link:hover{
  transform:translateY(-1px);
  border-color:#bdcfd7;
  background:#fff;
}
.sitemap-link.external::after{
  content:"↗";
}
html[data-theme="dark"] .sitemap-page .legal-hero{
  background:linear-gradient(135deg,#17262e,#1d3038 55%,#292329);
}
html[data-theme="dark"] .sitemap-group{
  background:#17252d;
  border-color:#3b505a;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
html[data-theme="dark"] .sitemap-group h2{
  color:#f3f7f9;
}
html[data-theme="dark"] .sitemap-group > p{
  color:#afc1c9;
}
html[data-theme="dark"] .sitemap-link{
  background:#1e313a;
  border-color:#405761;
  color:#edf6f9;
}
html[data-theme="dark"] .sitemap-link:hover{
  background:#263c46;
  border-color:#5a727d;
}
@media(max-width:900px){
  .sitemap-grid{grid-template-columns:1fr 1fr;}
  .sitemap-group:first-child{grid-column:1/-1;}
}
@media(max-width:620px){
  .sitemap-grid{grid-template-columns:1fr;}
  .sitemap-group:first-child{grid-column:auto;}
  .sitemap-group{padding:22px;}
}

/* V75: balanced footer layout */
.footer-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  column-gap:28px;
}
.footer-left{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.footer-meta-dot{
  color:#6f8f9d;
  font-size:1rem;
  line-height:1;
}
.footer-legal{
  justify-self:center;
  white-space:nowrap;
}
.footer-mission{
  justify-self:end;
  margin-left:0;
  white-space:nowrap;
}
@media(max-width:900px){
  .footer-bottom{
    grid-template-columns:1fr;
    justify-items:start;
    row-gap:11px;
  }
  .footer-left,
  .footer-legal,
  .footer-mission{
    justify-self:start;
  }
  .footer-mission{
    margin-left:0;
  }
}
@media(max-width:620px){
  .footer-left{
    flex-wrap:wrap;
    row-gap:6px;
  }
  .footer-legal{
    flex-wrap:wrap;
    white-space:normal;
  }
}

/* V76: footer balance fix — keep left text on one line and center legal links in remaining space */
.footer-bottom{
  display:flex;
  align-items:center;
  gap:24px;
}
.footer-left{
  display:inline-flex;
  align-items:center;
  gap:9px;
  flex:0 0 auto;
  white-space:nowrap;
}
.footer-copyright,
.footer-credit{
  white-space:nowrap;
}
.footer-legal{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:0;
  white-space:nowrap;
}
.footer-mission{
  flex:0 0 auto;
  margin-left:0;
  white-space:nowrap;
}
@media(max-width:900px){
  .footer-bottom{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:11px;
  }
  .footer-left,
  .footer-legal,
  .footer-mission{
    width:auto;
    flex:none;
  }
  .footer-legal{
    justify-content:flex-start;
  }
}
@media(max-width:620px){
  .footer-left{
    white-space:normal;
    flex-wrap:wrap;
  }
  .footer-copyright,
  .footer-credit{
    white-space:normal;
  }
  .footer-legal{
    flex-wrap:wrap;
    white-space:normal;
  }
}

/* V77: mobile footer polish + footer link underlines */
.site-footer a:not(.footer-logo){
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.site-footer a:not(.footer-logo):hover{
  text-decoration-thickness:2px;
}
.footer-logo{
  text-decoration:none !important;
}

@media(max-width:620px){
  .footer-bottom{
    align-items:center !important;
    text-align:center;
    padding-bottom:64px;
  }
  .footer-left,
  .footer-legal,
  .footer-mission{
    width:100%;
    justify-content:center !important;
    text-align:center;
  }
  .footer-left{
    display:flex;
    flex-wrap:wrap;
    row-gap:6px;
  }
  .footer-legal{
    display:flex;
    flex-wrap:wrap;
    gap:7px 9px;
  }
}


/* V78: mobile footer dot cleanup + dark sermon empty state */
html[data-theme="dark"] .sermon-guide-empty{
  background:transparent !important;
  border-color:transparent !important;
}
@media(max-width:620px){
  .footer-meta-dot{
    display:none !important;
  }
}


/* V79: balanced gallery grid + simple click-to-enlarge lightbox */
.gallery-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:20px;
}
.gallery-item,
.gallery-item.gallery-wide{
  grid-column:auto;
  min-height:0;
  aspect-ratio:4 / 3;
  border-radius:22px;
}
.gallery-item img,
.gallery-item.gallery-wide img{
  width:100%;
  height:100%;
  max-height:none;
  object-fit:cover;
  cursor:zoom-in;
}
.gallery-item img:focus-visible{
  outline:3px solid var(--blue);
  outline-offset:-5px;
}
.gallery-lightbox[hidden]{display:none !important;}
.gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:2500;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px;
  background:rgba(8,18,24,.88);
}
.gallery-lightbox-image{
  display:block;
  max-width:min(1180px,92vw);
  max-height:88vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:12px;
  box-shadow:0 24px 80px rgba(0,0,0,.45);
}
.gallery-lightbox-close{
  position:fixed;
  top:18px;
  right:20px;
  z-index:2501;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(15,30,38,.86);
  color:#fff;
  font:400 2rem/1 Arial,sans-serif;
  cursor:pointer;
}
.gallery-lightbox-close:hover,
.gallery-lightbox-close:focus-visible{
  background:#fff;
  color:#17324d;
  outline:none;
}
body.gallery-lightbox-open{overflow:hidden;}
@media(max-width:620px){
  .gallery-grid{grid-template-columns:1fr;gap:16px;}
  .gallery-item,.gallery-item.gallery-wide{aspect-ratio:auto;}
  .gallery-item img,.gallery-item.gallery-wide img{height:auto;object-fit:contain;}
  .gallery-lightbox{padding:18px;}
  .gallery-lightbox-image{max-width:96vw;max-height:84vh;border-radius:9px;}
  .gallery-lightbox-close{top:12px;right:12px;width:42px;height:42px;}
}


/* V80: selected gallery photos span both desktop columns */
.gallery-item.gallery-wide{
  grid-column:1 / -1;
  aspect-ratio:16 / 7;
}
.gallery-item.gallery-wide img{
  width:100%;
  height:100%;
  object-fit:cover;
}
@media(max-width:620px){
  .gallery-item.gallery-wide{
    grid-column:auto;
    aspect-ratio:auto;
  }
  .gallery-item.gallery-wide img{
    height:auto;
    object-fit:contain;
  }
}

/* V81: pull desktop footer meta row inward so floating controls never cover text */
@media(min-width:901px){
  .footer-bottom{
    width:min(1060px,calc(100% - 150px));
  }
}

/* V82: keep the footer inset only where floating controls can crowd it */
@media(min-width:1400px){
  .footer-bottom{
    width:min(100% - 40px,1180px);
  }
}


/* V83: private GroupMe invitation messaging */
.groupme-invite-note{
  cursor:default;
  user-select:none;
}
.footer-groupme-note{
  display:inline-block;
}
.sitemap-note{
  cursor:default;
}
.sitemap-note small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.78em;
  font-weight:500;
}
html[data-theme="dark"] .sitemap-note small{
  color:#aebdc4;
}


/* V84: GroupMe invite is informational text, not a button */
.groupme-invite-note{
  display:inline-block;
  padding:0 !important;
  margin:0;
  min-height:0 !important;
  width:auto !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:var(--red) !important;
  font-size:.94rem;
  font-weight:700;
  line-height:1.35;
  text-decoration:none;
  cursor:default;
  user-select:text;
}
html[data-theme="dark"] .groupme-invite-note{
  color:#f3a7b9 !important;
}
@media(max-width:620px){
  .home-connect-actions .groupme-invite-note{
    width:auto !important;
  }
}
