/* Lokamo :: system "bento + ziarno" strony glownej v4 (H5). Jedno miejsce na tokeny kafli,
   tla z ziarnem, podpisy, hover, wejscie i rytm sekcji. Laduje sie po v4.css i kafle.css,
   wiec wyrownuje wszystkie sekcje do jednego jezyka.

   Rodzina tel (klasa .bx + wariant):
     --kobalt   nasycony kobalt z rozswietleniem w rogu (bialy tekst, 5,6:1)
     --blekit   jasny kobalt: od blekitu do jasnego kobaltu, miekkie swiatlo (granatowy tekst)
     --granat   gleboki granat z kobaltowa poswiata (bialy tekst)
     --krem     cieply krem (grafitowy tekst)
     --mgla     chlodna mgla kobaltu (grafitowy tekst)
     --jasny    chlodna biel (grafitowy tekst)
   Kazdy wariant ma statyczne ziarno (::after, SVG feTurbulence, nie animowane).
   Ruch: tylko transform/opacity. Wejscie raz przy przewinieciu (.is-w z kafle.js),
   hover = scena rosnie o 2% (urzadzenia z kursorem). prefers-reduced-motion: bez ruchu. */

:root{
  --bx-r:32px;--bx-r-s:22px;--bx-gap:20px;
  --bx-pad:30px 36px 34px;
  --bx-ink:#0D0D0F;--bx-navy:#0B1340;--bx-navy2:#2A3366;
  --bx-sh:0 1px 2px rgba(16,24,40,.05),0 30px 60px -36px rgba(16,24,40,.32);
  --bx-line:.5px solid rgba(13,13,15,.1);
  --bx-e:cubic-bezier(.16,1,.3,1);
  --sek:120px;
  /* Tla */
  --bx-kobalt:
    radial-gradient(70% 80% at 92% 0%,rgba(186,202,255,.6),rgba(186,202,255,0) 62%),
    radial-gradient(60% 70% at 0% 100%,rgba(9,18,120,.5),rgba(9,18,120,0) 70%),
    linear-gradient(104deg,#1D36DC 0%,#2B47F7 50%,#4462FF 100%);
  --bx-blekit:
    radial-gradient(55% 75% at 8% 0%,rgba(255,255,255,.95),rgba(255,255,255,0) 70%),
    radial-gradient(60% 90% at 100% 100%,rgba(70,98,255,.55),rgba(70,98,255,0) 72%),
    linear-gradient(112deg,#EEF2FF 0%,#D5DEFF 42%,#A9B9FF 78%,#8FA3FF 100%);
  --bx-granat:
    radial-gradient(70% 80% at 88% 0%,rgba(70,96,255,.42),rgba(70,96,255,0) 66%),
    radial-gradient(50% 60% at 0% 100%,rgba(123,97,255,.16),rgba(123,97,255,0) 70%),
    linear-gradient(165deg,#141A3D 0%,#0A0E26 100%);
  --bx-krem:
    radial-gradient(80% 70% at 12% 0%,rgba(255,255,255,.85),rgba(255,255,255,0) 70%),
    linear-gradient(165deg,#F8F2EA 0%,#F1E8DC 100%);
  --bx-mgla:
    radial-gradient(80% 70% at 88% 0%,rgba(255,255,255,.95),rgba(255,255,255,0) 70%),
    linear-gradient(165deg,#EEF1FF 0%,#DFE5FF 100%);
  --bx-jasny:
    radial-gradient(80% 70% at 12% 0%,#fff,rgba(255,255,255,0) 70%),
    linear-gradient(165deg,#F7F8FB 0%,#ECEEF4 100%);
}
@media (max-width:960px){:root{--sek:96px;--bx-pad:26px 28px 30px}}
@media (max-width:560px){:root{--sek:72px;--bx-r:26px;--bx-pad:22px 20px 26px;--bx-gap:14px}}

/* ---------- Kafel ---------- */
.bx{--ink:var(--bx-ink);position:relative;isolation:isolate;overflow:hidden;border-radius:var(--bx-r);color:var(--ink);background:var(--bx-jasny)}
.bx::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:url("/assets/v4/ziarno-ciemne.svg") 0 0/180px 180px;opacity:.06}
.bx--kobalt{--ink:#fff;background:var(--bx-kobalt);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.bx--blekit{--ink:var(--bx-navy);background:var(--bx-blekit);box-shadow:inset 0 0 0 .5px rgba(46,75,255,.14)}
.bx--granat{--ink:#fff;background:var(--bx-granat);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.08)}
.bx--krem{background:var(--bx-krem);box-shadow:inset 0 0 0 .5px rgba(120,80,30,.08)}
.bx--mgla{background:var(--bx-mgla);box-shadow:inset 0 0 0 .5px rgba(46,75,255,.08)}
.bx--jasny{background:var(--bx-jasny);box-shadow:inset 0 0 0 .5px rgba(13,13,15,.06)}
.bx--kobalt::after,.bx--granat::after{background-image:url("/assets/v4/ziarno.svg");opacity:.26;mix-blend-mode:soft-light}
.bx--blekit::after{opacity:.09}

/* Kafel-scena: scena na srodku, podpis w lewym dolnym rogu */
.bx--sc{display:flex;flex-direction:column;padding:var(--bx-pad)}
.bx__sc{flex:1;display:grid;place-items:center;padding:12px 0 28px;transition:transform .6s var(--bx-e)}
.bx__p{margin:0;max-width:17em;font-size:23px;line-height:1.22;font-weight:600;letter-spacing:-.025em;text-wrap:balance;color:var(--ink)}
.bx__l{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:6px;font-size:15.5px;font-weight:560;text-decoration:none;color:var(--ink)}
.bx__l svg{width:15px;height:15px;transition:transform .25s var(--bx-e)}
.bx__l:hover svg{transform:translateX(3px)}
.bx-dop{margin:16px 0 0;font-size:13px;color:var(--steel,#626268)}
@media (hover:hover){.bx--sc:hover .bx__sc{transform:scale(1.02)}}
@media (max-width:560px){.bx__p{font-size:20px}}

/* Sceny w kaflach graja tylko w widoku (kafle.js: .is-gra) */
.bx{--kl-a:paused}
.bx.is-gra{--kl-a:running}

/* Wejscie kafla raz przy przewinieciu (kafle.js dodaje .is-w) */
.js [data-kl]:not(.is-w){opacity:0;transform:translate3d(0,28px,0)}
.js [data-kl].is-w{transition:opacity .7s var(--bx-e),transform .9s var(--bx-e);transition-delay:calc(var(--kl-i,0) * 70ms)}

/* ---------- Rytm sekcji: jeden oddech miedzy sekcjami ---------- */
.wsp{padding:8px 0 0}
.wsp__in{border-top:0;padding-top:40px}
.kl,.droga,.pas,.tf-s,.sg-s,.pn,.cn,.st,.fq{padding:var(--sek) 0 0}
.fq{padding-bottom:var(--sek)}
.kl__head,.pn__head,.cn__head{max-width:760px;margin-bottom:40px}
.kl__head h2,.pn__head h2,.cn__head h2,.fq h2{font-size:clamp(32px,4vw,52px);letter-spacing:-.04em;line-height:1.05}
@media (max-width:560px){.kl__head,.pn__head,.cn__head{margin-bottom:28px}}

/* ---------- Kafle "Co dostajesz": dwie rowne kolumny, rowne proporcje ---------- */
.kl__siatka{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--bx-gap)}
.kl__k{aspect-ratio:1/1;min-height:0;padding:var(--bx-pad)}
.kl__sc{padding:8px 0 24px}
@media (max-width:960px){.kl__siatka{grid-template-columns:1fr}.kl__k{aspect-ratio:auto;min-height:460px}}
@media (max-width:560px){.kl__k{min-height:420px}}

/* ---------- Droga goscia: scena jako kafel mgly z ziarnem ---------- */
.scena{border-radius:var(--bx-r);background:var(--bx-mgla);box-shadow:inset 0 0 0 .5px rgba(46,75,255,.08)}
.scena::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:url("/assets/v4/ziarno-ciemne.svg") 0 0/180px 180px;opacity:.06}
.scena__a{background:rgba(255,255,255,.75)}
.tor{box-shadow:0 0 0 .5px rgba(13,13,15,.08),0 18px 40px -22px rgba(16,24,40,.28)}

/* ---------- Wezwania (srodek i koniec): jasny kobaltowy gradient z ziarnem ---------- */
.pas__in{padding:56px 60px;border-radius:var(--bx-r)}
.pas h2{color:var(--bx-navy);font-size:clamp(28px,3.2vw,42px)}
.pas .sl__kroki,.st .sl__kroki{color:var(--bx-navy2)}
.pas .sl__kroki i,.st .sl__kroki i{background:rgba(255,255,255,.75);color:var(--bx-navy)}
.pas .sl__kroki li::after,.st .sl__kroki li::after{background:rgba(11,19,64,.25)}
.st__in{padding:88px 32px 64px;border-radius:calc(var(--bx-r) + 8px);box-shadow:none}
.st__znak{color:var(--bx-navy)}
.st h2{color:var(--bx-navy)}
.st__lub{color:var(--bx-navy2)}
.st__lub a{color:var(--bx-navy)}
@media (max-width:960px){.pas__in{padding:40px 28px}}
@media (max-width:560px){.pas__in{padding:30px 18px 26px}.st__in{padding:52px 18px 40px;border-radius:var(--bx-r)}}

/* ---------- Strefa Gastro: zdjecie i liczby jako kafle ---------- */
.sg__foto{border-radius:var(--bx-r);box-shadow:var(--bx-sh)}
.sg__liczby li{padding:22px 22px 20px;border-radius:var(--bx-r-s);box-shadow:none}
.sg__liczby li:first-child{background:var(--bx-krem);box-shadow:inset 0 0 0 .5px rgba(120,80,30,.08)}
.sg__liczby li:last-child{background:var(--bx-mgla);box-shadow:inset 0 0 0 .5px rgba(46,75,255,.08)}
.sg__liczby b{font-variant-numeric:tabular-nums}
.sg__nalepka{border-radius:20px}

/* ---------- Panel wlasciciela: trzy kafle-sceny ---------- */
.pn__siatka{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--bx-gap)}
.pn__k{min-height:500px}
.pn__k .bx__p{font-size:21px}
@media (max-width:1020px){.pn__siatka{grid-template-columns:1fr 1fr}.pn__k:last-child{grid-column:1/-1;min-height:420px}}
@media (max-width:700px){.pn__siatka{grid-template-columns:1fr}.pn__k,.pn__k:last-child{min-height:420px}}

/* Scena 1: wieczor na zywo (slupki rosna po wejsciu) */
.pz{width:min(340px,100%);padding:20px 20px 16px;border-radius:24px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.16);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;text-align:left}
.pz__g{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:rgba(255,255,255,.7)}
.pz__g span{display:flex;align-items:center;gap:7px;color:#9BE3BE;font-weight:600}
.pz__g span i{width:7px;height:7px;border-radius:50%;background:#30A46C;box-shadow:0 0 0 3px rgba(48,164,108,.2);animation:pz-puls 2s ease-in-out infinite var(--kl-a,paused)}
@keyframes pz-puls{50%{opacity:.4}}
.pz__v{margin-top:10px;font-size:44px;font-weight:620;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums}
.pz__v small{margin-left:8px;font-size:14px;font-weight:500;letter-spacing:0;color:rgba(255,255,255,.62)}
.pz__w{display:flex;align-items:flex-end;gap:6px;height:96px;margin-top:18px}
.pz__w i{flex:1;height:100%;border-radius:6px;background:rgba(255,255,255,.2);transform-origin:50% 100%;transform:scaleY(var(--h))}
.pz__w i:nth-child(8){background:linear-gradient(180deg,#9FB0FF,#4462FF)}
.js .pn__k:not(.is-w) .pz__w i{transform:scaleY(.04)}
.js .pn__k.is-w .pz__w i{transition:transform .9s cubic-bezier(.3,1.25,.6,1);transition-delay:calc(.25s + var(--i,0) * 50ms)}
.pz__zr{display:flex;gap:6px;margin-top:14px}
.pz__zr span{padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.1);font-size:12.5px;font-weight:560;color:rgba(255,255,255,.85)}

/* Scena 2: LokamoAI w ChatGPT i Claude */
.pc{width:min(340px,100%);display:grid;gap:10px;text-align:left}
.pc__ap{display:flex;align-items:center;gap:8px;justify-self:center;margin-bottom:4px;padding:6px 12px 6px 8px;border-radius:99px;background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.28);font-size:13px;font-weight:600;color:#fff}
.pc__ap img{width:18px;height:18px;padding:2px;border-radius:50%;background:#fff}
.pc__ty{justify-self:end;max-width:86%;padding:11px 15px;border-radius:18px 18px 6px 18px;background:#0B1340;color:#fff;font-size:15px;line-height:1.35;animation:pc-in 9s var(--bx-e) infinite var(--kl-a,paused)}
.pc__ai{max-width:90%;padding:12px 15px;border-radius:18px 18px 18px 6px;background:#fff;color:#0D0D0F;font-size:15px;line-height:1.35;box-shadow:0 18px 36px -20px rgba(4,9,58,.6);animation:pc-in 9s var(--bx-e) infinite var(--kl-a,paused);animation-delay:1.2s}
.pc__ai b{display:flex;align-items:center;gap:6px;margin-bottom:3px;font-size:12.5px;color:#2238D9}
.pc__ai b svg{width:13px;height:13px}
.pc__akcje{display:flex;gap:8px;animation:pc-in 9s var(--bx-e) infinite var(--kl-a,paused);animation-delay:2.2s}
.pc__akcje span{padding:9px 15px;border-radius:99px;background:rgba(255,255,255,.18);color:#fff;font-size:14px;font-weight:600;box-shadow:inset 0 0 0 .5px rgba(255,255,255,.3)}
.pc__akcje .is-on{background:#fff;color:#0D0D0F;box-shadow:none;animation:pc-wcisk 9s cubic-bezier(.3,1.4,.5,1) infinite var(--kl-a,paused)}
@keyframes pc-in{0%,4%{opacity:0;transform:translate3d(0,10px,0) scale(.98)}12%,92%{opacity:1;transform:none}100%{opacity:0;transform:none}}
@keyframes pc-wcisk{0%,52%{transform:none}55%{transform:scale(.92)}60%,100%{transform:none}}

/* Scena 3: zamowienie trafia na bon w kasie */
.pk{width:min(340px,100%);display:grid;gap:14px;justify-items:center}
.pk__bon{width:100%;padding:16px 18px;border-radius:18px;background:#fff;text-align:left;box-shadow:0 0 0 .5px rgba(13,13,15,.07),0 24px 48px -26px rgba(60,40,10,.4);animation:pk-bon 8s var(--bx-e) infinite var(--kl-a,paused)}
.pk__bon p{display:flex;justify-content:space-between;gap:10px;font-size:14.5px}
.pk__bon p+p{margin-top:6px;color:#45454B}
.pk__bon b{font-weight:620}
.pk__bon em{font-style:normal;font-family:var(--mono);font-size:12.5px;color:#626268}
.pk__kasy{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.pk__kasy li{display:flex;align-items:center;gap:6px;padding:8px 13px;border-radius:99px;background:rgba(255,255,255,.75);box-shadow:inset 0 0 0 .5px rgba(13,13,15,.08);font-size:13.5px;font-weight:600;color:#2B2B30}
.pk__kasy li:first-child{background:#0D0D0F;color:#fff;box-shadow:none}
.pk__kasy li:first-child i{width:14px;height:14px;border-radius:50%;background:#30A46C;position:relative;animation:pk-ok 8s cubic-bezier(.3,1.5,.5,1) infinite var(--kl-a,paused)}
.pk__kasy li:first-child i::after{content:"";position:absolute;left:4px;top:3.5px;width:5px;height:3px;border-left:1.6px solid #fff;border-bottom:1.6px solid #fff;transform:rotate(-45deg)}
@keyframes pk-bon{0%,6%{opacity:0;transform:translate3d(0,-14px,0)}16%,90%{opacity:1;transform:none}100%{opacity:0;transform:translate3d(0,6px,0)}}
@keyframes pk-ok{0%,22%{transform:scale(0)}30%,100%{transform:none}}

/* ---------- Cennik: plany jako kafle ---------- */
.cn__plany{gap:12px}
.pl{position:relative;isolation:isolate;overflow:hidden;min-height:228px;padding:26px 26px 24px;border-radius:var(--bx-r-s);box-shadow:none}
.pl::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("/assets/v4/ziarno-ciemne.svg") 0 0/180px 180px;opacity:.06}
.pl:nth-child(1){background:var(--bx-krem);box-shadow:inset 0 0 0 .5px rgba(120,80,30,.08)}
.pl:nth-child(2){background:var(--bx-jasny);box-shadow:inset 0 0 0 .5px rgba(13,13,15,.06)}
.pl:nth-child(3){background:var(--bx-mgla);box-shadow:inset 0 0 0 .5px rgba(46,75,255,.1)}
.pl.pl--pro{background:var(--bx-kobalt);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 30px 60px -34px rgba(29,54,220,.7)}
.pl.pl--pro::after{background-image:url("/assets/v4/ziarno.svg");opacity:.26;mix-blend-mode:soft-light}
.pl.pl--pro .pl__c span,.pl.pl--pro .pl__o{color:rgba(255,255,255,.86)}
.pl__c{margin-top:auto;padding-top:28px}
.pl__c b{font-size:48px;font-variant-numeric:tabular-nums}
.pl__o{min-height:2.9em}
.cn__dod a{border-radius:var(--bx-r-s);box-shadow:inset 0 0 0 .5px rgba(13,13,15,.12);background:rgba(255,255,255,.55);transition:background-color .2s}
.cn__dod a:hover{background:#fff}
@media (max-width:480px){.pl{min-height:0}.pl__c{padding-top:18px}.pl__o{min-height:0}}

/* ---------- FAQ: jedna karta z cienkimi liniami zamiast stosu bialych kart ---------- */
.fq__lista{gap:0;padding:6px 8px;border-radius:var(--bx-r);background:var(--bx-jasny);box-shadow:inset 0 0 0 .5px rgba(13,13,15,.07)}
.fq details{border-radius:0;background:none;box-shadow:none}
.fq details+details{border-top:var(--bx-line)}
.fq summary{min-height:68px;padding:18px 18px;border-radius:16px}
.fq summary svg{background:#fff;box-shadow:inset 0 0 0 .5px rgba(13,13,15,.1)}
.fq details p{padding:0 18px 22px}

@media (prefers-reduced-motion:reduce){
  .js [data-kl]:not(.is-w){opacity:1;transform:none}
  .bx--sc:hover .bx__sc{transform:none}
  .js .pn__k:not(.is-w) .pz__w i{transform:scaleY(var(--h))}
}

/* Liczby Strefy z data-fakt (span w <b>): span dziedziczy krój liczby, nie podpisu */
.sg__nalepka b span,.sg__liczby b span{font:inherit;color:inherit;letter-spacing:inherit}
/* H7: kafel ze zdjeciem pod spodem (wlasciciel z tabletem pod granatem) */
.bx--foto>.bx__foto{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;opacity:.3;transform:scale(1.04)}
.bx--foto::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,14,40,.2),rgba(10,14,40,.75))}

/* Lista podpowiedzi pod polem "Sprawdz lokal" musi wystawac poza kafel i nad kolejnymi sekcjami:
   kafel z formularzem nie przycina (tlo i ziarno sa juz zaokraglone same), a sekcja z polem
   leży wyzej w kolejnosci malowania niz sekcje po niej. */
.bx:has([data-sl]){overflow:visible}
section:has([data-sl]){position:relative;z-index:6}
