/* =============================================================================
   Church Map - single church page (port of church.html's page styles).
   Depends on the tokens/components in app.css.
   ========================================================================== */

/* gallery */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:210px 210px;gap:6px;
  border-radius:var(--radius);overflow:hidden;margin-top:16px;box-shadow:var(--shadow-soft)}
.gallery button{border:none;padding:0;cursor:pointer;position:relative;overflow:hidden;background:var(--bg-2)}
.gallery button:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.gallery button:hover img{transform:scale(1.04)}
.gallery .count{position:absolute;right:10px;bottom:10px;background:rgba(20,24,40,.72);color:#fff;
  font-size:12.5px;font-weight:700;padding:5px 11px;border-radius:999px;display:flex;gap:6px;align-items:center}
.gallery .count svg{width:14px;height:14px}
.gallery.n1{grid-template-columns:1fr;grid-template-rows:340px}
.gallery.n2{grid-template-columns:2fr 1fr;grid-template-rows:340px}
.gallery.n2 button:first-child{grid-row:auto}
.gallery.n3{grid-template-rows:150px 150px}
@media (max-width:700px){
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:180px 110px}
  .gallery button:first-child{grid-column:span 2;grid-row:auto}
  .gallery button:nth-child(n+4){display:none}
  .gallery.n2{grid-template-columns:1fr;grid-template-rows:200px 120px}
}

/* layout */
.church-wrap{display:grid;grid-template-columns:1fr 340px;gap:36px;padding:0 0 30px}
@media (max-width:880px){ .church-wrap{grid-template-columns:1fr;gap:0} }
.head{padding:26px 0 6px}
.head .den{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;
  letter-spacing:.07em;text-transform:uppercase;color:var(--c)}
.head .den i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.head h1{font-size:clamp(30px,4.4vw,46px);line-height:1.05;margin:8px 0}
.head .sub{color:var(--muted);font-size:15px;display:flex;gap:7px;align-items:center}
.head .sub svg{width:15px;height:15px;color:var(--gold-deep);flex:none}
[data-theme="dark"] .head .sub svg{color:var(--gold)}
.stats{display:flex;flex-wrap:wrap;gap:22px 32px;margin:20px 0 4px;padding:16px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats div{font-size:12.5px;color:var(--muted)}
.stats b{display:block;font-family:"Fraunces",serif;font-size:23px;color:var(--ink);font-weight:600}

.church-wrap section{padding:28px 0 0}
.church-wrap section>h2{font-size:22px;margin:0 0 14px;display:flex;align-items:center;gap:12px}
.church-wrap section>h2::after{content:"";flex:1;height:1px;background:var(--line)}
.about-p{font-size:16.5px;line-height:1.7;max-width:64ch;margin:0}

/* services */
.svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}
.svc div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.svc b{display:block;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.svc div.today{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-soft)}
.stream{margin-top:14px;display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14px;
  color:var(--navy);text-decoration:none;border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;background:var(--card)}
.stream:hover{border-color:var(--gold)}
[data-theme="dark"] .stream{color:var(--ink)}
.stream svg{width:16px;height:16px;color:#D8463E}

/* facilities + access */
.fac{display:flex;flex-wrap:wrap;gap:8px}
.fac span{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);
  border-radius:999px;padding:8px 14px 8px 10px;font-size:13.5px;font-weight:600}
.fac i{width:22px;height:22px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center}
.fac svg{width:13px;height:13px;color:var(--navy)}
[data-theme="dark"] .fac svg{color:var(--gold)}
.access-note{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:12px;padding:15px 18px;font-size:14.5px;line-height:1.6;color:var(--ink);max-width:64ch;margin-top:14px}

/* tags */
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--card);
  border-radius:999px;padding:7px 13px;font-size:13.5px;font-weight:600}
.tags b{font-size:12px;color:var(--gold-deep)}
[data-theme="dark"] .tags b{color:var(--gold)}
.tags-note{font-size:12.5px;color:var(--muted);margin:10px 0 0}

/* visiting accordion */
.visit details{border-top:1px solid var(--line)}
.visit details:last-child{border-bottom:1px solid var(--line)}
.visit summary{cursor:pointer;font-family:"Fraunces",serif;font-weight:600;font-size:17px;
  padding:15px 4px;list-style:none;display:flex;align-items:center;gap:12px}
.visit summary::-webkit-details-marker{display:none}
.visit summary svg{width:18px;height:18px;color:var(--gold-deep);flex:none}
[data-theme="dark"] .visit summary svg{color:var(--gold)}
.visit p{margin:0 0 16px;padding:0 4px 0 34px;font-size:14.5px;line-height:1.65;color:var(--muted);max-width:62ch}

/* events */
.ev-list .ev-card{margin-bottom:12px}
.ev-actions{margin-top:8px;display:flex;gap:12px}
.ev-actions button,.ev-actions a{background:none;border:none;padding:0;cursor:pointer;font-size:12.5px;
  font-weight:800;color:var(--navy);display:inline-flex;gap:5px;align-items:center;text-decoration:none}
[data-theme="dark"] .ev-actions button,[data-theme="dark"] .ev-actions a{color:var(--gold)}
.ev-actions svg{width:13px;height:13px}
.past-tog{cursor:pointer;color:var(--muted);font-size:13.5px}
.past-wrap .ev-card{opacity:.55}

/* news rows */
.news-row{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;margin-bottom:10px;text-decoration:none;color:inherit;border-left:5px solid var(--t)}
.news-row:hover{box-shadow:var(--shadow-soft)}
.news-row .cat{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--t)}
.news-row b{display:block;font-family:"Fraunces",serif;font-size:17px;margin:3px 0 2px;font-weight:600}
.news-row small{color:var(--muted);font-size:12.5px}

/* nearby */
.near-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.near-card{display:grid;grid-template-columns:86px 1fr;text-decoration:none;color:inherit;overflow:hidden}
.near-card .ph{overflow:hidden;background:var(--bg-2)}
.near-card img{width:100%;height:100%;object-fit:cover}
.near-card .in{padding:12px 14px}
.near-card .den{font-size:11px;font-weight:800;color:var(--c)}
.near-card h3{font-size:15.5px;line-height:1.2;margin:2px 0 3px}
.near-card small{color:var(--muted);font-size:12px}

/* news from this church (same shape as nearby, so the page keeps one rhythm) */
.ch-news{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.ch-news-card{display:grid;grid-template-columns:86px 1fr;text-decoration:none;color:inherit;overflow:hidden}
.ch-news-card .ph{overflow:hidden;background:var(--bg-2)}
.ch-news-card img{width:100%;height:100%;object-fit:cover}
.ch-news-card .in{padding:12px 14px}
.ch-news-card .cat{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--c)}
.ch-news-card h3{font-size:15.5px;line-height:1.2;margin:2px 0 3px}
.ch-news-card small{color:var(--muted);font-size:12px}

/* sidebar */
.side{position:sticky;top:86px;align-self:start;display:flex;flex-direction:column;gap:14px;padding-top:26px}
@media (max-width:880px){ .side{position:static;padding-top:28px} }
.side .in{padding:16px 18px}
#mini{height:190px;background:var(--bg-2)}
.side p.row{margin:0 0 10px;display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45}
.side p.row svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--gold-deep)}
[data-theme="dark"] .side p.row svg{color:var(--gold)}
.side a.lnk{color:var(--navy);font-weight:600;text-decoration:none;word-break:break-word}
[data-theme="dark"] .side a.lnk{color:var(--ink)}
.side .btns{display:grid;gap:8px;margin-top:12px}
.leader{display:flex;gap:12px;align-items:center}
.leader .av{width:46px;height:46px;border-radius:50%;background:var(--c);color:#fff;display:grid;
  place-items:center;font-family:"Fraunces",serif;font-size:19px;font-weight:600;flex:none}
.leader small{display:block;color:var(--muted);font-size:12px}
.claim{border-left:4px solid var(--gold)}
.claim b{font-family:"Fraunces",serif;font-size:17px;font-weight:600;display:block;margin-bottom:4px}
.claim p{font-size:13.5px;color:var(--muted);margin:0 0 12px;line-height:1.5}
.correct{background:none;border:none;padding:0;cursor:pointer;font-size:13px;color:var(--muted);
  text-decoration:underline;margin-top:12px}
.facts .row b{font-weight:800;font-size:13.5px}

/* Photographer credits under the gallery. Small, quiet, and non-negotiable:
   most of these photographs are CC-BY-SA from Wikimedia Commons, and that
   licence is satisfied by naming the author. Styling it down is fine; removing
   it is using the picture without permission. */
.gallery-credit{max-width:1180px;margin:6px auto 0;padding:0 20px;
  font-size:11.5px;line-height:1.5;color:var(--muted);word-break:break-word}
