/* Liketeacher v5 – paleta 60-30-10, tęczowy akcent, sekcja online, profil nauczyciela, opinie, asystent Sówka.
   60% ciepłe neutralne (krem/piasek) · 30% spokojny drugi kolor (teal #2A9D8F + granat #264653) · 10% koral (główne CTA, marka). */
:root{
  --teal:#2A9D8F; --teal-600:#23867A; --teal-700:#1D6F65; --teal-200:#A8D8CF; --teal-100:#D3EEE9; --teal-50:#EAF6F3;
  --navy:#264653; --slate:#264653; --sand:#F4E9DC; --sand-50:#FBF6F0;
  --rainbow:linear-gradient(90deg,#FF6F61,#FF9F43,#F9D56E,#7BD389,#2A9D8F,#4D96FF,#9B6BFF,#FF6F9F,#FF6F61);
}
/* 60/30: tła sekcji, kolor drugorzędny w elementach pomocniczych */
.section--tint{background:linear-gradient(180deg,var(--sand-50),var(--bg))}
.kicker{color:var(--teal-700)}
.step__num{background:var(--teal-50);color:var(--teal-700);border-color:var(--teal-100)}
.feature__ico{background:var(--teal-50);color:var(--teal)}
.chip{background:var(--teal-50);color:var(--teal-700)}
.btn--ghost:hover{border-color:var(--teal-200);background:var(--teal-50)}
.btn--teal{background:var(--teal);color:#fff;box-shadow:0 8px 20px -10px rgba(42,157,143,.8)}
.btn--teal:hover{background:var(--teal-600);transform:translateY(-1px)}
.btn--teal-ghost{background:#fff;border:1.5px solid var(--teal-200);color:var(--teal-700)}
.btn--teal-ghost:hover{background:var(--teal-50);border-color:var(--teal)}
.list--teal li::before{background-color:var(--teal-100);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D6F65' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E")}
.site-footer{background:var(--navy);color:#DCE7EA}
.site-footer .muted,.site-footer .small.muted{color:#A9BEC4}
.site-footer h4{color:#fff}
.site-footer a{color:#DCE7EA}
.site-footer a:hover{color:#fff}
.site-footer .brand__word{color:#fff}
.site-footer .footer__bottom{border-color:rgba(255,255,255,.12)}
.res__badge{background:var(--navy)!important;color:#fff!important}
.lt-me i{background:var(--teal)!important;box-shadow:0 0 0 6px rgba(42,157,143,.22)!important}
.plan__badge--soft{background:var(--teal-50);color:var(--teal-700)}
.tag:not(.tag--feat):not(.tag--sample){background:var(--teal-50);color:var(--teal-700)}

/* tęczowy akcent – cienka, powoli przesuwająca się linia pod nagłówkiem + obwódka CTA przy hoverze */
.site-header{position:sticky}
.rainbow-line{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--rainbow);background-size:300% 100%;animation:ltRainbow 14s linear infinite;opacity:.85;pointer-events:none;z-index:2}
@keyframes ltRainbow{to{background-position:300% 0}}
.btn--primary{position:relative;isolation:isolate}
.btn--primary::before{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:2px;background:var(--rainbow);background-size:300% 100%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .35s;animation:ltRainbow 6s linear infinite;z-index:-1;pointer-events:none}
.btn--primary:hover::before,.btn--primary:focus-visible::before{opacity:1}

/* sekcja online */
.section--online{background:linear-gradient(180deg,var(--bg),var(--teal-50) 60%,var(--bg))}
.online__grid{display:grid;gap:36px;align-items:center}
.online__art img{width:100%;height:auto;display:block;border-radius:28px;box-shadow:0 30px 60px -36px rgba(38,70,83,.45)}
@media (min-width:900px){.online__grid{grid-template-columns:1.1fr 1fr;gap:56px}}
.plan__art{display:block;width:100%;max-width:240px;height:auto;margin:6px auto 4px;border-radius:16px}

/* social */
.social{display:flex;gap:10px;margin-top:14px}
.social__a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.22);color:#fff!important;transition:background .2s,border-color .2s}
.social__a:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5)}
.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* gwiazdki / plakietka oceny */
.stars{position:relative;display:inline-block;line-height:1;letter-spacing:1px;font-size:.85rem;vertical-align:-1px}
.stars i{font-style:normal;color:#E7DDD6}
.stars b{position:absolute;inset:0 auto 0 0;width:var(--v);overflow:hidden;white-space:nowrap;color:#F5A524;font-weight:400}
.rate{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;color:var(--ink-2)}
.rate b{color:var(--ink);font-weight:700}
.rate--new{font-size:.75rem;font-weight:600;color:var(--teal-700);background:var(--teal-50);padding:2px 8px;border-radius:99px}
.res__rate{margin:2px 0 1px}
.lt-card__rate{display:block;margin:3px 0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* profil nauczyciela – karta (modal) i pełny widok */
html.tp-open{overflow:hidden}
.tp[hidden],.mascot[hidden]{display:none!important}
.tp{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;padding:20px}
.tp__backdrop{position:absolute;inset:0;background:rgba(38,70,83,.42);backdrop-filter:blur(3px);opacity:0;transition:opacity .22s}
.tp__sheet{position:relative;width:min(560px,100%);max-height:min(88vh,900px);overflow-y:auto;overscroll-behavior:contain;background:#fff;border-radius:28px;box-shadow:0 40px 80px -30px rgba(38,70,83,.5);padding:24px 24px 20px;transform:translateY(16px) scale(.98);opacity:0;transition:transform .25s var(--ease),opacity .22s;outline:none}
.tp.is-on .tp__backdrop{opacity:1}
.tp.is-on .tp__sheet{transform:none;opacity:1}
.tp--full{padding:0}
.tp--full .tp__sheet{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;padding:28px max(20px,calc(50vw - 420px)) 60px}
.tp__close{position:sticky;top:0;float:right;margin:-8px -8px 0 0;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:22px;line-height:1;cursor:pointer;color:var(--navy);z-index:2}
.tp__close:hover{background:var(--teal-50)}
.tp__sample{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8A5300;background:#FFF4E5;border:1px dashed #F0B35A;border-radius:99px;padding:4px 10px;margin-bottom:14px}
.tp__head{display:flex;gap:18px;align-items:center;clear:both}
.tp__photo{position:relative;flex:none;width:112px;height:112px;border-radius:28px;background:linear-gradient(135deg,var(--teal-100),var(--coral-100));display:grid;place-items:center;overflow:hidden}
.tp__photo span{font-family:var(--font-serif);font-size:2.4rem;font-weight:600;color:var(--navy)}
.tp__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tp__dot{position:absolute;right:8px;bottom:8px;width:14px;height:14px;border-radius:50%;background:#3CC37A;border:3px solid #fff}
.tp--full .tp__photo{width:150px;height:150px;border-radius:36px}
.tp__id{min-width:0;flex:1}
.tp__idtop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tp__id h2{font-family:var(--font-serif);font-weight:600;font-size:1.6rem;margin:0;line-height:1.15}
.tp__nr{flex:none;font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--ink-3);opacity:.85;white-space:nowrap;margin-top:.35em}
.tp__subj{margin:4px 0 6px;color:var(--ink-2);font-weight:550}
.tp__lvl{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.tp__lvl .chip{padding:3px 10px;font-size:.75rem}
.tp__rate{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;color:var(--ink-2);text-decoration:none}
.tp__rate b{color:var(--ink)}
.tp__rate:hover span{text-decoration:underline}
.tp__facts{display:grid;gap:10px;margin:18px 0 14px;padding:14px 16px;border-radius:18px;background:var(--sand-50);border:1px solid var(--line)}
.tp__price b{font-size:1.35rem;color:var(--ink)}
.tp__price span{color:var(--ink-3);font-size:.85rem}
.tp__modes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tp__modes li{font-size:.82rem;font-weight:600;padding:4px 10px 4px 26px;border-radius:99px;position:relative}
.tp__modes li::before{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-weight:800}
.tp__modes .on{background:var(--teal-50);color:var(--teal-700)}
.tp__modes .on::before{content:"✓"}
.tp__modes .off{background:#F4F1EE;color:var(--ink-3);text-decoration:line-through}
.tp__modes .off::before{content:"–"}
.tp__loc{display:flex;align-items:center;gap:6px;margin:0;color:var(--ink-2);font-size:.9rem}
.tp__loc svg{color:var(--teal)}
.tp__cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
.tp__cta .btn{justify-content:center;text-align:center}
.tp__sec{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}
.tp__sec h3{font-family:var(--font-serif);font-weight:600;font-size:1.15rem;margin:0 0 8px;display:flex;align-items:center;gap:8px}
.tp__sec p{margin:0 0 6px;color:var(--ink-2)}
.tp__online{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center}
.tp__online img{width:100%;height:auto;border-radius:14px}
.tp__week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:8px}
.tp__week div{display:flex;flex-direction:column;gap:3px;align-items:center;padding:7px 2px;border-radius:12px;background:#F7F3EF;font-size:.72rem;min-width:0}
.tp__week div.has{background:var(--teal-50)}
.tp__week b{font-size:.72rem;text-transform:capitalize;color:var(--navy)}
.tp__week span{background:#fff;border:1px solid var(--teal-200);color:var(--teal-700);border-radius:7px;padding:1px 4px;font-weight:600;font-variant-numeric:tabular-nums}
.tp__week em{color:var(--ink-3);font-style:normal}
.tp__foot{margin-top:18px}
.btn--block{display:flex;width:100%;justify-content:center}
.rv-sum{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin:4px 0 12px}
.rv-sum__big{display:grid;justify-items:center;gap:2px;padding:10px 16px;border-radius:16px;background:var(--sand-50)}
.rv-sum__big b{font-family:var(--font-serif);font-size:2rem;line-height:1}
.rv-sum__big span{font-size:.75rem;color:var(--ink-3)}
.rv-sum__bars{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.rv-sum__bars li{display:grid;grid-template-columns:30px 1fr 22px;gap:8px;align-items:center;font-size:.75rem;color:var(--ink-3)}
.rv-sum__bars i{height:6px;border-radius:9px;background:#F1EAE4;overflow:hidden}
.rv-sum__bars i b{display:block;height:100%;background:#F5A524;border-radius:inherit}
.rv-rule{display:flex;gap:8px;align-items:flex-start;font-size:.8rem;color:var(--teal-700)!important;background:var(--teal-50);padding:9px 12px;border-radius:12px}
.rv-rule svg{flex:none;margin-top:2px}
.rv-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:10px}
.rv{border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.rv__head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rv__av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--coral-50);color:var(--coral-700);font-weight:700;flex:none}
.rv__head strong{display:block;font-size:.9rem}
.rv__meta{font-size:.75rem;color:var(--ink-3)}
.rv__ver{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;color:var(--teal-700);background:var(--teal-50);border-radius:99px;padding:3px 9px 3px 6px}
.rv__txt{margin:8px 0 6px!important;font-size:.92rem;color:var(--ink)!important}
.rv__reply{margin:8px 0 4px 14px;padding:8px 12px;border-left:3px solid var(--teal-200);background:var(--sand-50);border-radius:0 12px 12px 0;font-size:.85rem}
.rv__reply p{margin:3px 0 0!important}
.rv__foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rv__report{background:none;border:0;padding:4px 0;font:500 .75rem var(--font-sans);color:var(--ink-3);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.rv__report:hover{color:var(--coral-700)}
.rv__report:disabled{text-decoration:none;color:var(--teal-700);cursor:default}
.rv__rep{display:grid;gap:8px;margin-top:8px;padding:10px;border-radius:12px;background:#FFF6F4;font-size:.82rem}
.rv__rep select{display:block;width:100%;margin-top:4px;height:36px;border-radius:10px;border:1px solid var(--line);padding:0 8px;font:inherit}
.tp-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9500;background:var(--navy);color:#fff;padding:12px 18px;border-radius:14px;font-size:.9rem;box-shadow:0 18px 40px -16px rgba(38,70,83,.6);max-width:calc(100vw - 32px);transition:opacity .4s,transform .4s}
.tp-toast.is-out{opacity:0;transform:translate(-50%,8px)}
@media (max-width:640px){
  .tp{padding:0;align-items:end}
  .tp__sheet{width:100%;max-height:92vh;border-radius:26px 26px 0 0;padding:20px 18px 18px}
  .tp--full .tp__sheet{padding:20px 16px 40px}
  .tp__photo{width:88px;height:88px;border-radius:24px}
  .tp__id h2{font-size:1.3rem}
  .tp__cta{grid-template-columns:1fr}
  .tp__online{grid-template-columns:110px 1fr}
  .tp__week{gap:3px}
  .tp__week span{font-size:.62rem;padding:1px 2px}
}

/* asystent Sówka */
.mascot{position:fixed;right:18px;bottom:18px;z-index:9600;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-family:var(--font-sans);transition:opacity .3s,transform .3s}
.mascot.is-gone{opacity:0;transform:translateY(20px)}
.mascot__bubble{width:min(320px,calc(100vw - 36px));background:#fff;border:1px solid var(--line);border-radius:22px 22px 6px 22px;box-shadow:0 24px 50px -24px rgba(38,70,83,.45);padding:12px 14px 14px;transform-origin:bottom right;transition:transform .28s var(--ease),opacity .2s}
.mascot.is-min .mascot__bubble{transform:scale(.6) translateY(20px);opacity:0;pointer-events:none;visibility:hidden}
.mascot__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.mascot__top strong{font-family:var(--font-serif);font-size:1rem;color:var(--teal-700)}
.mascot__tools button{width:28px;height:28px;border-radius:50%;border:0;background:transparent;color:var(--ink-3);font-size:18px;line-height:1;cursor:pointer}
.mascot__tools button:hover{background:var(--teal-50);color:var(--navy)}
.mascot__msg{margin:0 0 10px;font-size:.92rem;line-height:1.5;color:var(--ink)}
.mascot__chips{display:flex;flex-wrap:wrap;gap:6px}
.mascot__chip{border:1.5px solid var(--teal-200);background:var(--teal-50);color:var(--teal-700);border-radius:99px;padding:6px 12px;font:600 .8rem var(--font-sans);cursor:pointer;transition:background .15s,border-color .15s}
.mascot__chip:hover,.mascot__chip:focus-visible{background:#fff;border-color:var(--teal);outline:none}
.mascot__btn{position:relative;width:80px;height:80px;border:0;padding:0;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 14px 30px -14px rgba(38,70,83,.55);display:grid;place-items:center}
.mascot__halo{position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(from 0deg,#FF6F61,#FF9F43,#F9D56E,#7BD389,#2A9D8F,#4D96FF,#9B6BFF,#FF6F9F,#FF6F61);animation:ltSpin 12s linear infinite;z-index:-1;opacity:.9}
.mascot__halo::after{content:"";position:absolute;inset:4px;border-radius:50%;background:#fff}
.mascot__btn .owl{position:relative;z-index:1;margin-top:2px}
.mascot__ping{display:none;position:absolute;top:4px;right:4px;width:16px;height:16px;border-radius:50%;background:var(--coral);border:3px solid #fff;z-index:2}
.mascot.has-ping .mascot__ping{display:block;animation:ltPing 1.6s ease-in-out infinite}
.owl__body{transform-origin:60px 110px;animation:owlBob 4s ease-in-out infinite}
.owl__eyes{transform-origin:60px 61px;animation:owlBlink 5s infinite}
.owl__wing--r{transform-origin:92px 72px;animation:owlWave 5s ease-in-out infinite}
.owl__cap{transform-origin:60px 40px;animation:owlCap 4s ease-in-out infinite}
@keyframes ltSpin{to{transform:rotate(360deg)}}
@keyframes ltPing{50%{transform:scale(1.25)}}
@keyframes owlBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
@keyframes owlBlink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.12)}}
@keyframes owlWave{0%,70%,100%{transform:rotate(0)}76%,88%{transform:rotate(-22deg)}82%{transform:rotate(-8deg)}}
@keyframes owlCap{0%,100%{transform:rotate(0)}50%{transform:rotate(-3deg)}}
@media (max-width:640px){.mascot{right:10px;bottom:10px}.mascot__btn{width:56px;height:56px}.mascot__btn .owl{width:52px;height:52px}}
/* kontener nie łapie kliknięć – tylko przycisk i (otwarty) dymek; zwinięty dymek nie zajmuje miejsca */
.mascot{pointer-events:none}
.mascot__btn,.mascot__bubble{pointer-events:auto}
.mascot.is-min .mascot__bubble{position:absolute;right:0;bottom:90px;pointer-events:none}
/* sowa zawsze widoczna (także nad profilem); profil ma zapas na dole, by nic nie chowało się pod sową */
html.tp-open .mascot__bubble{display:none}
.tp__sheet{padding-bottom:96px}
.mascot__teaser{position:absolute;right:0;bottom:92px;display:flex;align-items:flex-start;gap:4px;width:max-content;max-width:min(260px,calc(100vw - 36px));background:#fff;border:1px solid var(--line);border-radius:18px 18px 4px 18px;box-shadow:0 18px 36px -20px rgba(38,70,83,.5);padding:8px 6px 8px 12px;pointer-events:auto;animation:teaserIn .35s var(--ease) both}
.mascot__teaser[hidden]{display:none}
.mascot__teaser-txt{border:0;background:none;padding:0;text-align:left;font:500 .85rem/1.45 var(--font-sans);color:var(--ink);cursor:pointer}
.mascot__teaser-txt:hover{color:var(--teal-700)}
.mascot__teaser-x{flex:none;width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:var(--ink-3);font-size:16px;line-height:1;cursor:pointer}
.mascot__teaser-x:hover{background:var(--teal-50);color:var(--navy)}
@keyframes teaserIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
html.tp-open .mascot__teaser{display:none}
/* telefon: mniejsza sowa, niżej; przy pasku cookies (body.has-cookie-bar) podnosimy ją nad pasek */
@media (max-width:640px){.mascot__teaser{bottom:70px}.mascot__bubble{max-height:60vh;overflow:auto}}
body.has-cookie-bar .mascot{bottom:calc(var(--cookie-bar-h,72px) + 12px)}

@media (prefers-reduced-motion:reduce){
  .rainbow-line,.btn--primary::before,.mascot__halo,.owl__body,.owl__eyes,.owl__wing--r,.owl__cap,.mascot.has-ping .mascot__ping{animation:none!important}
  .tp__sheet,.tp__backdrop,.mascot__bubble{transition:none}
}
.how__devices{margin:36px auto 0;max-width:600px;text-align:center}
.how__devices img{width:100%;height:auto}
.how__devices figcaption{margin-top:6px}
/* tło: rozsiane szkolne bazgroły (litery, wzory, figury) ~6-8% krycia, warstwa z paralaksą we wszystkich sekcjach */
.section--tint{background:linear-gradient(180deg,var(--sand-50),var(--bg))}
.section--online{background:linear-gradient(180deg,var(--bg),var(--teal-50) 60%,var(--bg))}
.hero,.section,.cta-band__inner{position:relative;overflow:hidden}
.hero::before,.section::before,.cta-band__inner::before{content:"";position:absolute;inset:-160px 0;background:url("/assets/img/doodles.svg?v=3") 0 0/420px 420px repeat;transform:translate3d(0,var(--py,0px),0);will-change:transform;pointer-events:none;z-index:0}
.section:nth-of-type(even)::before{background-position:210px 140px}
.hero>.container,.section>.container,.cta-band__inner>*{position:relative;z-index:1}
.cta-band__inner::before{filter:brightness(0) invert(1);opacity:.8}
@media (max-width:640px){.hero::before,.section::before,.cta-band__inner::before{background-size:300px 300px}}
@media (prefers-reduced-motion:reduce){.hero::before,.section::before,.cta-band__inner::before{transform:none;will-change:auto}}
/* Pełny – plakietka „Wszystko bez limitu”: zieleń (teal→szmaragd) zamiast czerni, gwiazdki premium, delikatna pulsująca poświata */
.plan__badge--dark{background:linear-gradient(120deg,#1D8C7E 0%,#2A9D8F 45%,#20B486 100%);color:#fff;display:inline-flex;align-items:center;gap:6px;box-shadow:0 0 0 0 rgba(42,157,143,.45),0 6px 16px -8px rgba(29,111,101,.8);animation:badgeGlow 2.8s ease-in-out infinite}
.plan__badge--dark::before,.plan__badge--dark::after{content:"★";font-size:.8em;line-height:1;color:#FFE08A;text-shadow:0 0 6px rgba(255,224,138,.9);animation:badgeTwinkle 2.8s ease-in-out infinite}
.plan__badge--dark::after{content:"✦";animation-delay:1.4s}
.plan[data-plan="full"]{border-color:rgba(42,157,143,.35)}
@keyframes badgeGlow{0%,100%{box-shadow:0 0 0 0 rgba(42,157,143,.0),0 6px 16px -8px rgba(29,111,101,.8)}50%{box-shadow:0 0 0 6px rgba(42,157,143,.16),0 0 22px 2px rgba(32,180,134,.45)}}
@keyframes badgeTwinkle{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.25) rotate(12deg)}}
@media (prefers-reduced-motion:reduce){.plan__badge--dark,.plan__badge--dark::before,.plan__badge--dark::after{animation:none}}
/* długie przytrzymanie na mapie: tymczasowa kropka + potwierdzenie */
.lt-dot{width:16px;height:16px;border-radius:50%;background:var(--coral);border:3px solid #fff;box-shadow:0 0 0 6px rgba(255,111,97,.25),0 4px 10px rgba(0,0,0,.25);animation:ltDot 1.2s ease-out infinite}
@keyframes ltDot{0%{box-shadow:0 0 0 0 rgba(255,111,97,.45),0 4px 10px rgba(0,0,0,.25)}100%{box-shadow:0 0 0 14px rgba(255,111,97,0),0 4px 10px rgba(0,0,0,.25)}}
.map-msg.is-ok{background:var(--teal);color:#fff}
#map .maplibregl-canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
@media (prefers-reduced-motion:reduce){.lt-dot{animation:none}}
/* odstępy między sekcjami −40-50% (było 72/104 px) */
.section{padding:40px 0}
.section__head{margin-bottom:26px}
.hero{padding:28px 0 36px}
.cta-band{padding:8px 0 40px}
@media (min-width:900px){.section{padding:58px 0}.hero{padding:44px 0 52px}.section__head{margin-bottom:32px}}
/* odstęp baner promocji → karty pakietów (plakietki nie dotykają banera); odstępy między kartami bez zmian */
#launchPromo{margin-bottom:30px}
@media (min-width:900px){#launchPromo{margin-bottom:40px}}
/* mapa bez przyciemniania: zamiast ciemnej planszy MapLibre (cooperative gestures, rgba(0,0,0,.4)) – przezroczysta warstwa i mała pigułka z podpowiedzią */
#map .maplibregl-cooperative-gesture-screen{background:transparent!important;align-items:flex-end;padding:0 0 58px;font-size:.85rem}
#map .maplibregl-cooperative-gesture-screen>div{background:rgba(38,70,83,.92);color:#fff;padding:7px 14px;border-radius:99px;box-shadow:0 8px 20px -10px rgba(38,70,83,.6);font-weight:600}
#map .maplibregl-canvas,#map canvas{filter:none!important}

/* stopka: krótkie zastrzeżenie o roli Platformy (§8 Regulaminu) */
.footer__note{padding-top:14px;padding-bottom:20px}
.footer__note p{margin:0;max-width:900px;font-size:.78rem;line-height:1.55;opacity:.85}
.footer__note a{color:inherit;text-decoration:underline}

/* footer links readable on navy (2026-10-04) */
.site-footer .footer__grid nav a{color:rgba(255,255,255,.88)}
.site-footer .footer__grid nav a:hover,.site-footer .footer__grid nav a:focus-visible{color:#fff;text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:3px}
.site-footer .footer__grid h4{color:#fff}
.social__handle{margin:8px 0 0;color:rgba(255,255,255,.88)!important;letter-spacing:.01em}
@media (min-width:1040px){.nav a.nav__schools{display:none}} /* desktop header is full; link stays in the mobile menu + footer */

/* teacher photo / default avatars (2026-10-12) */
.lt-photo__row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.lt-photo__img{width:112px;height:112px;border-radius:28px;object-fit:cover;background:var(--sand,#F4E9DC);box-shadow:0 0 0 3px #fff,0 0 0 5px var(--teal-100,#D3EEE9);display:block;transition:box-shadow .15s}
.lt-photo__img--local{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--teal,#2A9D8F)}
#setAv{width:72px;height:72px;border-radius:20px}
.lt-photo__ctl{flex:1;min-width:220px}
.lt-photo__native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lt-photo__pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.lt-photo__choose{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:12px;border:1.5px solid var(--teal-200,#A8D8CF);background:linear-gradient(180deg,#fff,var(--sand-50,#FBF6F0));color:var(--navy,#264653);font:600 .9rem var(--font-sans,inherit);cursor:pointer;box-shadow:0 1px 2px rgba(38,70,83,.06);transition:background .15s,border-color .15s,transform .12s,box-shadow .15s}
.lt-photo__choose:hover{background:var(--teal-50,#EAF6F3);border-color:var(--teal,#2A9D8F);color:var(--teal-700,#1D6F65);transform:translateY(-1px);box-shadow:0 6px 14px -10px rgba(42,157,143,.7)}
.lt-photo__choose:focus-visible{outline:2px solid var(--teal,#2A9D8F);outline-offset:2px}
.lt-photo__ico{flex:none;color:var(--teal,#2A9D8F)}
.lt-photo__fname{font-size:.82rem;color:var(--navy,#264653);max-width:min(240px,100%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--sand,#F4E9DC);border-radius:99px;padding:5px 12px}
.lt-photo__btns{display:flex;gap:8px;flex-wrap:wrap}
.lt-photo__seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:99px;background:var(--sand,#F4E9DC)}
.lt-photo__seg button{border:0;background:transparent;padding:6px 14px;border-radius:99px;font:inherit;font-size:.85rem;cursor:pointer;color:var(--navy,#264653)}
.lt-photo__seg button.on{background:#fff;color:var(--teal-700,#1D6F65);font-weight:700;box-shadow:0 1px 3px rgba(38,70,83,.15)}
@media (max-width:520px){
  .lt-photo__row{flex-direction:column;align-items:stretch}
  .lt-photo__img{width:96px;height:96px;border-radius:24px}
  .lt-photo__ctl{min-width:0}
  .lt-photo__choose{width:100%;justify-content:center}
  .lt-photo__fname{max-width:100%}
  .lt-photo__btns .btn{flex:1;justify-content:center}
}
.lt-card__av{overflow:hidden;background:var(--sand,#F4E9DC)}
.lt-card__av img{width:100%;height:100%;object-fit:cover;display:block}

/* 2026-10-12: header row LEFT hello+Nr / RIGHT card; compact Nr search higher */
.lt-headrow{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;margin:0 0 10px}
.lt-headrow__left{min-width:0;flex:1 1 auto}
.lt-headrow__left h2{margin:0}
.lt-headrow__right{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;margin-left:auto}
.lt-cardlink{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:12px;border:1.5px solid var(--teal-200,#A8D8CF);background:linear-gradient(180deg,#fff,var(--sand-50,#FBF6F0));color:var(--navy,#264653);font:600 .9rem var(--font-sans,inherit);text-decoration:none;box-shadow:0 1px 2px rgba(38,70,83,.06);transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;white-space:nowrap}
.lt-cardlink:hover{background:var(--teal-50,#EAF6F3);border-color:var(--teal,#2A9D8F);color:var(--teal-700,#1D6F65);transform:translateY(-1px);box-shadow:0 6px 14px -10px rgba(42,157,143,.7)}
.lt-cardlink:focus-visible{outline:2px solid var(--teal,#2A9D8F);outline-offset:2px}
.lt-cardlink__ico{flex:none;color:var(--teal,#2A9D8F)}
.lt-nrsearch{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:20rem}
.lt-nrsearch__lab{font:600 .84rem var(--font-sans,inherit);color:var(--navy,#264653);line-height:1.25;margin:0}
.lt-nrsearch__row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;align-items:stretch}
.lt-nrsearch__inp{width:100%;height:36px;min-height:36px;max-height:36px;padding:0 12px;border:1.5px solid #E6DACC;border-radius:12px;background:#fff;font:inherit;box-sizing:border-box}
.lt-nrsearch__go.btn{width:100%;height:36px;min-height:36px;max-height:36px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;box-sizing:border-box;line-height:1}
.lt-nrsearch__res{width:100%;margin-top:6px;max-width:20rem}
.lt-msg-lookup--top{margin:-2px 0 10px;padding-top:0}
@media (max-width:640px){
  .lt-headrow{align-items:flex-start}
  .lt-headrow__right{width:100%;justify-content:flex-start;margin-left:0}
  .lt-cardlink{white-space:normal}
}

/* teacher public Nr – discreet */
.au-nr{font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--ink-3);opacity:.85;white-space:nowrap}
.au-nr--head{margin-left:8px;vertical-align:middle;font-family:var(--font-sans,inherit)}
.au-item__top,.au-me__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.au-me__txt{min-width:0;flex:1}
.au-me__top b{min-width:0}
