/* ==========================================================================
   Linkway Sp. z o.o. — assets/style.css
   Wspólny arkusz stylów serwisu linkway.pl
   Paleta i typografia wg brandbooka Linkway (kobalt + cyjan, gradient sygnetu).
   Układ dwukolumnowy, subtelny ruch, pełna obsługa prefers-reduced-motion.
   ========================================================================== */

/* ---------- Fonty hostowane lokalnie (pliki w /assets/fonts/) ---------- */
/* Nagłówki: Quicksand (zaokrąglony, geometryczny — blisko liternictwa logo). */
@font-face{font-family:"Quicksand";src:url("/assets/fonts/quicksand-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Quicksand";src:url("/assets/fonts/quicksand-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Quicksand";src:url("/assets/fonts/quicksand-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
/* Tekst: Nunito Sans (lekko zaokrąglony, bardzo czytelny). */
@font-face{font-family:"Nunito Sans";src:url("/assets/fonts/nunito-sans-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url("/assets/fonts/nunito-sans-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url("/assets/fonts/nunito-sans-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  /* ----- Kolory marki (brandbook) ----- */
  --lkw-primary:#1D75BC;   /* niebieski marki - logo, CTA, nagłówki */
  --lkw-primary-d:#155a92;  /* ciemniejszy wariant na hover */
  --lkw-accent:#4BC6E5;    /* błękit/cyjan - ruch, hover, podkreślenia */
  --lkw-ink:#3C4043;       /* grafit z negatywu - ciemne sekcje i tekst nagłówków */
  --lkw-bg:#EAF3FB;        /* jasne, chłodne tło sekcji */
  --lkw-surface:#FFFFFF;   /* biel kart i treści */
  --lkw-muted:#5B6B78;     /* tekst pomocniczy */
  --lkw-line:#D5E4F2;      /* delikatne obramowania */
  --lkw-gradient:linear-gradient(120deg,#1D75BC 0%,#4BC6E5 100%);

  /* ----- Typografia ----- */
  --font-head:"Quicksand","Trebuchet MS","Segoe UI",system-ui,sans-serif;
  --font-body:"Nunito Sans","Segoe UI",system-ui,-apple-system,Arial,sans-serif;

  /* ----- Rytm ----- */
  --maxw:1180px;
  --measure:68ch;          /* szerokość kolumny tekstu 60-70 znaków */
  --radius:16px;
  --radius-sm:10px;
  --shadow-sm:0 2px 12px rgba(29,117,188,.08);
  --shadow-md:0 14px 40px rgba(29,117,188,.14);
  --shadow-lg:0 28px 64px rgba(21,45,72,.20);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset / baza ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--font-body);color:var(--lkw-ink);
  background:var(--lkw-surface);line-height:1.7;font-size:1.02rem;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--lkw-primary);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--lkw-accent)}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--lkw-ink);line-height:1.18;font-weight:700;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem);letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,3.2vw,2.4rem);letter-spacing:-.005em}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{margin:0 0 1.1em;max-width:var(--measure)}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.eyebrow{font-family:var(--font-head);font-weight:600;font-size:.82rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--lkw-primary);display:inline-block;margin-bottom:.6rem}
.lead{font-size:1.18rem;color:var(--lkw-muted);max-width:var(--measure)}
.text-grad{background:var(--lkw-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- Belka postępu czytania ---------- */
.read-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:120;
  background:var(--lkw-gradient);transition:width .1s linear}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--lkw-line);
  transition:box-shadow .25s var(--ease)}
.site-header.is-scrolled{box-shadow:0 6px 24px rgba(21,45,72,.10)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:68px}
.logo-link{display:inline-flex;align-items:center;gap:.6rem}
.logo-link svg{height:34px;width:auto;display:block}
.logo-word{font-family:var(--font-head);font-weight:700;font-size:1.3rem;color:var(--lkw-primary);letter-spacing:-.01em}
.main-nav{display:flex;align-items:center;gap:1.4rem}
.main-nav a{font-family:var(--font-head);font-weight:600;font-size:.95rem;color:var(--lkw-ink);position:relative}
.main-nav a:not(.btn--demo)::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;
  background:var(--lkw-gradient);transition:right .28s var(--ease)}
.main-nav a:not(.btn--demo):hover::after{right:0}
.btn--demo{padding:.55rem 1.2rem;border-radius:999px;background:var(--lkw-gradient);color:#fff !important;
  box-shadow:var(--shadow-sm)}
.btn--demo:hover{color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{width:24px;height:2px;background:var(--lkw-ink);border-radius:2px;transition:.25s var(--ease)}

/* ---------- Przyciski ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-weight:600;
  padding:.85rem 1.7rem;border-radius:999px;border:0;cursor:pointer;font-size:1rem;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.btn--primary{background:var(--lkw-gradient);color:#fff;box-shadow:var(--shadow-sm)}
.btn--primary:hover{color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn--ghost{background:transparent;color:var(--lkw-primary);border:1.5px solid var(--lkw-line)}
.btn--ghost:hover{border-color:var(--lkw-accent);color:var(--lkw-primary)}

/* ---------- Hero (układ dwukolumnowy) ---------- */
.hero{position:relative;overflow:hidden;background:
  radial-gradient(1100px 520px at 88% -10%,rgba(75,198,229,.20),transparent 60%),
  linear-gradient(180deg,#fff 0%,var(--lkw-bg) 100%)}
.hero-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center;padding-block:clamp(2.6rem,6vw,5rem)}
.hero-copy{max-width:34rem}
.hero-copy h1{margin-bottom:.5em}
.hero-copy .lead{margin-bottom:1.7rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.4rem}
.hero-visual{position:relative;aspect-ratio:1/.82;width:100%}
.hero-visual svg{width:100%;height:100%;overflow:visible}

/* ---------- Sekcje ---------- */
section{padding-block:clamp(2.8rem,6vw,5rem)}
.section--tint{background:var(--lkw-bg)}
.section--ink{background:linear-gradient(160deg,#2c3034 0%,var(--lkw-ink) 60%,#1d3a55 100%);color:#fff}
.section--ink h2,.section--ink h3{color:#fff}
.section--ink .lead,.section--ink p{color:rgba(255,255,255,.82)}
.section--ink .eyebrow{color:var(--lkw-accent)}
.section-head{max-width:var(--measure);margin-bottom:2.4rem}
.section-head.center{margin-inline:auto;text-align:center}

/* ---------- Feature-row: tekst | wizual naprzemiennie ---------- */
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
.feature-row + .feature-row{margin-top:clamp(2.4rem,5vw,4rem)}
.feature-row.reverse .feature-media{order:-1}
.feature-text{max-width:var(--measure)}
.feature-media{position:relative}
.feature-media img,.feature-media .media-frame{border-radius:var(--radius);box-shadow:var(--shadow-md);
  border:1px solid var(--lkw-line);background:var(--lkw-surface)}
.media-frame{aspect-ratio:16/10;display:grid;place-items:center;overflow:hidden;position:relative}
.media-frame svg{width:100%;height:100%}

/* ---------- Karty modułów ---------- */
.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem}
.module-card{position:relative;background:var(--lkw-surface);border:1px solid var(--lkw-line);
  border-radius:var(--radius);padding:1.5rem 1.4rem 1.6rem;box-shadow:var(--shadow-sm);
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease);overflow:hidden}
.module-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--lkw-gradient);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.module-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.module-card:hover::before{transform:scaleX(1)}
.module-ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:.9rem;
  background:linear-gradient(120deg,rgba(29,117,188,.12),rgba(75,198,229,.18));color:var(--lkw-primary)}
.module-ico svg{width:24px;height:24px}
.module-card h3{font-size:1.12rem;margin-bottom:.4rem}
.module-card h3 .tag{font-family:var(--font-body);font-weight:700;color:var(--lkw-primary)}
.module-card p{font-size:.95rem;color:var(--lkw-muted);margin:0}

/* ---------- Linkway w liczbach ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;text-align:center}
.stat .num{font-family:var(--font-head);font-weight:700;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;
  background:var(--lkw-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
.section--ink .stat .num{background:linear-gradient(120deg,#7fd6ee,#fff);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .label{display:block;margin-top:.5rem;font-size:.96rem;color:var(--lkw-muted)}
.section--ink .stat .label{color:rgba(255,255,255,.78)}

/* ---------- Marquee integracji GPS ---------- */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;gap:2.4rem;width:max-content;animation:marquee 28s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{font-family:var(--font-head);font-weight:600;color:var(--lkw-muted);white-space:nowrap;
  display:inline-flex;align-items:center;gap:.5rem;font-size:1.02rem;opacity:.85}
.marquee-item::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--lkw-accent)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- FAQ ---------- */
.faq-list{max-width:780px}
.faq-list details{border:1px solid var(--lkw-line);border-radius:var(--radius-sm);background:var(--lkw-surface);
  margin-bottom:.8rem;overflow:hidden;transition:box-shadow .2s var(--ease),border-color .2s var(--ease)}
.faq-list details[open]{box-shadow:var(--shadow-sm);border-color:#bcdcf3}
.faq-list summary{cursor:pointer;list-style:none;padding:1.05rem 1.3rem;font-family:var(--font-head);
  font-weight:600;font-size:1.05rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-size:1.5rem;color:var(--lkw-primary);transition:transform .25s var(--ease)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list .faq-a{padding:0 1.3rem 1.2rem;color:var(--lkw-muted)}
.faq-list .faq-a p{margin:0}

/* ---------- HowTo ---------- */
.howto{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;counter-reset:step}
.howto-step{position:relative;background:var(--lkw-surface);border:1px solid var(--lkw-line);
  border-radius:var(--radius);padding:2.6rem 1.4rem 1.5rem;box-shadow:var(--shadow-sm)}
.howto-step::before{counter-increment:step;content:counter(step);position:absolute;top:1.1rem;left:1.4rem;
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-head);
  font-weight:700;color:#fff;background:var(--lkw-gradient);box-shadow:var(--shadow-sm)}
.howto-step h3{font-size:1.08rem;margin:.2rem 0 .4rem}
.howto-step p{font-size:.94rem;color:var(--lkw-muted);margin:0}

/* ---------- Glosariusz ---------- */
.glossary{columns:2;column-gap:2.6rem}
.glossary dt{font-family:var(--font-head);font-weight:700;color:var(--lkw-primary);font-size:1.05rem;
  margin-bottom:.3rem;break-after:avoid}
.glossary dd{margin:0 0 1.4rem;color:var(--lkw-muted);font-size:.96rem;break-inside:avoid;max-width:none}

/* ---------- Pasek CTA / kontakt ---------- */
.cta-band{background:var(--lkw-gradient);color:#fff;border-radius:calc(var(--radius)*1.4);
  padding:clamp(2rem,5vw,3.2rem);display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;
  box-shadow:var(--shadow-lg)}
.cta-band h2{color:#fff;margin-bottom:.4rem}
.cta-band p{color:rgba(255,255,255,.9);margin:0}
.cta-band .btn--primary{background:#fff;color:var(--lkw-primary)}
.cta-band .btn--primary:hover{color:var(--lkw-primary-d)}
.cta-contacts{font-family:var(--font-head);font-weight:600}
.cta-contacts a{color:#fff}

/* ---------- Footer ---------- */
.site-footer{background:linear-gradient(160deg,#2c3034,var(--lkw-ink));color:rgba(255,255,255,.74)}
.footer-bar{height:4px;background:var(--lkw-gradient)}
.footer-inner{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:2rem;padding-block:clamp(2.2rem,5vw,3.4rem)}
.footer-brand p{max-width:38ch;font-size:.92rem;color:rgba(255,255,255,.62)}
.footer-logo{margin-bottom:1rem}
.footer-logo svg{height:32px}
.footer-logo .logo-word{color:#fff}
.footer-col h4{font-family:var(--font-head);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--lkw-accent);margin-bottom:.9rem}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin-bottom:.55rem}
.footer-col a{color:rgba(255,255,255,.74);font-size:.93rem}
.footer-col a:hover{color:#fff}
.footer-brand address{font-style:normal;font-size:.9rem;color:rgba(255,255,255,.62);line-height:1.85;margin-top:1rem}
.footer-brand address a{color:var(--lkw-accent)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-block:1.2rem;display:flex;
  flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.85rem;color:rgba(255,255,255,.5)}
.footer-bottom a{color:rgba(255,255,255,.6);margin-left:1.2rem}

/* ---------- Animacje wejścia (IntersectionObserver dodaje .is-visible) ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.08s}
.reveal[data-delay="2"]{transition-delay:.16s}
.reveal[data-delay="3"]{transition-delay:.24s}

/* Animowana trasa SVG w hero */
.route-line{stroke-dasharray:6 8;animation:dash 2.4s linear infinite}
@keyframes dash{to{stroke-dashoffset:-28}}
.route-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 3.2s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}
.float-slow{animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;background:rgba(21,45,72,.82);backdrop-filter:blur(4px);z-index:200;
  display:none;place-items:center;padding:5vw}
.lightbox.is-open{display:grid}
.lightbox img{max-width:90vw;max-height:78vh;border-radius:12px;box-shadow:var(--shadow-lg)}
.lightbox figcaption{color:#fff;text-align:center;margin-top:1rem;font-family:var(--font-head);font-weight:600}
.lightbox-close{position:absolute;top:1.3rem;right:1.6rem;background:none;border:0;color:#fff;font-size:2.2rem;cursor:pointer;line-height:1}

/* ---------- Responsywność ---------- */
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;text-align:left}
  .hero-visual{max-width:520px;margin-top:1rem}
  .feature-row{grid-template-columns:1fr}
  .feature-row.reverse .feature-media{order:0}
  .stats{grid-template-columns:1fr;gap:2rem}
  .cta-band{grid-template-columns:1fr}
  .glossary{columns:1}
  .footer-inner{grid-template-columns:1fr 1fr}
  .main-nav{position:fixed;inset:68px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;
    background:#fff;border-bottom:1px solid var(--lkw-line);padding:1rem clamp(1rem,4vw,2rem);
    transform:translateY(-130%);transition:transform .3s var(--ease);box-shadow:var(--shadow-md)}
  .main-nav.is-open{transform:none}
  .main-nav a{padding:.7rem 0;width:100%}
  .main-nav a:not(.btn--demo)::after{display:none}
  .btn--demo{margin-top:.5rem}
  .nav-toggle{display:flex}
}
@media (max-width:560px){
  .footer-inner{grid-template-columns:1fr}
}

/* ---------- Poszanowanie prefers-reduced-motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1;transform:none}
  .marquee-track{animation:none;flex-wrap:wrap;justify-content:center}
  .route-line,.route-draw,.pulse,.float-slow{animation:none}
  .route-draw{stroke-dashoffset:0}
}
