/* Page-scoped additions. The shared goehle.net stylesheet is unchanged. */
.preaching-page [hidden] { display:none !important; }
.preaching-page { --sage:#e8eee7; --sage-ink:#3c5748; }
.preaching-page :is(section,article)[id] { scroll-margin-top:105px; }
.review-banner { padding:8px 18px; text-align:center; background:#f6e9cd; color:#534321; font-size:.78rem; font-weight:600; }
.preaching-hero { background:var(--navy); color:white; padding:64px 0 60px; }
.preaching-hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:80px; align-items:center; }
.preaching-hero .eyebrow { color:#d9b477; }
.preaching-hero h1 { color:white; font-size:clamp(2.7rem,4.8vw,4.1rem); line-height:1.08; letter-spacing:-.025em; margin:16px 0 24px; }
.hero-intro { max-width:48ch; color:#d7e0e8; font-size:1.12rem; line-height:1.75; }
.hero-byline { display:flex; align-items:center; gap:16px; margin-top:26px; color:#f6f0e7; }
.hero-byline img { width:60px; height:60px; border-radius:50%; object-fit:cover; object-position:center 20%; border:2px solid #d1ad70; }
.hero-byline a { color:#d9b477; font-size:.88rem; }
.next-service { background:#fff; border-radius:12px; color:var(--ink); padding:32px; box-shadow:0 16px 40px #0003; border-top:5px solid var(--brass); }
.next-service .eyebrow { color:var(--brass-d); }
.next-service h2 { font-size:1.95rem; margin:10px 0 18px; }
.next-date { font-weight:600; color:var(--muted); font-size:.93rem; margin:20px 0 8px; }
.next-time { font-size:1.5rem; font-weight:700; margin:0 0 8px; }
.next-time span { color:var(--muted); font-size:.8rem; font-weight:500; display:inline-block; }
.next-address { color:var(--muted); font-size:.91rem; margin-bottom:20px; }
.next-service .service-tag { display:table; margin:0 0 20px; }
.next-service .btn { margin-top:3px; }
.page-jumps { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:22px; padding-bottom:22px; border-bottom:1px solid #d7d3cc; font-size:.91rem; font-weight:600; }
.page-jumps a { padding:4px 0; }
.page-jumps span { margin-left:8px; color:var(--brass-d); }
.section-heading { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-bottom:32px; }
.section-heading h2 { font-size:2.1rem; margin:0; }
.section-heading>p { font-size:.9rem; color:var(--muted); margin:0 0 3px; }
.schedule-freshness { margin:-16px 0 24px; max-width:85ch; }
.schedule-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:48px; align-items:start; }
.schedule-controls { display:flex; gap:12px; align-items:end; flex-wrap:wrap; background:#edeae3; padding:18px; border-radius:10px; }
.schedule-controls>label:not(.past-label) { flex:1 1 140px; font-size:.76rem; font-weight:700; color:var(--muted); }
.schedule-controls select { display:block; margin-top:5px; padding:10px 12px; background:white; border:1px solid #c9c9c3; border-radius:6px; font:inherit; color:var(--ink); font-size:.94rem; min-height:44px; }
.reset-button { border:1px solid #a7aea8; border-radius:6px; background:transparent; padding:10px 14px; min-height:44px; font:inherit; font-size:.9rem; cursor:pointer; }
.past-label { flex-basis:100%; display:flex; align-items:center; gap:8px; font-size:.8rem; color:var(--muted); padding-top:2px; }
.past-label input { width:17px; height:17px; accent-color:var(--navy); }
.schedule-count { color:var(--muted); font-size:.82rem; margin:16px 0 24px; }
.schedule-month { margin-bottom:32px; }
.schedule-month h3 { font-size:1.3rem; margin-bottom:14px; }
.service-list { list-style:none; padding:0; margin:0; border:1px solid var(--line); border-radius:10px; background:white; overflow:hidden; }
.service { display:flex; align-items:center; gap:18px; padding:18px; border-bottom:1px solid var(--line); }
.service:last-child { border-bottom:0; }
.service-day { border-radius:7px; background:var(--brass-lt); min-width:52px; text-align:center; padding:6px; color:var(--brass-d); }
.service-day span { display:block; font-size:.65rem; text-transform:uppercase; font-weight:700; letter-spacing:.05em; }
.service-day strong { display:block; font-family:Georgia,serif; font-size:1.55rem; line-height:1.2; }
.service-detail { flex:1; min-width:0; }
.service-detail h4 { font-size:1.06rem; margin:0 0 4px; }
.service-detail h4 a { color:var(--ink); }
.service-detail p { font-size:.81rem; margin:0; }
.service-town { font-size:.75rem; color:var(--muted); }
.service-tag { display:inline-block; background:var(--sage); color:var(--sage-ink); padding:2px 8px; border-radius:4px; font-size:.7rem; font-weight:600; margin-left:10px; }
.service-directions { font-size:.76rem; font-weight:600; min-height:44px; display:flex; align-items:center; gap:5px; }
.visit-note { background:var(--brass-lt); padding:26px; border-radius:10px; }
.visit-note h3 { font-size:1.35rem; }
.visit-note p { color:var(--muted); font-size:.88rem; }
.visit-note .eyebrow { color:var(--brass-d); font-size:.68rem; }
.visit-note a { font-size:.84rem; font-weight:600; }
.visit-note hr { border:0; border-top:1px solid #e3d7c4; margin:24px 0; }
.note-rule { display:block; width:36px; height:3px; background:var(--brass); margin:0 0 22px; }
.small { font-size:.85rem; color:var(--muted); }
.empty-state { background:var(--brass-lt); border-radius:10px; padding:30px; }
.church-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.church-card { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--bg); }
.church-card-top { background:var(--navy-2); padding:26px 28px; }
.church-card-top .eyebrow { color:#d9b477; font-size:.7rem; }
.church-card-top h3 { color:#fff; font-size:1.45rem; margin:0; }
.church-card-body { padding:26px 28px; }
.church-card-body p { color:var(--muted); font-size:.97rem; }
.church-card address { font-style:normal; font-size:.88rem; color:var(--ink); margin:20px 0; }
.church-links { display:flex; flex-wrap:wrap; gap:10px 20px; font-size:.84rem; font-weight:600; }
.church-links a { text-decoration:underline; text-underline-offset:3px; }
.sermon-section { background:var(--brass-lt); }
.sermon-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:64px; align-items:center; }
.sermon-grid h2 { font-size:2.1rem; }
.sermon-grid p { font-size:.9rem; color:var(--muted); }
.sermon-reference { font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--brass-d); }
.sermon-excerpt { margin:0; border-left:3px solid var(--brass); padding:10px 0 10px 32px; }
.sermon-excerpt blockquote { margin:0 0 22px; font-family:Georgia,serif; font-size:1.65rem; color:var(--navy); line-height:1.5; }
.sermon-excerpt figcaption { font-size:.8rem; color:var(--muted); }
.watch-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:64px; align-items:center; }
.watch-grid h2 { font-size:2.1rem; }
.watch-action { text-align:center; }
.watch-action p { margin-top:16px; font-size:.87rem; }
.preaching-invite { text-align:center; }
.preaching-invite .btn-row { justify-content:center; }
@media(max-width:1000px) { .preaching-hero-grid { gap:36px; } .schedule-layout { grid-template-columns:minmax(0,1fr) 230px; gap:26px; } .service { gap:12px; padding:16px 12px; } .service-directions { font-size:.7rem; } }
@media(max-width:760px) { .preaching-hero { padding:40px 0; } .preaching-hero-grid,.schedule-layout,.sermon-grid,.watch-grid { grid-template-columns:1fr; gap:30px; } .preaching-hero h1 { font-size:3.1rem; } .hero-intro { max-width:none; } .next-service { padding:25px; } .page-jumps { display:grid; grid-template-columns:1fr 1fr; font-size:.8rem; gap:12px 20px; } .section-heading { display:block; } .section-heading>p { margin-top:15px; } .section { padding:48px 0; } .visit-note { display:none; } .church-grid { grid-template-columns:1fr; } .sermon-excerpt { padding-left:22px; } .sermon-excerpt blockquote { font-size:1.4rem; } .watch-action { text-align:left; } }
@media(max-width:420px) { .container { padding-left:20px; padding-right:20px; } .preaching-hero h1 { font-size:2.75rem; } .next-service h2 { font-size:1.65rem; } .section-heading h2 { font-size:1.8rem; } .service-directions { width:100%; margin-left:64px; min-height:32px; } .service { flex-wrap:wrap; gap:10px 12px; } .service-detail { flex-basis:calc(100% - 66px); } .service-tag { margin-left:5px; } .schedule-controls { padding:14px; } .reset-button { flex-basis:100%; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .preaching-page * { transition:none !important; } }

@media(max-width:1100px) { html:not(.preaching-enhanced) .preaching-page .nav { flex-wrap:wrap; gap:16px; } html:not(.preaching-enhanced) .preaching-page .nav-links { position:static; display:flex; width:100%; box-shadow:none; align-items:flex-start; } html:not(.preaching-enhanced) .preaching-page .nav-toggle { display:none; } }
