/* Kołodziejewo – style motywu. Bez zewnętrznych czcionek (RODO, szybkość). */
:root {
	--c-ink: #1c1917;
	--c-muted: #57534e;
	--c-line: #e7e5e4;
	--c-bg: #ffffff;
	--c-tint: #f5faf7;
	--c-brand-950: #022c22;
	--c-brand-900: #064e3b;
	--c-brand-800: #065f46;
	--c-brand-700: #047857;
	--c-brand-600: #059669;
	--c-brand-50: #ecfdf5;
	--c-accent: #a3e635;
	--radius: 12px;
	--wrap: 1680px; /* maks. szerokość treści; na węższych oknach treść wypełnia okno */
	--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--font-head: Georgia, "Times New Roman", serif;
}

/* Elementor: czcionki zestawu stylów (Kit) zastępujemy systemowymi – nie ładujemy nic z serwerów Google. */
body[class*="elementor-kit-"] {
	--e-global-typography-primary-font-family: var(--font-body);
	--e-global-typography-secondary-font-family: var(--font-body);
	--e-global-typography-text-font-family: var(--font-body);
	--e-global-typography-accent-font-family: var(--font-body);
}
.elementor-widget-container, .elementor-button, .elementor-heading-title { font-family: var(--font-body); }
.kolo-el-hero h1.elementor-heading-title, .elementor h2.elementor-heading-title { font-family: var(--font-head); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font: 16px/1.65 var(--font-body); color: var(--c-ink); background: var(--c-bg); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-brand-700); }
a:hover { color: var(--c-brand-900); }
:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 100; width: auto; height: auto; clip: auto; padding: 10px 14px; background: #fff; color: var(--c-ink); }

.kolo-wrap { width: min(100% - 32px, var(--wrap)); margin-inline: auto; }
.kolo-section { padding-block: 56px; }
.kolo-section--tint { background: var(--c-tint); border-block: 1px solid var(--c-line); }
.kolo-h2 { font: 700 clamp(1.5rem, 2.5vw, 2rem)/1.2 var(--font-head); color: var(--c-brand-950); margin: 0 0 24px; }
.kolo-h3 { font: 700 1.1rem/1.3 var(--font-body); color: var(--c-brand-900); margin: 24px 0 10px; }
.kolo-h3:first-child { margin-top: 0; }
.kolo-empty, .kolo-note { color: var(--c-muted); font-size: .9rem; }

/* Nagłówek */
.kolo-header { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--c-brand-50); }
.kolo-header__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; }
.kolo-logo { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.25rem; letter-spacing: -.01em; color: var(--c-brand-950); text-decoration: none; white-space: nowrap; }
.kolo-logo__icon { color: var(--c-brand-700); }
.kolo-logo__tld { color: var(--c-brand-600); }
.kolo-nav__list { display: flex; gap: 24px; list-style: none; margin: 0; padding: 0; }
.kolo-nav__list a { display: inline-block; padding: 6px 0; font-size: .92rem; font-weight: 600; color: var(--c-brand-950); text-decoration: none; border-bottom: 2px solid transparent; }
.kolo-nav__list a:hover, .kolo-nav__list .current-menu-item > a { color: var(--c-brand-800); border-color: var(--c-brand-600); }
.kolo-burger { display: none; background: none; border: 0; font-size: 1.6rem; line-height: 1; padding: 8px; color: var(--c-brand-900); cursor: pointer; }

@media (max-width: 820px) {
	.kolo-burger { display: block; }
	.kolo-nav { display: none; position: absolute; inset: 64px 0 auto 0; background: #fff; border-bottom: 1px solid var(--c-line); padding: 8px 16px 16px; }
	.kolo-nav.is-open { display: block; }
	.kolo-nav__list { flex-direction: column; gap: 4px; }
	.kolo-nav__list a { display: block; padding: 10px 4px; }
}

/* Hero */
.kolo-hero { color: #fff; padding-block: clamp(56px, 9vw, 112px); background: radial-gradient(ellipse at top right, rgba(163, 230, 53, .22), transparent 55%), linear-gradient(135deg, var(--c-brand-950), var(--c-brand-900) 60%, #052e1c); }
.kolo-kicker { display: inline-block; margin: 0 0 16px; padding: 4px 12px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-accent); border: 1px solid rgba(163, 230, 53, .4); border-radius: 999px; }
.kolo-hero h1 { margin: 0 0 16px; font: 700 clamp(2rem, 5vw, 3.6rem)/1.1 var(--font-head); }
.kolo-hero__lead { max-width: 60ch; margin: 0 0 28px; font-size: 1.1rem; color: #d1fae5; }
.kolo-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }

/* Przyciski */
.kolo-btn { display: inline-block; padding: 11px 20px; font: 700 .92rem/1.2 var(--font-body); color: #fff; background: var(--c-brand-700); border: 2px solid var(--c-brand-700); border-radius: 10px; text-decoration: none; cursor: pointer; transition: background .15s, color .15s; }
.kolo-btn:hover { background: var(--c-brand-900); border-color: var(--c-brand-900); color: #fff; }
.kolo-btn--light { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-brand-950); }
.kolo-btn--light:hover { background: #bef264; border-color: #bef264; color: var(--c-brand-950); }
.kolo-btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .5); color: #fff; }
.kolo-btn--ghost:hover { background: rgba(255, 255, 255, .12); border-color: #fff; color: #fff; }

/* Karty */
.kolo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.kolo-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.kolo-card:hover { box-shadow: 0 10px 24px -12px rgba(6, 78, 59, .35); transform: translateY(-2px); }
.kolo-card__img img { width: 100%; aspect-ratio: 8 / 5; object-fit: cover; }
.kolo-card__body { padding: 18px 20px 22px; }
.kolo-card__meta { margin: 0 0 6px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c-brand-700); }
.kolo-card__title { margin: 0 0 8px; font: 700 1.15rem/1.3 var(--font-head); }
.kolo-card__title a { color: var(--c-brand-950); text-decoration: none; }
.kolo-card__title a:hover { color: var(--c-brand-700); }
.kolo-card__excerpt { margin: 0; font-size: .92rem; color: var(--c-muted); }

/* Kolumna boczna „przyklejona” przy przewijaniu. Jeśli jest wyższa niż okno, main.js ustawia ujemne `top`,
   dzięki czemu najpierw przewija się do końca, a potem zostaje przyklejona dołem. */
@media (min-width: 1025px) {
	.e-con.kolo-sticky { position: sticky; top: 88px; align-self: flex-start; }
}

/* Zwarta lista (wąska kolumna boczna) */
.kolo-mini { margin: 0; padding: 0; list-style: none; }
.kolo-mini__item { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--c-line); }
.kolo-mini__item:last-child { border-bottom: 0; padding-bottom: 0; }
.kolo-mini__item:first-child { padding-top: 0; }
.kolo-mini__badge { flex: 0 0 46px; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 46px; font: 800 1.1rem/1 var(--font-body); color: var(--c-brand-800); background: var(--c-brand-50); border-radius: 10px; }
.kolo-mini__badge--img { padding: 3px; background: #fff; border: 1px solid var(--c-line); overflow: hidden; }
.kolo-mini__badge--img img { width: 100%; height: 100%; object-fit: contain; border-radius: 6px; }
.kolo-mini__badge--ad { color: #fff; background: var(--c-brand-700); }
.kolo-mini__badge--date b { font-size: 1.15rem; line-height: 1; }
.kolo-mini__badge--date small { margin-top: 2px; font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-brand-700); }
.kolo-mini__txt { min-width: 0; }
.kolo-mini__txt a { display: block; font-weight: 700; font-size: .92rem; line-height: 1.3; color: var(--c-brand-950); text-decoration: none; }
.kolo-mini__txt a:hover { color: var(--c-brand-700); text-decoration: underline; }
.kolo-mini__txt small { display: block; margin-top: 2px; font-size: .8rem; color: var(--c-muted); overflow-wrap: anywhere; }

/* Układ dwukolumnowy */
.kolo-cols { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 900px) { .kolo-cols { grid-template-columns: 1fr; } }
.kolo-sidebox { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 20px; }

/* Tabele i listy */
.kolo-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.kolo-table th { text-align: left; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--c-muted); }
.kolo-table th, .kolo-table td { padding: 8px 6px; border-bottom: 1px solid var(--c-line); }
.kolo-waste { list-style: none; margin: 0; padding: 0; }
.kolo-waste li { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--c-line); font-size: .9rem; }
.kolo-waste__date { flex: 0 0 88px; font-weight: 700; color: var(--c-brand-800); white-space: nowrap; }
.kolo-nowrap { white-space: nowrap; }
.kolo-sidebox .kolo-table { font-size: .85rem; }
.kolo-sidebox .kolo-table th, .kolo-sidebox .kolo-table td { padding: 8px 8px 8px 0; vertical-align: top; }
.kolo-sidebox .kolo-table th:last-child, .kolo-sidebox .kolo-table td:last-child { padding-right: 0; text-align: center; }

/* Mapa */
.kolo-map { height: clamp(320px, 55vw, 520px); border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-brand-50); }
.kolo-map-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.kolo-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; font: 600 .88rem/1 var(--font-body); color: var(--c-brand-950); background: #fff; border: 2px solid var(--c-line); border-radius: 999px; cursor: pointer; transition: background .15s, border-color .15s; }
.kolo-chip:hover { border-color: var(--c-brand-600); }
.kolo-chip[aria-pressed="true"] { color: #fff; background: var(--c-brand-800); border-color: var(--c-brand-800); }
.kolo-chip__n { padding: 2px 7px; font-size: .75rem; color: var(--c-muted); background: var(--c-brand-50); border-radius: 999px; }
.kolo-chip[aria-pressed="true"] .kolo-chip__n { color: var(--c-brand-950); background: var(--c-accent); }
.kolo-chip__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--dot, var(--c-brand-600)); box-shadow: 0 0 0 2px rgba(255, 255, 255, .8); }
.kolo-pin { background: none; border: 0; }
.kolo-pin span { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; font: 800 13px/1 var(--font-body); color: #fff; background: var(--pin, #059669); border: 2px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 2px 6px rgba(0, 0, 0, .35); }
.kolo-pin b { display: block; transform: rotate(45deg); font-weight: 800; }

/* Hero z Elementora: na wąskich ekranach tekst jest na całej szerokości – jednolita, ciemniejsza nakładka. */
@media (max-width: 767px) {
	.kolo-el-hero.e-con::before, .kolo-el-hero > .elementor-background-overlay { background: rgba(2, 44, 34, .84) !important; opacity: 1 !important; }
}
.kolo-el-hero h1, .kolo-el-hero .elementor-heading-title { text-shadow: 0 1px 14px rgba(2, 30, 22, .45); }

/* Galeria + lightbox */
.kolo-single__gallery { margin-top: 40px; }
.kolo-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.kolo-gallery li { margin: 0; }
.kolo-gallery a { display: block; overflow: hidden; border-radius: 10px; background: var(--c-brand-50); }
.kolo-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .25s; }
.kolo-gallery a:hover img, .kolo-gallery a:focus-visible img { transform: scale(1.05); }
.kolo-lb { width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; margin: 0; padding: 0; color: #fff; background: rgba(2, 20, 15, .94); border: 0; }
.kolo-lb::backdrop { background: rgba(0, 0, 0, .6); }
.kolo-lb[open] { display: flex; align-items: center; justify-content: center; }
.kolo-lb__fig { margin: 0; max-width: min(92vw, 1200px); text-align: center; }
.kolo-lb__fig img { max-width: 100%; max-height: 82vh; margin: 0 auto; border-radius: 6px; }
.kolo-lb__fig figcaption { margin-top: 10px; font-size: .95rem; color: #d1fae5; }
.kolo-lb__close, .kolo-lb__nav { position: absolute; color: #fff; background: rgba(255, 255, 255, .12); border: 0; border-radius: 50%; cursor: pointer; line-height: 1; }
.kolo-lb__close:hover, .kolo-lb__nav:hover { background: rgba(255, 255, 255, .28); }
.kolo-lb__close { top: 16px; right: 16px; width: 44px; height: 44px; font-size: 28px; }
.kolo-lb__nav { top: 50%; width: 48px; height: 48px; margin-top: -24px; font-size: 32px; }
.kolo-lb__prev { left: 16px; }
.kolo-lb__next { right: 16px; }
.kolo-lb__count { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); font-size: .85rem; color: #a7f3d0; }
.kolo-lb.is-single .kolo-lb__nav, .kolo-lb.is-single .kolo-lb__count { display: none; }
@media (max-width: 600px) { .kolo-lb__nav { width: 40px; height: 40px; } .kolo-lb__prev { left: 6px; } .kolo-lb__next { right: 6px; } }

/* Zwykłe strony (page.php) */
.kolo-page--builder { margin: 0; padding: 0; }
.kolo-page__body { max-width: 780px; }
.kolo-page__body > * + * { margin-top: 1em; }

/* Podstrony */
.kolo-pagehead { margin-bottom: 32px; }
.kolo-pagehead h1 { margin: 0 0 8px; font: 700 clamp(1.8rem, 4vw, 2.6rem)/1.15 var(--font-head); color: var(--c-brand-950); }
.kolo-single__img { margin-bottom: 28px; border-radius: var(--radius); overflow: hidden; }
.kolo-single__body { max-width: 780px; }
.kolo-single__body.has-details { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px; align-items: start; max-width: none; }
@media (max-width: 900px) { .kolo-single__body.has-details { grid-template-columns: 1fr; } }
.kolo-details { margin: 0; padding: 20px; background: var(--c-tint); border: 1px solid var(--c-line); border-radius: var(--radius); font-size: .92rem; }
.kolo-details dt { margin-top: 12px; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-muted); }
.kolo-details dt:first-child { margin-top: 0; }
.kolo-details dd { margin: 2px 0 0; }
.navigation.pagination { margin-top: 32px; }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { padding: 6px 12px; border: 1px solid var(--c-line); border-radius: 8px; text-decoration: none; }
.page-numbers.current { background: var(--c-brand-700); border-color: var(--c-brand-700); color: #fff; }

/* Formularz */
.kolo-form { max-width: 640px; }
.kolo-form label { display: block; font-weight: 600; font-size: .92rem; }
.kolo-form input[type="text"], .kolo-form input[type="email"], .kolo-form input[type="tel"], .kolo-form input[type="number"], .kolo-form select, .kolo-form textarea { display: block; width: 100%; margin-top: 4px; padding: 10px 12px; font: inherit; border: 1px solid #a8a29e; border-radius: 8px; background: #fff; }
.kolo-form__photos label { display: block; font-weight: 600; font-size: .92rem; }
.kolo-form input[type="file"] { display: block; width: 100%; margin-top: 4px; padding: 10px; font: inherit; background: #fff; border: 1px dashed #a8a29e; border-radius: 8px; }
.kolo-form__photos small { display: block; margin-top: 4px; font-size: .8rem; color: var(--c-muted); }
.kolo-photo-preview { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.kolo-photo-preview img { width: 72px; height: 72px; object-fit: cover; border: 1px solid var(--c-line); border-radius: 8px; }
.kolo-photo-note { font-size: .82rem; color: #92400e; }
.kolo-form__rodo label { font-weight: 400; font-size: .85rem; color: var(--c-muted); }
.kolo-hp { position: absolute; left: -9999px; }
.kolo-alert { padding: 12px 16px; border-radius: 8px; font-weight: 600; }
.kolo-alert--ok { background: #dcfce7; color: #14532d; }
.kolo-alert--err { background: #fee2e2; color: #7f1d1d; }

/* Stopka */
.kolo-footer { margin-top: 24px; padding-block: 40px; color: #d1fae5; background: var(--c-brand-950); }
.kolo-footer a { color: #fff; }
.kolo-footer__in { display: grid; grid-template-columns: 2fr 1fr; gap: 32px; }
.kolo-footer__brand { margin: 0 0 8px; font: 700 1.3rem var(--font-head); color: #fff; }
.kolo-footer__brand span { color: var(--c-accent); }
.kolo-footer__list { list-style: none; margin: 0; padding: 0; }
.kolo-footer__copy { grid-column: 1 / -1; margin: 0; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .15); font-size: .85rem; }
@media (max-width: 700px) { .kolo-footer__in { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Animacje wejścia (włączane przez main.js; bez JS lub przy „ogranicz ruch” elementy są od razu widoczne). */
.kolo-reveal { opacity: 0; transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.kolo-reveal.kolo-anim-left  { transform: translateX(-40px); }
.kolo-reveal.kolo-anim-right { transform: translateX(40px); }
.kolo-reveal.kolo-anim-up    { transform: translateY(32px); }
.kolo-reveal.kolo-anim-down  { transform: translateY(-32px); }
.kolo-reveal.is-in { opacity: 1; transform: none; }
.kolo-parallax { background-size: cover; background-repeat: no-repeat; }
@media (prefers-reduced-motion: reduce) { .kolo-reveal { opacity: 1; transform: none; transition: none; } }
