/* =========================================================
   ZMYSŁOFUN — koncept „GŁĘBIA" (immersyjne premium podwodne)
   Próbka strony głównej. Czcionki: IBM Plex Serif + Inter.
   ========================================================= */

:root {
  --deep:      #050218;   /* najgłębszy granat */
  --indigo:    #07002E;
  --indigo-2:  #150a48;
  --teal:      #00E0D5;   /* sygnaturowy turkus (blask) */
  --teal-deep: #1A6C7A;
  --purple:    #7B4DFF;
  --purple-2:  #5511F8;
  --surface:   #EEF5F8;   /* jasna sekcja „powierzchnia" */
  --ink:       #0C1226;
  --tl:        rgba(255,255,255,.82);  /* tekst jasny */
  --tl-soft:   rgba(255,255,255,.6);
  --glass:     rgba(255,255,255,.055);
  --glass-bd:  rgba(255,255,255,.14);

  --maxw: 1200px;
  --font-head: 'IBM Plex Serif', Georgia, serif;
  --font-body: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--font-body); font-size: 17px; line-height: 1.7;
  color: var(--tl); background: var(--deep); -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
::selection { background: var(--teal); color: var(--deep); }
::-webkit-scrollbar { width: 11px; }
::-webkit-scrollbar-track { background: var(--deep); }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--teal-deep), var(--purple)); border-radius: 9px; border: 2px solid var(--deep); }

/* kursor-macka z logo (B+: większa na klikalnych; !important nadpisuje pointer z .btn itd.) */
html { cursor: url("../img/cursor-tentacle.png?c=3") 12 6, auto; }
a, button, .btn, .to-top, .gx-burger, .tile, .tile__link, [role="button"], label, summary {
  cursor: url("../img/cursor-tentacle-lg.png?c=4") 16 8, pointer !important;
}
@media (hover: none),(pointer: coarse){ html, a, button, .btn { cursor: auto !important; } }

h1,h2,h3,h4 { font-family: var(--font-head); font-weight: 600; line-height: 1.1; margin: 0 0 .5em; color: #fff; }
h1 { font-size: clamp(2.8rem, 7vw, 5.2rem); letter-spacing: -.01em; }
h2 { font-size: clamp(2rem, 4.5vw, 3.2rem); letter-spacing: -.01em; }
h3 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); }
p  { margin: 0 0 1.2em; }
a  { color: var(--teal); text-decoration: none; transition: color .25s; }

.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: 26px; }
.eyebrow { font-family: var(--font-body); font-weight: 600; text-transform: uppercase;
  letter-spacing: .28em; font-size: .76rem; color: var(--teal); display: inline-block; margin-bottom: 1.1em; }
.section { position: relative; padding: 130px 0; }
.section__head { max-width: 720px; margin: 0 auto 64px; text-align: center; }
.section__head p { color: var(--tl-soft); font-size: 1.12rem; }

/* ---------- Animacja odsłaniania przy scrollu ---------- */
.reveal { opacity: 0; transform: translateY(34px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
.reveal[data-d="1"]{ transition-delay:.12s } .reveal[data-d="2"]{ transition-delay:.24s } .reveal[data-d="3"]{ transition-delay:.36s }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- Bąbelki w tle ---------- */
.bubbles { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.bubble { position: absolute; bottom: -60px; border-radius: 50%;
  background: radial-gradient(circle at 32% 28%, rgba(255,255,255,.5), rgba(0,224,213,.18) 55%, rgba(123,77,255,.12));
  border: 1px solid rgba(255,255,255,.16);
  animation: rise linear infinite; opacity: 0; }
@keyframes rise {
  0%   { transform: translateY(0) translateX(0) scale(.9); opacity: 0; }
  10%  { opacity: .8; }
  90%  { opacity: .5; }
  100% { transform: translateY(-115vh) translateX(20px) scale(1.05); opacity: 0; }
}
@media (prefers-reduced-motion: reduce){ .bubble{ display:none; } }

/* ---------- Przyciski ---------- */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  font-family: var(--font-body); font-weight: 600; font-size: .98rem; letter-spacing: .02em;
  padding: 17px 38px; border-radius: 999px; border: 1.5px solid transparent; cursor: pointer;
  transition: transform .25s var(--ease), box-shadow .25s, background .25s; text-transform: none; }
.btn:hover { transform: translateY(-3px); }
.btn--primary { color: #04121a; background: linear-gradient(120deg, var(--teal), #6ce0ff);
  box-shadow: 0 10px 34px rgba(0,224,213,.4); }
.btn--primary:hover { box-shadow: 0 16px 44px rgba(0,224,213,.55); color:#04121a; }
.btn--glass { color: #fff; background: var(--glass); border-color: var(--glass-bd);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.btn--glass:hover { background: rgba(255,255,255,.12); color:#fff; }
.btn--dark { color:#fff; background: linear-gradient(120deg, var(--purple), var(--purple-2));
  box-shadow: 0 10px 30px rgba(101,40,247,.4); }
.btn--dark:hover { color:#fff; box-shadow: 0 16px 40px rgba(101,40,247,.55); }

/* ---------- Nagłówek ---------- */
.gx-header { position: fixed; top: 0; left: 0; right: 0; z-index: 60; transition: background .4s, backdrop-filter .4s, box-shadow .4s; }
.gx-header.scrolled { background: rgba(7,0,40,.7); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: 0 8px 30px rgba(0,0,0,.3); }
.gx-nav { display: flex; align-items: center; justify-content: space-between; min-height: 112px; gap: 22px; padding: 16px 0 10px; }
.gx-logo img { height: 155px; width: auto; display: block; }
.gx-menu { display: flex; gap: 34px; list-style: none; margin: 0; padding: 0; }
.gx-menu a { color: rgba(255,255,255,.86); font-weight: 500; font-size: .98rem; position: relative; }
.gx-menu a::after { content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px; background: var(--teal); transition: width .3s var(--ease); }
.gx-menu a:hover, .gx-menu a.active { color:#fff; } .gx-menu a:hover::after, .gx-menu a.active::after { width:100%; }
.gx-actions { display:flex; align-items:center; gap:16px; }
.gx-burger { display:none; width:46px; height:46px; background:none; border:0; cursor:pointer; }
.gx-burger span { display:block; width:26px; height:2px; background:#fff; margin:6px auto; transition:.3s; border-radius:2px; }

/* ---------- HERO ---------- */
.hero { position: relative; min-height: 100vh; display: grid; place-items: center; text-align: center;
  overflow: hidden; background: var(--deep); }
.hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero__veil { position: absolute; inset: 0; z-index: 1;
  background:
    radial-gradient(120% 80% at 50% 18%, rgba(0,224,213,.16), transparent 55%),
    linear-gradient(180deg, rgba(5,2,24,.45) 0%, rgba(5,2,24,.5) 55%, var(--deep) 100%); }
.hero .container { position: relative; z-index: 3; padding-top: 90px; padding-bottom: 90px; }
.hero__kick { font-family: var(--font-head); letter-spacing: .12em; text-transform: uppercase;
  font-size: clamp(.95rem, 2vw, 1.25rem); color: var(--teal); margin-bottom: .8em; }
.hero h1 { margin-bottom: .3em; }
.hero h1 .ac { background: linear-gradient(120deg, var(--teal), var(--purple)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero__sub { font-size: clamp(1.05rem, 2.2vw, 1.3rem); color: var(--tl); max-width: 34em; margin: 0 auto 2.4em; }
.hero__cta { display:flex; flex-wrap:wrap; gap:18px; justify-content:center; }
.hero__scroll { position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%); z-index: 3;
  color: var(--tl-soft); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; text-align: center; }
.hero__scroll span { display:block; width:24px; height:38px; margin: 10px auto 0; border:2px solid rgba(255,255,255,.4); border-radius:14px; position:relative; }
.hero__scroll span::after { content:""; position:absolute; left:50%; top:8px; width:4px; height:8px; background:var(--teal); border-radius:2px; transform:translateX(-50%); animation: scroll 1.6s var(--ease) infinite; }
@keyframes scroll { 0%{ opacity:0; transform:translate(-50%,0) } 30%{opacity:1} 100%{ opacity:0; transform:translate(-50%,14px) } }

/* fala przejścia */
.wave { display:block; width:100%; height:90px; }
.wave--up { transform: rotate(180deg); }

/* ---------- Sekcja głęboka (kafelki sal) ---------- */
.deep { position: relative; background: linear-gradient(180deg, var(--deep), var(--indigo) 55%, var(--indigo-2)); }
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; position: relative; z-index: 2; }
.tile { position: relative; aspect-ratio: 3/4; border-radius: 22px; overflow: hidden; isolation: isolate;
  border: 1px solid rgba(255,255,255,.1); box-shadow: 0 24px 60px rgba(0,0,0,.45); }
.tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .8s var(--ease); }
.tile::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(7,0,40,.05) 25%, rgba(7,0,40,.85)); transition: background .4s; }
.tile:hover img { transform: scale(1.08); }
.tile:hover::after { background: linear-gradient(180deg, rgba(0,224,213,.12) 10%, rgba(7,0,40,.88)); }
.tile__body { position: absolute; inset: auto 0 0 0; z-index: 2; padding: 26px; text-align: left; }
.tile__no { font-family: var(--font-head); color: var(--teal); font-size: .9rem; letter-spacing:.1em; }
.tile__body h3 { margin: .15em 0 .35em; color:#fff; }
.tile__body p { margin:0; color: rgba(255,255,255,.72); font-size:.95rem; }
.tile__link { position:absolute; inset:0; z-index:3; }

/* ---------- Sekcja powierzchni (jasna) ---------- */
.surface { background: linear-gradient(180deg, #ffffff, var(--surface)); color: var(--ink); }
.surface h2 { color: var(--ink); }
.surface .eyebrow { color: var(--teal-deep); }
.feature-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.fcard { background: #fff; border: 1px solid rgba(26,108,122,.12); border-radius: 22px; padding: 38px 32px;
  box-shadow: 0 18px 44px rgba(26,108,122,.10); transition: transform .35s var(--ease), box-shadow .35s; }
.fcard:hover { transform: translateY(-8px); box-shadow: 0 28px 60px rgba(26,108,122,.18); }
.fcard .ic { width: 58px; height: 58px; border-radius: 18px; display:grid; place-items:center; font-size:1.6rem;
  background: linear-gradient(135deg, rgba(0,224,213,.18), rgba(123,77,255,.16)); margin-bottom: 22px; }
.fcard h3 { color: var(--ink); }
.fcard p { color: #475569; margin: 0; }
.surface .lead { max-width: 760px; margin: 0 auto 10px; text-align:center; color:#475569; font-size:1.12rem; }
.surface__cta { text-align:center; margin-top: 52px; }

/* ---------- Pasek „Współpraca" (głębia + ośmiornica) ---------- */
.band { position: relative; overflow: hidden; text-align: center; background: var(--indigo-2); }
.band__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:.5; }
.band__veil { position:absolute; inset:0; z-index:1; background: radial-gradient(80% 90% at 50% 50%, rgba(21,10,72,.55), rgba(5,2,24,.9)); }
.band .container { position:relative; z-index:2; padding: 130px 26px; }
.band h2 { color:#fff; }
.band p { color: var(--tl); max-width: 46em; margin: 0 auto 2em; font-size: 1.12rem; }

/* ---------- Stopka ---------- */
.gx-footer { background: var(--deep); color: var(--tl-soft); padding: 80px 0 30px; position: relative; }
.gx-footer-grid { display:grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 44px; margin-bottom: 44px; }
.gx-footer h4 { color:#fff; font-family: var(--font-body); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom: 18px; }
.gx-footer ul { list-style:none; padding:0; margin:0; } .gx-footer li { margin-bottom: 11px; }
.gx-footer a { color: var(--tl-soft); } .gx-footer a:hover { color:#fff; }
.gx-footer img { height: 155px; margin-bottom: 16px; }
.gx-foot-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top: 24px; text-align:center; font-size:.88rem; color: rgba(255,255,255,.45); }
.foot-legal { margin-bottom: 12px; display: flex; flex-wrap: wrap; gap: 6px 14px; justify-content: center; }
.foot-legal a { color: rgba(255,255,255,.7); } .foot-legal a:hover { color: var(--teal); }

/* ---------- Bąbelek „na górę" ---------- */
.to-top { position: fixed; right: 26px; bottom: 26px; z-index: 70; width: 60px; height: 60px; border-radius:50%;
  border: 2.5px solid #fff; color:#fff; font-size:1.6rem; display:grid; place-items:center; cursor:pointer;
  background: radial-gradient(circle at 34% 26%, rgba(255,255,255,.65), var(--teal) 38%, var(--purple) 100%);
  box-shadow: 0 12px 30px rgba(101,40,247,.55), 0 0 0 6px rgba(101,40,247,.16);
  opacity:0; visibility:hidden; transform: translateY(12px); transition: opacity .3s, transform .3s, visibility .3s; }
.to-top.show { opacity:1; visibility:visible; transform: translateY(0); animation: float 3.2s ease-in-out infinite; }
@keyframes float { 0%,100%{ translate:0 0 } 50%{ translate:0 -7px } }

/* ---------- Responsywność ---------- */
@media (max-width: 980px){
  .tiles, .feature-grid { grid-template-columns: 1fr; }
  .gx-footer-grid { grid-template-columns: 1fr; text-align:center; }
  .gx-menu { display:none; } .gx-burger { display:block; }
  .gx-header { background: rgba(7,0,40,.8); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  .gx-nav.open .gx-menu { display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0;
    background: var(--indigo); padding: 20px 26px; gap:18px; }
}
@media (max-width: 760px){
  .section { padding: 90px 0; }
  .hero { min-height: 92vh; }
  .gx-nav { min-height: 88px; padding: 12px 0 8px; }
  .gx-logo img { height: 120px; }
  .gx-footer img { height: 120px; }
}

/* =========================================================
   KOMPONENTY PODSTRON — koncept „Głębia"
   ========================================================= */

/* przyciski — dodatkowe warianty */
.btn--outline { color:#fff; background:transparent; border-color: rgba(255,255,255,.5); }
.btn--outline:hover { background: rgba(255,255,255,.1); color:#fff; }
.btn--teal { color:#04121a; background: linear-gradient(120deg, var(--teal), #6ce0ff); box-shadow: 0 10px 30px rgba(0,224,213,.4); }
.btn--sm { padding: 12px 26px; font-size: .9rem; }

.deep--alt { background: linear-gradient(180deg, var(--indigo-2), var(--indigo)); }
.section--tight { padding: 96px 0; }

/* ---------- Hero podstron ---------- */
.page-hero { position: relative; overflow: hidden; text-align: center;
  background: linear-gradient(180deg, var(--deep), var(--indigo) 70%, var(--indigo-2)); padding: 170px 0 110px; }
.page-hero .container { position: relative; z-index: 2; }
.page-hero h1 { font-size: clamp(2.4rem, 5.5vw, 4rem); }
.page-hero p { color: var(--tl); max-width: 40em; margin: 0 auto; font-size: 1.12rem; }
.breadcrumb { font-size: .85rem; color: var(--tl-soft); letter-spacing: .04em; margin-bottom: 14px; }
.breadcrumb a { color: var(--tl-soft); } .breadcrumb a:hover { color: var(--teal); }

/* ---------- Split (sale: zdjęcie + treść) ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; position: relative; z-index: 2; }
.split + .split { margin-top: 110px; }
.split--rev .split__media { order: -1; }
.split__media { position: relative; }
.split__media img { width: 100%; border-radius: 24px; box-shadow: 0 30px 70px rgba(0,0,0,.5); border: 1px solid rgba(255,255,255,.1); }
.split__body h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
.split__name { font-family: var(--font-head); font-style: italic; color: var(--teal); font-size: 1.15rem; margin-bottom: 1em; display:block; }
.split__body p { color: var(--tl); }
.surface .split__body p { color: #475569; }
.surface .split__name { color: var(--teal-deep); }
.spec-list { list-style: none; padding: 0; margin: 0 0 1.4em; display: grid; gap: 10px; }
.spec-list li { position: relative; padding-left: 30px; color: var(--tl); }
.surface .spec-list li { color:#475569; }
.spec-list li::before { content:""; position:absolute; left:0; top:.5em; width:14px; height:14px; border-radius:50%;
  background: radial-gradient(circle at 35% 30%, #fff, var(--teal) 60%, var(--purple)); }
.split__body b { color:#fff; } .surface .split__body b { color: var(--ink); }

/* ---------- FAQ ---------- */
.faq { max-width: 860px; margin: 0 auto; position: relative; z-index: 2; }
.faq__item { background: var(--glass); border: 1px solid var(--glass-bd); border-radius: 16px; margin-bottom: 14px; overflow: hidden;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.faq__q { width: 100%; text-align: left; background: none; border: 0; cursor: pointer; color: #fff;
  font-family: var(--font-head); font-weight: 600; font-size: 1.1rem; padding: 22px 26px;
  display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.faq__q::after { content: "+"; color: var(--teal); font-size: 1.6rem; transition: transform .3s var(--ease); }
.faq__item.open .faq__q::after { transform: rotate(45deg); }
.faq__a { max-height: 0; overflow: hidden; transition: max-height .35s var(--ease); }
.faq__a-in { padding: 0 26px 24px; color: var(--tl); }

/* ---------- Cennik ---------- */
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; max-width: 1040px; margin: 0 auto; position:relative; z-index:2; }
.price { background: #fff; border: 1px solid rgba(26,108,122,.12); border-radius: 24px; padding: 40px 32px; text-align: center;
  box-shadow: 0 18px 44px rgba(26,108,122,.10); transition: transform .35s var(--ease), box-shadow .35s; position: relative; }
.price:hover { transform: translateY(-8px); box-shadow: 0 30px 64px rgba(26,108,122,.2); }
.price--hot { border: 0; color: #fff; background: linear-gradient(160deg, var(--indigo-2), var(--purple-2)); box-shadow: 0 26px 60px rgba(101,40,247,.4); }
.price--hot .price__for { color: rgba(255,255,255,.75); }
.price__badge { position:absolute; top:-13px; left:50%; transform:translateX(-50%); background: var(--teal); color:#04121a;
  font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:6px 16px; border-radius:999px; }
.price .tagn { font-weight:600; color: var(--teal-deep); letter-spacing:.08em; text-transform:uppercase; font-size:.8rem; }
.price--hot .tagn { color: var(--teal); }
.amount { font-family: var(--font-head); font-size: 3rem; color: var(--ink); margin: 10px 0; line-height: 1; }
.price--hot .amount { color: #fff; }
.amount small { font-size: 1rem; color: #94a3b8; font-weight: 400; }
.price--hot .amount small { color: rgba(255,255,255,.7); }
.price__for { color: #475569; font-size: .96rem; }
.hours { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 780px; margin: 0 auto; position:relative; z-index:2; }
.hours .slot { background: var(--glass); border: 1px solid var(--glass-bd); border-radius: 14px; padding: 18px; text-align: center; color: #fff; font-weight: 500; }
.hours .slot--break { background: rgba(123,77,255,.14); border-style: dashed; }
.hours .slot small { display:block; color: var(--tl-soft); font-weight:400; font-size:.78rem; margin-bottom:3px; }

/* ---------- Kroki „Jak to działa" ---------- */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; position: relative; z-index: 2; }
.step { text-align: center; padding: 10px; }
.step__no { width: 72px; height: 72px; margin: 0 auto 22px; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--font-head); font-size: 1.7rem; color: #04121a; font-weight: 600;
  background: radial-gradient(circle at 35% 30%, #fff, var(--teal) 55%, var(--purple)); box-shadow: 0 10px 30px rgba(0,224,213,.35); }
.step h3 { color:#fff; }
.step p { color: var(--tl-soft); }

/* ---------- Opinie ---------- */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; position: relative; z-index: 2; }
.quote { background: var(--glass); border: 1px solid var(--glass-bd); border-radius: 22px; padding: 34px;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.quote__mark { font-family: var(--font-head); font-size: 3rem; line-height: .6; color: var(--teal); }
.quote p { color: var(--tl); font-style: italic; margin: 14px 0 20px; }
.quote__who { display: flex; align-items: center; gap: 12px; }
.quote__av { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--teal), var(--purple)); display:grid; place-items:center; color:#04121a; font-weight:700; }
.quote__who b { color: #fff; display: block; font-size: .96rem; } .quote__who span { color: var(--tl-soft); font-size: .85rem; }

/* ---------- Kontakt ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: start; position: relative; z-index: 2; }
.cinfo { list-style: none; padding: 0; margin: 0 0 30px; }
.cinfo li { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px solid rgba(0,0,0,.08); color:#475569; }
.cinfo .lbl { font-weight: 600; color: var(--ink); min-width: 120px; }
.field { margin-bottom: 18px; }
.field label { display:block; font-weight:600; color: var(--ink); margin-bottom:7px; font-size:.92rem; }
.field input, .field textarea { width:100%; padding: 14px 16px; border: 1px solid rgba(26,108,122,.2); border-radius: 12px;
  font-family: inherit; font-size: 1rem; background:#fff; color: var(--ink); transition: border-color .2s, box-shadow .2s; }
.field input:focus, .field textarea:focus { outline:0; border-color: var(--teal); box-shadow: 0 0 0 4px rgba(0,224,213,.15); }
.field textarea { min-height: 140px; resize: vertical; }
.fcheck { display:flex; gap:10px; align-items:flex-start; font-size:.88rem; color:#475569; margin-bottom:18px; }
.fcheck input { margin-top:4px; }
.fnote { display:none; padding:13px 16px; border-radius:12px; margin-bottom:16px; font-size:.95rem; }
.fnote.show { display:block; } .fnote.ok { background:#e7faf3; color:#0b6b4f; } .fnote.err { background:#fdecec; color:#9b1c1c; }
.map-embed { border-radius: 22px; overflow: hidden; border: 1px solid rgba(0,0,0,.1); box-shadow: 0 18px 44px rgba(0,0,0,.12); margin-top: 52px; position:relative; z-index:2; }
.map-embed iframe { display:block; width:100%; height: 360px; border:0; }

/* ---------- Galeria + lightbox ---------- */
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; position: relative; z-index: 2; }
.gallery a { display:block; border-radius:16px; overflow:hidden; border: 1px solid rgba(255,255,255,.08); }
.gallery img { aspect-ratio: 1/1; object-fit: cover; width: 100%; transition: transform .5s var(--ease); }
.gallery a:hover img { transform: scale(1.08); }
.lightbox { position: fixed; inset: 0; z-index: 200; display: none; align-items: center; justify-content: center;
  background: rgba(5,2,24,.94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.lightbox.open { display: flex; }
.lightbox img.lb { max-width: 88vw; max-height: 84vh; border-radius: 12px; box-shadow: 0 30px 90px rgba(0,0,0,.7); }
.lb-btn { position: absolute; background: rgba(255,255,255,.12); border: 0; color:#fff; cursor:pointer; width: 56px; height: 56px;
  border-radius: 50%; font-size: 1.7rem; display:grid; place-items:center; transition: background .2s, transform .2s; }
.lb-btn:hover { background: rgba(255,255,255,.28); transform: scale(1.06); }
.lb-prev { left: 22px; top: 50%; transform: translateY(-50%); } .lb-next { right: 22px; top: 50%; transform: translateY(-50%); }
.lb-close { top: 22px; right: 24px; width: 48px; height: 48px; }
.lb-count { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.85); font-size:.9rem; }

/* ---------- Strony prawne ---------- */
.legal-wrap { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 280px 1fr; gap: 50px; align-items: start; position:relative; z-index:2; }
.legal-toc { position: sticky; top: 132px; background: var(--glass); border:1px solid var(--glass-bd); border-radius: 18px; padding: 24px;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); max-height: calc(100vh - 140px); overflow: auto; }
.legal-toc__title { font-family: var(--font-head); color:#fff; font-size: 1.05rem; margin: 0 0 14px; }
.legal-toc ul { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.legal-toc a { color: var(--tl-soft); font-size:.9rem; line-height:1.45; } .legal-toc a:hover { color: var(--teal); }
.legal { color: var(--tl); }
.legal h2 { color:#fff; font-size: 1.4rem; margin-top: 1.7em; scroll-margin-top: 132px; }
.legal h3 { color: var(--teal); font-size: 1.12rem; margin-top: 1.2em; scroll-margin-top: 132px; }
.legal p, .legal li { color: var(--tl); } .legal ul { padding-left: 1.2em; } .legal li { margin-bottom: 8px; }
.legal a { color: var(--teal); word-break: break-word; }
.legal-back { margin-top: 40px; }
.legal-downloads { display:flex; flex-wrap:wrap; gap:14px; margin-top:16px; }

/* ---------- Osadzony booking (Amelia) ---------- */
.booking-embed { position: relative; z-index: 2; max-width: 1040px; margin: 0 auto; border-radius: 20px; overflow: hidden;
  border: 1px solid var(--glass-bd); background: #fff; box-shadow: 0 26px 70px rgba(0,0,0,.45); }
.booking-embed iframe { display: block; width: 100%; height: 1150px; border: 0; background: #fff; }
.booking-hint { text-align:center; color: var(--tl-soft); max-width: 640px; margin: 0 auto 36px; }
@media (max-width: 760px){ .booking-embed iframe { height: 1400px; } }

/* ---------- Baner cookies ---------- */
.cookie-bar { position: fixed; left: 18px; right: 18px; bottom: 18px; z-index: 90; max-width: 1080px; margin: 0 auto;
  display: flex; gap: 22px; align-items: center; justify-content: space-between; flex-wrap: wrap;
  background: rgba(7,0,40,.94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid var(--glass-bd); border-radius: 18px; padding: 20px 26px; box-shadow: 0 18px 54px rgba(0,0,0,.55);
  transform: translateY(160%); transition: transform .5s var(--ease); }
.cookie-bar.show { transform: translateY(0); }
.cookie-bar__txt { flex: 1 1 380px; }
.cookie-bar__txt strong { color: #fff; display: block; margin-bottom: 4px; font-family: var(--font-head); font-size: 1.05rem; }
.cookie-bar__txt p { color: var(--tl-soft); font-size: .9rem; margin: 0; line-height: 1.5; }
.cookie-bar__btns { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 640px){ .cookie-bar { padding: 16px; } .cookie-bar__btns { width: 100%; } .cookie-bar__btns .btn { flex: 1; } }

/* ---------- Sticky CTA ---------- */
.sticky-cta { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 160%); z-index: 65;
  display: flex; align-items: center; gap: 18px; padding: 12px 14px 12px 26px; border-radius: 999px;
  background: rgba(7,0,40,.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid var(--glass-bd); box-shadow: 0 16px 44px rgba(0,0,0,.4); transition: transform .45s var(--ease); }
.sticky-cta.show { transform: translate(-50%, 0); }
.sticky-cta span { color: #fff; font-weight: 600; font-size: .95rem; }
.sticky-cta__x { background:none;border:0;color:var(--tl-soft);cursor:pointer;font-size:1.2rem;padding:0 4px; }
@media (max-width: 600px){ .sticky-cta span { display:none; } .sticky-cta { padding: 10px 12px; } }

/* ---------- Responsywność komponentów ---------- */
@media (max-width: 980px){
  .split, .contact-grid { grid-template-columns: 1fr !important; gap: 36px; }
  .split--rev .split__media { order: 0; }
  .split + .split { margin-top: 72px; }
  .price-grid, .hours, .steps, .quotes { grid-template-columns: 1fr !important; }
  .legal-wrap { grid-template-columns: 1fr; }
  .legal-toc { position: static; max-height: none; }
}
@media (max-width: 760px){
  .gallery { grid-template-columns: repeat(2, 1fr) !important; }
  .page-hero { padding: 130px 0 80px; }
}
