
:root{
  --ink:#1f2421;--muted:#646963;--paper:#f5f1e8;--surface:#fffdf8;
  --line:#d8d0c2;--accent:#7a3529;--accent-dark:#572219;--green:#244b3a;
  --shadow:0 18px 45px rgba(38,31,24,.10);--radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;color:var(--ink);background:linear-gradient(180deg,#faf8f3 0,var(--paper) 34rem);font-family:Arial,Helvetica,sans-serif;line-height:1.55}
img{max-width:100%}
a{color:inherit}
.shell{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:.75rem 1rem;z-index:999}
.skip-link:focus{left:1rem;top:1rem}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,253,248,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(216,208,194,.85)}
.site-nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{font-family:Georgia,'Times New Roman',serif;text-decoration:none;font-weight:700;font-size:1.08rem;letter-spacing:.02em}
.nav-items{display:flex;gap:1.15rem;align-items:center}
.nav-link{text-decoration:none;color:var(--muted);font-size:.94rem}
.nav-link:hover,.nav-link:focus-visible{color:var(--accent)}
.hero{padding:clamp(3rem,8vw,6.5rem) 0 2.4rem}
.eyebrow{margin:0 0 .8rem;color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;line-height:1.08}
h1{font-size:clamp(3rem,8.5vw,6.7rem);letter-spacing:-.045em;margin:0;max-width:950px}
.lede{font-size:clamp(1.05rem,2vw,1.3rem);color:var(--muted);max-width:740px;margin:1.25rem 0 0}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:1rem 0 1.4rem}
.section-heading h2{font-size:clamp(2rem,4vw,3.2rem);margin:0;letter-spacing:-.025em}
.section-heading p{margin:0;color:var(--muted);max-width:470px}
.church-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;padding-bottom:4.5rem}
.church-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 28px rgba(38,31,24,.07);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.church-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#c2b7a5}
.church-card>a{display:block;text-decoration:none;height:100%}
.card-image{position:relative;overflow:hidden;background:#ded8ce;aspect-ratio:4/3}
.card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.church-card:hover .card-image img{transform:scale(1.025)}
.card-number{position:absolute;left:14px;top:14px;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(31,36,33,.88);color:#fff;font-weight:800;font-size:.86rem;box-shadow:0 3px 12px rgba(0,0,0,.22)}
.card-copy{padding:1.15rem 1.2rem 1.35rem}
.card-copy h3{font-size:clamp(1.35rem,2.4vw,1.7rem);margin:0 0 .55rem;letter-spacing:-.018em}
.card-copy p{margin:0;color:var(--muted);font-size:.96rem}
.card-copy .view{display:inline-block;color:var(--accent);font-weight:700;font-size:.9rem;margin-top:.85rem}
.map-section{padding:1rem 0 5rem}
.map-layout{display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:start}
.map-frame,.map-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(38,31,24,.06)}
.map-frame{overflow:hidden;padding:.8rem}
.map-frame svg{display:block;width:100%;height:auto;border-radius:12px;background:#efe9dd}
.map-list{padding:1.1rem}
.map-list ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.map-list li a{display:grid;grid-template-columns:34px 1fr;gap:.75rem;align-items:start;text-decoration:none;padding:.72rem;border-radius:12px}
.map-list li a:hover,.map-list li a:focus-visible{background:#f1ece2}
.legend-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800}
.map-list strong{display:block;font-family:Georgia,'Times New Roman',serif;line-height:1.2}
.map-list span{display:block;color:var(--muted);font-size:.86rem;margin-top:.18rem}
.map-note{margin:.8rem 0 0;color:var(--muted);font-size:.8rem}
.street{stroke:#d5c9b8;stroke-width:18;stroke-linecap:round}
.street-center{stroke:#fffaf1;stroke-width:2;stroke-dasharray:7 9;opacity:.9}
.street-label{fill:#6c655c;font:700 14px Arial,sans-serif;letter-spacing:.02em}
.river{fill:#b7d1d5}.river-label{fill:#466b70;font:italic 700 15px Georgia,serif}.map-inset{fill:#fffaf1;stroke:#c7b9a5;stroke-width:2}.map-inset-label{fill:#5d574f;font:700 13px Arial,sans-serif}.map-break{stroke:#8b8175;stroke-width:3;stroke-linecap:round}
.map-marker circle{fill:var(--accent);stroke:#fffdf8;stroke-width:5;filter:drop-shadow(0 4px 5px rgba(0,0,0,.18))}
.map-marker text{fill:#fff;font:800 18px Arial,sans-serif;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.map-marker:hover circle,.map-marker:focus circle{fill:var(--accent-dark);stroke-width:7}
.site-footer{border-top:1px solid var(--line);background:rgba(255,253,248,.9);padding:1.7rem 0;color:var(--muted);font-size:.88rem}
.footer-row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* Church pages */
.page-main{padding-bottom:4.5rem}
.breadcrumb{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.5rem;color:var(--accent);font-weight:700;text-decoration:none;font-size:.92rem}
.page-hero{padding:2.25rem 0 2rem;border-bottom:1px solid var(--line);margin-bottom:2rem}
.page-hero h1{font-size:clamp(2.7rem,7vw,5.6rem);max-width:1000px}
.page-meta{display:flex;gap:.75rem 1.4rem;align-items:center;flex-wrap:wrap;margin-top:1rem;color:var(--muted)}
.page-meta a{color:var(--accent);font-weight:700;text-underline-offset:3px}
.page-description{max-width:780px;font-size:1.08rem;margin:1.1rem 0 0;color:var(--muted)}
.gallery{columns:2 420px;column-gap:1rem}
.photo{break-inside:avoid;margin:0 0 1rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 7px 20px rgba(38,31,24,.06)}
.photo-link{display:block;text-decoration:none;position:relative;overflow:hidden;background:#ded8ce}
.photo-link img{display:block;width:100%;height:auto;transition:transform .25s ease,filter .25s ease}
.photo-link:hover img{transform:scale(1.012);filter:brightness(.96)}
.photo-link::after{content:'View full size';position:absolute;right:.7rem;bottom:.7rem;background:rgba(31,36,33,.84);color:#fff;border-radius:999px;padding:.42rem .68rem;font-size:.76rem;font-weight:700;opacity:0;transform:translateY(4px);transition:.18s ease}
.photo-link:hover::after,.photo-link:focus-visible::after{opacity:1;transform:none}
.photo figcaption{padding:.72rem .85rem .85rem;color:var(--muted);font-size:.86rem}
.lightbox{width:min(96vw,1500px);max-height:94vh;border:0;border-radius:16px;padding:0;background:#151714;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.45)}
.lightbox::backdrop{background:rgba(16,18,16,.86);backdrop-filter:blur(4px)}
.lightbox-inner{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;max-height:94vh}
.lightbox-image-wrap{display:grid;place-items:center;min-height:250px;overflow:auto}
.lightbox img{max-width:100%;max-height:82vh;display:block}
.lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;background:#20231f}
.lightbox-caption{margin:0;color:#e6e8e2;font-size:.9rem}
.lightbox-actions{display:flex;gap:.55rem;align-items:center;white-space:nowrap}
.lightbox-actions a,.lightbox-actions button{appearance:none;border:1px solid #646a61;background:#2d312b;color:#fff;border-radius:999px;padding:.52rem .78rem;text-decoration:none;font:700 .82rem Arial,sans-serif;cursor:pointer}
.lightbox-actions a:hover,.lightbox-actions button:hover{background:#3b4038}
.no-js-note{font-size:.85rem;color:var(--muted)}

@media (max-width:920px){
  .church-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .map-list ol{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .shell{width:min(100% - 22px,1180px)}
  .site-nav{min-height:62px}.nav-items{gap:.7rem}.nav-link{font-size:.86rem}
  .hero{padding-top:2.7rem}.church-grid{grid-template-columns:1fr;gap:1rem;padding-bottom:3.2rem}
  .section-heading{align-items:start;flex-direction:column}
  .map-section{padding-bottom:3.5rem}.map-frame{padding:.45rem;overflow-x:auto}.map-frame svg{width:760px;max-width:none}.map-list ol{grid-template-columns:1fr}
  .page-hero{padding-top:1.7rem}.gallery{columns:1}
  .lightbox{width:100vw;max-height:100vh;border-radius:0}.lightbox-inner{max-height:100vh}.lightbox img{max-height:82vh}
  .lightbox-bar{align-items:flex-start;flex-direction:column}.lightbox-actions{width:100%;justify-content:flex-end}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.card-image--top img{object-position:center top}
