/* Centrum Medyczne Mariodent — v2 „Atelier uśmiechu”: noc i perła, Playfair Display + Geist */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 900; font-display: swap; src: url(/fonts/playfair-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 900; font-display: swap; src: url(/fonts/playfair-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: 'Playfair Display'; font-style: italic; font-weight: 400 900; font-display: swap; src: url(/fonts/playfair-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400 900; font-display: swap; src: url(/fonts/playfair-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; }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(/fonts/geist-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(/fonts/geist-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 {
  --noc: #0e0a0b; --sliwka: #1b0f14; --sliwka2: #26141c;
  --malina: #9a0a3c; --malina-j: #c21d55;
  --szampan: #d9c3a5; --szampan-j: #efe2cf; --szampan-c: #a88a64;
  --kosc: #f5f0e8; --kosc2: #ece4d8; --atrament: #1d1518; --szary: #6b5f63; --szary-j: #b4a8a2;
  --perla: linear-gradient(100deg, #f3d9e2 0%, #e2dcf2 26%, #d6efe9 52%, #f1dcc0 78%, #f3d9e2 100%);
  --f-d: 'Playfair Display', 'Times New Roman', Georgia, serif;
  --f-t: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --pasek: 76px;
  --ease: cubic-bezier(.2, .7, .1, 1);
  --w: min(1320px, 100% - 2 * clamp(20px, 4.5vw, 64px));
}
@media (max-width: 899px) { :root { --pasek: 64px; } }

[hidden] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--pasek) + 16px); }
html, body, main, .stopka { overflow-x: clip; }
body { margin: 0; font-family: var(--f-t); font-size: 17px; line-height: 1.65; color: var(--atrament); background: var(--noc); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
@media (max-width: 599px) { body { font-size: 16px; } }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, p, ul, ol, dl, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
main:focus { outline: none; }
:focus-visible { outline: 2px solid var(--szampan); outline-offset: 3px; }
.sek--jasna :focus-visible, .sek--perla :focus-visible { outline-color: var(--malina); }
.w { width: var(--w); margin-inline: auto; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 300; background: var(--szampan); color: var(--noc); padding: 10px 16px; border-radius: 4px; transition: top .2s; }
.skip:focus { top: 12px; }
.ukryte { display: none; }
::selection { background: var(--szampan); color: var(--noc); }

/* ---------- sekcje i typografia ---------- */
.sek { padding-block: clamp(84px, 11vw, 168px); position: relative; }
.sek--jasna { background: var(--kosc); color: var(--atrament); }
.sek--perla { background: linear-gradient(180deg, #f7f1ec 0%, #f2ecf2 50%, #eef3f0 100%); color: var(--atrament); }
.sek--ciemna { background: var(--noc); color: var(--kosc); }
.sek--ciemna + .sek--ciemna { border-top: 1px solid rgba(217, 195, 165, .12); }
.etyk { display: flex; align-items: center; gap: 14px; font-size: 12px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; color: var(--malina); margin-bottom: 22px; }
.etyk::before { content: ''; width: 34px; height: 1px; background: currentColor; opacity: .7; }
.etyk--szampan { color: var(--szampan); }
.tyt { font-family: var(--f-d); font-weight: 500; font-size: clamp(36px, 5.4vw, 80px); line-height: 1.02; letter-spacing: -.02em; text-wrap: balance; }
.tyt em { font-style: italic; font-weight: 400; color: var(--malina); }
.sek--ciemna .tyt em, .pod-glowa .tyt em { color: var(--szampan); }
.tyt span { display: inline; }
.glowa-sek { max-width: 760px; margin-bottom: clamp(40px, 6vw, 72px); }
.glowa-sek > p:last-child:not(.etyk) { margin-top: 20px; color: var(--szary); max-width: 58ch; }
.sek--ciemna .glowa-sek > p:last-child:not(.etyk) { color: var(--szary-j); }
.glowa-sek--rzad { max-width: none; }
.sek__dalej { margin-top: clamp(40px, 5vw, 64px); }
.link { color: var(--szampan); text-underline-offset: 4px; }
.kreska { display: inline-block; width: 40px; height: 1px; background: currentColor; vertical-align: middle; margin-right: 14px; }

/* ---------- przyciski ---------- */
.btn { --b: var(--szampan); position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 0 26px; border-radius: 999px; font-family: var(--f-t); font-size: 14px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; cursor: pointer; border: 1px solid var(--b); overflow: hidden; isolation: isolate; transition: color .35s var(--ease), background-color .35s var(--ease), border-color .35s; white-space: nowrap; }
.btn::after { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--perla); opacity: 0; transform: translateX(-30%); transition: opacity .45s, transform .7s var(--ease); }
.btn__i svg { width: 18px; height: 18px; display: block; transition: transform .35s var(--ease); }
.btn:hover .btn__i svg { transform: translateX(3px); }
.btn--szampan { background: var(--szampan); color: var(--noc); }
.btn--szampan:hover::after { opacity: 1; transform: none; }
.btn--kontur { background: transparent; color: var(--kosc); border-color: rgba(217, 195, 165, .55); }
.btn--kontur:hover { border-color: var(--szampan); background: rgba(217, 195, 165, .1); }
.btn--ciemny { --b: var(--noc); background: var(--noc); color: var(--kosc); }
.btn--ciemny:hover { background: var(--malina); border-color: var(--malina); }
.btn--kontur-ciemny { --b: var(--noc); background: transparent; color: var(--noc); }
.btn--kontur-ciemny:hover { background: var(--noc); color: var(--kosc); }
.btn--maly { min-height: 42px; padding: 0 18px; font-size: 12.5px; }
@media (max-width: 599px) { .btn { padding: 0 20px; font-size: 13px; letter-spacing: .06em; } }

/* ---------- pasek ---------- */
.pasek { position: fixed; inset: 0 0 auto; z-index: 100; height: var(--pasek); color: var(--kosc); transition: background-color .4s, backdrop-filter .4s, box-shadow .4s, transform .5s var(--ease); }
.pasek.is-tlo { background: rgba(14, 10, 11, .9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(217, 195, 165, .14); }
.pasek__w { height: 100%; width: min(1440px, 100% - 2 * clamp(16px, 3vw, 44px)); margin: 0 auto; display: flex; align-items: center; gap: 24px; }
.logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; flex-shrink: 0; }
.logo .znak { width: 40px; height: 21px; color: var(--kosc); }
.logo__t { display: grid; line-height: 1; }
.logo__t b { font-family: var(--f-d); font-weight: 600; font-size: 23px; letter-spacing: .01em; }
.logo__t small { font-size: 9.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--szampan); margin-top: 5px; }
.pasek__nav { margin-left: auto; }
.pasek__nav ul { display: flex; gap: clamp(14px, 2vw, 34px); }
.pasek__nav a { position: relative; text-decoration: none; font-size: 14px; letter-spacing: .04em; padding: 8px 0; color: rgba(245, 240, 232, .82); transition: color .3s; }
.pasek__nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: var(--perla); transform: scaleX(0); transform-origin: right; transition: transform .45s var(--ease); }
.pasek__nav a:hover, .pasek__nav a[aria-current] { color: var(--kosc); }
.pasek__nav a:hover::after, .pasek__nav a[aria-current]::after { transform: scaleX(1); transform-origin: left; }
.pasek__prawo { display: flex; align-items: center; gap: 18px; }
.jez { display: flex; gap: 2px; font-size: 12px; letter-spacing: .12em; }
.jez a { display: grid; place-items: center; min-width: 34px; height: 34px; border-radius: 999px; text-decoration: none; color: rgba(245, 240, 232, .65); transition: color .3s, background-color .3s; }
.jez a:hover { color: var(--kosc); }
.jez a[aria-current] { color: var(--noc); background: var(--szampan); }
.burger { display: none; width: 46px; height: 46px; border-radius: 999px; border: 1px solid rgba(217, 195, 165, .5); background: transparent; cursor: pointer; position: relative; }
.burger span { position: absolute; left: 13px; right: 13px; height: 1.5px; background: var(--kosc); transition: transform .4s var(--ease), top .4s var(--ease); }
.burger span:first-child { top: 18px; } .burger span:last-child { top: 26px; }
.burger[aria-expanded="true"] span:first-child { top: 22px; transform: rotate(45deg); }
.burger[aria-expanded="true"] span:last-child { top: 22px; transform: rotate(-45deg); }
@media (max-width: 1099px) { .pasek__nav, .jez--pasek { display: none; } .burger { display: block; } .pasek__w { justify-content: space-between; } .pasek__prawo { gap: 10px; } }
@media (max-width: 599px) { .pasek__cta { display: none; } .logo__t b { font-size: 21px; } .logo .znak { width: 34px; height: 18px; } }

/* menu telefonu */
.menu-tel { position: fixed; inset: 0; z-index: 90; background: radial-gradient(120% 80% at 90% 0%, #2a1520 0%, var(--noc) 60%); color: var(--kosc); padding: calc(var(--pasek) + 20px) 0 calc(28px + env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; clip-path: inset(0 0 100% 0); transition: clip-path .6s var(--ease); }
.menu-tel.is-otwarte { clip-path: inset(0 0 0 0); }
.menu-tel__w { width: var(--w); margin: 0 auto; min-height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.menu-tel ol { display: grid; gap: 2px; }
.menu-tel li { opacity: 0; transform: translateY(18px); transition: opacity .5s, transform .6s var(--ease); transition-delay: calc(.12s + var(--i) * .05s); }
.menu-tel.is-otwarte li { opacity: 1; transform: none; }
.menu-tel nav a { display: flex; align-items: baseline; gap: 16px; padding: 9px 0; text-decoration: none; font-family: var(--f-d); font-size: clamp(34px, 9.5vw, 52px); line-height: 1.12; border-bottom: 1px solid rgba(217, 195, 165, .12); }
.menu-tel nav a small { font-family: var(--f-t); font-size: 12px; letter-spacing: .2em; color: var(--szampan); }
.menu-tel nav a[aria-current] { font-style: italic; color: var(--szampan); }
.menu-tel__dol { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 18px; }
.jez--menu a { min-width: 46px; height: 46px; font-size: 14px; border: 1px solid rgba(217, 195, 165, .3); margin-right: 6px; }
.menu-tel__tel { display: inline-flex; align-items: center; gap: 10px; color: var(--szampan); text-decoration: none; font-size: 18px; }
.menu-tel__tel svg { width: 20px; height: 20px; }
html.menu-otwarte { overflow: hidden; }

/* ---------- START: Uśmiech w literach ---------- */
.start { position: relative; background: var(--noc); color: var(--kosc); height: 100svh; min-height: 560px; }
html.anim .start:not(.start--bez) { height: 290svh; }
.start__scena { position: sticky; top: 0; height: 100svh; min-height: 560px; overflow: hidden; }
.start__tlo { position: absolute; inset: 0; opacity: .2; }
@media (max-width: 899px) { .start__tlo { opacity: .3; } }
.start__tlo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% var(--fy); filter: saturate(.7); }
.start__tlo::after { content: ''; position: absolute; inset: 0; background: radial-gradient(90% 70% at 50% 45%, rgba(14, 10, 11, .25) 0%, rgba(14, 10, 11, .9) 75%), linear-gradient(180deg, rgba(14, 10, 11, .6) 0%, transparent 30%, transparent 60%, var(--noc) 100%); }
.start__svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; }
.start__txt { font-family: var(--f-d); font-weight: 900; font-size: 300px; letter-spacing: -.035em; }
.start__kontur { opacity: .65; }
.start__svg image { filter: brightness(1.12) contrast(1.04) saturate(1.05); }
.start__ui { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: calc(var(--pasek) + 14px) 0 clamp(26px, 5vh, 54px); pointer-events: none; }
.start__ui a { pointer-events: auto; }
.start__nad { text-align: center; font-size: 12px; letter-spacing: .34em; text-transform: uppercase; color: var(--szampan); }
.start__dol { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: 40px; }
.start__h1 { font-family: var(--f-d); font-weight: 500; font-size: clamp(34px, 3.9vw, 64px); line-height: 1.02; letter-spacing: -.02em; }
.start__h1 span { display: block; }
.start__h1 em { display: block; font-weight: 400; color: var(--szampan); }
.start__prawo { justify-self: end; max-width: 440px; }
.start__opis { color: rgba(245, 240, 232, .78); margin-bottom: 22px; }
.start__btn { display: flex; flex-wrap: wrap; gap: 12px; }
.start__przewin { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); display: grid; justify-items: center; gap: 8px; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: rgba(245, 240, 232, .55); }
.start__przewin i { width: 1px; height: 38px; background: linear-gradient(var(--szampan), transparent); transform-origin: top; animation: kapie 2.2s var(--ease) infinite; }
@keyframes kapie { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
.start__po { position: absolute; inset: 0; display: flex; align-items: flex-end; padding-bottom: clamp(56px, 12vh, 120px); opacity: 0; visibility: hidden; background: linear-gradient(90deg, rgba(14, 10, 11, .78) 0%, rgba(14, 10, 11, .45) 40%, transparent 70%), linear-gradient(180deg, transparent 60%, rgba(14, 10, 11, .6) 100%); }
@media (max-width: 899px) { .start__po { background: linear-gradient(180deg, transparent 30%, rgba(14, 10, 11, .55) 62%, rgba(14, 10, 11, .9) 100%); } }
.start__po.is-widoczne { visibility: visible; }
.start__po-h { font-family: var(--f-d); font-size: clamp(44px, 6.4vw, 108px); line-height: .98; letter-spacing: -.03em; font-weight: 500; max-width: 12ch; }
.start__po-h span { display: block; }
.start__po-h em { display: block; font-weight: 400; color: var(--szampan); }
.start__po-o { max-width: 520px; margin: 22px 0 26px; color: rgba(245, 240, 232, .85); }
.start__status { position: absolute; right: clamp(20px, 3vw, 44px); top: calc(var(--pasek) + 8px); font-size: 12px; letter-spacing: .1em; color: rgba(245, 240, 232, .7); display: flex; align-items: center; gap: 8px; }
.start__status::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #7fd4a8; box-shadow: 0 0 0 4px rgba(127, 212, 168, .18); }
.start__status.is-zamkniete::before { background: var(--szary-j); box-shadow: none; }
@media (max-width: 899px) {
  .start__dol { grid-template-columns: 1fr; gap: 16px; }
  .start__prawo { justify-self: start; }
  .start__opis { font-size: 15px; margin-bottom: 18px; }
  .start__h1 { font-size: clamp(30px, 8.4vw, 44px); }
  .start__przewin { display: none; }
  .start__status { display: none; }
  .start__nad { font-size: 10.5px; letter-spacing: .26em; padding-inline: 20px; }
  .start__po { padding-bottom: 92px; }
  .start__po-o { font-size: 15px; }
}
@media (max-width: 599px) { .start__opis { display: none; } .start__btn .btn { flex: 1 1 auto; } }
@media (max-height: 640px) and (min-width: 900px) { .start__opis { display: none; } }

/* ---------- MANIFEST: perłowe światło ---------- */
.manifest__w { max-width: 1100px; }
.manifest__t { font-family: var(--f-d); font-weight: 400; font-size: clamp(27px, 3.7vw, 56px); line-height: 1.22; letter-spacing: -.012em; text-wrap: pretty; }
html.anim .manifest__t { --s: 0; color: transparent; background: linear-gradient(100deg, var(--atrament) 0%, var(--atrament) calc(var(--s) * 140% - 30%), #b5476b calc(var(--s) * 140% - 22%), #8e7cb7 calc(var(--s) * 140% - 16%), #5fa597 calc(var(--s) * 140% - 10%), #c9a46e calc(var(--s) * 140% - 5%), rgba(29, 21, 24, .18) calc(var(--s) * 140% + 2%), rgba(29, 21, 24, .18) 100%); -webkit-background-clip: text; background-clip: text; }
.manifest__podpis { margin-top: 36px; font-size: 13px; letter-spacing: .24em; text-transform: uppercase; color: var(--szary); }

/* ---------- KOLEKCJA: poziomy przejazd przez gabloty ---------- */
.kolekcja { position: relative; background: var(--noc); color: var(--kosc); }
.kolekcja__scena { padding-block: clamp(84px, 10vw, 140px) clamp(60px, 7vw, 90px); }
html.anim .kolekcja:not(.kolekcja--bez) { height: var(--h, 400svh); }
html.anim .kolekcja:not(.kolekcja--bez) .kolekcja__scena { position: sticky; top: 0; height: 100svh; padding-block: calc(var(--pasek) + 3vh) 3.5vh; display: flex; flex-direction: column; overflow: hidden; }
.kolekcja__glowa { display: grid; grid-template-columns: 1.4fr 1fr; align-items: end; gap: 40px; margin-bottom: clamp(26px, 4vh, 48px); }
.kolekcja__glowa .tyt { font-size: clamp(34px, 4.6vw, 72px); }
.kolekcja__opis { color: var(--szary-j); max-width: 420px; justify-self: end; }
.kolekcja__okno { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-inline: calc((100% - var(--w)) / 2); }
.kolekcja__okno::-webkit-scrollbar { display: none; }
html.anim .kolekcja:not(.kolekcja--bez) .kolekcja__okno { overflow: visible; flex: 1; min-height: 0; padding-inline: calc((100vw - var(--w)) / 2); }
.kolekcja__tor { display: flex; gap: clamp(14px, 1.6vw, 26px); width: max-content; height: clamp(420px, 62vh, 640px); will-change: transform; }
html.anim .kolekcja:not(.kolekcja--bez) .kolekcja__tor { height: 100%; }
.gablota { position: relative; flex: 0 0 auto; width: clamp(280px, 27vw, 420px); height: 100%; scroll-snap-align: start; }
.gablota__a { position: relative; display: flex; flex-direction: column; justify-content: flex-end; height: 100%; border-radius: 6px; overflow: hidden; text-decoration: none; color: var(--kosc); background: var(--sliwka); box-shadow: inset 0 0 0 1px rgba(217, 195, 165, .16); }
.gablota__foto { position: absolute; inset: 0; }
.gablota__foto img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.2s var(--ease), filter .8s; filter: saturate(.85) brightness(.88); }
.gablota__foto::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 10, 11, .15) 0%, rgba(14, 10, 11, 0) 35%, rgba(14, 10, 11, .9) 100%); }
.gablota__a::before { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .22) 45%, rgba(226, 220, 242, .18) 50%, transparent 62%); transform: translateX(-120%); transition: transform 1.1s var(--ease); }
.gablota__a:hover::before { transform: translateX(120%); }
.gablota__a:hover .gablota__foto img { transform: scale(1); filter: saturate(1) brightness(.95); }
.gablota__nr { position: absolute; top: 20px; left: 22px; z-index: 1; font-size: 12px; letter-spacing: .26em; color: var(--szampan); }
.gablota__tekst { position: relative; z-index: 1; padding: 26px 24px 26px; display: grid; gap: 10px; }
.gablota__h { font-family: var(--f-d); font-size: clamp(25px, 2.1vw, 34px); line-height: 1.08; font-weight: 500; }
.gablota__o { font-size: 14.5px; color: rgba(245, 240, 232, .78); line-height: 1.5; }
.gablota__wiecej { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--szampan); margin-top: 6px; }
.gablota__wiecej svg { width: 16px; height: 16px; }
.gablota--koniec { width: clamp(220px, 19vw, 300px); }
.gablota--koniec .gablota__a { justify-content: center; align-items: center; gap: 26px; text-align: center; background: radial-gradient(100% 80% at 50% 30%, #2d1822, var(--noc)); }
.gablota--koniec .gablota__h { font-style: italic; color: var(--szampan); padding-inline: 20px; }
.gablota__kolo { width: 74px; height: 74px; border-radius: 50%; border: 1px solid var(--szampan); display: grid; place-items: center; color: var(--szampan); transition: background-color .4s, color .4s; }
.gablota__kolo svg { width: 26px; height: 26px; }
.gablota--koniec .gablota__a:hover .gablota__kolo { background: var(--szampan); color: var(--noc); }
.kolekcja__pasek { display: flex; align-items: center; gap: 22px; margin-top: clamp(18px, 3vh, 32px); font-size: 12px; letter-spacing: .2em; color: var(--szary-j); }
.kolekcja__licznik b { color: var(--kosc); font-weight: 500; }
.kolekcja__linia { flex: 1; height: 1px; background: rgba(217, 195, 165, .2); position: relative; }
.kolekcja__linia i { position: absolute; inset: 0; background: var(--perla); transform-origin: left; transform: scaleX(var(--k, .1)); }
@media (max-width: 899px) {
  .kolekcja__glowa { grid-template-columns: 1fr; gap: 12px; }
  .kolekcja__opis { justify-self: start; font-size: 15px; }
  .gablota { width: 76vw; }
  .gablota--koniec { width: 60vw; }
  .gablota__o { font-size: 14px; }
  .gablota__tekst { padding: 20px 18px; }
}
@media (max-width: 899px) and (max-height: 760px) { html.anim .kolekcja:not(.kolekcja--bez) .kolekcja__opis { display: none; } }

/* ---------- ŚWIADECTWO ---------- */
.swiad__w { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 6vw, 100px); align-items: center; }
.swiad__lewo .tyt { font-size: clamp(38px, 4.6vw, 72px); }
.dokument { position: relative; background: #fbf8f2; color: var(--atrament); padding: 14px; border-radius: 4px; box-shadow: 0 40px 80px -40px rgba(60, 30, 40, .35), 0 2px 6px rgba(60, 30, 40, .06); transform: rotate(-1.2deg); }
.dokument::before { content: ''; position: absolute; inset: 0; border-radius: 4px; pointer-events: none; background: repeating-linear-gradient(45deg, rgba(154, 10, 60, .025) 0 2px, transparent 2px 7px); }
.dokument__ramka { position: relative; border: 1px solid rgba(154, 10, 60, .35); outline: 3px double rgba(154, 10, 60, .25); outline-offset: -9px; padding: clamp(26px, 4vw, 52px); }
.dokument__glowa { display: flex; align-items: center; gap: 22px; padding-bottom: 22px; border-bottom: 1px solid rgba(154, 10, 60, .2); margin-bottom: 10px; }
.gilosza { width: clamp(70px, 9vw, 108px); height: auto; flex-shrink: 0; fill: none; stroke: var(--malina); stroke-width: .45; opacity: .75; }
.dokument__nr { font-size: 12px; letter-spacing: .3em; color: var(--szary); }
.dokument__tytul { font-family: var(--f-d); font-style: italic; font-size: clamp(26px, 2.6vw, 38px); color: var(--malina); line-height: 1.1; }
.dokument__lista { display: grid; }
.dokument__w { display: grid; grid-template-columns: 140px 1fr; gap: 18px; padding: 14px 0; border-bottom: 1px dotted rgba(29, 21, 24, .22); align-items: baseline; }
.dokument__w dt { font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--szary); }
.dokument__w dd { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.dokument__w b { font-family: var(--f-d); font-weight: 600; font-size: clamp(22px, 2vw, 30px); line-height: 1.1; }
.dokument__w span { font-size: 14.5px; color: var(--szary); }
.dokument__stopka { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; padding-top: 22px; }
.dokument__podpis { font-size: 12.5px; letter-spacing: .06em; color: var(--szary); max-width: 30ch; }
.pieczec { width: clamp(108px, 11vw, 140px); flex-shrink: 0; color: var(--malina); transform: rotate(-12deg); margin: -40px -8px -12px 0; mix-blend-mode: multiply; }
.pieczec svg { display: block; width: 100%; height: auto; }
@media (max-width: 899px) {
  .swiad__w { grid-template-columns: 1fr; }
  .dokument { transform: rotate(-.6deg); padding: 8px; }
  .dokument__w { grid-template-columns: 1fr; gap: 2px; }
  .dokument__w span { font-size: 14px; }
  .pieczec { width: 96px; margin: -20px -4px -4px 0; }
}

/* ---------- BLASK: przed / po ---------- */
.blask__w { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(36px, 6vw, 100px); align-items: center; }
.blask__o { color: var(--szary-j); margin: 24px 0 30px; max-width: 46ch; }
.przelacznik { display: inline-flex; border: 1px solid rgba(217, 195, 165, .4); border-radius: 999px; padding: 4px; }
.przelacznik button { min-height: 42px; padding: 0 22px; border: 0; background: transparent; border-radius: 999px; cursor: pointer; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--kosc); transition: background-color .3s, color .3s; }
.przelacznik button[aria-pressed="true"] { background: var(--szampan); color: var(--noc); }
.blask__foto { position: relative; border-radius: 6px; overflow: hidden; aspect-ratio: 3 / 2; background: var(--sliwka); }
.blask__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.blask__po { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--x)); }
.blask__swiatlo { position: absolute; top: -10%; bottom: -10%; left: var(--x); width: 90px; margin-left: -45px; pointer-events: none; background: linear-gradient(90deg, transparent 0%, rgba(243, 217, 226, .25) 35%, rgba(255, 255, 255, .85) 50%, rgba(214, 239, 233, .25) 65%, transparent 100%); mix-blend-mode: screen; filter: blur(2px); }
.blask__swiatlo::after { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: #fff; }
.blask__foto figcaption { position: absolute; inset: auto 16px 14px; display: flex; justify-content: space-between; font-size: 11px; letter-spacing: .26em; text-transform: uppercase; }
.blask__foto figcaption span { background: rgba(14, 10, 11, .7); padding: 6px 10px; border-radius: 99px; }
@media (max-width: 899px) { .blask__w { grid-template-columns: 1fr; } .blask__foto { order: -1; } }

/* ---------- DZIECI ---------- */
.dzieci__w { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 100px); align-items: center; }
.dzieci__foto { border-radius: 6px; overflow: hidden; aspect-ratio: 4 / 5; }
.dzieci__foto img { width: 100%; height: 100%; object-fit: cover; }
.dzieci__tekst > p { margin: 24px 0; color: var(--szary); max-width: 52ch; }
.sny { font-family: var(--f-d); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.3; color: var(--atrament) !important; }
.sny__l { display: block; font-family: var(--f-t); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--szary); margin-bottom: 4px; }
.sny__slowa { display: inline-block; font-style: italic; color: var(--malina); }
.sny__slowa span { display: inline-block; }
.sny__slowa span.ukryte { display: none; }
@media (max-width: 899px) { .dzieci__w { grid-template-columns: 1fr; } .dzieci__foto { aspect-ratio: 4 / 3.4; } }

/* ---------- ZESPÓŁ: grawerowane tabliczki ---------- */
.tabliczki { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: clamp(14px, 2vw, 26px); }
.tabliczki--cale { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.tabliczka { position: relative; padding: clamp(28px, 3vw, 44px); border-radius: 6px; background: linear-gradient(150deg, #241219 0%, #170c11 60%, #1f1016 100%); box-shadow: inset 0 0 0 1px rgba(217, 195, 165, .22), inset 0 1px 0 rgba(255, 255, 255, .06); overflow: hidden; }
.tabliczka::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(217, 195, 165, .14); border-radius: 3px; pointer-events: none; }
.tabliczka__mono { font-family: var(--f-d); font-style: italic; font-size: 64px; line-height: 1; color: transparent; background: var(--perla); -webkit-background-clip: text; background-clip: text; opacity: .85; margin-bottom: 18px; }
.tabliczka__tyt { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--szampan); min-height: 1.2em; }
.tabliczka__imie { font-family: var(--f-d); font-weight: 500; font-size: clamp(26px, 2.4vw, 36px); line-height: 1.1; margin: 6px 0 8px; text-shadow: 0 1px 0 rgba(0, 0, 0, .6), 0 -1px 0 rgba(255, 255, 255, .06); }
.tabliczka__rola { font-size: 14.5px; color: var(--szary-j); }
.tabliczka__opis { margin-top: 18px; font-size: 15px; color: rgba(245, 240, 232, .78); }
.tabliczka--glowna { background: linear-gradient(150deg, #3a1726 0%, #1e0d15 70%); }
.tabliczka--glowna .tabliczka__imie { font-size: clamp(30px, 3vw, 44px); }
@media (max-width: 899px) { .tabliczki { grid-template-columns: 1fr; } .tabliczka__mono { font-size: 48px; } }

/* ---------- OPINIE ---------- */
.opinie__w { max-width: 1060px; text-align: center; }
.opinie .etyk { justify-content: center; }
.opinie__stos { position: relative; }
.opinia blockquote p { font-family: var(--f-d); font-style: italic; font-size: clamp(28px, 3.8vw, 54px); line-height: 1.2; letter-spacing: -.01em; }
.opinia blockquote p::before { content: '“'; display: block; font-size: 2.4em; line-height: .6; color: var(--malina); margin-bottom: 8px; font-style: normal; }
.opinia figcaption { margin-top: 26px; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: var(--szary); }
.opinie__kropki { display: flex; justify-content: center; gap: 4px; margin-top: 28px; }
.opinie__kropki button { width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; position: relative; }
.opinie__kropki button::after { content: ''; position: absolute; left: 10px; right: 10px; top: 21px; height: 2px; background: rgba(29, 21, 24, .2); transition: background-color .3s; }
.opinie__kropki button[aria-current]::after { background: var(--malina); }

/* ---------- KARTA UPOMINKOWA z folią ---------- */
.karta { background: radial-gradient(70% 90% at 75% 50%, #2b1520 0%, var(--noc) 70%); }
.karta__w { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 100px); align-items: center; }
.karta__tekst > p { color: var(--szary-j); margin-top: 22px; max-width: 46ch; }
.karta__optus { color: var(--szampan) !important; font-size: 15px; }
.karta__scena { perspective: 1100px; display: grid; place-items: center; padding-block: 20px; }
.karta__karta { --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 50%; position: relative; width: min(100%, 470px); aspect-ratio: 1.586; border-radius: 18px; padding: clamp(20px, 2.6vw, 30px); color: var(--szampan-j); background: linear-gradient(135deg, #3b1527 0%, #1f0c15 45%, #2c1220 100%); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .8), inset 0 0 0 1px rgba(217, 195, 165, .3); transform: rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d; transition: transform .15s linear; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr auto auto; overflow: hidden; }
.karta__folia { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; mix-blend-mode: soft-light; opacity: .85; background: radial-gradient(circle at var(--mx) var(--my), rgba(255, 255, 255, .7) 0%, transparent 42%), conic-gradient(from calc(var(--ry) * 6) at var(--mx) var(--my), #f3d9e2, #e2dcf2, #d6efe9, #f1dcc0, #f3d9e2); }
.bez-folii .karta__folia { display: none; }
.karta__znak .znak { width: 54px; height: 28px; color: var(--szampan-j); }
.karta__nazwa { grid-column: 1 / -1; align-self: end; font-family: var(--f-d); font-size: clamp(34px, 4vw, 52px); line-height: 1; color: transparent; background: var(--perla); -webkit-background-clip: text; background-clip: text; }
.karta__typ { grid-column: 1 / -1; font-size: 11px; letter-spacing: .32em; text-transform: uppercase; margin-top: 8px; }
.karta__dla { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; display: flex; align-items: flex-end; gap: 8px; margin-top: 18px; }
.karta__dla i { width: 130px; border-bottom: 1px solid rgba(217, 195, 165, .5); height: 1px; margin-bottom: 4px; }
.karta__wart { font-family: var(--f-d); font-style: italic; font-size: 16px; align-self: end; justify-self: end; margin-top: 18px; }
.karta__chip { position: absolute; top: clamp(20px, 2.6vw, 30px); right: clamp(20px, 2.6vw, 30px); width: 46px; height: 36px; border-radius: 7px; background: linear-gradient(135deg, #f1dcc0, #b89466 50%, #efd9b4); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2); }
.karta__chip::before { content: ''; position: absolute; inset: 8px 0; border-block: 1px solid rgba(0, 0, 0, .25); }
@media (max-width: 899px) { .karta__w { grid-template-columns: 1fr; } .karta__dla i { width: 90px; } }

/* ---------- PORADNIK (skrót) ---------- */
.glowa-sek--rzad { display: grid; grid-template-columns: auto; }
.porady__lista { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 2.4vw, 34px); }
.porady__lista a { display: grid; gap: 14px; text-decoration: none; color: inherit; }
.porady__nr { font-size: 12px; letter-spacing: .24em; color: var(--malina); }
.porady__foto { aspect-ratio: 4 / 3; border-radius: 6px; overflow: hidden; }
.porady__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.porady__lista a:hover .porady__foto img { transform: scale(1.05); }
.porady__h { font-family: var(--f-d); font-size: clamp(23px, 1.9vw, 29px); line-height: 1.15; }
.porady__o { color: var(--szary); font-size: 15px; }
.porady__w { display: inline-flex; gap: 8px; align-items: center; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--malina); }
.porady__w svg { width: 16px; height: 16px; }
@media (max-width: 899px) { .porady__lista { grid-template-columns: 1fr; } .porady__lista a { grid-template-columns: 110px 1fr; grid-template-areas: 'f nr' 'f h' 'f o'; column-gap: 16px; row-gap: 4px; align-items: start; } .porady__foto { grid-area: f; aspect-ratio: 1; } .porady__nr { grid-area: nr; } .porady__h { grid-area: h; font-size: 21px; } .porady__o { grid-area: o; font-size: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .porady__w { display: none; } }

/* ---------- KONTAKT ---------- */
.kontakt__w { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(36px, 6vw, 100px); align-items: start; }
.wielki-tel { display: block; font-family: var(--f-d); font-weight: 500; font-size: clamp(46px, 7.4vw, 118px); line-height: 1; letter-spacing: -.03em; text-decoration: none; color: transparent; background: linear-gradient(100deg, var(--kosc) 0%, var(--kosc) 40%, #f3d9e2 50%, #d6efe9 56%, var(--kosc) 66%) 0 0 / 250% 100%; -webkit-background-clip: text; background-clip: text; animation: polysk 7s linear infinite; white-space: nowrap; }
@keyframes polysk { from { background-position: 100% 0; } to { background-position: -150% 0; } }
.kontakt__tel2, .kontakt__mail, .kontakt__adres { margin-top: 12px; color: var(--szary-j); }
.kontakt__tel2 { margin-top: 20px; }
.kontakt__tel2 a, .kontakt__mail a { color: var(--kosc); text-underline-offset: 4px; }
.kontakt__btn { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.kontakt__godz { background: var(--sliwka); border-radius: 6px; padding: clamp(24px, 3vw, 38px); box-shadow: inset 0 0 0 1px rgba(217, 195, 165, .16); }
.kontakt__godz h3 { font-family: var(--f-d); font-weight: 500; font-size: 28px; margin-bottom: 8px; }
.status { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #a6e3c3; margin-bottom: 14px; }
.status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px rgba(166, 227, 195, .15); }
.status.is-zamkniete { color: var(--szary-j); }
.status.is-zamkniete::before { box-shadow: none; }
.godz li { display: flex; justify-content: space-between; gap: 20px; padding: 9px 0; border-bottom: 1px solid rgba(217, 195, 165, .12); font-size: 15px; }
.godz li:last-child { border-bottom: 0; }
.godz li.is-dzis { color: var(--szampan); font-weight: 500; }
.godz--male li { font-size: 14px; padding: 6px 0; }
.komunikat { margin-top: 16px; padding: 12px 14px; border-radius: 6px; background: rgba(217, 195, 165, .12); color: var(--szampan-j); font-size: 14.5px; }
.nfz { margin-top: 22px; border-top: 1px solid rgba(217, 195, 165, .2); padding-top: 16px; }
.nfz summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 12px; font-weight: 500; color: var(--szampan); min-height: 44px; }
.nfz summary::-webkit-details-marker { display: none; }
.nfz summary svg { width: 20px; height: 20px; transition: transform .3s; }
.nfz[open] summary svg { transform: rotate(45deg); }
.nfz p { font-size: 14.5px; color: var(--szary-j); margin-top: 8px; }
.nfz__h { color: var(--kosc) !important; font-weight: 500; margin-top: 14px !important; }
.mapa { position: relative; margin-top: clamp(40px, 5vw, 64px); border-radius: 6px; overflow: hidden; height: clamp(280px, 34vw, 420px); background: var(--sliwka); }
.mapa iframe { width: 100%; height: 100%; border: 0; display: block; pointer-events: none; filter: grayscale(.6) contrast(1.05) brightness(.92); }
.mapa.is-aktywna iframe { pointer-events: auto; }
.mapa__zaslona { position: absolute; inset: 0; border: 0; background: transparent; cursor: pointer; display: grid; place-items: end center; padding-bottom: 18px; }
.mapa__zaslona span { pointer-events: none; background: rgba(14, 10, 11, .85); color: var(--kosc); padding: 10px 18px; border-radius: 999px; font-size: 13px; letter-spacing: .06em; opacity: 0; transition: opacity .3s; }
.mapa__zaslona:hover span, .mapa__zaslona:focus-visible span { opacity: 1; }
@media (hover: none) { .mapa__zaslona span { opacity: 1; } }
.mapa.is-aktywna .mapa__zaslona { display: none; }
@media (max-width: 899px) { .kontakt__w { grid-template-columns: 1fr; } .wielki-tel { font-size: clamp(40px, 11.6vw, 64px); } .kontakt__btn .btn { flex: 1 1 auto; } }

/* ---------- STOPKA ---------- */
.stopka { background: #080506; color: var(--kosc); padding-top: clamp(70px, 9vw, 120px); padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
.stopka__haslo { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; flex-wrap: wrap; padding-bottom: clamp(40px, 5vw, 70px); border-bottom: 1px solid rgba(217, 195, 165, .14); }
.stopka__h { font-family: var(--f-d); font-size: clamp(36px, 5vw, 76px); line-height: 1.02; letter-spacing: -.02em; }
.stopka__h span { display: block; }
.stopka__h em { color: var(--szampan); font-weight: 400; }
.stopka__kol { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; padding-block: clamp(40px, 5vw, 64px); font-size: 15px; color: var(--szary-j); }
.stopka__kol h2 { font-family: var(--f-t); font-size: 11.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--szampan); font-weight: 500; margin-bottom: 14px; }
.stopka__kol a { color: var(--kosc); text-decoration: none; }
.stopka__kol a:hover { text-decoration: underline; text-underline-offset: 4px; }
.stopka__kol li { padding: 3px 0; }
.stopka__kol p + p { margin-top: 10px; }
.stopka__znak { font-family: var(--f-d); font-weight: 900; font-size: clamp(64px, 19vw, 300px); line-height: .85; letter-spacing: -.045em; text-align: center; overflow: hidden; padding-bottom: .08em; user-select: none; }
.stopka__znak span { display: block; color: transparent; background: linear-gradient(100deg, #4a2c39 0%, #5a3646 30%, #f3d9e2 46%, #d6efe9 52%, #f1dcc0 58%, #5a3646 72%, #4a2c39 100%) 0 0 / 300% 100%; -webkit-background-clip: text; background-clip: text; animation: polysk 11s linear infinite; }
.stopka__dol { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; padding-top: 22px; border-top: 1px solid rgba(217, 195, 165, .14); font-size: 13px; color: var(--szary-j); }
.stopka__dol a { color: inherit; }
.stopka__tworca { display: flex; align-items: center; gap: 18px; }
@media (max-width: 899px) {
  .stopka__kol { grid-template-columns: 1fr 1fr; }
  .stopka__kol > div:nth-child(2) { grid-column: 1 / -1; order: -1; }
  .stopka__godz { display: none; }
  .stopka { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
}
/* podpis twórcy (Bogate Ananasy) */
.m-only { display: none; }
@media (max-width: 767px) { .m-only { display: inline; } .d-only { display: none; } }
.made-by { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; transition: color .3s; }
.made-by:hover { color: var(--szampan); }
.made-by img { height: 1.75rem; width: auto; display: block; animation: logo-shine 5s ease-in-out infinite; }
.logo-wrap { position: relative; top: -3px; z-index: 1; display: block; transform-origin: 50% 50%; animation: logo-spin 5s ease-in-out infinite; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .made-by:hover .logo-wrap { animation: logo-spin-loop 1.6s linear infinite; }
  .made-by:hover img { animation: logo-shine-loop 1.6s ease-in-out infinite; }
  .made-by:hover .glint { animation: logo-glint-loop 1.6s linear infinite; }
}
.glint { position: absolute; inset: 0; pointer-events: none; -webkit-mask: url(/img/site/bogate-ananasy-logo.webp) center / contain no-repeat; mask: url(/img/site/bogate-ananasy-logo.webp) center / contain no-repeat; background: linear-gradient(115deg, transparent 35%, rgba(255, 246, 200, .95) 50%, transparent 65%) 0 0 / 300% 100% no-repeat; mix-blend-mode: screen; animation: logo-glint 5s ease-in-out infinite; }
@keyframes logo-spin { 0%, 80% { transform: perspective(200px) rotateY(0); } 100% { transform: perspective(200px) rotateY(360deg); } }
@keyframes logo-spin-loop { from { transform: perspective(200px) rotateY(0); } to { transform: perspective(200px) rotateY(360deg); } }
@keyframes logo-shine-loop { 0%, 100% { filter: brightness(1.25) saturate(1.2) drop-shadow(0 0 2px rgba(255, 210, 90, .45)); } 50% { filter: brightness(1.7) saturate(1.35) drop-shadow(0 0 5px rgba(255, 210, 90, .8)); } }
@keyframes logo-glint-loop { 0% { background-position: 100% 0; opacity: 1; } 100% { background-position: 0 0; opacity: 1; } }
@keyframes logo-shine { 0%, 80%, 100% { filter: none; } 90% { filter: brightness(1.6) saturate(1.3) drop-shadow(0 0 4px rgba(255, 210, 90, .7)); } }
@keyframes logo-glint { 0%, 80% { background-position: 100% 0; opacity: 0; } 82% { opacity: 1; } 98% { background-position: 0 0; opacity: 1; } 100% { background-position: 0 0; opacity: 0; } }
.to-top { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin: -0.5rem 0; border-radius: 999px; color: inherit; transition: color .3s; }
.to-top:hover { color: var(--szampan); }
.to-top path { animation: fly-up 1.6s cubic-bezier(.4, 0, .2, 1) infinite; }
.to-top path:nth-child(2) { animation-delay: .2s; }
.to-top path:nth-child(3) { animation-delay: .4s; }
.to-top:hover path { animation-duration: .9s; }
@media (max-width: 767px) { .to-top path { animation-duration: 2.6s; } .to-top path:nth-child(2) { animation-delay: .35s; } .to-top path:nth-child(3) { animation-delay: .7s; } .stopka__dol { flex-direction: column; align-items: stretch; gap: 14px; } .stopka__tworca { justify-content: space-between; } }
@keyframes fly-up { 0% { transform: translateY(6px); opacity: 0; } 35% { opacity: 1; } 100% { transform: translateY(-10px); opacity: 0; } }

/* dolny pasek akcji (telefon) */
.dolny { position: fixed; z-index: 80; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); display: none; grid-template-columns: 1.3fr 1fr 1fr; gap: 6px; padding: 6px; border-radius: 999px; background: rgba(14, 10, 11, .86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 10px 30px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(217, 195, 165, .2); transform: translateY(140%); transition: transform .55s cubic-bezier(.2, .9, .3, 1.2); }
.dolny.is-widoczny { transform: none; }
.dolny a { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; border-radius: 999px; color: var(--kosc); text-decoration: none; font-size: 12.5px; letter-spacing: .02em; white-space: nowrap; }
.dolny svg { width: 17px; height: 17px; flex-shrink: 0; }
.dolny__glowny { background: var(--szampan); color: var(--noc) !important; font-weight: 600; }
@media (max-width: 899px) { .dolny { display: grid; } }
html.menu-otwarte .dolny { transform: translateY(140%); }

/* ---------- PODSTRONY ---------- */
.pod-glowa { position: relative; overflow: hidden; padding: calc(var(--pasek) + clamp(60px, 9vw, 130px)) 0 clamp(60px, 7vw, 100px); }
.pod-glowa__h { font-family: var(--f-d); font-weight: 500; font-size: clamp(42px, 6.6vw, 104px); line-height: 1; letter-spacing: -.025em; max-width: 16ch; text-wrap: balance; }
.pod-glowa__o { margin-top: 26px; color: var(--szary-j); max-width: 60ch; font-size: clamp(16px, 1.3vw, 19px); }
.pod-glowa__blask { position: absolute; right: -10vw; top: -20vw; width: 60vw; height: 60vw; border-radius: 50%; background: conic-gradient(from 200deg, rgba(243, 217, 226, .16), rgba(226, 220, 242, .12), rgba(214, 239, 233, .12), rgba(241, 220, 192, .16), rgba(243, 217, 226, .16)); filter: blur(60px); pointer-events: none; }
.oferta__w { display: grid; grid-template-columns: 260px 1fr; gap: clamp(30px, 5vw, 80px); align-items: start; }
.oferta__spis { position: sticky; top: calc(var(--pasek) + 30px); }
.oferta__spis a { display: flex; gap: 12px; padding: 8px 0; text-decoration: none; color: var(--szary); font-size: 15px; border-bottom: 1px solid rgba(29, 21, 24, .08); transition: color .3s; }
.oferta__spis a small { color: var(--malina); font-size: 11px; letter-spacing: .14em; padding-top: 3px; }
.oferta__spis a:hover, .oferta__spis a.is-aktywny { color: var(--atrament); }
.oferta__lista { display: grid; gap: clamp(60px, 8vw, 110px); }
.oferta__lista--waska { max-width: 1100px; }
.usluga { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(26px, 4vw, 60px); align-items: start; scroll-margin-top: calc(var(--pasek) + 30px); }
.usluga__foto { border-radius: 6px; overflow: hidden; aspect-ratio: 4 / 5; position: sticky; top: calc(var(--pasek) + 30px); }
.usluga__foto img { width: 100%; height: 100%; object-fit: cover; }
.usluga__nr { font-size: 12px; letter-spacing: .26em; color: var(--malina); margin-bottom: 10px; }
.usluga h2 { font-family: var(--f-d); font-weight: 500; font-size: clamp(32px, 3.4vw, 52px); line-height: 1.04; letter-spacing: -.015em; }
.usluga__krotko { font-family: var(--f-d); font-style: italic; font-size: clamp(19px, 1.5vw, 23px); color: var(--malina); margin: 14px 0 18px; line-height: 1.35; }
.usluga__tekst > p:not(.usluga__nr):not(.usluga__krotko) { color: var(--szary); margin-bottom: 16px; }
.usluga h3 { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; margin: 26px 0 10px; font-weight: 500; }
.perly { display: grid; gap: 8px; margin-bottom: 26px; }
.perly li { position: relative; padding-left: 26px; }
.perly li::before { content: ''; position: absolute; left: 0; top: .55em; width: 11px; height: 11px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff 0%, #f3d9e2 35%, #c9bde6 65%, #b5a28a 100%); box-shadow: 0 1px 2px rgba(0, 0, 0, .15); }
@media (max-width: 1099px) { .oferta__w { grid-template-columns: 1fr; } .oferta__spis { display: none; } }
@media (max-width: 899px) { .usluga { grid-template-columns: 1fr; } .usluga__foto { position: relative; top: 0; aspect-ratio: 16 / 10; } }

.kroki { max-width: 1100px; }
.kroki__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; margin-top: 44px; }
.kroki__lista li { background: rgba(255, 255, 255, .6); border-radius: 6px; padding: 24px; box-shadow: inset 0 0 0 1px rgba(154, 10, 60, .1); }
.kroki__lista span { font-family: var(--f-d); font-style: italic; font-size: 34px; color: var(--malina); display: block; margin-bottom: 8px; }
.kroki__lista p { font-size: 15px; color: var(--szary); }

.porady-pelne { display: grid; gap: clamp(50px, 6vw, 90px); max-width: 1100px; }
.porada { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(24px, 4vw, 60px); align-items: start; scroll-margin-top: calc(var(--pasek) + 30px); }
.porada__foto { border-radius: 6px; overflow: hidden; aspect-ratio: 4 / 3; }
.porada__foto img { width: 100%; height: 100%; object-fit: cover; }
.porada h2 { font-family: var(--f-d); font-weight: 500; font-size: clamp(28px, 2.8vw, 42px); line-height: 1.08; }
.porada__w { font-family: var(--f-d); font-style: italic; font-size: 20px; color: var(--malina); margin: 14px 0 18px; }
@media (max-width: 899px) { .porada { grid-template-columns: 1fr; } }

.historia { max-width: 980px; }
.historia__t p { font-family: var(--f-d); font-size: clamp(22px, 2.3vw, 32px); line-height: 1.35; }
.historia__t p + p { margin-top: 20px; }
.sprzet { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 2vw, 26px); }
.sprzet img { aspect-ratio: 1; object-fit: cover; border-radius: 6px; width: 100%; margin-bottom: 14px; }
.sprzet h3 { font-family: var(--f-d); font-weight: 500; font-size: 23px; line-height: 1.15; }
.sprzet p { color: var(--szary); font-size: 14.5px; margin-top: 6px; }
@media (max-width: 899px) { .sprzet { grid-template-columns: 1fr 1fr; } .sprzet h3 { font-size: 19px; } }
.galeria { columns: 4 240px; column-gap: 14px; }
.galeria li { break-inside: avoid; margin-bottom: 14px; }
.galeria button { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 6px; overflow: hidden; }
.galeria img { width: 100%; transition: transform .9s var(--ease), filter .6s; filter: saturate(.85); }
.galeria button:hover img { transform: scale(1.04); filter: none; }
@media (max-width: 599px) { .galeria { columns: 2; column-gap: 10px; } .galeria li { margin-bottom: 10px; } }
.lightbox { position: fixed; inset: 0; z-index: 200; background: rgba(8, 5, 6, .94); display: grid; grid-template-columns: 64px 1fr 64px; align-items: center; padding: 20px; }
.lightbox figure { grid-column: 2; display: grid; justify-items: center; gap: 14px; }
.lightbox img { max-height: 78vh; width: auto; max-width: 100%; border-radius: 4px; }
.lightbox figcaption { color: var(--szary-j); font-size: 15px; text-align: center; }
.lightbox button { width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(217, 195, 165, .4); background: rgba(14, 10, 11, .6); color: var(--kosc); cursor: pointer; display: grid; place-items: center; }
.lightbox button svg { width: 22px; height: 22px; }
.lightbox__x { position: absolute; top: 18px; right: 18px; }
.lightbox__p { grid-column: 1; grid-row: 1; } .lightbox__n { grid-column: 3; grid-row: 1; }
@media (max-width: 599px) { .lightbox { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr auto; padding: 70px 10px 24px; } .lightbox figure { grid-column: 1 / -1; grid-row: 1; } .lightbox__p { grid-row: 2; justify-self: end; margin-right: 10px; } .lightbox__n { grid-column: 2; grid-row: 2; margin-left: 10px; } }
.praca__w { display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; }
.praca__w p { color: var(--szary); }
.praca__k { margin-top: 16px; color: var(--atrament) !important; font-weight: 500; }
@media (max-width: 899px) { .praca__w { grid-template-columns: 1fr; } }

/* formularz */
.formularz__w { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(36px, 6vw, 100px); align-items: start; }
.formularz__lewo > p:last-child { color: var(--szary); margin-top: 20px; }
.formularz { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 20px; }
.pole { display: grid; gap: 8px; min-width: 0; }
.pole--cale, .pole--pora { grid-column: 1 / -1; }
.pole label, .pole legend { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--atrament); font-weight: 500; }
.pole small { text-transform: none; letter-spacing: 0; color: var(--szary); font-weight: 400; }
.pole input:not([type=checkbox]):not([type=radio]), .pole select, .pole textarea { width: 100%; min-height: 54px; padding: 14px 16px; border: 1px solid rgba(29, 21, 24, .2); border-radius: 6px; background: #fffdf9; font: inherit; font-size: 16px; color: var(--atrament); transition: border-color .3s, box-shadow .3s; }
.pole textarea { resize: vertical; min-height: 120px; }
.pole input:focus, .pole select:focus, .pole textarea:focus { outline: none; border-color: var(--malina); box-shadow: 0 0 0 3px rgba(154, 10, 60, .12); }
.pole.is-blad input, .pole.is-blad select { border-color: #b3261e; }
.pole__blad { color: #b3261e; font-size: 14px; }
fieldset.pole { border: 0; padding: 0; margin: 0; }
.pigulki { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.pigulki label { position: relative; letter-spacing: 0; text-transform: none; font-weight: 400; font-size: 15px; }
.pigulki input { position: absolute; width: 1px; height: 1px; opacity: 0; clip-path: inset(50%); pointer-events: none; }
.pigulki label { cursor: pointer; }
.pigulki span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(29, 21, 24, .2); background: #fffdf9; transition: background-color .3s, color .3s, border-color .3s; }
.pigulki input:checked + span { background: var(--noc); color: var(--kosc); border-color: var(--noc); }
.pigulki input:focus-visible + span { outline: 2px solid var(--malina); outline-offset: 2px; }
.pole--zgoda label { display: flex; gap: 12px; align-items: flex-start; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 14.5px; color: var(--szary); }
.pole--zgoda input { width: 22px; height: 22px; margin: 0; flex-shrink: 0; accent-color: var(--malina); }
.pulapka { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.formularz__blad { grid-column: 1 / -1; color: #b3261e; }
.formularz .btn { grid-column: 1 / -1; justify-self: start; }
.formularz__ok { grid-column: 2; padding: 36px; border-radius: 6px; background: #fffdf9; box-shadow: inset 0 0 0 1px rgba(154, 10, 60, .2); }
.formularz__ok-h { font-family: var(--f-d); font-size: 40px; color: var(--malina); margin-bottom: 10px; }
.formularz__ok p + p { color: var(--szary); margin-bottom: 22px; }
@media (max-width: 899px) { .formularz__w { grid-template-columns: 1fr; } .formularz { grid-template-columns: 1fr; } .formularz__ok { grid-column: 1; } .formularz .btn { justify-self: stretch; } }

.tekst-dlugi { max-width: 820px; }
.tekst-dlugi h2 { font-family: var(--f-d); font-weight: 500; font-size: clamp(24px, 2.4vw, 32px); margin: 40px 0 12px; }
.tekst-dlugi h2:first-child { margin-top: 0; }
.tekst-dlugi p { color: var(--szary); margin-bottom: 12px; }
.e404 { min-height: 100svh; display: grid; align-items: center; padding: calc(var(--pasek) + 40px) 0 60px; }
.e404__nr { font-family: var(--f-d); font-weight: 900; font-size: clamp(120px, 26vw, 360px); line-height: .8; color: transparent; background: var(--perla); -webkit-background-clip: text; background-clip: text; margin-bottom: 20px; }
.e404 p:not(.e404__nr) { color: var(--szary-j); margin-top: 18px; max-width: 50ch; }

/* wejścia sekcji — stan początkowy tylko z JS (html.anim) */
html.anim [data-in] { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
