:root{--local-max:1180px}
.local-page{background:var(--bg,#f8fbfd);color:var(--ink,#0f2540)}
.local-container{width:min(var(--local-max),calc(100% - 40px));margin-inline:auto}
.local-hero{padding:88px 0 64px;background:linear-gradient(180deg,#fff 0%,var(--bg,#f8fbfd) 100%)}
.local-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:56px;align-items:center}
.local-hero-grid>*{min-width:0}
.local-hero h1{font-family:var(--font-display,Georgia,serif);font-size:clamp(2.4rem,5vw,4.7rem);line-height:1.04;letter-spacing:-.045em;margin:0 0 24px}
.local-lead{font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.7;color:var(--ink-soft,#1e3a5f);max-width:760px}
.local-disclosure{margin:24px 0;padding:18px 20px;border-left:4px solid var(--accent,#2563eb);background:#fff;border-radius:0 12px 12px 0;color:var(--ink,#0f2540)}
.local-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.local-hero figure{margin:0}.local-hero img{width:100%;height:auto;border-radius:18px;border:1px solid var(--border,#e5eef7);background:#fff}
.local-section{padding:76px 0}.local-section:nth-child(even){background:#fff}.local-section h2{font-family:var(--font-display,Georgia,serif);font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.13;letter-spacing:-.03em;margin:0 0 22px}
.local-section h3{font-size:1.13rem;line-height:1.35;margin:0 0 12px}.local-section p,.local-section li{line-height:1.72;color:var(--ink-soft,#1e3a5f)}
.local-prose{max-width:820px}.local-prose p{margin:0 0 20px}.local-prose ul,.local-prose ol{padding-left:24px;margin:20px 0}.local-prose li{margin:9px 0}
.local-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.local-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.local-card{background:#fff;border:1px solid var(--border,#e5eef7);border-radius:16px;padding:26px;box-shadow:0 8px 30px -24px rgba(15,37,64,.35)}
.local-card p:last-child{margin-bottom:0}.local-card a{color:var(--accent,#2563eb);font-weight:700}.local-kicker{font:700 .74rem/1.2 var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.13em;color:var(--accent,#2563eb);margin-bottom:14px}
.local-intent{background:var(--bg-deep,#eff5fa);border:1px solid var(--border,#e5eef7);border-radius:16px;padding:28px}.local-intent code{background:#fff;border:1px solid var(--border,#e5eef7);border-radius:5px;padding:2px 6px}
.local-faq{display:grid;gap:12px}.local-faq details{background:#fff;border:1px solid var(--border,#e5eef7);border-radius:12px;padding:0 20px}.local-faq summary{cursor:pointer;font-weight:700;padding:20px 34px 20px 0;position:relative}.local-faq summary::after{content:"+";position:absolute;right:2px;top:16px;font-size:1.5rem;color:var(--accent,#2563eb)}.local-faq details[open] summary::after{content:"−"}.local-faq .answer{padding:0 0 20px}
.local-city-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.local-city-card{display:block;background:#fff;border:1px solid var(--border,#e5eef7);border-radius:14px;padding:22px;transition:transform .2s ease,border-color .2s ease}.local-city-card:hover{transform:translateY(-2px);border-color:var(--accent,#2563eb)}.local-city-card strong{display:block;font-size:1.08rem;margin-bottom:8px}.local-city-card span{color:var(--muted,#657487);line-height:1.55}
.local-proof{background:var(--ink,#0f2540);color:#fff;border-radius:18px;padding:32px}.local-proof h2,.local-proof h3{color:#fff}.local-proof p{color:rgba(255,255,255,.76)}
.local-commercial{padding:40px 0}.local-commercial>.section,.local-commercial>.audit{margin-block:28px}.local-commercial-note{font-size:.88rem;color:var(--muted,#657487);margin-bottom:12px}
.local-page .pricing-grid,.local-page .audit-inner{min-width:0}.local-page .pricing-grid>*,.local-page .audit-inner>*{min-width:0}
.local-related ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}.local-related a{display:inline-flex;padding:10px 14px;background:#fff;border:1px solid var(--border,#e5eef7);border-radius:999px;color:var(--ink,#0f2540);font-weight:650}
.local-final{padding:72px 0;background:var(--ink,#0f2540);color:#fff}.local-final h2{color:#fff}.local-final p{color:rgba(255,255,255,.76);max-width:720px}
@media(max-width:900px){.local-hero-grid{grid-template-columns:1fr}.local-grid,.local-city-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.local-container{width:min(100% - 28px,var(--local-max))}.local-hero{padding:58px 0 44px}.local-section{padding:54px 0}.local-grid,.local-grid.two,.local-city-list{grid-template-columns:1fr}.local-actions{align-items:stretch;flex-direction:column}.local-actions .btn{width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere}.local-card{padding:22px}.local-intent{padding:22px}.local-proof{padding:26px 20px}.local-proof .btn{width:100%;white-space:normal}.local-commercial .btn{width:100%;max-width:100%;white-space:normal}.local-page .pricing-card{padding-inline:20px}.local-page .audit-form-card{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){.local-city-card{transition:none}}

/* --- Spis tresci stron miejskich (PACZKA_DEDUP_TOC 12.08.2026) ---------------
   Problem: `.local-card a` maluje KAZDY link w karcie na niebiesko i pogrubia,
   wiec 17-23 pozycje spisu czytalo sie jak sciana linkow. Sedno zmiany:
   numer niebieski, tekst granatowy. Kolory przez var(--x, literal) — strony
   miejskie nie definiuja :root, wiec fallback jest tu wartoscia realna. */
.toc-card{padding:clamp(20px,3vw,32px)}
.toc-list{list-style:none;margin:0;padding:0;counter-reset:toc;columns:2;column-gap:40px}
.toc-list li{counter-increment:toc;break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 2px}
.toc-list a{display:flex;gap:12px;align-items:baseline;padding:10px 12px;border-radius:8px;
  text-decoration:none;color:var(--ink,#0f2540);font-weight:500;line-height:1.45;
  transition:background-color .15s ease,color .15s ease}
.toc-list a::before{content:counter(toc,decimal-leading-zero);flex:0 0 auto;
  font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600;
  color:var(--accent,#2563eb);opacity:.55}
.toc-list a:hover,.toc-list a:focus-visible{background:#eff4ff;color:var(--accent,#2563eb)}
.toc-list a:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:2px}
/* Kotwice nie moga chowac sie pod przyklejonym naglowkiem */
.local-section h2[id],section[id]{scroll-margin-top:96px}
/* Akapit „oferta w pigulce" wciagniety do hero 12.08 — ma byc czytelny, ale nie
   konkurowac wizualnie z leadem ani z ramka disclosure. */
.local-pitch{margin:20px 0 0;color:var(--ink-soft,#1e3a5f);max-width:760px}
.local-pitch p{margin:0}
@media(max-width:860px){.toc-list{columns:1}}
