
@font-face{font-family:'Telegraf';src:url("/assets/fonts/telegraf-light.woff2") format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Telegraf';src:url("/assets/fonts/telegraf-bold.woff2") format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
html{scroll-behavior:smooth}
/* Cross-document crossfade between same-origin pages (Chrome/Edge/Safari; Firefox falls back to a normal load) */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:1s;animation-timing-function:cubic-bezier(0.22,1,0.36,1)}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
body{margin:0;background:#ffffff;color:#1f1f1e;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:#ea5e20;text-decoration:none}
a:hover{color:#e20e18}
summary::-webkit-details-marker{display:none}
@keyframes heroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

/* ---- Polish: focus visibility + FAQ affordance ---- */
/* DESIGN.md mandates a visible 2px Vector Orange focus ring on interactive elements */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #ea5e20;outline-offset:3px;border-radius:6px}
h1,h2,h3{text-wrap:balance}
#faq summary{position:relative;padding-right:36px}
#faq summary::after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);
  font-family:Telegraf,'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:22px;font-weight:400;line-height:1;color:#ea5e20;
  transition:transform 0.3s cubic-bezier(0.22,1,0.36,1)}
#faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
#faq details p{max-width:65ch}
@media (prefers-reduced-motion:reduce){#faq summary::after{transition:none}}

/* ---- Responsive adaptation (mobile / tablet) ---- */
/* Inline styles carry the desktop design; these scoped overrides re-think it for smaller contexts. */
section[id]{scroll-margin-top:84px}

/* ---- Nav: full bar at the top, shrinks to a logo pill on scroll ---- */
/* At the top the whole bar shows. After scrolling down it shrinks to just the
   logo + wordmark; hovering (or keyboard focus) slides it back open. Returning
   to the top grows it again. Durations are deliberately slow (0.825s) for a
   calm, premium slide. */
.site-nav{gap:0 !important;transition:padding .825s cubic-bezier(0.22,1,0.36,1),box-shadow .525s ease}
.nav-more{display:flex;align-items:center;gap:22px;max-width:760px;margin-left:26px;opacity:1;overflow:hidden;
  transform:none;pointer-events:auto;
  transition:max-width .825s cubic-bezier(0.22,1,0.36,1),margin-left .825s cubic-bezier(0.22,1,0.36,1),
    opacity .45s ease-out,transform .825s cubic-bezier(0.22,1,0.36,1)}

/* Desktop pointer: collapse to the logo pill once scrolled away from the top */
@media (hover:hover){
  .site-nav.scrolled{padding:10px 22px !important}
  .site-nav.scrolled .nav-more{max-width:0;margin-left:0;opacity:0;transform:translateX(-8px);pointer-events:none}
  .site-nav.scrolled:hover,.site-nav.scrolled:focus-within{padding:10px 12px 10px 22px !important}
  .site-nav.scrolled:hover .nav-more,.site-nav.scrolled:focus-within .nav-more{max-width:760px;margin-left:26px;opacity:1;transform:none;pointer-events:auto}
}

@media (prefers-reduced-motion:reduce){
  .site-nav,.nav-more{transition:none !important}
}

/* Tablet / mobile: always logo + CTA, links hidden (per DESIGN.md) — no scroll shrink */
@media (max-width:900px){
  .nav-links{display:none !important}
  .site-nav{gap:0 !important;padding:8px 10px 8px 16px !important;max-width:calc(100vw - 24px)}
  .nav-more{max-width:none !important;margin-left:12px !important;opacity:1 !important;transform:none !important;pointer-events:auto !important}
}

/* The dark mockup panel stacks: copy above, dashboard full-width below */
@media (max-width:820px){
  .mockup-grid{grid-template-columns:1fr !important}
}

/* Phone: tighter section rhythm, stacked hero CTAs, single-column footer */
@media (max-width:640px){
  #funkcje,#jak-dziala,#cennik,#faq{padding:76px 20px !important}
  section[data-screen-label="Mockup"],#demo{padding:0 20px 76px !important}
  .hero-inner{padding:96px 20px 150px !important}
  .hero-ctas{flex-direction:column;align-items:stretch}
  .hero-ctas a{text-align:center}
  footer>div{flex-direction:column;align-items:flex-start}
}

/* Touch devices: comfortable tap target on the nav CTA */
@media (pointer:coarse){
  .nav-cta{padding:12px 22px !important}
}

@media (prefers-reduced-motion:reduce){
  .hero-inner{animation:none !important}
}

/* ---- Platforma: interactive tab switcher in the dark panel ---- */
.mtab{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(255,255,255,0.12);padding:16px 0;cursor:pointer}
.mtab-title{color:#b5aea8;transition:color 0.2s ease-out}
.mtab:hover .mtab-title,.mtab[aria-selected="true"] .mtab-title{color:#fff}
.mtab-dot{background:rgba(255,255,255,0.25);transition:background 0.2s ease-out}
.mtab[aria-selected="true"] .mtab-dot{background:#ea5e20}
.mtab-desc{display:none}
.mtab[aria-selected="true"] .mtab-desc{display:block;min-height:4.8em}
@media (max-width:820px){.mtab[aria-selected="true"] .mtab-desc{min-height:0}}
.mtab:focus-visible{outline:2px solid #ea5e20;outline-offset:3px;border-radius:6px}
@keyframes mfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
[data-mpanel]{animation:mfade 0.45s cubic-bezier(0.22,1,0.36,1)}
@media (prefers-reduced-motion:reduce){[data-mpanel]{animation:none}}
/* Fixed stage: height tracks the video's 16:9 ratio only, never the active panel */
.mpanel-stage{position:relative;aspect-ratio:16/9}
.mpanel-stage>[data-mpanel]{position:absolute;inset:0}
.mpanel-stage>[data-mpanel] img{width:100%;height:100%;object-fit:cover}
.mpanel-card{height:100%}
.mvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:16px;
  box-shadow:0 18px 40px rgba(0,0,0,0.22);background:transparent;display:none;z-index:2}
@media (max-width:820px){.mpanel-stage{min-height:320px}}

/* Scroll-driven mode: the section pins while page scroll scrubs the video and steps the tabs.
   The sticky wrapper hugs the panel (no phantom 100vh whitespace); the capped top offset
   keeps it near-centered on normal screens without huge gaps on tall displays. */
.scrolly{height:300vh}
.scrolly-sticky{position:sticky;top:max(24px,min(calc(50vh - 380px),140px))}
.scrolly-sticky>.mockup-grid{width:100%}
@media (max-width:820px),(prefers-reduced-motion:reduce){
  .scrolly{height:auto}
  .scrolly-sticky{position:static}
}

/* hover states */
.hv1:hover{color:#ea5e20 !important}
.hv2:hover{color:#ea5e20 !important}
.hv3:hover{color:#ea5e20 !important}
.hv4:hover{color:#ea5e20 !important}
.hv5:hover{color:#ea5e20 !important}
.hv6:hover{background:#e20e18 !important;color:#fff !important}
.hv7:hover{background:#e20e18 !important;color:#fff !important;transform:translateY(-2px) !important}
.hv8:hover{border-color:#ea5e20 !important;color:#ea5e20 !important}
.hv9:hover{border-color:#ea5e20 !important}
.hv10:hover{border-color:#ea5e20 !important}
.hv11:hover{border-color:#ea5e20 !important}
.hv12:hover{border-color:#ea5e20 !important}
.hv13:hover{border-color:#ea5e20 !important}
.hv14:hover{border-color:#ea5e20 !important}
.hv15:hover{border-color:#ea5e20 !important}
.hv16:hover{border-color:#ea5e20 !important}
.hv17:hover{border-color:#ea5e20 !important}
.hv18:hover{border-color:#ea5e20 !important;color:#ea5e20 !important}
.hv19:hover{background:#e20e18 !important;color:#fff !important}
.hv20:hover{border-color:#ea5e20 !important;color:#ea5e20 !important}
.hv21:hover{transform:translateY(-2px) !important;color:#e20e18 !important}
.hv22:hover{color:#ea5e20 !important}
.hv23:hover{color:#ea5e20 !important}
.hv24:hover{color:#ea5e20 !important}
.hv25:hover{color:#ea5e20 !important}

/* nav "Więcej" dropdown */
.nav-dd{position:static}
.nav-dd-btn{background:none;border:0;padding:0;margin:0;font:inherit;color:#5d5854;cursor:pointer;display:inline-flex;align-items:center;gap:6px;line-height:inherit}
.nav-dd-btn:hover,.nav-dd-btn[aria-expanded="true"]{color:#ea5e20}
.nav-dd-btn svg{transition:transform .25s cubic-bezier(0.22,1,0.36,1)}
.nav-dd-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav-dd-menu{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-6px);min-width:230px;
  background:rgba(255,255,255,0.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid #efe7e1;border-radius:16px;padding:8px;
  box-shadow:0 6px 24px rgba(31,31,30,0.07);display:flex;flex-direction:column;opacity:0;visibility:hidden;
  transition:opacity .2s ease,transform .25s cubic-bezier(0.22,1,0.36,1),visibility 0s linear .2s}
.nav-dd.open .nav-dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);transition-delay:0s}
.nav-dd-menu a{display:block;padding:10px 14px;border-radius:10px;color:#1f1f1e;font-size:14px;font-weight:500;white-space:nowrap}
.nav-dd-menu a:hover,.nav-dd-menu a:focus-visible{background:#fdfbfa;color:#ea5e20;outline:none}
@media (prefers-reduced-motion:reduce){.nav-dd-menu,.nav-dd-btn svg{transition:none}}
