/* Locators, office addresses and a native details directory. Brand tokens stay shared. */
.region-heading { padding-block:40px 32px; }
.region-heading h1 { font-size:clamp(36px,4.6vw,60px); line-height:1.16; margin-block:24px; max-width:20ch; }
.region-heading > p { max-width:64ch; font-size:18px; }
.region-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start; padding-block:16px 72px; }
.region-map { position:sticky; top:150px; background:var(--surface); margin:0; padding:12px 12px 24px; }
.region-map .wp-block-image { margin:0; }
.region-map img { display:block; width:100%; height:auto; }
.region-map .wp-lightbox-container .lightbox-trigger { left:16px; right:auto!important; width:max-content; min-width:44px; min-height:44px; opacity:1; visibility:visible; display:flex; align-items:center; gap:8px; padding:10px 12px; background:var(--paper); color:var(--ink); border:0; }
.region-map .lightbox-trigger::after { content:'Powiększ'; font:500 14px/1.3 var(--sans); }
.region-map .lightbox-trigger svg { width:16px; height:16px; }
.region-map > p { margin:8px 20px 0; color:var(--muted); font-size:16px; line-height:1.6; }
.region-map > p strong { color:var(--gold); font-weight:600; }
.region-directory { min-width:0; }
.region-directory > h2 { font-size:32px; margin-block:0 12px; }
.region-directory > p { font-size:18px; margin-bottom:24px; }
.region-directory .wp-block-details { padding:0; margin-block:12px; background:var(--surface); border:0; }
.region-directory .region-city > summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 24px; font:400 24px/1.3 var(--serif); cursor:pointer; list-style:none; }
.region-directory summary::-webkit-details-marker { display:none; }
.region-directory summary::after { content:''; background:var(--gold); width:18px; height:18px; flex:none; clip-path:polygon(42% 0,58% 0,58% 42%,100% 42%,100% 58%,58% 58%,58% 100%,42% 100%,42% 58%,0 58%,0 42%,42% 42%); }
.region-directory details[open] > summary::after { clip-path:polygon(0 42%,100% 42%,100% 58%,0 58%); }
.region-directory summary:hover { color:var(--gold); }
.region-directory summary:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.region-directory .cemetery-grid { display:block; padding:0 24px 12px; }
.region-directory .region-city > .strup-inline-link { margin:0; padding:0 24px 20px; }
.region-directory .region-city > .strup-inline-link a { display:inline-flex; align-items:center; min-height:44px; }
.region-directory .cemetery-card { padding:20px 0; border:0; }
.region-directory .cemetery-card + .cemetery-card { border-top:1px solid var(--line); }
.region-directory .cemetery-card h3 { font-size:26px; margin-block:0 16px; }
.region-directory .cemetery-card p { font-size:18px; line-height:1.65; margin-block:12px; }
.region-directory .cemetery-links { gap:8px 24px; margin-top:16px; }
.region-directory .cemetery-links a { min-height:44px; font-size:16px; }
.region-offices { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding-block:0 64px; }
.region-office { background:var(--surface); padding:32px; }
.region-office h2 { font-size:30px; margin-block:0 20px; }
.region-office p { font-size:18px; line-height:1.7; }
.region-office .text-link { min-height:44px; display:inline-flex; align-items:center; }
.region-copy > h2 { font-size:36px; margin-block:0 24px; }
.region-copy > h3 { font-size:26px; margin-block:28px 16px; }
.region-copy p, .region-copy li { font-size:18px; line-height:1.75; }
.region-services { background:var(--surface); padding-block:48px; margin-block:0 56px; }
.region-services .container { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.region-services h2 { font-size:36px; margin-block:0 24px; }
.region-services p { font-size:18px; }
.region-services .text-link { display:inline-flex; min-height:44px; align-items:center; }
@media(max-width:900px) {
 .region-layout { gap:28px; }
 .region-map { top:130px; }
 .region-directory .region-city > summary { font-size:22px; padding:20px; }
 .region-directory .cemetery-grid { padding-inline:20px; }
 .region-directory .region-city > .strup-inline-link { padding-inline:20px; }
}
@media(max-width:700px) {
 .region-heading { padding-block:24px; }
 .region-heading h1 { margin-block:20px; }
 .region-layout { grid-template-columns:1fr; gap:32px; padding-block:0 40px; }
 .region-map { position:static; padding:0 0 20px; }
 .region-directory > h2, .region-copy > h2, .region-services h2 { font-size:30px; }
 .region-map > p { font-size:16px; }
 .region-offices, .region-services .container { grid-template-columns:1fr; gap:24px; }
 .region-office { padding:24px; }
 .region-services { padding-block:32px; }
}

.region-copy p > a { color:var(--gold); font-weight:600; }
.region-copy p > a:hover { color:var(--ink); }

/* Native detail pages: address first, practical information alongside. */
.cemetery-page-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(28px,5vw,72px); padding-block:0 72px; align-items:start; }
.cemetery-facts { min-width:0; background:var(--surface); padding:clamp(24px,3vw,36px); }
.cemetery-facts h2 { font-size:28px; line-height:1.3; margin-block:0 18px; }
.cemetery-facts p { font-size:18px; line-height:1.7; }
.cemetery-location { padding-bottom:28px; }
.cemetery-admin { border-top:1px solid var(--line); padding-top:28px; }
.cemetery-facts .directory-eyebrow { color:var(--gold); font-size:16px; margin-block:0 16px; }
.cemetery-facts .directory-phone { font-size:24px; font-variant-numeric:tabular-nums; }
.directory-caption, .cemetery-facts .directory-caption { font-size:16px; line-height:1.65; color:var(--muted); }
.cemetery-practical > h2 { margin-top:0; }
.directory-help { background:var(--surface); padding-block:48px; margin-bottom:48px; }
.directory-help-inner, .local-information { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,5vw,64px); }
.directory-help h2, .town-page-layout h2 { font-size:clamp(28px,3vw,36px); line-height:1.3; margin-block:0 24px; }
.directory-help h3 { font-size:25px; line-height:1.4; }
.directory-help p, .town-page-layout p { font-size:18px; line-height:1.75; }
.directory-help a, .town-page-layout a, .cemetery-page-layout a, .directory-sources a { display:inline-flex; align-items:center; min-height:44px; }
.directory-related > h2 { font-size:28px; }
.directory-sources { max-width:76ch; padding-block:0 48px; }
.directory-sources h2 { font-size:28px; }
.directory-sources p, .directory-sources li { font-size:16px; line-height:1.7; }
.directory-sources ul { padding-left:20px; }
.directory-sources a { overflow-wrap:anywhere; color:var(--gold); }
.town-page-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,5vw,64px); padding-block:0 64px; align-items:start; }
.town-cemeteries { background:var(--surface); padding:clamp(24px,3vw,36px); }
.town-cemeteries .cemetery-card { padding:20px 0; border:0; border-radius:0; background:transparent; }
.town-cemeteries .cemetery-card + .cemetery-card { border-top:1px solid var(--line); }
.town-cemeteries .cemetery-card h3 { font-size:26px; line-height:1.35; }
.coverage-list .coverage-place { padding-block:20px; border-bottom:1px solid var(--line); }
.coverage-list .coverage-place:last-child { border-bottom:0; }
.coverage-list h2 { font-size:36px; margin-top:0; }
.coverage-list h3 { font-size:28px; margin:0 0 12px; }
.coverage-list p { font-size:18px; line-height:1.7; }
.coverage-list .text-link { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:800px) {
 .cemetery-page-layout, .town-page-layout, .directory-help-inner, .local-information { grid-template-columns:1fr; gap:32px; }
 .cemetery-page-layout, .town-page-layout { padding-bottom:40px; }
 .directory-help { padding-block:32px; margin-bottom:32px; }
 .coverage-list h2 { font-size:30px; }
}

.local-usc h3 { margin-block:24px 16px; }

.local-usc p > a { color:var(--gold); font-weight:600; }

/* Maps replace the large text panel; existing addresses and advice stay editable. */
.cemetery-page-layout { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); column-gap:clamp(28px,4vw,56px); row-gap:32px; }
.cemetery-page-layout > .strup-osm-local { grid-column:1; grid-row:1; }
.cemetery-page-layout > .cemetery-facts { grid-column:2; grid-row:1 / span 2; }
.cemetery-page-layout > .cemetery-practical { grid-column:1; grid-row:2; }
.town-page-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); row-gap:36px; }
.town-page-layout > .strup-osm-local { grid-column:2; grid-row:1; }
.town-cemeteries { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 48px; padding:28px 0 0; background:transparent; border-top:1px solid var(--line); }
.town-cemeteries > :is(h2,p) { grid-column:1 / -1; }
.town-cemeteries > h2 { margin-bottom:8px; }
.town-cemeteries > p { margin:0 0 12px; }
.town-cemeteries .cemetery-card { padding-block:20px 8px; }
.town-cemeteries .cemetery-card + .cemetery-card { border-top:0; }
.town-cemeteries .cemetery-card h3 { margin:0 0 12px; }
.town-cemeteries .cemetery-card p { margin:0 0 8px; }
.directory-help:has(+ .contact-band) { margin-bottom:0; }
@media(max-width:800px) {
 .cemetery-page-layout,.town-page-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
 .cemetery-page-layout > :is(.strup-osm-local,.cemetery-facts,.cemetery-practical),.town-page-layout > .strup-osm-local { grid-column:1; grid-row:auto; }
 .town-cemeteries { grid-template-columns:minmax(0,1fr); padding-top:24px; gap:0; }
 .town-cemeteries .cemetery-card + .cemetery-card { border-top:1px solid var(--line); }
}
