/* Centrum Medyczne Mariodent — wersja 3 „Przejrzyście”: światło dzienne, matowe szkło, Sora + DM Sans. */
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(/fonts/sora-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(/fonts/sora-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(/fonts/dmsans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(/fonts/dmsans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Sans'; font-style: italic; font-weight: 400; font-display: swap; src: url(/fonts/dmsans-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Sans'; font-style: italic; font-weight: 400; font-display: swap; src: url(/fonts/dmsans-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --bialy: #fff;
  --mgla: #eef6f5;
  --mgla-2: #e2efed;
  --mieta: #cdeee6;
  --laguna: #0b7a73;
  --laguna-c: #086159;
  --laguna-j: #3fb8ae;
  --ton: #0d2b2e;
  --ton-2: #3d5a5c;
  --linia: rgba(13, 43, 46, .1);
  --malina: #b0124a;
  --szklo: rgba(255, 255, 255, .64);
  --szklo-ramka: rgba(255, 255, 255, .78);
  --cien: 0 18px 50px -18px rgba(13, 60, 64, .22), 0 2px 6px rgba(13, 60, 64, .05);
  --r: 28px;
  --r-m: 18px;
  --nag: 64px;
  --f-t: 'Sora', 'DM Sans', system-ui, sans-serif;
  --f: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ease: cubic-bezier(.2, .7, .2, 1);
}
[hidden] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; overflow-x: clip; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body { margin: 0; font-family: var(--f); font-size: 17px; line-height: 1.6; color: var(--ton); background: var(--bialy); -webkit-font-smoothing: antialiased; overflow-x: clip; }
main { overflow-x: clip; display: block; }
main:focus { outline: none; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--laguna); text-underline-offset: .18em; }
a:hover { color: var(--laguna-c); }
h1, h2, h3 { font-family: var(--f-t); margin: 0; font-weight: 500; letter-spacing: -.02em; line-height: 1.15; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--laguna-j); outline-offset: 3px; border-radius: 6px; }
button { font: inherit; color: inherit; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 200; background: var(--ton); color: #fff; padding: 10px 16px; border-radius: 10px; }
.skip:focus { top: 12px; }
.w { width: 100%; max-width: 1240px; margin: 0 auto; padding-inline: clamp(18px, 4vw, 48px); }
.sek { padding-block: clamp(72px, 10vw, 140px); position: relative; }
.sek--mgla { background: var(--mgla); }
.szklo { background: var(--szklo); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); border: 1px solid var(--szklo-ramka); box-shadow: var(--cien), inset 0 1px 0 rgba(255, 255, 255, .9); border-radius: var(--r); }

/* ---------- typografia ---------- */
.etyk { font-family: var(--f); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--laguna); margin: 0 0 18px; display: flex; align-items: center; gap: 10px; }
.etyk::before { content: ''; width: 22px; height: 2px; border-radius: 2px; background: currentColor; }
.tyt { font-family: var(--f-t); font-weight: 300; font-size: clamp(34px, 5vw, 70px); line-height: 1.04; letter-spacing: -.04em; margin: 0 0 22px; text-wrap: balance; }
.tyt b { font-weight: 600; color: var(--laguna); display: block; }
.tyt--pod { font-size: clamp(36px, 5.6vw, 78px); max-width: 16ch; }
.glowa { max-width: 760px; margin-bottom: clamp(36px, 5vw, 64px); }
.glowa p:last-child { color: var(--ton-2); font-size: 18px; max-width: 56ch; }
.glowa--rzad { max-width: none; display: grid; gap: 0 48px; grid-template-columns: 1fr; }
@media (min-width: 900px) {
  .glowa--rzad { grid-template-columns: 1.2fr 1fr; align-items: end; }
  .glowa--rzad .etyk { grid-column: 1 / -1; }
  .glowa--rzad .tyt { margin-bottom: 0; }
  .glowa--rzad p { margin: 0 0 8px; }
}
.dalej { margin: clamp(32px, 4vw, 52px) 0 0; display: flex; justify-content: center; }
.dalej--lewo { justify-content: flex-start; margin-top: 28px; }

/* ---------- przyciski ---------- */
.btn { --t: var(--ton); display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 0 22px 0 26px; border-radius: 999px; font-weight: 600; font-size: 16px; text-decoration: none; line-height: 1.1; border: 1.5px solid transparent; transition: background .25s, color .25s, border-color .25s, translate .25s var(--ease), box-shadow .25s; white-space: nowrap; cursor: pointer; }
.btn__i { width: 30px; height: 30px; margin-right: -8px; border-radius: 50%; display: grid; place-items: center; transition: translate .25s var(--ease), background .25s; }
.btn__i svg { width: 18px; height: 18px; }
.btn:hover { translate: 0 -2px; }
.btn:hover .btn__i { translate: 3px 0; }
.btn--laguna { background: var(--laguna); color: #fff; box-shadow: 0 10px 24px -10px rgba(11, 122, 115, .7); }
.btn--laguna .btn__i { background: rgba(255, 255, 255, .18); }
.btn--laguna:hover { background: var(--laguna-c); color: #fff; }
.btn--szklo { background: rgba(255, 255, 255, .7); color: var(--ton); border-color: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.btn--szklo .btn__i { background: var(--mieta); color: var(--laguna-c); }
.btn--szklo:hover { background: #fff; color: var(--ton); }
.btn--kontur { color: var(--ton); border-color: rgba(13, 43, 46, .22); background: transparent; }
.btn--kontur .btn__i { background: var(--mgla); color: var(--laguna); }
.btn--kontur:hover { border-color: var(--laguna); color: var(--laguna-c); }
.btn--maly { min-height: 44px; font-size: 15px; padding: 0 20px; }
.btn--maly .btn__i { display: none; }

/* ---------- status otwarcia ---------- */
.status { display: inline-flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--ton-2); }
.status i { width: 9px; height: 9px; border-radius: 50%; background: #9fb3b4; flex: none; }
.status.is-otwarte i { background: #19b46f; box-shadow: 0 0 0 0 rgba(25, 180, 111, .5); animation: puls 2.2s infinite; }
.status.is-zamkniete i { background: var(--malina); }
@keyframes puls { 70% { box-shadow: 0 0 0 9px rgba(25, 180, 111, 0); } 100% { box-shadow: 0 0 0 0 rgba(25, 180, 111, 0); } }
.status--duzy { font-size: 15px; margin-bottom: 14px; color: var(--ton); }

/* ---------- logo ---------- */
.logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ton); flex: none; }
.znak { width: 46px; height: 24px; color: #6f7f81; }
.logo__t { display: flex; flex-direction: column; line-height: 1; }
.logo__t b { font-family: var(--f-t); font-weight: 600; font-size: 19px; letter-spacing: -.02em; }
.logo__t small { font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ton-2); margin-top: 4px; }

/* ---------- nagłówek ---------- */
.nag { position: fixed; z-index: 80; top: 12px; left: 12px; right: 12px; pointer-events: none; }
.nag__w { pointer-events: auto; max-width: 1320px; margin: 0 auto; height: var(--nag); display: flex; align-items: center; gap: 18px; padding: 0 10px 0 18px; border-radius: 999px; background: rgba(255, 255, 255, .66); -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5); border: 1px solid rgba(255, 255, 255, .85); box-shadow: 0 10px 30px -14px rgba(13, 60, 64, .25); transition: background .3s, box-shadow .3s; }
.nag.is-przewiniety .nag__w { background: rgba(255, 255, 255, .86); box-shadow: 0 14px 34px -16px rgba(13, 60, 64, .32); }
.nag__nav { margin: 0 auto; }
.nag__nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.nag__nav a { display: block; padding: 9px 14px; border-radius: 999px; text-decoration: none; color: var(--ton); font-weight: 500; font-size: 15.5px; transition: background .2s; }
.nag__nav a:hover { background: rgba(205, 238, 230, .7); color: var(--ton); }
.nag__nav a[aria-current='page'] { background: var(--mieta); color: var(--laguna-c); }
.nag__prawo { display: flex; align-items: center; gap: 10px; }
.jez { list-style: none; margin: 0; padding: 3px; display: flex; gap: 2px; border-radius: 999px; background: rgba(13, 43, 46, .05); }
.jez a { display: grid; place-items: center; min-width: 36px; height: 32px; padding: 0 6px; border-radius: 999px; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-decoration: none; color: var(--ton-2); }
.jez a:hover { color: var(--ton); background: rgba(255, 255, 255, .8); }
.jez a[aria-current] { background: #fff; color: var(--laguna-c); box-shadow: 0 2px 8px rgba(13, 43, 46, .1); }
.burger { display: none; align-items: center; gap: 10px; height: 46px; padding: 0 8px 0 16px; border: 0; border-radius: 999px; background: var(--ton); color: #fff; cursor: pointer; font-weight: 600; font-size: 14.5px; }
.burger__k { width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, .14); position: relative; }
.burger__k i { position: absolute; left: 8px; right: 8px; height: 2px; border-radius: 2px; background: #fff; transition: translate .3s, rotate .3s; }
.burger__k i:first-child { top: 11px; }
.burger__k i:last-child { top: 17px; }
.burger[aria-expanded='true'] .burger__k i:first-child { translate: 0 3px; rotate: 45deg; }
.burger[aria-expanded='true'] .burger__k i:last-child { translate: 0 -3px; rotate: -45deg; }
@media (max-width: 1080px) {
  .nag__nav, .nag__cta, .jez--nag { display: none; }
  .burger { display: inline-flex; }
  .nag__w { justify-content: space-between; }
}
@media (max-width: 420px) { .burger__t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .burger { padding: 0 8px; } }

/* menu na telefonie */
.menu-tel { position: fixed; inset: 0; z-index: 70; background: rgba(238, 246, 245, .9); -webkit-backdrop-filter: blur(26px) saturate(1.4); backdrop-filter: blur(26px) saturate(1.4); clip-path: circle(0 at calc(100% - 46px) 44px); transition: clip-path .55s var(--ease); overflow-y: auto; overscroll-behavior: contain; }
.menu-tel.is-otwarte { clip-path: circle(150% at calc(100% - 46px) 44px); }
.menu-tel__w { min-height: 100%; padding: calc(var(--nag) + 40px) 24px 32px; display: flex; flex-direction: column; gap: 26px; max-width: 640px; margin: 0 auto; }
.menu-tel ol { list-style: none; margin: 0; padding: 0; }
.menu-tel li { border-bottom: 1px solid var(--linia); opacity: 0; translate: 0 16px; transition: opacity .4s, translate .5s var(--ease); transition-delay: calc(.12s + var(--i) * .05s); }
.menu-tel.is-otwarte li { opacity: 1; translate: 0 0; }
.menu-tel li a { display: flex; justify-content: space-between; align-items: center; padding: 13px 4px; font-family: var(--f-t); font-weight: 300; font-size: clamp(28px, 8vw, 40px); letter-spacing: -.03em; color: var(--ton); text-decoration: none; }
.menu-tel li a[aria-current='page'] { color: var(--laguna); font-weight: 500; }
.menu-tel li a span { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--laguna); }
.menu-tel li a span svg { width: 20px; }
.menu-tel__jez p { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ton-2); margin-bottom: 10px; }
.jez--menu { display: inline-flex; background: #fff; }
.jez--menu a { min-width: 64px; height: 44px; font-size: 15px; }
.jez--menu a[aria-current] { background: var(--laguna); color: #fff; }
.menu-tel__btn { display: grid; gap: 10px; }
.menu-tel__btn .btn { width: 100%; }
.menu-tel__adr { font-size: 14.5px; color: var(--ton-2); margin: 0; }
html.menu-otwarte, html.menu-otwarte body { overflow: hidden; }

/* =================== START: SZKLANE DRZWI =================== */
.drzwi { position: relative; height: 100svh; min-height: 560px; }
.drzwi__scena { --p: 1; --o: 1; position: sticky; top: 0; height: 100svh; min-height: 560px; overflow: hidden; background: var(--mgla); }
html.anim-drzwi .drzwi { height: 240svh; }
html.anim-drzwi .drzwi__scena { --p: 0; --o: 0; }
.drzwi__foto { position: absolute; inset: 0; }
.drzwi__foto img, .drzwi__mgla-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--fx, 50%) var(--fy, 40%) !important; }
.drzwi__foto img { scale: calc(1.1 - var(--p) * .1); transform-origin: 60% 40%; }
.drzwi__foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(238, 246, 245, .42), rgba(238, 246, 245, 0) 55%); opacity: var(--p); pointer-events: none; }
.drzwi__skrzydlo { position: absolute; top: 0; bottom: 0; width: 50%; overflow: hidden; will-change: translate; box-shadow: 0 0 0 1px rgba(255, 255, 255, .5) inset; }
.drzwi__skrzydlo--l { left: 0; translate: calc((var(--p) * 1.04 + var(--o) * .012) * -100%) 0; }
.drzwi__skrzydlo--p { right: 0; translate: calc((var(--p) * 1.04 + var(--o) * .012) * 100%) 0; }
.drzwi__mgla { position: absolute; top: 0; bottom: 0; width: 200%; }
.drzwi__skrzydlo--l .drzwi__mgla { left: 0; translate: calc((var(--p) * 1.04 + var(--o) * .012) * 50%) 0; }
.drzwi__skrzydlo--p .drzwi__mgla { right: 0; translate: calc((var(--p) * 1.04 + var(--o) * .012) * -50%) 0; }
.drzwi__mgla-img { scale: 1.12; filter: blur(22px) saturate(1.15) brightness(1.08); }
.drzwi__mgla::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 255, 255, .5), rgba(238, 246, 245, .38) 60%, rgba(255, 255, 255, .55)); }
/* poziome pasy piaskowania jak na drzwiach przychodni */
.drzwi__skrzydlo::before { content: ''; position: absolute; left: 0; right: 0; top: 14%; height: 1px; background: rgba(255, 255, 255, .9); box-shadow: 0 7px 0 rgba(255, 255, 255, .55), 0 14px 0 rgba(255, 255, 255, .35); z-index: 1; }
.drzwi__refleks { position: absolute; top: -10%; bottom: -10%; width: 34%; left: 0; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55) 45%, rgba(255, 255, 255, .15) 55%, transparent); translate: calc(-120% + var(--p) * 420%) 0; rotate: 8deg; z-index: 1; }
.drzwi__skrzydlo--p .drzwi__refleks { translate: calc(-160% + var(--p) * 360%) 0; opacity: .7; }
.drzwi__napis { position: absolute; top: 15%; width: 200%; text-align: center; font-family: var(--f-t); font-weight: 600; font-size: clamp(70px, 15.5vw, 250px); letter-spacing: -.06em; line-height: 1; color: rgba(255, 255, 255, .72); text-shadow: 0 1px 0 rgba(255, 255, 255, .8), 0 -1px 1px rgba(13, 43, 46, .08); z-index: 1; user-select: none; }
/* napis „wytrawiony” w szkle jedzie razem ze skrzydłem; ma szerokość ekranu, więc w środku drzwi składa się w całość */
.drzwi__skrzydlo--l .drzwi__napis { left: 0; }
.drzwi__skrzydlo--p .drzwi__napis { left: -100%; }
.drzwi__klamka { position: absolute; top: 44%; height: 20%; width: 9px; border-radius: 9px; background: linear-gradient(90deg, #c9d4d5, #fff 45%, #a9b8ba); box-shadow: 0 6px 14px rgba(13, 43, 46, .22); z-index: 2; }
.drzwi__skrzydlo--l .drzwi__klamka { right: 22px; }
.drzwi__skrzydlo--p .drzwi__klamka { left: 22px; }
.drzwi__szyld { position: absolute; right: 9%; bottom: 13%; z-index: 2; display: grid; gap: 3px; padding: 14px 18px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .85); color: var(--ton-2); font-size: 13px; letter-spacing: .06em; background: rgba(255, 255, 255, .28); text-align: right; }
.drzwi__szyld b { font-family: var(--f-t); font-weight: 600; color: var(--ton); letter-spacing: 0; font-size: 14.5px; }
.drzwi__rama { position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; translate: -1px 0; background: rgba(255, 255, 255, .9); opacity: calc(1 - var(--p) * 5); z-index: 3; }
.drzwi__karta { position: absolute; z-index: 5; left: clamp(16px, 4vw, 56px); bottom: clamp(16px, 6vh, 60px); width: min(680px, calc(100% - 32px)); padding: clamp(22px, 2.6vw, 36px); border-radius: var(--r); background: rgba(255, 255, 255, .7); -webkit-backdrop-filter: blur(20px) saturate(1.5); backdrop-filter: blur(20px) saturate(1.5); border: 1px solid rgba(255, 255, 255, .9); box-shadow: var(--cien); }
.drzwi__nad { margin: 0 0 14px; }
.drzwi__h { font-family: var(--f-t); font-weight: 300; font-size: clamp(40px, 4.5vw, 68px); line-height: .98; letter-spacing: -.05em; margin: 0 0 16px; }
.drzwi__h span, .drzwi__h b { display: block; }
.drzwi__h b { font-weight: 600; color: var(--laguna); }
.drzwi__opis { font-size: clamp(16px, 1.25vw, 18px); color: var(--ton-2); max-width: 46ch; margin-bottom: 22px; }
.drzwi__btn { display: flex; flex-wrap: wrap; gap: 10px; }
.drzwi__po { pointer-events: none; position: absolute; z-index: 4; right: clamp(16px, 4vw, 56px); top: calc(var(--nag) + 40px); max-width: 360px; margin: 0; padding: 18px 22px; border-radius: 22px; background: rgba(255, 255, 255, .74); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, .9); font-size: 15px; color: var(--ton-2); box-shadow: var(--cien); opacity: clamp(0, (var(--p) - .6) * 3, 1); translate: 0 calc((1 - clamp(0, (var(--p) - .6) * 3, 1)) * 16px); }
.drzwi__po b { display: block; font-family: var(--f-t); font-weight: 600; color: var(--ton); font-size: 18px; margin-bottom: 4px; letter-spacing: -.02em; }
.drzwi__podp { pointer-events: none; white-space: nowrap; position: absolute; z-index: 4; right: clamp(16px, 4vw, 56px); bottom: clamp(20px, 6vh, 60px); margin: 0; display: none; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; color: var(--ton); padding: 10px 16px 10px 10px; border-radius: 999px; background: rgba(255, 255, 255, .7); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: clamp(0, 1 - var(--p) * 4, 1); }
html.anim-drzwi .drzwi__podp { display: inline-flex; }
.drzwi__podp svg { width: 30px; height: 30px; padding: 6px; border-radius: 50%; background: var(--laguna); color: #fff; animation: podp 1.8s var(--ease) infinite; }
@keyframes podp { 50% { translate: 0 4px; } }
.drzwi.is-otwarte .drzwi__skrzydlo, .drzwi.is-otwarte .drzwi__rama { visibility: hidden; }
@media (max-width: 760px) {
  .drzwi__foto img, .drzwi__mgla-img { object-position: var(--fx-tel, 64%) var(--fy, 40%) !important; }
  .drzwi__napis { top: calc(var(--nag) + 34px); font-size: 19vw; }
  .drzwi__szyld, .drzwi__po { display: none; }
  .drzwi__klamka { top: 34%; height: 14%; width: 7px; }
  .drzwi__skrzydlo--l .drzwi__klamka { right: 12px; }
  .drzwi__skrzydlo--p .drzwi__klamka { left: 12px; }
  .drzwi__karta { left: 12px; right: 12px; width: auto; bottom: 12px; padding: 20px 18px 18px; border-radius: 24px; }
  .drzwi__h { font-size: clamp(36px, 11vw, 48px); margin-bottom: 10px; }
  .drzwi__opis { font-size: 15px; margin-bottom: 16px; }
  .drzwi__btn .btn { flex: 1 1 auto; padding: 0 16px 0 20px; }
  .drzwi__podp { left: 50%; right: auto; translate: -50% 0; top: calc(var(--nag) + 26px + 19vw + 10px); bottom: auto; font-size: 13px; }
}
@media (max-height: 640px) and (max-width: 760px) { .drzwi__opis { display: none; } }

/* ---------- fakty ---------- */
.fakty { position: relative; z-index: 2; background: var(--mgla); padding: 26px 0; }
.fakty__l { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.fakty li { padding: 18px 20px; border-radius: 20px; background: #fff; border: 1px solid var(--linia); display: flex; flex-direction: column; gap: 2px; }
.fakty b { font-family: var(--f-t); font-weight: 600; font-size: 22px; letter-spacing: -.02em; color: var(--laguna); }
.fakty span { font-size: 14.5px; color: var(--ton-2); line-height: 1.4; }
@media (max-width: 860px) { .fakty__l { grid-template-columns: 1fr 1fr; gap: 8px; } .fakty li { padding: 14px 14px; } .fakty b { font-size: 18px; } .fakty span { font-size: 13.5px; } }

/* ---------- plan wizyty ---------- */
.plan { background: linear-gradient(180deg, var(--mgla), #fff 30%); }
.plan__uklad { display: grid; gap: 56px; grid-template-columns: 1fr; }
.plan__okno { display: none; }
.plan__kroki { list-style: none; margin: 0; padding: 0; position: relative; }
.plan__krok { position: relative; padding: 0 0 44px 64px; }
.plan__krok::before { content: ''; position: absolute; left: 21px; top: 46px; bottom: 6px; width: 2px; background: linear-gradient(var(--mieta), rgba(205, 238, 230, 0)); }
.plan__krok:last-child::before { display: none; }
.plan__nr { position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-family: var(--f-t); font-weight: 600; font-size: 14px; background: var(--mieta); color: var(--laguna-c); transition: background .4s, color .4s, scale .4s; }
.plan__krok h3 { font-size: clamp(22px, 2.4vw, 32px); font-weight: 400; letter-spacing: -.03em; margin: 6px 0 10px; }
.plan__krok p { color: var(--ton-2); max-width: 48ch; }
.plan__foto-tel { margin: 6px 0 16px; border-radius: var(--r-m); overflow: hidden; aspect-ratio: 16 / 10; }
.plan__foto-tel img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) {
  .plan__uklad { grid-template-columns: 1fr 1fr; gap: clamp(48px, 6vw, 96px); }
  .plan__okno { display: block; position: sticky; top: calc(var(--nag) + 40px); height: min(72vh, 640px); border-radius: 36px; overflow: hidden; box-shadow: var(--cien); background: var(--mgla); }
  .plan__zdj img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; scale: 1.06; transition: opacity .7s, scale 1.2s var(--ease); }
  .plan__zdj img.is-akt { opacity: 1; scale: 1; }
  .plan__licznik { position: absolute; left: 20px; bottom: 20px; display: flex; align-items: baseline; gap: 8px; padding: 14px 22px; border-radius: 22px; background: rgba(255, 255, 255, .72); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, .9); font-weight: 600; font-size: 14px; color: var(--ton-2); }
  .plan__licznik b { font-family: var(--f-t); font-weight: 300; font-size: 54px; line-height: 1; letter-spacing: -.05em; color: var(--laguna); }
  .plan__pasek { position: absolute; left: 20px; right: 20px; top: 20px; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .55); overflow: hidden; }
  .plan__pasek i { position: absolute; inset: 0; background: #fff; transform-origin: 0 50%; scale: var(--pp, 0) 1; }
  .plan__foto-tel { display: none; }
  .plan__krok { min-height: 40vh; padding: 8vh 0 8vh 76px; display: flex; flex-direction: column; justify-content: center; }
  .plan__krok:first-child { padding-top: 0; min-height: 38vh; justify-content: flex-start; }
  .plan__krok::before { display: none; }
  .plan__nr { top: calc(8vh + 2px); width: 52px; height: 52px; font-size: 15px; }
  .plan__krok:first-child .plan__nr { top: 2px; }
  html.anim .plan__krok { opacity: .32; transition: opacity .5s; }
  html.anim .plan__krok.is-akt { opacity: 1; }
  .plan__krok.is-akt .plan__nr { background: var(--laguna); color: #fff; scale: 1.08; }
}

/* ---------- filtry i karty usług ---------- */
.filtry { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 32px; }
.filtry button { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid rgba(13, 43, 46, .14); background: #fff; font-weight: 600; font-size: 15px; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.filtry button:hover { border-color: var(--laguna); }
.filtry button[aria-pressed='true'] { background: var(--laguna); border-color: var(--laguna); color: #fff; }
@media (max-width: 700px) {
  .filtry { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * clamp(18px, 4vw, 48px)); padding: 2px clamp(18px, 4vw, 48px) 8px; scrollbar-width: none; }
  .filtry::-webkit-scrollbar { display: none; }
  .filtry button { flex: none; }
}
.karty-u { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
@media (min-width: 1200px) { .karty-u { grid-template-columns: repeat(5, 1fr); gap: 14px; } .karta-u__h { font-size: 18.5px; } }
.karta-u a { height: 100%; display: flex; flex-direction: column; padding: 10px 10px 22px; border-radius: 26px; background: #fff; text-decoration: none; color: var(--ton); box-shadow: 0 1px 0 var(--linia); transition: box-shadow .3s, translate .3s var(--ease); }
.karta-u a:hover { translate: 0 -4px; box-shadow: var(--cien); color: var(--ton); }
.karta-u__foto { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; background: var(--mgla); margin-bottom: 18px; }
.karta-u__foto img { width: 100%; height: 100%; object-fit: cover; transition: scale .6s var(--ease); }
.karta-u a:hover .karta-u__foto img { scale: 1.05; }
.karta-u__kat { position: absolute; left: 10px; top: 10px; padding: 6px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--laguna-c); }
.karta-u__h { font-family: var(--f-t); font-weight: 500; font-size: 20px; letter-spacing: -.025em; line-height: 1.2; padding: 0 10px; margin-bottom: 8px; }
.karta-u__o { font-size: 15px; color: var(--ton-2); padding: 0 10px; line-height: 1.5; margin-bottom: 14px; }
.karta-u__w { margin-top: auto; padding: 0 10px; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14.5px; color: var(--laguna); }
.karta-u__w svg { width: 18px; }
@media (max-width: 560px) {
  .karty-u { grid-template-columns: 1fr 1fr; gap: 10px; }
  .karta-u a { padding: 6px 6px 14px; border-radius: 20px; }
  .karta-u__foto { border-radius: 15px; margin-bottom: 10px; aspect-ratio: 1; }
  .karta-u__kat { display: none; }
  .karta-u__h { font-size: 15.5px; padding: 0 6px; margin-bottom: 6px; }
  .karta-u__o { display: none; }
  .karta-u__w { padding: 0 6px; font-size: 13px; }
}

/* ---------- przed / po ---------- */
.przedpo__w { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .przedpo__w { grid-template-columns: .85fr 1.15fr; gap: 72px; } }
.przedpo__t p { color: var(--ton-2); }
.przedpo__podp { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; color: var(--laguna) !important; }
.przedpo__podp::before { content: '↔'; font-size: 18px; }
.porown { position: relative; aspect-ratio: 4 / 3; border-radius: 32px; overflow: hidden; box-shadow: var(--cien); background: var(--mgla); touch-action: pan-y; cursor: ew-resize; user-select: none; -webkit-user-select: none; }
.porown__a, .porown__b { position: absolute; inset: 0; }
.porown img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.porown__b { clip-path: inset(0 0 0 var(--x)); }
.porown__et { position: absolute; top: 16px; padding: 6px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; background: rgba(255, 255, 255, .8); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.porown__et--a { left: 16px; }
.porown__et--b { right: 16px; color: var(--laguna-c); }
.porown__listwa { position: absolute; top: 0; bottom: 0; left: var(--x); width: 34px; translate: -50% 0; background: rgba(255, 255, 255, .34); -webkit-backdrop-filter: blur(10px) saturate(1.4); backdrop-filter: blur(10px) saturate(1.4); border-inline: 1px solid rgba(255, 255, 255, .85); box-shadow: 0 0 30px rgba(13, 43, 46, .15); }
.porown__listwa i { position: absolute; left: 50%; top: 50%; width: 50px; height: 50px; translate: -50% -50%; border-radius: 50%; background: #fff; box-shadow: var(--cien); }
.porown__listwa i::before, .porown__listwa i::after { content: ''; position: absolute; top: 50%; width: 9px; height: 9px; border-top: 2px solid var(--laguna); border-left: 2px solid var(--laguna); }
.porown__listwa i::before { left: 12px; translate: 0 -50%; rotate: -45deg; }
.porown__listwa i::after { right: 12px; translate: 0 -50%; rotate: 135deg; }
.porown__suwak { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; margin: -1px; }
.porown:focus-within { outline: 3px solid var(--laguna-j); outline-offset: 4px; }

/* ---------- liczby ---------- */
.liczby { padding-block: clamp(56px, 7vw, 96px); }
.liczby__l { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.liczby li { display: flex; flex-direction: column; gap: 8px; border-top: 1.5px solid rgba(11, 122, 115, .25); padding-top: 22px; }
.liczby b { font-family: var(--f-t); font-weight: 300; font-size: clamp(48px, 6vw, 92px); line-height: 1; letter-spacing: -.06em; color: var(--laguna); font-variant-numeric: tabular-nums; }
.liczby li > span { color: var(--ton-2); font-size: 15.5px; max-width: 24ch; }
@media (max-width: 860px) { .liczby__l { grid-template-columns: 1fr 1fr; gap: 28px 16px; } }

/* ---------- dzieci + naklejki ---------- */
.dzieci { background: radial-gradient(60% 70% at 85% 20%, rgba(205, 238, 230, .9), transparent 70%), radial-gradient(50% 60% at 10% 90%, rgba(205, 238, 230, .6), transparent 70%), #fff; }
.dzieci__w { display: grid; gap: 56px; align-items: center; }
@media (min-width: 900px) { .dzieci__w { grid-template-columns: 1fr 1fr; gap: 88px; } }
.dzieci__foto { position: relative; margin: 0 10px; }
.dzieci__foto > img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: 36px; box-shadow: var(--cien); }
.dzieci__t > p { color: var(--ton-2); }
.dzieci__h3 { font-size: 22px; font-weight: 500; margin: 32px 0 16px; }
.naklejki { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; pointer-events: none; }
.naklejka { position: absolute; display: grid; place-items: center; text-align: center; font-family: var(--f-t); font-weight: 600; letter-spacing: -.01em; line-height: 1.1; padding: 10px; box-shadow: 0 10px 22px -8px rgba(13, 43, 46, .35); rotate: var(--r); }
.naklejka span { position: relative; z-index: 1; }
.naklejka::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(135deg, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 45%); pointer-events: none; }
.naklejka--kolo { --r: -12deg; width: 128px; height: 128px; border-radius: 50%; background: var(--laguna); color: #fff; left: -16px; top: 8%; font-size: 17px; outline: 3px dashed rgba(255, 255, 255, .6); outline-offset: -10px; }
.naklejka--gwiazda { --r: 10deg; width: 118px; height: 118px; border-radius: 34px; background: #fff; color: var(--laguna-c); right: -14px; top: 26%; font-size: 16px; border: 3px solid var(--mieta); }
.naklejka--chmurka { --r: -6deg; padding: 14px 22px; border-radius: 999px; background: #ffe27a; color: var(--ton); left: 8%; bottom: -18px; font-size: 18px; }
.naklejka--serce { --r: 14deg; width: 110px; height: 110px; border-radius: 50% 50% 50% 12px; background: var(--malina); color: #fff; right: 10%; bottom: 8%; font-size: 15px; }
html.anim-naklejki .naklejka { scale: 0; opacity: 0; rotate: calc(var(--r) - 50deg); transition: scale .7s cubic-bezier(.3, 1.7, .5, 1), opacity .3s, rotate .7s cubic-bezier(.3, 1.5, .5, 1); transition-delay: calc(.25s + var(--i) * .22s); }
html.anim-naklejki .naklejki.widac .naklejka { scale: 1; opacity: 1; rotate: var(--r); }
@media (max-width: 560px) {
  .naklejka--kolo { width: 96px; height: 96px; font-size: 13.5px; left: -12px; }
  .naklejka--gwiazda { width: 92px; height: 92px; font-size: 13px; right: -12px; border-radius: 26px; }
  .naklejka--chmurka { font-size: 15px; padding: 10px 16px; }
  .naklejka--serce { width: 86px; height: 86px; font-size: 12.5px; }
}
.kroczki { margin: 0; padding: 0; list-style: none; counter-reset: k; display: grid; gap: 12px; }
.kroczki li { counter-increment: k; position: relative; padding: 14px 16px 14px 58px; border-radius: 18px; background: #fff; border: 1px solid var(--linia); color: var(--ton-2); font-size: 16px; }
.kroczki li::before { content: counter(k); position: absolute; left: 14px; top: 12px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--mieta); color: var(--laguna-c); font-family: var(--f-t); font-weight: 600; font-size: 14px; }

/* ---------- zespół ---------- */
.zespol { background: radial-gradient(50% 60% at 100% 0%, rgba(205, 238, 230, .7), transparent 70%), var(--mgla); }
.wizytowki { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.wizytowka { padding: 30px 28px; border-radius: var(--r); background: rgba(255, 255, 255, .72); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid #fff; box-shadow: var(--cien); }
.wizytowka__mono { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 22px; font-family: var(--f-t); font-weight: 600; font-size: 24px; letter-spacing: -.02em; color: #fff; background: linear-gradient(140deg, var(--laguna), var(--laguna-j)); box-shadow: inset 0 2px 0 rgba(255, 255, 255, .3), 0 10px 22px -10px rgba(11, 122, 115, .7); }
.wizytowka__foto { display: block; aspect-ratio: 1; border-radius: 20px; overflow: hidden; margin-bottom: 20px; }
.wizytowka__foto img { width: 100%; height: 100%; object-fit: cover; }
.wizytowka h3 { font-size: 23px; font-weight: 500; letter-spacing: -.03em; }
.wizytowka h3 small { display: block; font-family: var(--f); font-size: 13.5px; font-weight: 500; letter-spacing: .02em; color: var(--ton-2); margin-bottom: 2px; }
.wizytowka__rola { font-weight: 600; font-size: 14.5px; color: var(--laguna); margin: 8px 0 12px; }
.wizytowka p:last-child { color: var(--ton-2); font-size: 15.5px; margin: 0; }

/* ---------- opinie ---------- */
.opinie__l { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.opinie figure { margin: 0; height: 100%; padding: clamp(26px, 3vw, 40px); border-radius: var(--r); background: #fff; position: relative; }
.opinie__cyt { display: block; width: 40px; color: var(--mieta); margin-bottom: 14px; }
.opinie blockquote { margin: 0 0 18px; }
.opinie blockquote p { font-family: var(--f-t); font-weight: 300; font-size: clamp(20px, 2vw, 26px); line-height: 1.35; letter-spacing: -.02em; margin: 0; }
.opinie figcaption { font-size: 14.5px; color: var(--ton-2); }
.opinie figcaption b { color: var(--ton); }

/* ---------- karta upominkowa ---------- */
.karta__w { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px) { .karta__w { grid-template-columns: 1fr 1fr; gap: 80px; } }
.karta__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 32px; box-shadow: var(--cien); rotate: -2deg; }
.karta__t > p { color: var(--ton-2); }
.karta__optus { display: flex; gap: 12px; align-items: flex-start; padding: 14px 18px; border-radius: 18px; background: var(--mgla); color: var(--ton) !important; font-weight: 500; }
.karta__optus svg { width: 22px; flex: none; color: var(--laguna); margin-top: 1px; }

/* ---------- porady ---------- */
.porady__l { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.porady__l a { display: flex; flex-direction: column; height: 100%; padding: 10px 10px 24px; border-radius: 26px; background: #fff; text-decoration: none; color: var(--ton); transition: translate .3s var(--ease), box-shadow .3s; }
.porady__l a:hover { translate: 0 -4px; box-shadow: var(--cien); color: var(--ton); }
.porady__foto { display: block; aspect-ratio: 16 / 10; border-radius: 18px; overflow: hidden; margin-bottom: 18px; }
.porady__foto img { width: 100%; height: 100%; object-fit: cover; }
.porady__h { font-family: var(--f-t); font-weight: 500; font-size: 20px; letter-spacing: -.025em; padding: 0 12px; margin-bottom: 8px; line-height: 1.25; }
.porady__o { color: var(--ton-2); font-size: 15px; padding: 0 12px; margin-bottom: 14px; }
.porady__w { margin-top: auto; padding: 0 12px; font-weight: 600; color: var(--laguna); font-size: 14.5px; display: inline-flex; align-items: center; gap: 8px; }
.porady__w svg { width: 18px; }

/* ---------- kontakt ---------- */
.kontakt__w { display: grid; gap: 40px; }
@media (min-width: 900px) { .kontakt__w { grid-template-columns: 1.15fr 1fr; gap: 72px; align-items: start; } }
.kontakt__tel { display: inline-block; font-family: var(--f-t); font-weight: 300; font-size: clamp(42px, 6.4vw, 96px); letter-spacing: -.05em; line-height: 1; color: var(--laguna); text-decoration: none; margin-bottom: 16px; white-space: nowrap; }
.kontakt__tel:hover { color: var(--laguna-c); }
.kontakt__tel2 { color: var(--ton-2); font-size: 16px; overflow-wrap: anywhere; }
.kontakt__adr { display: flex; gap: 12px; align-items: flex-start; font-size: 18px; margin: 20px 0 26px; }
.kontakt__adr svg { width: 24px; flex: none; color: var(--laguna); margin-top: 2px; }
.kontakt__btn { display: flex; flex-wrap: wrap; gap: 10px; }
.kontakt__godz { padding: 26px 28px; background: #fff; }
.sek--mgla .kontakt__godz { background: rgba(255, 255, 255, .8); }
.godz { list-style: none; margin: 0; padding: 0; }
.godz li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 12px; border-radius: 12px; font-variant-numeric: tabular-nums; }
.godz li + li { border-top: 1px solid var(--linia); }
.godz li.is-dzis { background: var(--mieta); border-color: transparent; font-weight: 600; color: var(--laguna-c); }
.godz li.is-dzis + li { border-color: transparent; }
.godz--mala li { padding: 5px 0; font-size: 14.5px; }
.godz--mala li.is-dzis { padding-inline: 8px; margin-inline: -8px; }
.komunikat { padding: 14px 18px; border-radius: 16px; background: #fff4d6; border: 1px solid #f2d98a; color: var(--ton); font-weight: 500; }
.nfz { margin-top: 14px; border-radius: 22px; background: #fff; border: 1px solid var(--linia); }
.sek--mgla .nfz { background: rgba(255, 255, 255, .8); }
.nfz summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 16px 18px; cursor: pointer; font-weight: 600; }
.nfz summary::-webkit-details-marker { display: none; }
.nfz__znak { padding: 5px 9px; border-radius: 8px; background: var(--ton); color: #fff; font-size: 12px; letter-spacing: .08em; }
.nfz__plus { margin-left: auto; width: 32px; height: 32px; border-radius: 50%; background: var(--mgla); display: grid; place-items: center; transition: rotate .3s; flex: none; }
.nfz__plus svg { width: 18px; }
.nfz[open] .nfz__plus { rotate: 45deg; }
.nfz__t { padding: 0 20px 20px; color: var(--ton-2); }
.nfz__t h3 { font-size: 15px; color: var(--ton); margin: 4px 0 6px; }
.mapa { position: relative; margin-top: clamp(40px, 5vw, 64px); height: clamp(300px, 36vw, 420px); border-radius: 32px; overflow: hidden; background: var(--mgla-2); box-shadow: var(--cien); }
.mapa iframe { width: 100%; height: 100%; border: 0; pointer-events: none; filter: saturate(.75) hue-rotate(-8deg); }
.mapa.is-aktywna iframe { pointer-events: auto; }
.mapa__zaslona { position: absolute; inset: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: flex-end; justify-content: center; padding: 18px; }
.mapa__zaslona span { padding: 10px 18px; border-radius: 999px; font-weight: 600; font-size: 14px; background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--cien); }
.mapa.is-aktywna .mapa__zaslona { display: none; }

/* ---------- podstrony ---------- */
.pod { position: relative; overflow: hidden; padding: calc(var(--nag) + clamp(70px, 10vw, 130px)) 0 clamp(56px, 7vw, 96px); background: var(--mgla); }
.pod__w { position: relative; }
.pod__wstep { font-size: clamp(17px, 1.5vw, 20px); color: var(--ton-2); max-width: 60ch; margin: 0; }
.pod__swiatlo i { position: absolute; border-radius: 50%; filter: blur(20px); }
.pod__swiatlo i:first-child { width: 60vw; height: 60vw; max-width: 760px; max-height: 760px; right: -14vw; top: -30vw; background: radial-gradient(circle, rgba(205, 238, 230, 1), rgba(205, 238, 230, 0) 65%); }
.pod__swiatlo i:last-child { width: 40vw; height: 40vw; max-width: 520px; max-height: 520px; right: 18vw; bottom: -24vw; background: radial-gradient(circle, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0) 65%); }
.pod:not(.pod--foto)::after { content: ''; position: absolute; right: clamp(18px, 6vw, 90px); top: calc(var(--nag) + 40px); bottom: 40px; width: min(26vw, 300px); border-radius: 30px; background: linear-gradient(100deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .7) 50%, rgba(255, 255, 255, .15)); border: 1px solid rgba(255, 255, 255, .9); opacity: .6; }
@media (max-width: 760px) { .pod::after { display: none; } }
.e404 { font-family: var(--f-t); font-weight: 600; font-size: clamp(110px, 20vw, 260px); line-height: .9; letter-spacing: -.07em; color: rgba(11, 122, 115, .16); margin: 0; }
.pod--404 { min-height: 100svh; }
.pod--404 .kontakt__btn { margin-top: 30px; }
.oferta-pelna { padding-top: clamp(40px, 5vw, 64px); }
.uslugi { display: grid; gap: 22px; }
.usluga { display: grid; gap: 28px; padding: 14px; border-radius: 34px; background: #fff; border: 1px solid var(--linia); scroll-margin-top: 100px; }
.sek--mgla .usluga { border-color: #fff; }
@media (min-width: 900px) { .usluga { grid-template-columns: .9fr 1.1fr; gap: 56px; padding: 18px 48px 18px 18px; align-items: start; } }
.usluga__foto { position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 3; }
@media (min-width: 900px) { .usluga__foto { position: sticky; top: calc(var(--nag) + 34px); } }
.usluga__foto img { width: 100%; height: 100%; object-fit: cover; }
.usluga__t { padding: 6px 8px 14px; }
.usluga__nr { font-family: var(--f-t); font-weight: 600; font-size: 14px; color: var(--laguna); margin: 10px 0 8px; }
.usluga h2 { font-size: clamp(26px, 3vw, 40px); font-weight: 400; letter-spacing: -.035em; margin-bottom: 12px; }
.usluga__krotko { font-size: 18px; color: var(--ton); font-weight: 500; }
.usluga__t > p { color: var(--ton-2); }
.usluga h3 { font-size: 15px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ton-2); margin: 24px 0 12px; font-family: var(--f); }
.ptaszki { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.ptaszki li { display: flex; gap: 12px; align-items: flex-start; }
.ptaszki svg { width: 22px; height: 22px; flex: none; padding: 3px; border-radius: 50%; background: var(--mieta); color: var(--laguna-c); margin-top: 2px; }
.historia__w { max-width: 900px; }
.historia__t p { font-family: var(--f-t); font-weight: 300; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.4; letter-spacing: -.025em; }
.historia__t p:first-child::first-line { color: var(--laguna); }
.sprzet { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.sprzet__foto { display: block; aspect-ratio: 1; border-radius: 24px; overflow: hidden; margin-bottom: 16px; background: var(--mgla); }
.sprzet__foto img { width: 100%; height: 100%; object-fit: cover; }
.sprzet h3 { font-size: 19px; font-weight: 500; margin-bottom: 6px; }
.sprzet p { color: var(--ton-2); font-size: 15px; }
.galeria { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); }
.galeria li:nth-child(5n + 1) { grid-row: span 2; }
.galeria button { display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 22px; overflow: hidden; cursor: zoom-in; background: var(--mgla-2); }
.galeria img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1; transition: scale .5s var(--ease); }
.galeria li:nth-child(5n + 1) img { aspect-ratio: auto; }
.galeria button:hover img { scale: 1.05; }
@media (max-width: 760px) { .galeria { grid-template-columns: 1fr 1fr; gap: 8px; } .galeria button { border-radius: 16px; } }
.lightbox { position: fixed; inset: 0; z-index: 120; background: rgba(238, 246, 245, .9); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); display: grid; place-items: center; padding: 70px 70px 40px; }
.lightbox figure { margin: 0; max-width: 1100px; display: grid; gap: 12px; justify-items: center; }
.lightbox img { max-height: 76vh; width: auto; border-radius: 22px; box-shadow: var(--cien); }
.lightbox figcaption { font-weight: 500; color: var(--ton); text-align: center; }
.lightbox button { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 0; background: #fff; box-shadow: var(--cien); display: grid; place-items: center; cursor: pointer; color: var(--ton); }
.lightbox button svg { width: 22px; }
.lightbox__x { top: 18px; right: 18px; }
.lightbox__p { left: 18px; top: 50%; translate: 0 -50%; }
.lightbox__n { right: 18px; top: 50%; translate: 0 -50%; }
@media (max-width: 760px) { .lightbox { padding: 70px 12px 90px; } .lightbox__p, .lightbox__n { top: auto; bottom: 18px; translate: none; } .lightbox__p { left: calc(50% - 64px); } .lightbox__n { right: calc(50% - 64px); } }
.praca__w { display: grid; gap: 24px; padding: clamp(28px, 4vw, 56px); background: var(--mgla); }
@media (min-width: 900px) { .praca__w { grid-template-columns: 1fr 1.3fr; gap: 56px; } }
.praca__w .tyt { font-size: clamp(30px, 3.6vw, 48px); }
.praca__k { font-weight: 600; }
.porady-pelne { display: grid; gap: 22px; }
.porada { display: grid; gap: 24px; padding: 14px; border-radius: 32px; background: #fff; border: 1px solid var(--linia); scroll-margin-top: 100px; }
@media (min-width: 900px) { .porada { grid-template-columns: .7fr 1.3fr; gap: 48px; padding: 16px 44px 16px 16px; align-items: center; } }
.porada__foto { border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 3; }
.porada__foto img { width: 100%; height: 100%; object-fit: cover; }
.porada__t { padding: 6px 8px 14px; }
.porada h2 { font-size: clamp(24px, 2.6vw, 34px); font-weight: 400; letter-spacing: -.035em; margin-bottom: 12px; }
.porada__w { color: var(--ton-2); font-size: 17px; }
.tekst-dlugi { max-width: 780px; }
.tekst-dlugi h2 { font-size: 24px; font-weight: 500; margin: 36px 0 12px; }
.tekst-dlugi p { color: var(--ton-2); }

/* ---------- formularz ---------- */
.formularz__w { display: grid; gap: 40px; }
@media (min-width: 900px) { .formularz__w { grid-template-columns: .8fr 1.2fr; gap: 72px; align-items: start; } }
.formularz__lewo p { color: var(--ton-2); }
.formularz__prawo { padding: clamp(22px, 3vw, 40px); background: rgba(255, 255, 255, .85); }
.formularz { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.pole { display: grid; gap: 7px; margin: 0; border: 0; padding: 0; min-width: 0; }
.pole--cale { grid-column: 1 / -1; }
@media (max-width: 640px) { .formularz { grid-template-columns: 1fr; } }
.pole label, .pole legend { font-weight: 600; font-size: 15px; padding: 0; }
.pole small { font-weight: 400; color: var(--ton-2); }
.pole input:not([type=checkbox]):not([type=radio]), .pole select, .pole textarea { width: 100%; min-height: 52px; padding: 12px 16px; border-radius: 14px; border: 1.5px solid rgba(13, 43, 46, .16); background: #fff; font: inherit; font-size: 16px; color: var(--ton); transition: border-color .2s, box-shadow .2s; }
.pole textarea { resize: vertical; min-height: 110px; }
.pole input:focus, .pole select:focus, .pole textarea:focus { outline: none; border-color: var(--laguna); box-shadow: 0 0 0 4px rgba(63, 184, 174, .22); }
.pole [aria-invalid='true'] { border-color: var(--malina) !important; }
.pole__blad { margin: 0; color: var(--malina); font-size: 14px; font-weight: 500; }
.pigulki { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.pigulki label { position: relative; cursor: pointer; }
.pigulki input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pigulki span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1.5px solid rgba(13, 43, 46, .16); font-weight: 500; font-size: 15px; background: #fff; }
.pigulki input:checked + span { background: var(--laguna); border-color: var(--laguna); color: #fff; }
.pigulki input:focus-visible + span { outline: 3px solid var(--laguna-j); outline-offset: 2px; }
.pole--zgoda label { display: flex; gap: 12px; align-items: flex-start; font-weight: 400; font-size: 15px; color: var(--ton-2); cursor: pointer; }
.pole--zgoda input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--laguna); flex: none; }
.pulapka { position: absolute; left: -9999px; width: 1px; height: 1px; }
.formularz__blad { grid-column: 1 / -1; margin: 0; padding: 12px 16px; border-radius: 14px; background: #fde8ef; color: var(--malina); font-weight: 600; }
.formularz .btn { grid-column: 1 / -1; justify-self: start; }
.formularz__ok { text-align: left; }
.formularz__ok-i { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--mieta); color: var(--laguna-c); margin-bottom: 18px; }
.formularz__ok-i svg { width: 34px; }
.formularz__ok-h { font-family: var(--f-t); font-weight: 400; font-size: 34px; letter-spacing: -.04em; margin-bottom: 8px; }
.formularz__ok p { color: var(--ton-2); }

/* ---------- stopka ---------- */
.stopka { position: relative; background: linear-gradient(180deg, #fff, var(--mgla)); padding-top: clamp(64px, 8vw, 110px); overflow: hidden; }
.stopka__gora { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 28px; padding-bottom: 48px; border-bottom: 1px solid var(--linia); }
.stopka__haslo { font-family: var(--f-t); font-weight: 300; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.04; letter-spacing: -.045em; margin: 0; }
.stopka__haslo b { display: block; font-weight: 600; color: var(--laguna); }
.stopka__btn { display: flex; flex-wrap: wrap; gap: 10px; }
.stopka__kol { display: grid; gap: 32px; grid-template-columns: repeat(4, 1fr); padding: 44px 0 10px; }
.stopka h2 { font-family: var(--f); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ton-2); margin-bottom: 14px; }
.stopka__kol p, .stopka__kol li { font-size: 15.5px; }
.stopka a:not(.btn) { color: var(--ton); text-decoration: none; }
.stopka a:not(.btn):hover { color: var(--laguna); text-decoration: underline; }
.stopka ul:not(.godz):not(.jez) { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
@media (max-width: 900px) { .stopka__kol { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .stopka__kol { grid-template-columns: 1fr; gap: 26px; } .stopka__godz { display: none; } }
.stopka__znak { margin: 0; text-align: center; font-family: var(--f-t); font-weight: 600; font-size: 21vw; line-height: .82; letter-spacing: -.07em; white-space: nowrap; user-select: none; padding: 30px 0 0; }
.stopka__znak span { display: inline-block; color: transparent; background: linear-gradient(100deg, #d4ebe8 0%, #f6fbfa 30%, #fff 38%, #bfe2dd 46%, #e3f1ef 70%, #cfe7e4 100%); background-size: 220% 100%; background-position: calc(100% - var(--s, 0) * 100%) 0; -webkit-background-clip: text; background-clip: text; -webkit-text-stroke: 1px rgba(255, 255, 255, .9); filter: drop-shadow(0 1px 0 rgba(13, 43, 46, .06)); translate: 0 12%; }
.stopka__dol { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; padding-block: 20px 28px; border-top: 1px solid var(--linia); font-size: 14px; color: var(--ton-2); }
.stopka__dol p { margin: 0; font-size: 14px; }
.jez--stopka { background: rgba(255, 255, 255, .7); }
.made-by { display: inline-flex; align-items: center; gap: 8px; }
.made-by img { width: 14px; height: auto; }
@media (max-width: 1080px) { .stopka { padding-bottom: 84px; } }

/* ---------- dolny pasek akcji (telefon) ---------- */
.dolny { display: none; }
@media (max-width: 1080px) {
  .dolny { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 6px; position: fixed; z-index: 60; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); padding: 6px; border-radius: 22px; background: rgba(255, 255, 255, .82); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); border: 1px solid #fff; box-shadow: 0 14px 34px -12px rgba(13, 60, 64, .35); translate: 0 140%; visibility: hidden; transition: translate .5s cubic-bezier(.2, .9, .3, 1.2), visibility 0s .5s; }
  .dolny.is-widoczny { translate: 0 0; visibility: visible; transition: translate .5s cubic-bezier(.2, .9, .3, 1.2), visibility 0s; }
  .dolny a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 52px; border-radius: 16px; text-decoration: none; color: var(--ton); font-size: 12.5px; font-weight: 600; }
  .dolny a svg { width: 20px; height: 20px; color: var(--laguna); }
  .dolny__glowny { background: var(--laguna); color: #fff !important; }
  .dolny__glowny svg { color: #fff !important; }
  html.menu-otwarte .dolny { visibility: hidden; }
}

/* ---------- wjazdy ---------- */
html.anim [data-in] { opacity: 0; translate: 0 26px; transition: opacity .8s var(--ease), translate .9s var(--ease); transition-delay: calc(var(--i, 0) * .08s); }
html.anim [data-in].widac { opacity: 1; translate: 0 0; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media (max-width: 560px) {
  .porady__l { gap: 10px; }
  .porady__l a { display: grid; grid-template-columns: 104px 1fr; gap: 4px 14px; padding: 8px; align-items: center; border-radius: 22px; }
  .porady__foto { grid-row: span 2; aspect-ratio: 1; margin: 0; border-radius: 16px; }
  .porady__h { font-size: 16.5px; padding: 0; margin: 0; }
  .porady__o { display: none; }
  .porady__w { padding: 0; margin: 0; font-size: 13.5px; }
}

/* nagłówek podstrony ze zdjęciem za uchylonym szkłem */
.pod--foto .pod__w { display: grid; gap: 36px; align-items: center; }
@media (min-width: 900px) { .pod--foto .pod__w { grid-template-columns: 1.25fr .75fr; gap: 64px; } }
.pod__foto { position: relative; border-radius: 32px; overflow: hidden; aspect-ratio: 4 / 4.2; box-shadow: var(--cien); }
.pod__foto img { width: 100%; height: 100%; object-fit: cover; }
.pod__szklo { position: absolute; top: 0; bottom: 0; left: 0; width: 38%; background: rgba(255, 255, 255, .3); -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3); border-right: 1px solid rgba(255, 255, 255, .9); animation: uchyl 1.4s .3s var(--ease) both; }
.pod__szklo::after { content: ''; position: absolute; right: 14px; top: 40%; height: 18%; width: 7px; border-radius: 7px; background: linear-gradient(90deg, #c9d4d5, #fff 45%, #a9b8ba); box-shadow: 0 6px 14px rgba(13, 43, 46, .22); }
@keyframes uchyl { from { width: 100%; } }
@media (max-width: 899px) { .pod__foto { aspect-ratio: 16 / 10; border-radius: 24px; } .pod--foto { padding-bottom: 48px; } }
