/* Biblioteka „ak” — wspólny wygląd stron aslandi.pl przeniesionych z Elementora na kod (lab, 02.10.2026).
   Wartości z kodu nowej strony głównej (wtyczka aslandi-strona-glowna 1.2.9): sosna #123f2d, złoto #ceb472 z tekstem
   #182e23, jasne złoto #dcc78f na zieleni, atrament #1c3428, szary #58685f, linia #dce3da, szałwia #eaf0e3, fokus
   #a67b23, Poppins, H2 sekcji clamp(30px, 2.2vw + 16px, 48px) / 1,15 / -0,02em, przyciski z promieniem 10 px, karty
   18 px, cienie tonowane zielenią, krzywa ruchu cubic-bezier(0.23, 1, 0.32, 1).
   Treść stron jest 1:1 z Elementora; ten plik daje tylko układ, typografię, kolory, odstępy i responsywność.
   Wszystko w zakresie .ak (korzeń treści strony), z selektorami silniejszymi od motywu Astra i zestawu Elementora,
   które dalej działają w nagłówku i stopce witryny. */
.ak {
  --ak-sosna: #123f2d;
  --ak-sosna-2: #19583f;
  --ak-sosna-noc: #0c2e21;
  --ak-atrament: #1c3428;
  --ak-szary: #58685f;
  --ak-zloto: #ceb472;
  --ak-zloto-2: #d8c287;
  --ak-zloto-tekst: #182e23;
  --ak-zloto-jasne: #dcc78f;
  --ak-gwiazdka: #d9a53a;
  --ak-linia: #dce3da;
  --ak-tlo: #f7f8f4;
  --ak-szalwia: #eaf0e3;
  --ak-fokus: #a67b23;
  --ak-ease: cubic-bezier(0.23, 1, 0.32, 1);
  --ak-r: 18px;
  --ak-r-maly: 12px;
  --ak-cien: 0 1px 2px rgba(0, 21, 15, 0.06), 0 18px 40px -24px rgba(0, 21, 15, 0.35);
  --ak-szer: 1040px;
  --ak-margines: 64px;
  display: block;
  color: var(--ak-atrament);
  font-family: Poppins, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.ak *, .ak *::before, .ak *::after { box-sizing: border-box; }
/* <main> szablonu wtyczki na całą szerokość: kontener motywu (Astra .ast-container) jest flexem, więc krótka treść
   (np. sam tytuł na /oferta-aslandi/) zwężała stronę do swojej szerokości */
.aslandi-ak-main { display: block; flex: 1 1 100%; width: 100%; min-width: 0; }
.ak ::selection { background: #cfdcc5; color: var(--ak-atrament); }
.ak :focus-visible { outline: 3px solid var(--ak-fokus); outline-offset: 3px; }
/* Kotwice (#formularz, #opinie): skok zatrzymuje się pod przyklejonym nagłówkiem witryny (93 px na komputerze, 77 px
   na telefonie, pomiar 03.10), żeby tytuł celu nie chował się pod nim. */
.ak [id] { scroll-margin-top: 104px; }
@media (max-width: 767px) { .ak [id] { scroll-margin-top: 88px; } }
.ak a, .ak button, .ak summary { -webkit-tap-highlight-color: transparent; }
.ak img { max-width: 100%; height: auto; }
.ak .ak-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Sekcje: na przemian białe i jasne; opinie i formularz na zieleni. Odstęp jak na stronie głównej. */
.ak .ak-sekcja { position: relative; margin: 0; padding-block: clamp(56px, 6vw, 96px); background: #fff; }
.ak .ak-sekcja.ak-tlo-jasne { background: var(--ak-tlo); }
.ak .ak-sekcja.ak-tlo-biale { background: #fff; }
.ak .ak-wew { width: min(var(--ak-szer), 100% - var(--ak-margines)); margin-inline: auto; display: flow-root; }
.ak .ak-wew > * + * { margin-top: clamp(20px, 2vw, 28px); }
.ak :is(.ak-wew, .ak-kol, .ak-grupa) > :first-child { margin-top: 0; }
/* tytuł nad treścią: mniej miejsca pod tytułem niż nad nim */
.ak .ak-wew > .ak-tytul + * { margin-top: clamp(14px, 1.4vw, 20px); }
.ak .ak-wew > .ak-tytul + :is(.ak-galeria, .ak-karuzela, .ak-faq, .ak-rzad, .ak-film, .ak-mapa) { margin-top: clamp(24px, 2.6vw, 36px); }

/* Typografia. Pierwszy H1 strony jest tytułem; dalsze H1 (stare strony miały ich kilka) wyglądają jak tytuły sekcji,
   poziom w kodzie zostaje bez zmian (zmiany nagłówków robimy dopiero w etapie SEO). */
.ak .ak-tytul { margin-inline: 0; margin-bottom: 0; font-family: inherit; font-weight: 600; color: var(--ak-sosna); text-align: left; text-transform: none; text-wrap: balance; }
.ak h1.ak-tytul { font-size: clamp(32px, 1.9vw + 18px, 48px); line-height: 1.12; letter-spacing: -0.025em; }
.ak h2.ak-tytul,
.ak .ak-sekcja:not(.ak-sekcja--start) h1.ak-tytul { font-size: clamp(28px, 1.8vw + 15px, 42px); line-height: 1.15; letter-spacing: -0.02em; }
.ak h3.ak-tytul { font-size: clamp(22px, 0.9vw + 16px, 30px); line-height: 1.22; letter-spacing: -0.015em; }
.ak h4.ak-tytul { font-size: 19px; line-height: 1.35; }
.ak h5.ak-tytul, .ak h6.ak-tytul, .ak p.ak-tytul { font-size: 17px; line-height: 1.45; }
.ak .ak-wew > .ak-tytul:first-child { max-width: 34ch; }
.ak .ak-sekcja:not(.ak-sekcja--start) > .ak-wew > .ak-tytul:first-child { margin-inline: auto; text-align: center; max-width: 30ch; }

.ak .ak-tekst { max-width: 70ch; color: var(--ak-atrament); }
/* długie adresy i ciągi bez spacji (np. linki w polityce prywatności) łamią się zamiast wypychać stronę w bok */
.ak .ak-tekst { overflow-wrap: break-word; }
.ak .ak-tekst > * { margin: 0; }
.ak .ak-tekst > * + * { margin-top: 0.85em; }
.ak .ak-tekst p, .ak .ak-tekst li { font-size: 17px; line-height: 1.7; }
.ak .ak-tekst strong, .ak .ak-tekst b { font-weight: 600; color: var(--ak-sosna); }
.ak .ak-tekst h2, .ak .ak-tekst h3, .ak .ak-tekst h4 { margin-top: 1.4em; font-weight: 600; line-height: 1.3; color: var(--ak-sosna); }
.ak .ak-tekst h2 { font-size: clamp(24px, 1vw + 18px, 30px); }
.ak .ak-tekst h3 { font-size: clamp(20px, 0.6vw + 16px, 24px); }
.ak .ak-tekst h4 { font-size: 18px; }
.ak .ak-tekst a, .ak .ak-tekst a:visited { color: var(--ak-sosna); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 3px; text-decoration-color: rgba(18, 63, 45, 0.45); transition: text-decoration-color 160ms ease; }
.ak .ak-tekst a:hover, .ak .ak-tekst a:focus { color: var(--ak-sosna); text-decoration-color: var(--ak-zloto); }
/* Listy: złote znaczniki zamiast kropek motywu; akapity w punktach bez dodatkowych marginesów. */
.ak .ak-tekst ul { padding: 0; list-style: none; }
.ak .ak-tekst ul > li { position: relative; padding-left: 30px; }
.ak .ak-tekst ul > li + li { margin-top: 0.7em; }
.ak .ak-tekst ul > li::before { content: ""; position: absolute; left: 2px; top: 0.62em; width: 14px; height: 8px; border-left: 2.5px solid var(--ak-zloto);
  border-bottom: 2.5px solid var(--ak-zloto); transform: translateY(-50%) rotate(-45deg); }
.ak .ak-tekst ol { padding-left: 1.4em; }
.ak .ak-tekst ol > li::marker { color: var(--ak-sosna); font-weight: 600; }
.ak .ak-tekst li > p { margin: 0; }
/* punkt bez znacznika z edytora (opakowanie listy zagnieżdżonej): bez haczyka i bez wcięcia */
.ak .ak-tekst li.ak-bez-znacznika { padding-left: 0; list-style: none; }
.ak .ak-tekst li.ak-bez-znacznika::before { content: none; }
/* pusty punkt listy z edytora (<li></li>): bez pustego numeru i haczyka; numeracja liczy tylko punkty z treścią */
.ak .ak-tekst li:empty { display: none; }
.ak .ak-tekst blockquote { margin: 0; padding: 0 0 0 18px; border: 0; border-left: 1px solid var(--ak-linia); font-style: normal; color: var(--ak-szary); }
.ak .ak-tekst table { width: 100%; border-collapse: collapse; font-size: 15.5px; }
.ak .ak-tekst th, .ak .ak-tekst td { padding: 10px 12px; border-bottom: 1px solid var(--ak-linia); text-align: left; vertical-align: top; }
.ak .ak-tekst th { color: var(--ak-sosna); font-weight: 600; }
.ak .ak-tekst img { border-radius: var(--ak-r-maly); }

/* Obrazy */
.ak .ak-obraz { margin-inline: 0; margin-bottom: 0; }
/* obraz w swoim rozmiarze, najwyżej na szerokość kolumny (ikona 300 px zostaje ikoną); zdjęcie startowe na całą szerokość */
.ak .ak-obraz img { display: block; width: auto; max-width: 100%; height: auto; margin-inline: auto; border-radius: var(--ak-r); box-shadow: var(--ak-cien); }
.ak .ak-obraz figcaption { margin-top: 10px; font-size: 14px; line-height: 1.5; color: var(--ak-szary); }

/* Wyrównanie i szerokość z Elementora; grafiki (png, svg: ikony, logo) bez cienia i zaokrąglenia. */
.ak .ak-do-srodka { margin-inline: auto; text-align: center; }
.ak .ak-sekcja .ak-wew > .ak-tytul.ak-do-srodka { margin-inline: auto; text-align: center; }
.ak .ak-obraz--szer { width: var(--ak-szer); min-width: min(120px, 100%); max-width: 100%; }
.ak .ak-obraz--grafika img { border-radius: 0; box-shadow: none; }
/* Zdjęcia, które w Elementorze były tłem kontenera: slajdy realizacji i osoby z zespołu. */
.ak .ak-obraz--tlo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ak-r-maly); box-shadow: none; }
/* portret z białym tłem w pliku: biała karta, żeby na jasnej sekcji nie był gołym prostokątem */
.ak .ak-obraz--karta { max-width: 300px; margin-inline: auto; overflow: hidden; border-radius: var(--ak-r); background: #fff; }
.ak .ak-obraz--karta img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: contain; object-position: 50% 100%; border-radius: 0;
  box-shadow: none; }
.ak .ak-obraz--tlo picture, .ak .ak-obraz--karta picture { display: block; }
/* Sekcja ze zdjęciem w tle (pas z tytułem strony): zdjęcie pod przyciemnieniem sosną, tekst biały. */
.ak .ak-sekcja.ak-sekcja--zdjecie { isolation: isolate; overflow: hidden; background: var(--ak-sosna-noc); color: #fff;
  padding-block: clamp(72px, 9vw, 136px); }
.ak .ak-tlo-zdjecie { position: absolute; inset: 0; z-index: -1; }
.ak .ak-tlo-zdjecie picture, .ak .ak-tlo-zdjecie img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ak .ak-tlo-zdjecie::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(6, 33, 23, 0.82) 0%, rgba(6, 33, 23, 0.66) 100%); }
.ak .ak-sekcja--zdjecie .ak-tytul, .ak .ak-sekcja--zdjecie .ak-tekst, .ak .ak-sekcja--zdjecie .ak-tekst strong { color: #fff; }
.ak .ak-sekcja--zdjecie .ak-tytul { margin-inline: auto; text-align: center; }
.ak .ak-sekcja--zdjecie :focus-visible { outline-color: var(--ak-zloto-jasne); }

/* Układ w wierszu (kolumny z Elementora): siatka, na telefonie jedna kolumna. */
.ak .ak-rzad { display: grid; gap: clamp(28px, 4vw, 64px); align-items: center; }
.ak .ak-rzad--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ak .ak-rzad--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.ak .ak-rzad--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; }
/* same kolumny tekstu: od góry (wyśrodkowanie w pionie ma sens przy zdjęciu albo mapie obok tekstu) */
.ak .ak-rzad:not(:has(.ak-obraz, .ak-mapa, .ak-film, .ak-shortcode, .ak-galeria, .ak-karuzela)) { align-items: start; }
.ak .ak-kol > * + *, .ak .ak-grupa > * + * { margin-top: 18px; }
.ak .ak-grupa > .ak-tytul + .ak-tekst { margin-top: 14px; }

/* Przyciski: złoty (wycena), sosnowy (telefon i reszta). Jak na stronie głównej: 10 px, cień zielony. */
.ak .ak-przyciski { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: clamp(28px, 3vw, 40px); }
.ak a.ak-przycisk, .ak a.ak-przycisk:visited, .ak span.ak-przycisk { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 54px; padding: 0 24px; border: 0; border-radius: 10px; background: var(--ak-sosna); color: #fff; font-size: 16.5px; font-weight: 600;
  line-height: 1.2; letter-spacing: normal; text-decoration: none; box-shadow: 0 12px 24px -16px rgba(0, 21, 15, 0.6);
  touch-action: manipulation; transition: background-color 160ms ease, transform 160ms var(--ak-ease); }
.ak a.ak-przycisk:hover, .ak a.ak-przycisk:focus { background: var(--ak-sosna-2); color: #fff; }
.ak a.ak-przycisk--zloty, .ak a.ak-przycisk--zloty:visited { background: var(--ak-zloto); color: var(--ak-zloto-tekst); }
.ak a.ak-przycisk--zloty:hover, .ak a.ak-przycisk--zloty:focus { background: var(--ak-zloto-2); color: var(--ak-zloto-tekst); }
.ak a.ak-przycisk:active { transform: scale(0.98); }
.ak .ak-przycisk .ak-ikona { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ak .ak-przycisk--tel .ak-ikona { order: -1; stroke: var(--ak-zloto); }
.ak .ak-przycisk span { white-space: nowrap; }

/* Pierwsza sekcja: tytuł, zdanie i zdjęcie obok siebie na komputerze (kolejność w kodzie bez zmian). */
.ak .ak-sekcja.ak-sekcja--start { padding-block: clamp(40px, 5vw, 80px) clamp(48px, 6vw, 88px); background: var(--ak-tlo); }
@media (min-width: 900px) {
  .ak .ak-sekcja--start > .ak-wew:has(> .ak-obraz) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); column-gap: clamp(32px, 5vw, 72px);
    align-items: center; width: min(1200px, 100% - var(--ak-margines)); }
  .ak .ak-sekcja--start > .ak-wew:has(> .ak-obraz) > * { grid-column: 1; margin-top: 0; }
  .ak .ak-sekcja--start > .ak-wew:has(> .ak-obraz) > * + * { margin-top: 22px; }
  .ak .ak-sekcja--start > .ak-wew:has(> .ak-obraz) > .ak-obraz { grid-column: 2; grid-row: 1 / span 6; margin-top: 0; }
}
.ak .ak-sekcja--start .ak-tekst p { font-size: clamp(17px, 0.3vw + 15.5px, 19px); line-height: 1.65; }
.ak .ak-sekcja--start .ak-obraz img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* Opinie: sekcja opinii wideo strony głównej (Igor 03.10.2026: „sekcje opinii na każdej z podstron … te co są na
   stronie głównej, mniej więcej ten format”), wygląd w komponencie opinie.css. Nagłówek i akapit należą do podstrony:
   nagłówek ma poziom ze strony (bywa H1 albo H3) i skalę tytułów sekcji podstrony, biały na ciemnym tle. */
.ak .op-naglowek > :is(h1, h2, h3, h4, h5, h6) { max-width: 30ch; margin: 0 auto; font-family: inherit; font-size: clamp(28px, 1.8vw + 15px, 42px);
  font-weight: 600; line-height: 1.15; letter-spacing: -0.02em; color: #fff; text-transform: none; text-wrap: balance; }
.ak .op-naglowek > .op-lead { margin: 14px 0 0; }
.ak .op-lead :is(strong, b) { font-weight: 600; color: #fff; }
.ak .op-lead a, .ak .op-lead a:visited, .ak .op-lead a:hover, .ak .op-lead a:focus { color: var(--ak-zloto-jasne); text-decoration: underline;
  text-decoration-color: rgba(220, 199, 143, 0.6); text-underline-offset: 3px; }

/* Ciemne sekcje (formularz, zdjęcie w tle): jasny tekst poza kartą formularza, karta zostaje jasna. */
.ak .ak-sekcja--formularz .ak-tytul:not(.ak-shortcode .ak-tytul),
.ak .ak-sekcja--formularz .ak-faq-pyt { color: #fff; }
.ak .ak-sekcja--formularz .ak-tekst:not(.ak-shortcode .ak-tekst) :is(p, li) { color: rgba(255, 255, 255, 0.86); }
.ak .ak-sekcja--formularz .ak-tekst:not(.ak-shortcode .ak-tekst) :is(strong, b) { color: #fff; }
.ak .ak-sekcja--formularz .ak-tekst a, .ak .ak-sekcja--formularz .ak-tekst a:visited { color: var(--ak-zloto-jasne); text-decoration-color: rgba(220, 199, 143, 0.6); }
.ak .ak-sekcja--formularz .ak-faq, .ak .ak-sekcja--formularz .ak-faq-poz { border-color: rgba(255, 255, 255, 0.22); }
.ak .ak-sekcja--formularz .ak-faq-odp .ak-tekst :is(p, li) { color: rgba(255, 255, 255, 0.8); }
.ak .ak-sekcja--formularz .ak-tekst ul > li::before { border-color: var(--ak-zloto); }

/* Karuzela: przewijanie palcem z przyciąganiem, bez biblioteki; strzałki od skryptu, gdy jest co przewijać. */
.ak .ak-karuzela { position: relative; }
.ak .ak-karuzela-lista { display: grid; grid-auto-flow: column; grid-auto-columns: min(340px, 82%); gap: 18px; margin-inline: -14px; margin-bottom: 0; padding: 4px 14px 36px;
  list-style: none; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 14px;
  scrollbar-width: thin; scrollbar-color: rgba(206, 180, 114, 0.6) transparent; }
.ak .ak-slajd { scroll-snap-align: start; display: flex; }
@media (min-width: 1024px) { .ak .ak-karuzela-lista { grid-auto-columns: calc((100% - 36px) / 3); } }
.ak .ak-kol .ak-karuzela-lista { grid-auto-columns: 100%; }
.ak .ak-karuzela--miesci .ak-karuzela-lista { justify-content: center; }
.ak .ak-slajd > * { flex: 1; }
.ak .ak-karuzela-nawigacja { display: flex; justify-content: center; gap: 10px; margin-top: 18px; }
.ak .ak-karuzela-nawigacja[hidden] { display: none; }
.ak .ak-karuzela-nawigacja button { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 999px; background: transparent; color: #fff; cursor: pointer; touch-action: manipulation;
  transition: background-color 160ms ease, border-color 160ms ease, opacity 160ms ease; }
.ak .ak-sekcja:not(.ak-sekcja--opinie) .ak-karuzela-nawigacja button { border-color: var(--ak-linia); color: var(--ak-sosna); }
.ak .ak-karuzela-nawigacja button:disabled { opacity: 0.35; cursor: default; }
.ak .ak-karuzela-nawigacja .ak-ikona { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ak .ak-karuzela-wstecz .ak-ikona { transform: scaleX(-1); }

/* Karta opinii (ocena, osoba, cytat, film): jasna karta na zieleni. */
.ak .ak-slajd > .ak-grupa { display: flex; flex-direction: column; gap: 14px; padding: 22px 20px 20px; border-radius: var(--ak-r); background: #fff;
  color: var(--ak-atrament); box-shadow: 0 16px 32px -24px rgba(0, 0, 0, 0.55); }
/* na jasnej sekcji karta w karuzeli z cienką ramką zamiast cienia (pas przewijania ucinałby cień) */
.ak .ak-sekcja:not(.ak-sekcja--opinie) .ak-slajd > .ak-grupa { border: 1px solid var(--ak-linia); box-shadow: none; }
.ak .ak-slajd > .ak-grupa > * { margin: 0; }
.ak .ak-slajd > .ak-grupa > .ak-film { margin-top: auto; }
.ak .ak-ocena { display: flex; gap: 3px; }
.ak .ak-ocena svg { width: 18px; height: 18px; }
.ak .ak-ocena .ak-pelna { fill: var(--ak-gwiazdka); }
.ak .ak-ocena .ak-pusta { fill: var(--ak-linia); }
.ak .ak-autor { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 14px; align-items: center; }
.ak .ak-autor img.ak-autor-zdjecie { width: 56px; height: 56px; object-fit: cover; border-radius: 999px; grid-row: span 1; }
.ak .ak-autor-imie { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.3; color: var(--ak-sosna); }
.ak .ak-autor-bio { grid-column: 1 / -1; margin-top: 12px; font-size: 15px; line-height: 1.6; color: var(--ak-szary); }
.ak .ak-autor-bio p { margin: 0; }
.ak .ak-slajd h4.ak-tytul { font-size: 15px; font-weight: 600; color: var(--ak-sosna); }

/* Film YouTube: okładka i przycisk; odtwarzacz (youtube-nocookie) dopiero po kliknięciu. */
.ak .ak-film { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--ak-r-maly); background: var(--ak-sosna-noc); }
.ak .ak-wew > .ak-film { max-width: 880px; margin-inline: auto; border-radius: var(--ak-r); box-shadow: var(--ak-cien); }
.ak .ak-film-start { position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: transparent center / cover no-repeat;
  background-image: var(--ak-plakat, none); cursor: pointer; }
.ak .ak-film-start img { width: 100%; height: 100%; object-fit: cover; }
.ak .ak-film-start::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(6, 33, 23, 0.35)); }
.ak .ak-film-ikona { position: absolute; left: 50%; top: 50%; z-index: 1; display: grid; place-items: center; width: 68px; height: 68px; border-radius: 999px;
  background: var(--ak-zloto); box-shadow: 0 10px 24px -10px rgba(0, 0, 0, 0.55); transform: translate(-50%, -50%);
  transition: transform 200ms var(--ak-ease), background-color 160ms ease; }
.ak .ak-film-ikona svg { width: 28px; height: 28px; margin-left: 3px; fill: var(--ak-zloto-tekst); }
.ak .ak-film iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Galeria realizacji: równa siatka, podgląd w oknie od skryptu (bez skryptu link do pełnego zdjęcia). */
.ak .ak-galeria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-inline: 0; margin-bottom: 0; padding: 0; list-style: none; }
.ak .ak-galeria-poz { display: block; overflow: hidden; border-radius: var(--ak-r-maly); background: var(--ak-szalwia); }
.ak .ak-galeria-poz img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 400ms var(--ak-ease); }

/* Mapa */
.ak .ak-mapa { overflow: hidden; aspect-ratio: 4 / 3; border-radius: var(--ak-r); background: var(--ak-szalwia); box-shadow: var(--ak-cien); }
.ak .ak-mapa iframe { display: block; width: 100%; height: 100%; border: 0; }

/* FAQ: lista na <details> jak na stronie głównej; znak plus/minus złotą linią. */
.ak .ak-faq { max-width: 820px; margin-inline: auto; border-top: 1px solid var(--ak-linia); }
.ak .ak-faq-poz { border-bottom: 1px solid var(--ak-linia); }
.ak .ak-faq-pyt { display: grid; grid-template-columns: minmax(0, 1fr) 22px; align-items: center; gap: 18px; min-height: 64px; padding: 18px 2px;
  color: var(--ak-sosna); font-size: 17.5px; font-weight: 600; line-height: 1.4; list-style: none; cursor: pointer; touch-action: manipulation; }
.ak .ak-faq-pyt::-webkit-details-marker { display: none; }
.ak .ak-faq-znak { position: relative; width: 22px; height: 22px; }
.ak .ak-faq-znak::before, .ak .ak-faq-znak::after { content: ""; position: absolute; left: 3px; right: 3px; top: 50%; height: 2px; margin-top: -1px;
  border-radius: 2px; background: var(--ak-zloto); transition: transform 200ms var(--ak-ease); }
.ak .ak-faq-znak::after { transform: rotate(90deg); }
.ak .ak-faq-poz[open] .ak-faq-znak::after { transform: rotate(0deg); }
.ak .ak-faq-odp { padding: 0 2px 22px; }
.ak .ak-faq-odp .ak-tekst p, .ak .ak-faq-odp .ak-tekst li { font-size: 16px; color: var(--ak-szary); }

/* Formularz (Contact Form 7) na zieleni, w jasnej karcie: wzór sekcji kontaktu strony głównej. */
.ak .ak-sekcja.ak-sekcja--formularz { background-color: var(--ak-sosna);
  background-image: radial-gradient(120% 70% at 50% 0%, rgba(255, 255, 255, 0.07), transparent 60%); color: #fff; }
.ak .ak-sekcja--formularz .ak-wew { width: min(720px, 100% - var(--ak-margines)); }
.ak .ak-shortcode:has(.wpcf7) { max-width: 720px; margin-inline: auto; padding: clamp(24px, 3.4vw, 44px); border-radius: var(--ak-r); background: #fff; color: var(--ak-atrament);
  box-shadow: 0 2px 6px rgba(0, 21, 15, 0.2), 0 44px 90px -40px rgba(0, 21, 15, 0.85); }
.ak .ak-sekcja--formularz .ak-wew > .ak-tytul { color: #fff; }
.ak .wpcf7 form > * + *, .ak .wpcf7 form p { margin: 0; }
.ak .wpcf7 form p + p, .ak .wpcf7 form > p + * { margin-top: 14px; }
.ak .wpcf7 h1, .ak .wpcf7 h2, .ak .wpcf7 h3 { margin: 0 0 18px; color: var(--ak-sosna); font-size: clamp(24px, 1vw + 18px, 30px); font-weight: 600; line-height: 1.2;
  letter-spacing: -0.015em; text-align: center; }
.ak .wpcf7 label { display: block; color: var(--ak-atrament); font-size: 14.5px; font-weight: 600; }
.ak .wpcf7 .wpcf7-form-control-wrap { display: block; }
.ak .wpcf7 input.wpcf7-form-control:not([type=submit]):not([type=radio]):not([type=checkbox]),
.ak .wpcf7 select.wpcf7-form-control,
.ak .wpcf7 textarea.wpcf7-form-control { width: 100%; min-height: 54px; margin: 0; padding: 12px 16px; border: 1px solid #7c8c82; border-radius: 10px;
  background: #fff; color: var(--ak-atrament); font: inherit; font-size: 16px; line-height: 1.4; box-shadow: none;
  transition: border-color 160ms ease, box-shadow 160ms ease; }
.ak .wpcf7 input.wpcf7-form-control:not([type=submit]):not([type=radio]):not([type=checkbox]):focus,
.ak .wpcf7 select.wpcf7-form-control:focus,
.ak .wpcf7 textarea.wpcf7-form-control:focus { border-color: var(--ak-sosna); outline: 3px solid var(--ak-fokus); outline-offset: 1px; color: var(--ak-atrament); }
.ak .wpcf7 ::placeholder { color: #6b7a71; opacity: 1; }
.ak .wpcf7 input.wpcf7-not-valid:not([type=submit]), .ak .wpcf7 select.wpcf7-not-valid { border-color: #b3261e; box-shadow: 0 0 0 1px #b3261e; }
.ak .wpcf7 .wpcf7-not-valid-tip { margin-top: 6px; color: #b3261e; font-size: 14px; font-weight: 500; }
.ak .wpcf7 .wpcf7-acceptance, .ak .wpcf7 .wpcf7-list-item { margin: 0; }
.ak .wpcf7 input[type=submit], .ak .wpcf7 input[type=submit]:hover, .ak .wpcf7 input[type=submit]:focus { display: block; width: 100%; min-height: 58px; margin-top: 6px;
  padding: 0 24px; border: 0; border-radius: 10px; background: var(--ak-zloto); color: var(--ak-zloto-tekst); font: inherit; font-size: 17px; font-weight: 600;
  letter-spacing: normal; text-transform: none; cursor: pointer; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, 0 12px 24px -16px rgba(0, 21, 15, 0.55); }
.ak .wpcf7 input[type=submit]:hover { background: var(--ak-zloto-2); }
.ak .wpcf7 input[type=submit]:focus-visible { outline: 3px solid var(--ak-fokus); outline-offset: 3px; }
.ak .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 14px; border-radius: 8px; font-size: 15px; }
.ak .wpcf7 a, .ak .wpcf7 a:visited { color: var(--ak-sosna); text-decoration: underline; text-underline-offset: 2px; }
.ak .wpcf7 small, .ak .wpcf7 .ak-zgoda, .ak .wpcf7 form p:has(> .wpcf7-acceptance) { font-size: 13px; line-height: 1.55; color: var(--ak-szary); }

/* Surowe bloki (nieznane klocki): bez stylu Elementora, tylko odstęp. */
.ak .ak-surowe, .ak .ak-html { max-width: 100%; overflow-x: auto; }

/* Podgląd zdjęć galerii (okno <dialog> od skryptu). */
.ak-podglad { width: min(1100px, 100vw - 32px); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 14px; background: #0b1f17;
  overflow: hidden; }
.ak-podglad::backdrop { background: rgba(6, 20, 14, 0.82); }
.ak-podglad img { display: block; width: 100%; height: auto; max-height: calc(100vh - 32px); object-fit: contain; }
.ak-podglad button { position: absolute; top: 50%; display: grid; place-items: center; width: 48px; height: 48px; margin-top: -24px; padding: 0; border: 0;
  border-radius: 999px; background: rgba(255, 255, 255, 0.92); color: #123f2d; cursor: pointer; }
.ak-podglad .ak-podglad-wstecz { left: 12px; }
.ak-podglad .ak-podglad-dalej { right: 12px; }
.ak-podglad .ak-podglad-zamknij { top: 12px; right: 12px; margin-top: 0; }
.ak-podglad svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Kafelek-link (cały blok klikalny, np. telefon, e-mail i mapa na /kontakt/): karta z ikoną. */
.ak a.ak-kafel-link, .ak a.ak-kafel-link:visited { display: block; padding: 22px 20px; border: 1px solid var(--ak-linia); border-radius: var(--ak-r); background: #fff;
  color: var(--ak-atrament); text-align: center; text-decoration: none; box-shadow: var(--ak-cien); transition: border-color 160ms ease, transform 160ms var(--ak-ease); }
.ak a.ak-kafel-link:active { transform: scale(0.99); }
.ak a.ak-kafel-link .ak-tytul { text-align: center; margin-inline: auto; }
.ak a.ak-kafel-link > * + *, .ak a.ak-kafel-link .ak-grupa > * + * { margin-top: 10px; }
.ak .ak-ikona-duza { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 999px; background: var(--ak-szalwia); }
.ak .ak-ikona-duza svg { width: 26px; height: 26px; fill: var(--ak-sosna); }
.ak .ak-ikona-link { display: inline-block; }

/* Liczniki (liczba i opis), lista z ikonami, linki społecznościowe. */
.ak .ak-licznik { display: grid; gap: 4px; text-align: center; }
.ak .ak-licznik-liczba { color: var(--ak-sosna); font-size: clamp(34px, 2vw + 22px, 48px); font-weight: 600; line-height: 1.05; letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums; }
.ak .ak-licznik-opis { color: var(--ak-szary); font-size: 15px; line-height: 1.45; }
.ak .ak-lista { margin-inline: 0; margin-bottom: 0; padding: 0; list-style: none; }
.ak .ak-lista > li { position: relative; padding-left: 30px; line-height: 1.6; }
.ak .ak-lista > li + li { margin-top: 8px; }
.ak .ak-lista > li::before { content: ""; position: absolute; left: 2px; top: 0.8em; width: 14px; height: 8px; border-left: 2.5px solid var(--ak-zloto);
  border-bottom: 2.5px solid var(--ak-zloto); transform: translateY(-50%) rotate(-45deg); }
.ak .ak-lista a, .ak .ak-lista a:visited { color: var(--ak-sosna); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
/* lista z ikonami o znaczeniu (pinezka, telefon, koperta z Elementora) zamiast haczyków */
.ak .ak-lista--ikony > li { display: flex; align-items: center; gap: 10px; padding-left: 0; }
.ak .ak-lista--ikony > li::before { content: none; }
.ak .ak-lista--ikony .ak-ikona { flex: none; width: 20px; height: 20px; fill: none; stroke: var(--ak-zloto); stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round; }
/* etykieta miejsca (jedna pozycja z pinezką, np. nazwa gminy nad opisem programu): wyraźna, na środku kolumny */
.ak .ak-lista--etykieta { display: flex; justify-content: center; }
.ak .ak-lista--etykieta > li { font-size: clamp(20px, 0.8vw + 15px, 26px); font-weight: 600; line-height: 1.25; color: var(--ak-sosna); }
.ak .ak-lista--etykieta .ak-ikona { width: 26px; height: 26px; }
.ak .ak-social { display: flex; flex-wrap: wrap; gap: 10px; margin-inline: 0; margin-bottom: 0; padding: 0; list-style: none; }
.ak .ak-social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 999px; background: var(--ak-sosna); }
.ak .ak-social svg { width: 18px; height: 18px; fill: #fff; }

/* Lista wpisów (/blog/): karty z miniaturą i tytułem, numery stron. */
.ak .ak-wpisy-lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2vw, 28px); margin-inline: 0; margin-bottom: 0; padding: 0; list-style: none; }
.ak .ak-wpis-karta { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ak-linia); border-radius: var(--ak-r); background: #fff;
  box-shadow: var(--ak-cien); }
.ak .ak-wpis-miniatura { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ak-szalwia); }
.ak .ak-wpis-miniatura img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 400ms var(--ak-ease); }
.ak .ak-wpis-tytul { margin: 0; padding: 18px 20px 0; font-size: 18px; font-weight: 600; line-height: 1.35; }
.ak .ak-wpis-tytul a, .ak .ak-wpis-tytul a:visited { color: var(--ak-sosna); text-decoration: none; }
/* opis pod tytułem karty (karty usług na /uslugi/ z treści strony) */
.ak .ak-wpis-opis { margin: 0; padding: 8px 20px 0; font-size: 15.5px; line-height: 1.6; color: var(--ak-szary); }
/* tytuł punktu w wierszu kolumn (grupy korzyści na /uslugi/): poziom ze strony, rozmiar jak tytuły kart */
.ak .ak-tytul.ak-tytul--karta { font-size: clamp(20px, 0.8vw + 15px, 26px); line-height: 1.25; letter-spacing: -0.01em; }
.ak .ak-wpis-dalej, .ak .ak-wpis-dalej:visited { margin-top: auto; padding: 12px 20px 20px; color: var(--ak-sosna); font-size: 15px; font-weight: 600; text-decoration: none; }
.ak .ak-wpisy-strony { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 32px; }
.ak .ak-wpisy-strony .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--ak-linia);
  border-radius: 999px; color: var(--ak-sosna); font-weight: 600; text-decoration: none; }
.ak .ak-wpisy-strony .page-numbers.current { border-color: var(--ak-sosna); background: var(--ak-sosna); color: #fff; }

/* Wpis bloga (szablon wpisu): kolumna do czytania ok. 70 znaków, treść z edytora WordPressa (bloki Gutenberga). */
.ak .ak-wew--wpis { width: min(760px, 100% - var(--ak-margines)); }
.ak .ak-sekcja--wpis { padding-block: clamp(40px, 5vw, 72px) clamp(48px, 6vw, 88px); }
.ak .ak-wpis-zajawka { margin: 0 0 14px; color: var(--ak-szary); font-size: clamp(17px, 0.3vw + 15.5px, 19px); line-height: 1.6; }
.ak h1.ak-wpis-naglowek { max-width: none; font-size: clamp(30px, 1.6vw + 18px, 44px); line-height: 1.15; }
.ak .ak-wpis-tresc { max-width: none; margin-top: clamp(22px, 2.4vw, 32px); }
.ak .ak-wpis-tresc :is(h2, h3, h4) { margin-top: 1.6em; text-transform: none; }
.ak .ak-wpis-tresc figure { margin: 1.4em 0; }
.ak .ak-wpis-tresc img { display: block; max-width: 100%; height: auto; margin-inline: auto; border-radius: var(--ak-r-maly); }
.ak .ak-wpis-tresc figcaption { margin-top: 8px; color: var(--ak-szary); font-size: 14px; text-align: center; }
.ak .ak-wpis-tresc .wp-block-embed iframe, .ak .ak-wpis-tresc iframe { display: block; width: 100%; max-width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0;
  border-radius: var(--ak-r-maly); }
.ak .ak-wpis-social { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: clamp(32px, 3vw, 44px); padding-top: 22px;
  border-top: 1px solid var(--ak-linia); }
.ak .ak-wpis-social-napis { color: var(--ak-sosna); font-size: 16px; font-weight: 600; }
.ak .ak-wpisy-lista--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(24px, 2.4vw, 32px); }
.ak .ak-sekcja--inne .ak-wpis-tytul { font-size: 16.5px; }

/* Najechanie tylko tam, gdzie jest mysz. */
@media (hover: hover) and (pointer: fine) {
  .ak .ak-film-start:hover .ak-film-ikona { transform: translate(-50%, -50%) scale(1.06); background: var(--ak-zloto-2); }
  .ak .ak-galeria-poz:hover img { transform: scale(1.03); }
  .ak .ak-karuzela-nawigacja button:not(:disabled):hover { background: rgba(255, 255, 255, 0.1); }
  .ak .ak-sekcja:not(.ak-sekcja--opinie) .ak-karuzela-nawigacja button:not(:disabled):hover { background: var(--ak-szalwia); }
  .ak .ak-faq-pyt:hover { color: var(--ak-sosna-2); }
  .ak a.ak-kafel-link:hover { border-color: var(--ak-zloto); }
  .ak .ak-wpis-karta:hover .ak-wpis-miniatura img { transform: scale(1.03); }
}

/* Tablet */
@media (max-width: 1023px) {
  .ak .ak-rzad--3, .ak .ak-rzad--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ak .ak-wpisy-lista, .ak .ak-wpisy-lista--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Telefon */
@media (max-width: 767px) {
  .ak { --ak-margines: 32px; font-size: 16.5px; }
  .ak .ak-rzad--2, .ak .ak-rzad--3, .ak .ak-rzad--4 { grid-template-columns: minmax(0, 1fr); }
  .ak .ak-galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .ak .ak-wpisy-lista, .ak .ak-wpisy-lista--4 { grid-template-columns: minmax(0, 1fr); }
  .ak .ak-tekst p, .ak .ak-tekst li { font-size: 16.5px; }
  .ak .ak-przyciski { flex-direction: column; align-items: stretch; }
  .ak .ak-przyciski .ak-przycisk { width: 100%; }
  .ak .ak-faq-pyt { font-size: 16.5px; }
  .ak .ak-sekcja--formularz .ak-wew { width: min(720px, 100% - 24px); }
  .ak .ak-shortcode:has(.wpcf7) { padding: 24px 16px 20px; border-radius: 16px; }
}

/* Poprawki z recenzji 02.10.2026 */
/* 3) kontener wyśrodkowany w Elementorze (flex align-items: center) = wszystko w nim na środku */
.ak .ak-grupa.ak-do-srodka > *, .ak .ak-kol.ak-do-srodka > * { margin-inline: auto; text-align: center; }
.ak .ak-grupa.ak-do-srodka > .ak-tekst { max-width: 64ch; }
/* lista w wyśrodkowanym bloku: cała lista na środku, haczyki przy tekście */
.ak .ak-do-srodka .ak-lista { width: fit-content; max-width: 100%; margin-inline: auto; text-align: left; }
/* 4) linki na ciemnym zdjęciu (poza kartą formularza) jasnym złotem */
.ak .ak-sekcja--zdjecie .ak-tekst a, .ak .ak-sekcja--zdjecie .ak-tekst a:visited { color: var(--ak-zloto-jasne); text-decoration-color: rgba(220, 199, 143, 0.6); }
/* 5) formularz obok tekstu (strony usług): szerszy kontener, karta formularza w swojej kolumnie, do góry */
.ak .ak-sekcja--formularz .ak-wew:has(> .ak-rzad--2) { width: min(1120px, 100% - var(--ak-margines)); }
.ak .ak-sekcja--formularz .ak-rzad--2 { grid-template-columns: minmax(0, 1fr) minmax(340px, 460px); align-items: start; }
/* 6) tytuły w kartach opinii jednym rozmiarem; imiona i nazwiska zespołu w jednej linii */
.ak .ak-slajd .ak-tytul { font-size: 16px; line-height: 1.35; letter-spacing: normal; }
.ak .ak-obraz--karta ~ .ak-tytul, .ak .ak-obraz--karta ~ * .ak-tytul { font-size: clamp(20px, 0.8vw + 15px, 26px); line-height: 1.25; }
/* 7) rząd portretów: podpisy na jednej linii (dół do dołu, także gdy ktoś nie ma tytułu „mgr / inż.”) */
/* portrety równo u góry; tytuł „mgr / inż.” mniejszy, a bez tytułu nazwisko zostawia miejsce na jego linię */
.ak .ak-rzad:has(.ak-obraz--karta) { align-items: start; }
.ak .ak-obraz--karta + h4.ak-tytul { font-size: 15px; font-weight: 500; line-height: 1.35; color: var(--ak-szary); }
@media (min-width: 768px) { .ak .ak-rzad .ak-obraz--karta + .ak-tytul:last-child { margin-top: calc(36px + 15px * 1.35); } }
.ak .ak-obraz--karta + h4.ak-tytul + .ak-tytul { margin-top: 18px; }
/* 8) ikony (małe grafiki png i svg) nie rosną ponad swoją rolę */
.ak .ak-obraz--ikona img { max-width: min(180px, 100%); }
/* film i tekst pod nim w jednej kolumnie */
.ak .ak-wew > .ak-film ~ .ak-tekst { max-width: 880px; margin-inline: auto; }
@media (max-width: 767px) {
  .ak .ak-sekcja--formularz .ak-rzad--2 { grid-template-columns: minmax(0, 1fr); }
  .ak .ak-obraz--ikona img { max-width: min(140px, 100%); }
}

/* Ograniczony ruch */
@media (prefers-reduced-motion: reduce) {
  .ak *, .ak *::before, .ak *::after { transition: none !important; }
  .ak .ak-karuzela-lista { scroll-behavior: auto; }
}
