/* Shared visual language for new local pages; existing pages do not load this file. */
.local-page .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.local-skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 200;
  padding: .8rem 1.2rem;
  border-radius: var(--radius-sm);
  color: #fff;
  background: var(--color-primary-strong);
  transform: translateY(-160%);
}
.local-skip-link:focus { transform: translateY(0); }
.local-page :focus-visible { outline: 3px solid #bf6600; outline-offset: 4px; }
.local-page [id] { scroll-margin-top: 110px; }
.local-anchor-alias { display: block; height: 0; overflow: hidden; pointer-events: none; }
.local-page .page-hero-box { grid-template-columns: 1.05fr .95fr; background: linear-gradient(145deg, var(--color-primary), #184878); }
.local-page .page-hero-copy { padding: clamp(1.4rem, 3.5vw, 3rem); min-width: 0; }
.local-page .page-hero-copy h1 { font-size: clamp(2.3rem, 4.1vw, 3.35rem); }
.local-page .page-hero-copy > p { max-width: 58ch; }
.local-page .page-hero-copy .hero-kicker { color: #fff; letter-spacing: .08em; }
.local-page .page-hero-copy .local-hero-subtitle {
  font-family: "Fraunces", Georgia, serif;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  line-height: 1.35;
}
.local-page .page-hero-copy .btn-outline { color: #fff; border-color: rgba(255,255,255,.8); background: transparent; }
.local-page .page-hero-copy .btn-outline:hover { background: #fff; color: var(--color-primary); }
.local-hero-checks { padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .83rem; }
.local-hero-checks li::before { content: "✓"; margin-right: .35rem; color: #fff; }
.local-hero-figure { margin: 0; position: relative; min-height: 540px; }
.local-hero-figure img { width: 100%; height: 100%; object-fit: cover; }
.local-hero-figure figcaption { position: absolute; bottom: 0; left: 0; right: 0; padding: 3rem 1.5rem 1.1rem; background: linear-gradient(transparent, rgba(0,31,73,.9)); color: #fff; font-size: .82rem; }
.local-hero-figure figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.local-toc { padding: 1rem 0 2rem; }
.local-toc-inner { background: #fff; border: 1px solid rgba(0,47,109,.13); border-radius: var(--radius-md); padding: 1.2rem 1.5rem; }
.local-toc-title { color: var(--color-primary); font-weight: 800; margin: 0 0 .7rem; font-size: .9rem; }
.local-toc-list { padding: 0; margin: 0; display: flex; flex-wrap: wrap; list-style: none; gap: .55rem .65rem; }
.local-toc-list a { display: block; background: var(--color-bg); border-radius: 999px; padding: .42rem .85rem; color: var(--color-primary); font-size: .85rem; font-weight: 700; }
.local-toc-list a:hover { background: #fff1dd; }
.local-page .section { padding: 2.8rem 0; }
.local-page .local-section-soft { background: rgba(255,255,255,.58); border-block: 1px solid rgba(0,47,109,.055); }
.local-kicker { margin: 0 0 .7rem; text-transform: uppercase; color: #825000; font-size: .77rem; font-weight: 800; letter-spacing: .11em; }
.local-page .section-heading { max-width: 830px; }
.local-page .section-heading h2 { max-width: 29ch; }
.local-article-body { max-width: 860px; color: #223b63; }
.local-article-body > p { margin: 0 0 1.1rem; line-height: 1.85; }
.local-article-body h3 { font-size: 1.3rem; margin: 1.8rem 0 .75rem; }
.local-article-body a, .local-form-intro a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
.local-split { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .85fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.local-split .local-article-body { max-width: none; }
.local-figure { margin: 0; background: #fff; border: 1px solid rgba(0,47,109,.12); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-soft); }
.local-figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.local-figure figcaption { padding: .95rem 1.15rem; font-size: .81rem; line-height: 1.6; color: var(--color-muted); }
.local-photo-credit { display: block; font-size: .75rem; margin-top: .35rem; }
.local-photo-credit a { text-decoration: underline; text-underline-offset: 2px; }
.local-split .local-figure { margin-top: .25rem; }
.local-photo-gallery { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.2rem; margin-top: 2rem; }
.local-districts { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.3rem 0 1.5rem; }
.local-districts span { padding: .4rem .8rem; border: 1px solid rgba(0,47,109,.14); background: #fff; border-radius: 999px; font-size: .84rem; color: var(--color-primary); }
.local-factors { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; margin: 1.7rem 0; }
.local-factors article { background: #fff; border: 1px solid rgba(0,47,109,.14); border-radius: var(--radius-md); padding: 1.15rem; box-shadow: var(--shadow-soft); }
.local-factors h3 { margin: 0 0 .6rem; font-size: 1.2rem; }
.local-factors p { font-size: .93rem; margin: 0; }
.local-page .local-wide .local-article-body { max-width: none; }
.local-wide .local-article-body > p { max-width: 860px; }
.local-checklist { padding-left: 1.3rem; margin: 1.1rem 0 1.5rem; }
.local-checklist li { padding-left: .2rem; margin: .7rem 0; }
.local-checklist li::marker { color: #b65b00; }
.local-page .data-table { min-width: 610px; font-size: .93rem; }
.local-page .table-wrap { margin: 1.5rem 0; }
.local-page .process-grid { margin: 1.5rem 0; }
.local-page .step p { font-size: .93rem; }
.local-inline-cta { padding: 1.7rem 0; }
.local-inline-cta .cta-box { padding: 1.9rem 2rem; }
.local-inline-cta .cta-box p { max-width: 65ch; }
.local-inline-cta .cta-box .local-cta-title { color: #fff; font-family: "Fraunces", Georgia, serif; font-size: 1.8rem; line-height: 1.3; margin: 0 0 .7rem; }
.local-page .faq-list { max-width: 960px; }
.local-page .faq-item summary { position: relative; padding-right: 2.2rem; }
.local-page .faq-item summary::after { content: "+"; position: absolute; right: 0; top: -.15rem; font-size: 1.6rem; color: var(--color-primary); }
.local-page .faq-item[open] summary::after { content: "−"; }
.local-page .faq-item p { max-width: 84ch; padding-right: .4rem; line-height: 1.8; }
.local-page .local-contact { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 2rem; align-items: start; }
.local-form-intro p { line-height: 1.8; }
.local-form-intro a { overflow-wrap: anywhere; }
.local-contact-phone { display: inline-block; font-size: 2rem; font-weight: 800; color: var(--color-primary); margin: .7rem 0; }
.local-page .form-card h3 { font-size: 1.45rem; }
.local-page .form-card textarea { min-height: 130px; resize: vertical; }
.local-page .form-note { font-size: .83rem; }
.local-page .form-card .checkbox-row { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: .7rem; align-items: start; font-size: .82rem; }
.local-page .form-card .checkbox-row input { margin-top: .3rem; }
.local-photo-note { font-size: .8rem; color: var(--color-muted); margin-top: 1.4rem; }
@media (max-width: 960px) {
  .local-page .page-hero-box { grid-template-columns: 1fr 1fr; }
  .local-split { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: 1.5rem; }
  .local-photo-gallery { gap: .8rem; }
  .local-page .local-contact { gap: 1.2rem; }
}
@media (max-width: 760px) {
  .local-page .page-hero-box, .local-split, .local-page .local-contact { grid-template-columns: 1fr; }
  .local-hero-figure { min-height: 0; }
  .local-hero-figure img { height: auto; aspect-ratio: 4 / 3; }
  .local-page .page-hero-copy { padding: 1.55rem; }
  .local-page .page-hero-copy h1 { font-size: clamp(1.85rem, 9vw, 2.35rem); }
  .local-page .section { padding: 2.1rem 0; }
  .local-page .section-heading h2 { max-width: none; }
  .local-page .hero-actions { align-items: stretch; }
  .local-page .hero-actions .btn { width: 100%; }
  .local-photo-gallery, .local-factors { grid-template-columns: 1fr; }
  .local-figure img { aspect-ratio: 3 / 2; }
  .local-figure figcaption { padding: .8rem 1rem; }
  .local-toc-inner { padding: 1rem; }
  .local-toc-list a { font-size: .8rem; }
  .local-inline-cta .cta-box { padding: 1.5rem; }
  .local-article-body > p { line-height: 1.8; }
  .local-page .data-table { font-size: .87rem; }
  .local-page .data-table th, .local-page .data-table td { padding: .7rem; }
}
@media (prefers-reduced-motion: reduce) {
  .local-page *, .local-page *::before, .local-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Revision 2: reuse the Bydgoszcz page's cards, split modules and photo bands. */
.local-page .local-content-card { padding: clamp(1.3rem, 2.5vw, 2rem); min-width: 0; }
.local-page .local-content-card .local-article-body { max-width: none; }
.local-page .local-content-card h2 { font-size: clamp(1.55rem, 2.4vw, 2.35rem); }
.local-page .local-content-card h3 { font-size: 1.4rem; }
.local-page .local-content-card .local-article-body h3 { font-size: 1.25rem; }
.local-page .local-card-pair { align-items: stretch; gap: 1.3rem; }
.local-page .local-card-pair .local-content-card { display: flex; flex-direction: column; }
.local-page .local-section-actions { margin-top: 1.4rem; }
.local-page .local-card-pair .local-section-actions { margin-top: auto; padding-top: 1.2rem; }
.local-page .local-card-pair .house-list { margin-top: 1.1rem; }
.local-context-link { margin: 1.4rem 0 0; color: var(--color-primary); }
.local-context-link a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.local-photo-pair { grid-template-columns: 1.15fr .85fr; gap: 1.4rem; align-items: stretch; }
.local-photo-aside .summary-card-photo-content { padding: 2rem; }
.local-photo-aside .summary-card-photo-content p { line-height: 1.8; }
.local-photo-aside .house-list { margin: 1.25rem 0; }
.local-card-photo { border: 0; border-radius: 0; box-shadow: none; margin-top: 0; display: flex; flex-direction: column; flex: 1; }
.local-card-photo img { flex: 1; height: 0; min-height: 320px; object-fit: cover; }
.local-figure figcaption a { color: inherit; text-decoration: none; }
.local-figure figcaption a:hover, .local-figure figcaption a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.local-page .local-city-band { margin: 1.8rem 0; min-height: 0; height: clamp(300px, 30vw, 460px); display: block; }
.local-city-band > img { width: 100%; height: 100%; object-fit: cover; }
.local-city-band::before { pointer-events: none; background: linear-gradient(0deg, rgba(0,31,73,.88), transparent 62%); }
.local-city-band figcaption { position: absolute; z-index: 2; bottom: 2rem; left: 50%; transform: translateX(-50%); width: var(--container); color: #fff; font-family: "Fraunces", Georgia, serif; font-size: clamp(1.3rem, 2.1vw, 2rem); line-height: 1.3; }
.local-city-band figcaption a { color: inherit; text-decoration: none; }
.local-city-band figcaption a:hover { text-decoration: underline; text-underline-offset: 4px; }
.local-page .local-brand-split, .local-page .local-choice-module { grid-template-columns: 1.13fr .87fr; background: linear-gradient(145deg, rgba(0,47,109,.94), rgba(255,146,2,.86)); }
.local-brand-split .page-hero-copy, .local-choice-module .page-hero-copy { background: linear-gradient(135deg, rgba(0,31,73,.58), rgba(0,47,109,.6)); }
.local-brand-split .local-kicker, .local-choice-module .local-kicker { color: #ffd598; }
.local-brand-split .local-article-body, .local-brand-split .local-article-body h3 { color: #fff; }
.local-brand-split .local-article-body > p { line-height: 1.8; }
.local-split-figure { margin: 0; min-width: 0; position: relative; }
.local-split-figure img { height: 100%; width: 100%; object-fit: cover; }
.local-split-figure figcaption { position: absolute; bottom: 0; left: 0; right: 0; padding: 3rem 1.5rem 1.2rem; background: linear-gradient(transparent, rgba(0,31,73,.92)); color: #fff; font-size: .9rem; }
.local-split-figure figcaption a { color: inherit; text-decoration: none; }
.local-split-figure figcaption a:hover { text-decoration: underline; }
.local-choice-module .page-hero-copy > p { line-height: 1.8; }
.local-choice-module .local-choice-card { margin: 1.3rem; padding: 1.6rem; align-self: center; }
.local-choice-module .local-choice-card p { color: var(--color-text); line-height: 1.8; }
.local-choice-module .local-choice-card .local-kicker { color: #825000; }
.local-choice-card h3 { font-size: 1.65rem; }
.local-choice-card .house-list { margin: 1.2rem 0; }
.local-choice-module .local-choice-card .house-list li { color: var(--color-text); }
.local-page .local-brand-contact { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.local-brand-contact .local-form-intro { display: block; padding: 2rem; }
.local-brand-contact .local-form-intro .local-kicker { color: #ffd598; }
.local-brand-contact .local-form-intro a { color: #fff; }
.local-brand-contact .local-form-intro .local-contact-phone { color: #ffbd63; }
.local-brand-contact .form-card { padding: 2rem; }
.local-page .local-wide .inline-info { max-width: none; }
@media (max-width: 960px) {
 .local-page .local-brand-split, .local-page .local-choice-module { grid-template-columns: 1fr 1fr; }
 .local-brand-split .page-hero-copy, .local-choice-module .page-hero-copy { padding: 1.5rem; }
 .local-choice-module .local-choice-card { margin: .8rem; padding: 1.1rem; }
 .local-photo-aside .summary-card-photo-content { padding: 1.4rem; }
 .local-brand-contact .local-form-intro, .local-brand-contact .form-card { padding: 1.4rem; }
}
@media (max-width: 760px) {
 .local-photo-pair, .local-page .local-brand-split, .local-page .local-choice-module, .local-page .local-brand-contact { grid-template-columns: 1fr; }
 .local-page .local-content-card { padding: 1.3rem; }
 .local-page .local-card-pair, .local-photo-pair { gap: 1rem; }
 .local-page .local-city-band { height: 320px; margin: 1.2rem 0; }
 .local-city-band figcaption { bottom: 1.35rem; }
 .local-split-figure img { height: 370px; }
 .local-card-photo img { flex: none; height: auto; min-height: 0; aspect-ratio: 3 / 2; }
 .local-choice-module .local-choice-card { margin: 1rem; padding: 1.3rem; }
 .local-page .local-section-actions { flex-direction: column; }
 .local-page .local-brand-contact .local-contact-phone { font-size: 1.65rem; }
}
