:root {
  --ink: #1f2f46;
  --ledger: #2f6b5a;
  --paper: #fbfbf8;
  --rule: #d9dfe3;
  --muted: #5b6672;
  --bs-body-font-family: "Libre Franklin", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--paper);
  --bs-link-color-rgb: 47,107,90;
  --bs-link-hover-color-rgb: 36,88,74;
}
h1, h2, h3, h4, .navbar-brand { font-family: "Source Serif 4", Georgia, serif; font-weight: 650; }
body { line-height: 1.65; }

/* Pasek kontaktowy */
.topbar { background: var(--ink); color: #dfe6ee; font-size: .875rem; }
.topbar a { color: #fff; text-decoration: none; }

/* Nawigacja */
.navbar { border-bottom: 1px solid var(--rule); background: #fff; }
.navbar .nav-link { color: var(--ink); font-weight: 500; }
.navbar .nav-link.active, .navbar .nav-link:hover { color: var(--ledger); }
.navbar .nav-link.active { box-shadow: inset 0 -2px 0 var(--ledger); }
.navbar-brand img { height: 52px; width: auto; }

/* Slider */
.hero .carousel-item { background: var(--ink); }
.hero .carousel-item img { height: 62vh; min-height: 340px; object-fit: cover; filter: brightness(.55); }
.hero--sub .carousel-item img { height: 34vh; min-height: 220px; }
.hero-caption {
  position: absolute; inset: 0; display: flex; align-items: flex-end;
  padding-bottom: 4rem; color: #fff; z-index: 2; pointer-events: none;
}
.hero--sub .hero-caption { padding-bottom: 2.25rem; }
.hero-caption h1 { font-size: clamp(2rem, 4.5vw, 3.4rem); line-height: 1.1; max-width: 18ch; }
.hero--sub .hero-caption h1 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
.hero-caption p { max-width: 46ch; font-size: 1.125rem; color: #e8edf2; }
.hero-caption .btn { pointer-events: auto; }

/* Nagłówek stron bez slidera (polityki) */
.page-head { background: var(--ink); color: #fff; padding: 3rem 0 2.5rem; }
.page-head h1 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin: 0; }

.btn-ledger { --bs-btn-bg: var(--ledger); --bs-btn-border-color: var(--ledger);
  --bs-btn-hover-bg: #24584a; --bs-btn-hover-border-color: #24584a; --bs-btn-color: #fff; --bs-btn-hover-color: #fff; }

.prose p, .prose li { max-width: 68ch; }
.credentials { border-left: 3px solid var(--ledger); padding-left: 1.25rem; }
.credentials dt { font-weight: 600; font-size: .9rem; color: var(--muted); }
.credentials dd { font-family: "Source Serif 4", Georgia, serif; font-size: 1.35rem; margin-bottom: 1rem; }

.band { background: #fff; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.benefit i { font-size: 1.75rem; color: var(--ledger); }
.benefit h3 { font-size: 1.2rem; margin-top: .5rem; }

.ruled li { padding: .55rem 0; border-bottom: 1px solid var(--rule); }

/* Oferta */
.offer-col h2 { font-size: 1.5rem; padding-bottom: .75rem; border-bottom: 3px solid var(--ledger); margin-bottom: .5rem; }

/* Linki */
.link-list li { padding: .9rem 0; border-bottom: 1px solid var(--rule); }
.link-list a { font-weight: 600; }
.link-list span { display: block; color: var(--muted); }

/* Kontakt */
.contact-block h2 { font-size: 1.35rem; }
.contact-block i { color: var(--ledger); width: 1.5rem; display: inline-block; }
.map-wrap { border: 1px solid var(--rule); }
.map-wrap iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; }

/* Polityki */
.legal h2 { font-size: 1.35rem; margin-top: 2.25rem; }
.legal dl dt { font-weight: 600; }
.legal dl dd { margin-bottom: .9rem; }

footer { background: var(--ink); color: #c9d3dd; font-size: .9rem; }
footer a { color: #fff; }
a:focus-visible, .btn:focus-visible, button:focus-visible { outline: 3px solid var(--ledger); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .carousel-item { transition: none !important; } }
