/* montessori.gda.pl — wygląd odtworzony z Wix Studio (P0003 ZAD0011). Wymiary w px jak na Wixie przy 1366 px szerokości. */
:root {
  --niebieski: #049BBE;
  --ciemny: #2F2B36;
  --zolty: #F6AD02;
  --czerwony: #E8412C;
  --szary: #F7F7F7;
  --tekst: 'Rubik', system-ui, sans-serif;
  --naglowki: 'Rubik', system-ui, sans-serif;
  --stopka: 'Wix Madefor Display', 'Rubik', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; font: 300 16px/1.6 var(--tekst); color: #000; background: #fff; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--niebieski); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--ciemny); outline-offset: 2px; }
strong, b { font-weight: 500; }
h1, h2, h3, h4 { font-family: var(--naglowki); font-weight: 500; color: var(--ciemny); line-height: 1.3; margin: 0 0 .6em; }
p { margin: 0 0 1em; }
main p { margin: 0; }
main p.pusty { height: 1.6em; }
main ul, main ol { margin: 0; }
ul, ol { margin: 0 0 1em; padding-left: 1.4em; }
.pomin { position: absolute; left: -9999px; top: 0; background: #fff; padding: 8px 12px; z-index: 100; }
.pomin:focus { left: 8px; top: 8px; }
.linkowy { background: none; border: 0; padding: 0; font: inherit; color: var(--niebieski); cursor: pointer; }
.linkowy:hover { text-decoration: underline; }

/* ramka: podstrony Wix Studio z marginesem 20 px po bokach */
@media (min-width: 1000px) { body.ramka .strona { margin: 0 20px; } body.ramka .naglowek-strony .gora { padding-top: 20px; height: 207px; } }

/* ---------- nagłówek ---------- */
.naglowek-strony { background: #fff; position: relative; z-index: 20; }
.naglowek-strony .gora { max-width: 1134px; margin: 0 auto; height: 187px; display: flex; align-items: center; justify-content: space-between; padding: 0 0; }
.logo img { width: 249px; height: auto; }
.naglowek-strony .prawa { text-align: right; align-self: stretch; padding: 43px 17px 0 0; }
.media { list-style: none; margin: 0 4px 0 0; padding: 0; display: flex; gap: 22px; justify-content: flex-end; }
.media a { display: block; width: 20px; height: 20px; }
.media svg { display: block; }
.naglowek-strony .dane { margin: 11px 0 0; font-size: 16px; color: var(--ciemny); line-height: 22px; }
.naglowek-strony .dane a { font-weight: 400; }
.linki-gorne { list-style: none; margin: 9px 0 0; padding: 0; display: flex; gap: 0; justify-content: flex-end; }
.linki-gorne a { display: block; padding: 9px 14px; font-size: 14px; font-weight: 500; color: var(--ciemny); line-height: 19px; }
.linki-gorne li:last-child a { padding-right: 9px; }
.menu-przelacznik { display: none; }
.menu { background: var(--niebieski); }
.menu > ul { list-style: none; margin: 0 auto; padding: 0; display: flex; justify-content: center; height: 67px; align-items: center; }
.menu > ul > li { position: relative; }
.menu > ul > li > a { display: block; color: #fff; font-weight: 500; font-size: 15px; line-height: 24px; padding: 1px 30px; border-bottom: 2px solid transparent; }
.menu > ul > li > a:hover { text-decoration: none; border-bottom-color: rgba(255,255,255,.6); }
.menu > ul > li > a.aktywny { border-bottom-color: #fff; }
.menu li ul { list-style: none; margin: 0; padding: 8px 0; position: absolute; top: 100%; left: 0; min-width: 240px; background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.15); display: none; z-index: 30; }
.menu li.rozwijane:hover > ul, .menu li.rozwijane:focus-within > ul { display: block; }
.menu li ul a { display: block; padding: 8px 18px; color: var(--ciemny); font-size: 15px; font-weight: 400; }
.menu li ul a:hover, .menu li ul a[aria-current] { color: var(--niebieski); text-decoration: none; }
.menu-dodatki { display: none; }

/* ---------- przyciski ---------- */
.przycisk { display: inline-flex; align-items: center; justify-content: center; text-align: center; font: 500 14px/1.3 var(--tekst); color: #fff; background: var(--niebieski); padding: 10px 22px; border-radius: 3px; min-height: 42px; }
.przycisk:hover { text-decoration: none; filter: brightness(1.08); }
.przycisk.czerwony { background: var(--czerwony); }
.przycisk.jasny { background: #FCE7B4; color: #000; border: 1px solid #fff; border-radius: 20px; min-height: 38px; padding: 8px 16px; }
.przycisk.szeroki { display: flex; width: 100%; min-height: 44px; }
.przycisk.wysoki { min-height: 55px; padding: 12px 32px; }
.przycisk.okragly { border-radius: 21px; }

/* ---------- strona główna ---------- */
.slajder-glowny { position: relative; height: 478px; overflow: hidden; background: var(--szary); }
.slajder-glowny .slajdy { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.slajder-glowny .slajdy::-webkit-scrollbar { display: none; }
.slajder-glowny .slajd { flex: 0 0 100%; scroll-snap-align: start; }
.slajder-glowny .slajd img { width: 100%; height: 100%; object-fit: cover; }
.strzalka { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; z-index: 3; }
.strzalka::before { content: ''; position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; border: solid #fff; border-width: 2px 2px 0 0; }
.slajder-glowny .strzalka::before { width: 10px; height: 10px; border-color: #3d3d3d; border-width: 1.5px 1.5px 0 0; }
.slajder-glowny .strzalka::after { content: ''; position: absolute; left: 12px; right: 12px; top: 50%; height: 1.5px; background: #3d3d3d; }
.slajder-glowny .strzalka.poprz::before { transform: translate(-13px, -50%) rotate(-135deg); }
.slajder-glowny .strzalka.nast::before { transform: translate(3px, -50%) rotate(45deg); }
.strzalka.poprz { left: 22px; }
.strzalka.poprz::before { transform: translate(-30%, -50%) rotate(-135deg); }
.strzalka.nast { right: 22px; }
.strzalka.nast::before { transform: translate(-70%, -50%) rotate(45deg); }
.slajder-glowny .podpis { position: absolute; left: 0; bottom: 9px; width: 755px; max-width: 100%; background: rgba(246,173,2,.93); padding: 19px 40px 25px 130px; z-index: 2; }
.slajder-glowny .podpis .tytul { font: 500 38px/1.25 var(--naglowki); color: var(--ciemny); margin: 0 0 8px; }
.slajder-glowny .nadtytul { font-size: 15px; line-height: 1.3; color: var(--ciemny); margin: 0 0 6px; letter-spacing: .02em; }
.kroki-zolte .tytul-duzy .ciemny { color: var(--ciemny); }
.slajder-glowny .podpis p { font-weight: 500; font-size: 21px; color: #fff; margin: 0 0 22px; }

.lokalizacje { padding: 0 0 20px; }
.lokalizacje .karty { max-width: 1147px; margin: 0 auto; display: flex; }
.lokalizacje .karta { flex: 1 1 50%; position: relative; padding: 0 0 0; }
.lokalizacje .karta img { width: 100%; height: 288px; object-fit: cover; }
.lokalizacje h2 { position: relative; margin: -45px 47px 14px; background: rgba(247,247,247,.9); color: var(--niebieski); font-size: 24px; text-align: center; padding: 8px 10px 9px; line-height: 28px; }
.lokalizacje .przycisk { margin: 0 auto 12px; width: calc(100% - 94px); }
@media (min-width: 1000px) {
  .lokalizacje .karta:first-child h2, .lokalizacje .karta:first-child .przycisk { margin-left: 27px; margin-right: auto; width: 473px; }
  .lokalizacje .karta:last-child h2 { margin-left: auto; margin-right: 48px; width: 482px; }
  .lokalizacje .karta:last-child .przycisk { margin-left: auto; margin-right: 34px; width: 482px; }
}

.obraz-tekst { display: flex; align-items: flex-start; gap: 94px; padding: 31px 0 21px; }
.obraz-tekst .obraz { margin: 0; flex: 0 0 auto; }
.obraz-tekst .tekst { flex: 1 1 auto; max-width: 372px; padding-top: 26px; font-size: 15px; }
.obraz-tekst.obraz-prawo { flex-direction: row-reverse; }
.tytul-duzy { font-size: 43px; line-height: 1.2; margin-bottom: 40px; }
.tekst-niebieski { color: var(--niebieski); }
.tekst-czerwony { color: var(--czerwony); }
.tekst-ciemny { color: var(--ciemny); }
.tekst-bialy { color: #fff; }
h1 .tekst-ciemny, h2 .tekst-ciemny, h3 .tekst-ciemny { color: inherit; }
.glowna-wartosci .obraz img { width: 754px; height: 725px; object-fit: cover; }
.glowna-wartosci .tekst .przycisk { margin-top: 30px; }

.partnerzy { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1352px; margin: 0 auto; padding: 0 7px 16px; gap: 13px; }
.partnerzy figure { margin: 0; text-align: center; }
.partnerzy img { margin: 0 auto; height: 124px; width: auto; object-fit: contain; }
.partnerzy figcaption { font-size: 17px; color: var(--ciemny); line-height: 1.45; margin-top: 14px; padding: 0 20px; }

.kroki-zolte { background: var(--zolty); display: flex; justify-content: space-between; min-height: 449px; }
.kroki-zolte .tekst { padding: 64px 30px 40px 86px; max-width: 700px; }
.kroki-zolte .przycisk { min-width: min(417px, 100%); }
.kroki-zolte .tytul-duzy { color: #fff; margin-bottom: 26px; }
.kroki-zolte ol { font-size: 17px; line-height: 1.5; margin-bottom: 22px; }
.kroki-zolte .wideo { flex: 0 0 532px; margin-right: 54px; position: relative; }
.kroki-zolte video { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }

.opinie { background: var(--szary); min-height: 429px; display: flex; align-items: center; justify-content: center; padding: 40px 20px; }
.zastepczy { text-align: center; }
.zastepczy .drobny, .drobny { font-size: 13px; color: #555; margin-top: 10px; }
.opinie .zastepczy > p:first-child { font: 500 26px/1.3 var(--naglowki); color: var(--ciemny); }
.opinie.wczytane { display: block; }

/* ---------- podstrony ---------- */
.baner { position: relative; height: 310px; overflow: hidden; }
.baner img { width: 100%; height: 100%; object-fit: cover; }
.baner::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 56px; background: linear-gradient(rgba(255,255,255,.45) 0 50%, rgba(255,255,255,.82) 50% 100%); }
.baner .tytul { position: absolute; left: 119px; top: 80px; margin: 0; color: #fff; font: 500 81px/1.2 var(--naglowki); line-height: 1.2; text-shadow: 0 1px 12px rgba(0,0,0,.12); }
.baner .tytul.maly { font-size: 50px; top: 104px; }
body.pelna .baner .tytul { left: 139px; }
.odstep-baner { height: 19px; }

.tresc { padding: 24px 20px 36px; }
.tresc .waska { max-width: 1069px; margin: 0 auto; }
.tresc .srednia { max-width: 876px; margin: 0 auto; }
.tresc .szeroka { max-width: 1087px; margin: 0 auto; }
.tresc h1, .tresc .h-niebieski { color: var(--niebieski); font-family: 'Wix Madefor Display', var(--naglowki); font-weight: 400; font-size: 31px; line-height: 1.3; }
.tresc .wstep, .wstep { font-size: 17px; color: var(--ciemny); }

/* podstrona lokalizacji: tekst + karta z cytatem */
.lokalizacja { display: flex; gap: 57px; padding: 38px 53px 0; max-width: 1366px; margin: 0 auto; }
.lokalizacja .tekst { flex: 1 1 629px; max-width: 629px; }
.lokalizacja .tekst h1 { color: var(--niebieski); font-size: 26px; line-height: 1.35; margin: 17px 0 42px; }
.lokalizacja .tekst h2 { font-size: 26px; margin: 22px 0 10px; }
.lokalizacja .tekst p, .lokalizacja .tekst li { font-size: 16px; line-height: 1.6; }
.lokalizacja .tekst ul { margin: 0; }
.lokalizacja .cytat { flex: 0 0 574px; margin: 0; position: relative; border-radius: 18px; overflow: hidden; align-self: flex-start; }
.lokalizacja .cytat img { width: 574px; height: 1092px; object-fit: cover; }
.lokalizacja .cytat blockquote { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 0 42px 40px; text-align: center; color: var(--szary); font-size: 16px; line-height: 1.6; }
.lokalizacja .cytat blockquote::before { content: ''; position: absolute; inset: -260px 0 0; background: linear-gradient(transparent, rgba(30,50,60,.55) 40%, rgba(30,50,60,.7)); z-index: -1; }
.lokalizacja .cytat .pioro { margin: 0 auto 26px; width: 56px; height: 56px; }
.lokalizacja .cytat footer { margin-top: 20px; }

.wychowanie { display: flex; gap: 44px; padding: 20px 53px 18px; max-width: 1366px; margin: 0 auto; }
.wychowanie .karta-tlo { flex: 0 0 647px; min-height: 733px; border-radius: 18px; background-size: cover; background-position: center; padding: 20px 44px 40px; }
.wychowanie .karta-tlo h2 { font-size: 26px; margin: 0 0 10px; }
.wychowanie .karta-tlo .podtytul { font-size: 20px; color: var(--niebieski); font-weight: 500; line-height: 1.45; }
.wychowanie .karta-tlo p { font-size: 16px; }
.wychowanie .prawa { flex: 1 1 auto; max-width: 524px; padding-top: 43px; font-size: 15px; }
.wychowanie .prawa h2 { font-size: 26px; margin-bottom: 18px; }
.wychowanie .prawa p { margin: 0; }
.wychowanie .prawa .przycisk { margin: 20px 0 0; min-width: min(243px, 100%); font-weight: 400; font-size: 15px; }
.wychowanie .kontakt { margin: 41px 0 0 20px; }

.karuzela { position: relative; padding: 18px 0; }
.karuzela .tor { display: flex; gap: 32px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: 0 0 0 0; }
.karuzela .tor::-webkit-scrollbar { display: none; }
.karuzela .tor a { flex: 0 0 285px; scroll-snap-align: start; border-radius: 12px; overflow: hidden; }
.karuzela img { width: 285px; height: 380px; object-fit: cover; }
.karuzela .strzalka { background: #fff; border-radius: 50%; width: 40px; height: 40px; box-shadow: 0 1px 6px rgba(0,0,0,.25); }
.karuzela .strzalka::before { border-color: var(--ciemny); width: 10px; height: 10px; }
.karuzela .strzalka.poprz { left: 14px; } .karuzela .strzalka.nast { right: 14px; }

.spacer { max-width: 1366px; margin: 0 auto; padding: 18px 0 0; }
.spacer h2 { font-size: 26px; padding: 9px 164px 0; margin: 0 0 18px; }
.ramka-16-9 { position: relative; min-height: 576px; background: var(--szary) center / cover no-repeat; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ramka-16-9 .drobny { background: rgba(255,255,255,.85); padding: 2px 8px; }
.ramka-16-9 iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.spacer .ramka-16-9 { margin: 0 136px; }

.ramka-osadzona { padding: 0 20px; }
.ramka-osadzona iframe { width: 100%; border: 0; display: block; overflow: hidden; }

.kroki-karty { background: var(--zolty); padding: 22px 42px 46px; }
.kroki-karty h2 { color: var(--szary); text-align: center; font-size: 32px; margin: 0 0 42px; }
.kroki-karty .karty { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 22px 38px; }
.kroki-karty .karta { position: relative; border: 1px solid var(--ciemny); border-radius: 18px; padding: 30px 32px 30px; min-height: 375px; }
.kroki-karty .strzalka-ikona { display: block; margin-bottom: 44px; }
.kroki-karty h3 { font-size: 28px; margin: 0 0 18px; }
.kroki-karty p { font-size: 16px; margin: 0; }
.kroki-karty .nr { position: absolute; right: 32px; bottom: 22px; font: 700 81px/1 'Wix Madefor Display', sans-serif; color: var(--szary); }

.film { padding: 50px 20px 37px; }
.film .wstep { font-weight: 300; font-size: 26px; max-width: 1047px; margin: 0 auto 30px; }
.film .ramka-16-9 { max-width: 1087px; margin: 0 auto; min-height: 0; aspect-ratio: 16 / 9.6; }
.odtworz { border: 0; background: none; cursor: pointer; padding: 0; }

.karty-blok { padding: 20px 20px 40px; }
.karty-blok .tytul-duzy { max-width: 935px; margin: 0 auto 20px; }
.karty-blok .karty { display: grid; gap: 30px 40px; margin: 0 auto; }
.karty-blok .kol-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 982px; }
.karty-blok .kol-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1030px; }
.karty-blok .obraz { margin: 0 0 22px; position: relative; }
.karty-blok .obraz img { width: 100%; object-fit: cover; border-radius: 8px; }
.karty-blok h3 { font-size: 21px; line-height: 1.3; margin: 0 0 12px; white-space: pre-line; }
.karty-blok h3.niebieski { color: var(--niebieski); }
.karty-blok h3.czerwony { color: var(--czerwony); font-size: 17px; }
.karty-blok h3.czarny { color: #000; font-size: 17px; }
.karty-blok p { margin: 0; font-size: 16px; }
.karty-blok .pusty { height: 1.6em; }

/* opłaty */
.oplaty .karty { max-width: 664px; gap: 24px; }
.oplaty .obraz img { height: 196px; border-radius: 0; }
.oplaty .tekst { padding: 0 29px; }
.oplaty .czesne { font-size: 18px; color: var(--czerwony); }

/* placówki: wiersz zdjęcie z etykietą + szkoła + przedszkole */
.placowki-wiersz .karty { max-width: 1090px; grid-template-columns: 243px 1fr 1fr; gap: 0 78px; }
.placowki-wiersz .karta { display: contents; }
.placowki-wiersz .obraz { margin: 0; }
.placowki-wiersz .obraz img { width: 243px; height: 198px; border-radius: 0; }
.etykieta { position: absolute; left: 0; bottom: 18px; background: var(--zolty); color: var(--szary); font-weight: 500; font-size: 18px; padding: 4px 12px; }
.placowki-wiersz h3 { margin-bottom: 14px; }
.placowki-wiersz .przycisk { margin-top: 16px; }

/* kontakt */
.kontakt-placowki .obraz img { height: 186px; }
.kontakt-placowki-3 .obraz img { height: 125px; }
.kontakt-inne .obraz img { height: 188px; border-radius: 8px; }

/* o nas, dokumenty, ochrona wizerunku, praca */
.obraz-tekst.podstrona { padding: 0; gap: 128px; align-items: flex-start; }
.obraz-tekst img[style*='--h'] { width: var(--w); height: var(--h); object-fit: cover; border-radius: 18px; }
.obraz-tekst.podstrona .tytul-duzy { color: var(--niebieski); }
.obraz-tekst.podstrona .tekst { max-width: 663px; padding-top: 25px; font-size: 14px; }
main p.duzy { font-size: 20px; line-height: 1.45; }
.obraz-tekst.praca, .obraz-tekst.dokumenty { padding-top: 19px; }
.linki-gorne a[aria-current] { color: #8a8a8a; }
.obraz-tekst.podstrona .tytul-duzy { margin-bottom: 26px; }
.obraz-tekst.obraz-prawo.podstrona { padding-left: 68px; gap: 70px; }
.dokumenty .tekst p { margin: 0; }
.dokumenty .tekst .sekcja { font-size: 20px; margin-top: 4px; }
.dokumenty .tekst a { color: #000; text-decoration: underline; }
.lista-dokumentow { padding: 35px 20px 40px 140px; font-size: 15px; }
.lista-dokumentow p { margin: 0; }
.lista-dokumentow ul { margin: 0 0 1.2em; }
.lista-dokumentow a { color: var(--niebieski); }

/* kadra */
.kadra { max-width: 1200px; margin: 0 auto; padding: 30px 20px 60px; }
.kadra .zakladki { display: flex; justify-content: space-around; border-bottom: 1px solid #ddd; margin-bottom: 40px; }
.kadra [role=tab] { background: none; border: 0; border-bottom: 2px solid transparent; padding: 12px 20px; font: 400 15px var(--tekst); color: var(--ciemny); cursor: pointer; }
.kadra [role=tab][aria-selected=true] { border-bottom-color: var(--ciemny); font-weight: 500; }
.kadra h2 { font-weight: 400; font-size: 36px; margin: 0 0 40px; }
.kadra .osoba { display: flex; gap: 34px; margin: 0 0 30px; align-items: center; }
.kadra .osoba img, .kadra .bez-zdjecia { flex: 0 0 112px; width: 112px; height: 112px; object-fit: cover; }
.kadra .bez-zdjecia { background: #ddd; }
.kadra .opis h3 { font-weight: 400; font-size: 20px; margin: 0 0 8px; }
.kadra .opis p { font-size: 14px; line-height: 2; }
.kadra .opis .funkcja { font-weight: 500; line-height: 1.5; margin: 0 0 8px; }


/* strona dla rodzin z Sopotu: jak podstrona lokalizacji, zdjęcie bez cytatu niżej po prawej */
.lokalizacja.sopot .cytat { margin-top: 536px; }
.lokalizacja.sopot .tekst h1 { margin-bottom: 30px; }
.sopot-dol { padding: 24px 20px 10px; }
.sopot-dol h2 { font-size: 26px; margin-bottom: 18px; }
.sopot-dol .przycisk { border-radius: 21px; font-weight: 400; font-size: 15px; min-width: 243px; margin-top: 20px; }

/* strona wczytana w ramce (np. „dziękujemy” w ramce formularza Ragica): sama treść, bez nagłówka, stopki i banera zgód */
.w-ramce .naglowek-strony, .w-ramce .stopka, .w-ramce .zgody, .w-ramce .pomin { display: none !important; }
.w-ramce body.ramka .strona { margin: 0; }
.dziekujemy .tresc { padding-top: 40px; }
.dziekujemy .linki-dalej { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- stopka ---------- */
.stopka { padding: 0 53px; }
.stopka .kolumny { border-top: 1px solid #ccc; display: grid; grid-template-columns: 263px 414px 331px 1fr; padding: 26px 0 30px; font-size: 14px; line-height: 2; }
.stopka h2 { font: 400 25px/1.25 var(--stopka); color: var(--ciemny); margin: 0 0 30px; }
.stopka p { margin: 0 0 1.6em; }
.stopka-menu { list-style: none; margin: 0; padding: 0; line-height: 38px; }
.stopka-menu a[aria-current] { color: #8a8a8a; }
.stopka a.tel { color: #000; font-weight: 500; text-decoration: underline; }
.stopka .logo-stopka { width: 151px; margin-top: 6px; }
.stopka .dol { border-top: 1px solid #ccc; display: flex; justify-content: space-between; align-items: center; padding: 10px 0 30px; font: 400 14px var(--stopka); }
.stopka .dol p { margin: 0; }
.stopka .linki { display: flex; gap: 18px; }
.stopka .linki .linkowy { font-size: 14px; }

/* ---------- zgody ---------- */
.zgody { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: #fff; box-shadow: 0 -4px 18px rgba(0,0,0,.18); max-height: 100dvh; overflow-y: auto; }
.zgody .wnetrze { max-width: 1326px; margin: 0 auto; padding: 16px 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 14px; }
.zgody .tekst { flex: 1 1 520px; margin: 0; }
.zgody button { font: 400 14px var(--tekst); padding: 8px 16px; border: 1px solid #000; background: #fff; cursor: pointer; }
.zgody button.glowny { background: #000; color: #fff; }
.zgody .ustawienia { display: none; flex-basis: 100%; gap: 18px; align-items: center; flex-wrap: wrap; }
.zgody.rozwiniete .ustawienia { display: flex; }

/* ---------- telefon i tablet ---------- */
@media (max-width: 999px) {
  .naglowek-strony .gora { height: auto; padding: 14px 16px; }
  .logo img { width: 190px; }
  .naglowek-strony .prawa { display: none; }
  .menu-przelacznik { display: flex; flex-direction: column; gap: 5px; background: none; border: 0; padding: 10px; cursor: pointer; }
  .menu-przelacznik span { width: 26px; height: 3px; background: var(--ciemny); border-radius: 2px; }
  .menu { display: none; }
  .menu.otwarte { display: block; }
  .menu > ul { flex-direction: column; height: auto; align-items: stretch; padding: 8px 0; }
  .menu > ul > li > a { padding: 11px 20px; border: 0; }
  .menu > ul > li > a.aktywny { background: rgba(255,255,255,.18); }
  .menu li ul { position: static; display: block; box-shadow: none; background: transparent; padding: 0 0 6px 16px; }
  .menu li ul a { color: #fff; padding: 7px 20px; font-size: 14px; }
  .menu-dodatki { display: block; background: #fff; padding: 12px 20px 16px; }
  .menu-dodatki .linki-gorne { justify-content: flex-start; flex-wrap: wrap; margin: 0; }
  .menu-dodatki .linki-gorne a { padding: 8px 14px 8px 0; }
  .menu-dodatki .dane { margin: 6px 0 0; font-size: 15px; }
  .slajder-glowny { height: 520px; }
  .slajder-glowny .podpis { width: auto; right: 0; bottom: 0; padding: 18px 20px 22px; }
  .slajder-glowny .tytul { font-size: 28px; }
  .slajder-glowny .podpis p { font-size: 18px; margin-bottom: 14px; }
  .strzalka { top: 30%; }
  .lokalizacje .karty, .obraz-tekst, .obraz-tekst.obraz-prawo, .kroki-zolte, .lokalizacja, .wychowanie { flex-direction: column; }
  .lokalizacje .karta { margin-bottom: 20px; }
  .lokalizacje h2 { margin: -40px 16px 12px; font-size: 22px; }
  .lokalizacje .przycisk { width: calc(100% - 32px); }
  .obraz-tekst { gap: 24px; padding: 20px 0; }
  .obraz-tekst .tekst, .obraz-tekst.podstrona .tekst { max-width: none; padding: 0 20px; }
  .obraz-tekst.obraz-prawo.podstrona { padding-left: 0; gap: 24px; }
  .glowna-wartosci .obraz img { width: 100%; height: auto; aspect-ratio: 754 / 725; }
  .tytul-duzy { font-size: 32px; margin-bottom: 22px; }
  .partnerzy { grid-template-columns: 1fr; gap: 30px; padding: 20px; }
  .kroki-zolte .tekst { padding: 36px 20px 24px; }
  .kroki-zolte .wideo { flex: 0 0 auto; margin: 0; aspect-ratio: 532 / 449; }
  .opinie { min-height: 0; }
  .baner { height: 200px; }
  .baner .tytul, body.pelna .baner .tytul { left: 20px; top: auto; bottom: 64px; font-size: 44px; }
  .baner .tytul.maly { font-size: 36px; top: auto; }
  .lokalizacja { padding: 20px 20px 0; gap: 30px; }
  .lokalizacja .tekst { flex: 1 1 auto; max-width: none; }
  .lokalizacja .cytat { flex: 0 0 auto; width: 100%; }
  .lokalizacja .cytat img { width: 100%; height: 640px; }
  .wychowanie { padding: 20px; gap: 30px; }
  .wychowanie .karta-tlo { flex: 0 0 auto; min-height: 0; padding: 24px 22px 32px; position: relative; z-index: 0; overflow: hidden; }
  .wychowanie .karta-tlo::before { content: ''; position: absolute; inset: 0; background: rgba(255,255,255,.72); z-index: -1; }
  .lokalizacja .cytat blockquote::before { inset: -40px 0 0; background: rgba(20,40,50,.68); }
  .lokalizacja .cytat blockquote { padding-top: 24px; }
  .wychowanie .prawa { padding-top: 0; max-width: none; }
  .wychowanie .kontakt { margin-left: 0; }
  .lokalizacja.sopot .cytat { margin-top: 0; }
  .karuzela .tor { gap: 14px; padding: 0 16px; }
  .karuzela .tor a { flex-basis: 230px; }
  .karuzela img { width: 230px; height: 307px; }
  .spacer h2 { padding: 0 20px; font-size: 22px; }
  .spacer .ramka-16-9 { margin: 0; min-height: 420px; }
  .kroki-karty { padding: 22px 16px 30px; }
  .kroki-karty .karty { grid-template-columns: 1fr; }
  .kroki-karty .karta { min-height: 0; padding: 24px 22px 90px; }
  .kroki-karty h3 { font-size: 24px; }
  .film .wstep { font-size: 21px; }
  .karty-blok .kol-2, .karty-blok .kol-3, .oplaty .karty { grid-template-columns: 1fr; }
  .placowki-wiersz .karty { grid-template-columns: 1fr; gap: 16px; }
  .placowki-wiersz .obraz img { width: 100%; height: 220px; }
  .lista-dokumentow { padding: 20px; }
  .kadra .zakladki { flex-direction: column; }
  .kadra h2 { font-size: 26px; }
  .kadra .osoba { flex-direction: column; gap: 12px; }
  .kadra .osoba { align-items: flex-start; }
  .obraz-tekst img[style*='--h'] { width: 100%; height: auto; max-height: 520px; border-radius: 0; }
  .stopka { padding: 0 20px; }
  .stopka .kolumny { grid-template-columns: 1fr; gap: 10px; }
  .stopka h2 { margin-bottom: 12px; }
  .stopka .dol { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* powiększanie zdjęć (jak chalo.pl) */
.powiekszenie { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.9); display: flex; align-items: center; justify-content: center; }
.powiekszenie[hidden] { display: none; }
.powiekszenie img { max-width: 92vw; max-height: 86vh; width: auto; height: auto; }
.powiekszenie button { position: absolute; background: rgba(0,0,0,.4); color: #fff; border: 0; font-size: 44px; line-height: 1; width: 56px; height: 56px; cursor: pointer; }
.powiekszenie button:focus-visible { outline: 3px solid var(--zolty); }
.powiekszenie .zamknij { top: 12px; right: 12px; }
.powiekszenie .poprz { left: 12px; top: 50%; transform: translateY(-50%); }
.powiekszenie .nast { right: 12px; top: 50%; transform: translateY(-50%); }
.powiekszenie .licznik { position: absolute; bottom: 10px; left: 0; right: 0; text-align: center; color: #fff; margin: 0; font-size: 14px; }
