:root{
  --bone:#fbfafc;
  --wash:#f4f1f7;
  --ink:#201A37;
  --ink-soft:#4a4360;
  --muted:#736d80;
  --purple:#2b2168;
  --purple-deep:#241a54;
  --plum:#651842;
  --red:#bb3516;
  --orange:#ef903b;
  --orange-light:rgba(239,144,59,0.12);
  --line:#e4dfeb;
  --card:#ffffff;
  --grad:linear-gradient(112deg,#2b2168 0%,#651842 43%,#bb3516 72%,#ef903b 100%);
  --grad-subtle:linear-gradient(135deg,rgba(43,33,104,0.06) 0%,rgba(101,24,66,0.06) 50%,rgba(239,144,59,0.06) 100%);
  --grad-warm:linear-gradient(135deg,#651842 0%,#bb3516 55%,#ef903b 100%);
  --max:1180px;
  --gut:24px;
  --shadow-sm:0 2px 8px rgba(30,20,50,0.06);
  --shadow-md:0 12px 28px rgba(30,20,50,0.08);
  --shadow-lg:0 24px 48px rgba(30,20,50,0.12);
  --shadow-strong:rgba(30,20,50,0.14);
  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:20px;
  --radius-xl:26px;
  color-scheme:light;
}
html.dark-mode{
  --bone:#141019;
  --wash:#1c1526;
  --ink:#f5f1fa;
  --ink-soft:#c3bcd2;
  --muted:#9a92aa;
  --line:#2c2439;
  --card:#1c1526;
  --shadow-strong:rgba(0,0,0,0.5);
  color-scheme:dark;
}

/* Accessibility Modes (WCAG 2.1) */
html.a11y-contrast{filter:contrast(1.18) saturate(1.05);}
html.a11y-underline a{text-decoration:underline !important;}
html.a11y-reduce-motion *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
html.a11y-fs-1{font-size:17px;}
html.a11y-fs-2{font-size:18.5px;}
html.a11y-fs-3{font-size:20px;}

/* Reset & Base */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;scroll-padding-top:90px;background:var(--bone);}
body{
  background:var(--bone);
  color:var(--ink);
  font-family:"Open Sauce Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background-color .3s ease,color .3s ease;
}
a{color:inherit;text-decoration:none;transition:color .2s,opacity .2s;}
button,input,select,textarea{font:inherit;}
img,svg{display:block;max-width:100%;}
.mono{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut);}
::selection{background:var(--purple);color:#fff;}

/* Headings */
h1,h2,h3,h4,h5{font-weight:600;letter-spacing:-.03em;line-height:1.15;color:var(--ink);}
h1{font-size:clamp(2.1rem,4.6vw,3.3rem);}
h2{font-size:clamp(1.8rem,3.4vw,2.5rem);}
h3{font-size:clamp(1.25rem,2.2vw,1.6rem);}

/* Nagłówki na ciemnym tle — zawsze białe (light + dark) */
.panel h1,.panel h2,.panel h3,.panel h4,.panel h5,
.panel-copy h1,.panel-copy h2,.panel-copy h3,
.cta h1,.cta h2,.cta h3,.cta h4,
.alert-panel h1,.alert-panel h2,.alert-panel h3,
.alert-head h1,.alert-head h2,.alert-head h3,
.footer h1,.footer h2,.footer h3,.footer h4,.footer h5,
.site-footer h1,.site-footer h2,.site-footer h3,.site-footer h4,.site-footer h5,
.footer-col h5{
  color:#ffffff !important;
}

.text-gradient{
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.text-warm{
  background:var(--grad-warm);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}

/* Skip link */
.skip-link{
  position:absolute;
  left:-9999px;
  top:14px;
  z-index:999;
  padding:12px 18px;
  background:var(--purple);
  color:#fff;
  font-weight:600;
  border-radius:var(--radius-sm);
}
.skip-link:focus{left:14px;}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 24px;
  border-radius:12px;
  border:0;
  background:var(--grad);
  color:#fff;
  font-size:.92rem;
  font-weight:600;
  cursor:pointer;
  transition:transform .2s,box-shadow .2s,background .2s;
  white-space:nowrap;
  box-shadow:0 6px 16px rgba(101,24,66,0.18);
}
.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 1px 3px rgba(101,24,66,0.28);
}
.btn svg{width:16px;height:16px;transition:transform .2s;}
.btn:hover svg{transform:translateX(0px);}
.btn.btn-light{
  background:#fff;
  color:var(--purple);
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
}
.btn.btn-light:hover{box-shadow:0 14px 28px rgba(0,0,0,0.22);}
.btn.btn-ghost{
  background:rgba(43,33,104,0.06);
  color:var(--purple);
  box-shadow:none;
}
.btn.btn-ghost:hover{
  background:rgba(43,33,104,0.12);
  box-shadow:none;
}
html.dark-mode .btn.btn-ghost{
  background:rgba(255,255,255,0.08);
  color:var(--ink);
}
html.dark-mode .btn.btn-ghost:hover{background:rgba(255,255,255,0.14);}
.btn.btn-outline{
  background:transparent;
  border:1.5px solid var(--line);
  color:var(--ink);
  box-shadow:none;
}
.btn.btn-outline:hover{
  border-color:var(--purple);
  background:var(--wash);
}
.btn.btn-sm{
  padding:9px 16px;
  font-size:.82rem;
  border-radius:9px;
}

/* Badges & Tags */
.tag-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.65rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--red);
  background:rgba(187,53,22,0.08);
  padding:5px 12px;
  border-radius:100px;
  margin-bottom:12px;
}
.tag-badge.tag-orange{
  color:var(--orange);
  background:rgba(239,144,59,0.12);
}
.tag-badge.tag-purple{
  color:var(--purple);
  background:rgba(43,33,104,0.1);
}
html.dark-mode .tag-badge.tag-purple{
  color:#c9a6ff;
  background:rgba(201,166,255,0.12);
}

/* Sections */
.section{padding:65px 0;position:relative;}
.section-sm{padding:60px 0;}
.section-head{max-width:680px;margin-bottom:48px;}
.section-head.center{text-align:center;margin-inline:auto;}
.section-head .subhead{
  display:block;
  font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.68rem;
  letter-spacing:.16em;
  color:var(--red);
  text-transform:uppercase;
  margin-bottom:12px;
  font-weight:700;
}
.section-head p{
  margin-top:14px;
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.6;
}

/* Reveal on scroll */
.reveal {
  opacity: 1;
  transform: none;
}
.reveal.in {
  opacity: 1;
  transform: none;
}

/* ==========================================================================
   MODULAR HEADER (NAVBAR)
   ========================================================================== */
.site-nav{
  position:sticky;
  top:0;
  z-index:90;
  background:rgba(251,250,252,0.88);
  border-bottom:1px solid var(--line);
  transition:background-color .3s,border-color .3s;
}
.site-nav::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
}
html.dark-mode .site-nav{
  background:rgba(20,16,25,0.88);
  border-bottom-color:var(--line);
}
.nav-container{
  height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.brand-logo-svg{
  height:20px;
  width:auto;
  display:block;
}
html.dark-mode .brand-logo-svg{filter:brightness(0) invert(1);}

.nav-menu{
  display:flex;
  align-items:center;
  gap:24px;
  font-size:.9rem;
  font-weight:600;
  color:var(--ink);
}
.nav-item{position:relative;}
.nav-link{
  display:flex;
  align-items:center;
  gap:5px;
  padding:8px 0;
  color:var(--ink-soft);
  transition:color .2s;
}
.nav-link:hover,
.nav-link.active{color:var(--purple);}
html.dark-mode .nav-link:hover,
html.dark-mode .nav-link.active{color:#c9a6ff;}
.nav-link.active{
  position:relative;
  color:var(--purple);
}
.nav-link.active::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:100%;
  height:2px;
  background:var(--grad);
  border-radius:2px;
}

.nav-dropdown{
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 18px 45px rgba(30,20,50,0.13);
  padding:12px;
  min-width:260px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s;
  z-index:200;
  margin-top:0;
}
.nav-dropdown::before{
  content:'';
  position:absolute;
  top:-15px;
  left:0;
  right:0;
  height:15px;
  background:transparent;
}
.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.dropdown-link{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:11px 14px;
  border-radius:10px;
  transition:background .18s;
  text-decoration:none;
}
.dropdown-link:hover{background:var(--wash);}
.dropdown-link b{
  font-size:.9rem;
  font-weight:500;
  color:var(--ink);
  letter-spacing:-0.01em;
}
.dropdown-link small{
  font-size:.76rem;
  font-weight:400;
  color:var(--muted);
  line-height:1.35;
}
.nav-item:hover .nav-link{color:var(--purple);}

.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.ctrl-icon-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  background:var(--card);
  border:1.5px solid var(--line);
  border-radius:11px;
  color:var(--ink-soft);
  cursor:pointer;
  transition:all .2s;
}
.ctrl-icon-btn:hover{
  color:var(--purple);
  border-color:#cec6dc;
  transform:translateY(-1px);
}
html.dark-mode .ctrl-icon-btn{
  background:#1c1526;
  border-color:#2c2439;
}
html.dark-mode .ctrl-icon-btn:hover{color:#c9a6ff;}
.ctrl-icon-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;}
.ctrl-icon-btn .icon-moon{display:none;}
html.dark-mode .ctrl-icon-btn .icon-sun{display:none;}
html.dark-mode .ctrl-icon-btn .icon-moon{display:block;}
.lang-switch{
  display:flex;
  border:1.5px solid var(--line);
  border-radius:11px;
  overflow:hidden;
  height:40px;
  background:var(--card);
}
html.dark-mode .lang-switch{border-color:#2c2439;background:#1c1526;}
.lang-btn{
  padding:0 10px;
  background:none;
  border:0;
  cursor:pointer;
  font-size:.78rem;
  font-weight:700;
  color:var(--muted);
  transition:all .2s;
}
.lang-btn.active{
  background:var(--grad);
  color:#fff;
}

.burger-btn{
  display:none;
  width:42px;
  height:42px;
  border-radius:11px;
  border:1.5px solid var(--line);
  background:var(--card);
  cursor:pointer;
  flex-direction:column;
  gap:5px;
  align-items:center;
  justify-content:center;
}
.burger-btn span{
  width:20px;
  height:2px;
  background:var(--ink);
  border-radius:2px;
  transition:transform .25s,opacity .25s;
}
body.mobile-menu-open .burger-btn span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.mobile-menu-open .burger-btn span:nth-child(2){opacity:0;}
body.mobile-menu-open .burger-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ==========================================================================
   MENU BOCZNE (tylko mobile)
   ========================================================================== */
.mobile-drawer {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  width: min(380px, 92vw) !important;
  height: 100% !important;
  background: var(--card) !important;
  z-index: 1000 !important;
  padding: 32px 28px 40px !important;
  overflow-y: auto !important;
  transform: translateX(100%) !important;
  transition: transform 0.28s ease !important;
  box-shadow: -10px 0 40px rgba(0,0,0,0.14) !important;
  display: block !important;
}
body.mobile-menu-open .mobile-drawer {
  transform: translateX(0) !important;
}
.mobile-drawer-close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  border: none;
  background: var(--wash);
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  color: var(--ink);
  z-index: 10;
  transition: background 0.2s;
}
.mobile-drawer-close:hover { background: var(--line); }
.mobile-drawer-close svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  fill: none;
}
.mobile-drawer-brand {
  margin-bottom: 36px;
  padding-right: 48px;
}
.mobile-brand-name {
  font-family: 'Jost', sans-serif;
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--purple);
  margin-bottom: 10px;
}
.mobile-brand-desc {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--muted);
  margin: 0;
}
.mobile-nav-group { margin-bottom: 32px; }
.mobile-group-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 14px;
}
.mobile-nav-link {
  display: block;
  padding: 12px 0;
  font-size: 1.08rem;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--line);
  transition: color 0.2s;
}
.mobile-nav-link:last-child { border-bottom: none; }
.mobile-nav-link:hover { color: var(--orange); }
.mobile-company-info {
  font-size: 0.92rem;
  line-height: 1.75;
  color: var(--ink-soft);
}
.mobile-company-info a {
  color: var(--purple);
  font-weight: 600;
  text-decoration: none;
}
.mobile-company-info a:hover { text-decoration: underline; }
body.mobile-menu-open .site-nav {
  z-index: 1001;
}
body.mobile-menu-open::before {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(20, 15, 40, 0.48);
  z-index: 999;
  pointer-events: auto;
}

/* ==========================================================================
   MODULAR FOOTER
   ========================================================================== */
.site-footer{
  background:var(--purple-deep);
  color:#fff;
  border-radius:28px 28px 0 0;
  margin-top:80px;
  position:relative;
  overflow:hidden;
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 50% 60% at 88% 0%,rgba(239,144,59,0.15),transparent 60%);
  pointer-events:none;
}
.footer-inner{position:relative;padding:64px var(--gut) 32px;}
.footer-top{
  display:grid;
  grid-template-columns:1.5fr repeat(4,1fr);
  gap:40px;
  padding-bottom:44px;
}
.footer-brand{max-width:320px;}
.footer-logo{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.footer-logo .brand-logo-svg{
  filter:brightness(0) invert(1);
  height:22px;
}
.footer-brand p{
  color:#a79fbb;
  font-size:.9rem;
  line-height:1.6;
}
.footer-col h5{
  font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:20px;
  font-weight:700;
}
.footer-col ul{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.footer-col a{
  color:#cbc4d8;
  font-size:.88rem;
  transition:color .2s,transform .2s;
  display:inline-block;
}
.footer-col a:hover{
  color:#fff;
  transform:translateX(3px);
}
.footer-divider{
  height:1px;
  background:rgba(255,255,255,0.12);
  margin-bottom:28px;
}
.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
  font-size:.8rem;
  color:#8b83a0;
}
.footer-legal-links{
  display:flex;
  align-items:center;
  gap:14px;
}
.footer-legal-links a{color:#8b83a0;}
.footer-legal-links a:hover{color:#fff;}
.pay-flags-row{
  display:flex;
  align-items:center;
  gap:8px;
}
.pay-card-flag{
  width:42px;
  height:28px;
  border-radius:4px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

/* ==========================================================================
   CARDS & GRIDS
   ========================================================================== */
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  position:relative;
}
.card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-md);
  border-color:#d6cee4;
}
.card.highlighted{
  border-color:transparent;
  background:
    linear-gradient(var(--card),var(--card)) padding-box,
    var(--grad) border-box;
  border:2px solid transparent;
  box-shadow:0 14px 34px rgba(101,24,66,0.12);
}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}

/* ==========================================================================
   HERO BANNER
   ========================================================================== */
.page-hero{
  padding:72px 0 80px;
  position:relative;
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute;
  inset:-20% -10% auto -10%;
  height:540px;
  pointer-events:none;
  background:
    radial-gradient(ellipse 45% 60% at 20% 25%,rgba(43,33,104,0.12),transparent 65%),
    radial-gradient(ellipse 40% 55% at 85% 20%,rgba(239,144,59,0.14),transparent 65%),
    radial-gradient(ellipse 45% 60% at 50% 85%,rgba(101,24,66,0.08),transparent 65%);
}
.page-hero-inner{
  position:relative;
  z-index:2;
  text-align:center;
  max-width:820px;
  margin-inline:auto;
}
.page-hero-inner h1{margin-bottom:20px;}
.page-hero-inner p.lead{
  font-size:1.12rem;
  color:var(--ink-soft);
  max-width:58ch;
  margin:0 auto 32px;
  line-height:1.65;
}

/* ==========================================================================
   CENNIK & PRICING PLANS
   ========================================================================== */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  align-items:stretch;
}
.plan-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  position:relative;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}
.plan-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-lg);
  border-color:#d6cee4;
}
.plan-card.plan-founders{
  border:2px solid transparent;
  background:
    linear-gradient(var(--card),var(--card)) padding-box,
    var(--grad) border-box;
  transform:translateY(-10px);
  box-shadow:0 18px 40px rgba(101,24,66,0.16);
}
.plan-card.plan-founders:hover{
  transform:translateY(-14px);
  box-shadow:0 28px 56px rgba(101,24,66,0.25);
}
.plan-card.plan-locked{
  opacity:.65;
  filter:grayscale(.4);
}
.plan-tag{
  position:absolute;
  top:22px;
  right:22px;
  background:var(--grad);
  color:#fff;
  font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.62rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:6px 12px;
  border-radius:100px;
  font-weight:700;
}
.plan-kicker{
  font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.68rem;
  letter-spacing:.08em;
  color:var(--muted);
  text-transform:uppercase;
  font-weight:600;
}
.plan-card h3{font-size:1.45rem;margin:10px 0 6px;}
.plan-desc{color:var(--muted);font-size:.9rem;min-height:48px;margin-bottom:20px;}
.plan-price{
  display:flex;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.plan-price .amount{
  font-size:2.3rem;
  font-weight:700;
  letter-spacing:-.04em;
  color:var(--ink);
}
.plan-price .period{
  color:var(--muted);
  font-size:.88rem;
}
.plan-price-sub{font-size:.82rem;color:var(--muted);margin-bottom:12px;}
.hot-badge{
  font-size:.8rem;
  font-weight:600;
  color:var(--red);
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:6px;
}
.hot-badge .hot-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--orange);
  animation:pulse-dot 2s infinite;
}
@keyframes pulse-dot{
  0%,100%{transform:scale(1);opacity:1;}
  50%{transform:scale(1.3);opacity:.7;}
}
.slots-bar-wrap{margin:18px 0;}
.slots-bar{height:8px;border-radius:100px;background:var(--wash);overflow:hidden;}
.slots-fill{height:100%;width:34.12%;background:var(--grad);border-radius:100px;}
.slots-label{
  margin-top:8px;
  font-family:Futura,"Jost",system-ui,sans-serif;
  font-size:.72rem;
  color:var(--muted);
}
.slots-label b{color:var(--ink);font-weight:700;}
.plan-divider{height:1px;background:var(--line);margin:24px 0;}
.plan-features-label{
  font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.65rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:14px;
  font-weight:700;
}
.plan-features-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:28px;
  flex:1;
}
.plan-features-list li{
  position:relative;
  padding-left:26px;
  font-size:.9rem;
  color:var(--ink);
  line-height:1.45;
}
.plan-features-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:4px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--grad);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/11px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/11px no-repeat;
}
.plan-features-list li.star::before{
  background:var(--orange);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.8 5.9 20.4l1.4-6.8L2.2 9.1l6.9-.8z'/%3E%3C/svg%3E") center/13px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.8 5.9 20.4l1.4-6.8L2.2 9.1l6.9-.8z'/%3E%3C/svg%3E") center/13px no-repeat;
}

/* ==========================================================================
   FOUNDERS PERKS SECTION
   ========================================================================== */
.founders-perks-box{
  margin-top:32px;
  border-radius:var(--radius-xl);
  overflow:hidden;
  position:relative;
  background:var(--wash);
  border:1px solid var(--line);
  padding:44px;
}
.perks-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:28px;
}
.perk-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:24px 22px;
  transition:all .2s ease;
}
.perk-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
  border-color:#d6cee4;
}
.perk-icon{
  width:44px;
  height:44px;
  border-radius:12px;
  background:rgba(239,144,59,0.15);
  display:grid;
  place-items:center;
  margin-bottom:16px;
  color:var(--orange);
}
.perk-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;}
.perk-card h4{font-size:1.05rem;margin-bottom:6px;}
.perk-card p{color:var(--muted);font-size:.86rem;line-height:1.5;}

/* ==========================================================================
   ACCORDION CATALOG
   ========================================================================== */
.catalog-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}
.filter-btn {
  padding: 8px 16px;
  border-radius: 100px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--ink-soft);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
}
.filter-btn:hover {
  background: var(--wash);
  color: var(--ink);
}
.filter-btn.active {
  color: #fff;
  border: 1px solid transparent;
  background: var(--grad) padding-box;
}
.module-acc {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.module-acc[open]{
  border-color:#d6cee4;
  box-shadow:var(--shadow-md);
  grid-column:1 / -1;
}
.module-summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px 22px;
  user-select:none;
}
.module-summary::-webkit-details-marker{display:none;}
.module-summary::marker{content:'';display:none;}
.module-summary::-moz-list-bullet{list-style-type:none;}
.module-num{
  font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.85rem;
  font-weight:700;
  color:#fff;
  background:var(--grad);
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  flex-shrink:0;
}
.module-title-box{flex:1;min-width:0;}
.module-title-box h4{font-size:1.05rem;margin-bottom:2px;}
.module-acc[open] .module-title-box h4{font-size:1.2rem;}
.module-title-box p{
  color:var(--muted);
  font-size:.82rem;
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.module-acc[open] .module-title-box p{
  -webkit-line-clamp:unset;
  font-size:.88rem;
}
.module-count{
  font-family:Futura,"Jost",system-ui,sans-serif;
  font-size:.7rem;
  color:var(--muted);
  white-space:nowrap;
}
.module-chevron{
  width:20px;
  height:20px;
  color:var(--muted);
  transition:transform .25s;
  flex-shrink:0;
}
.module-acc[open] .module-chevron{transform:rotate(180deg);}
.module-body{
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  padding:24px 28px 28px;
  background:rgba(244,241,247,0.4);
}
html.dark-mode .module-body{background:rgba(20,16,25,0.4);}
.feature-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:20px;
  display:flex;
  flex-direction:column;
}
.feature-header{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-bottom:8px;
}
.feature-num{
  font-family:Futura,"Jost",system-ui,sans-serif;
  font-size:.76rem;
  color:var(--red);
  font-weight:700;
}
.feature-card h5{font-size:1.02rem;font-weight:600;}
.feature-card p{color:var(--ink-soft);font-size:.86rem;line-height:1.5;}
.feature-tags{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:12px;
}
.feature-tags li{
  font-size:.74rem;
  color:var(--muted);
  background:var(--wash);
  border:1px solid var(--line);
  border-radius:100px;
  padding:3px 9px;
}
.feature-goal{
  display:block;
  margin-top:12px;
  font-size:.8rem;
  color:var(--purple);
  font-weight:600;
}
html.dark-mode .feature-goal{color:#c9a6ff;}
.feature-card.wide{grid-column:1 / -1;}
.module-acc.module-alert{border-color:rgba(239,144,59,0.5);}
.module-acc.module-alert .module-num{background:var(--orange);color:#141019;}

/* ==========================================================================
   FORMS & CONTACT
   ========================================================================== */
.form-group{margin-bottom:18px;}
.form-label{
  display:block;
  font-size:.82rem;
  font-weight:600;
  color:var(--ink-soft);
  margin-bottom:6px;
}
.form-control{
  width:100%;
  padding:13px 16px;
  border:1.5px solid var(--line);
  border-radius:12px;
  background:var(--card);
  color:var(--ink);
  font-family:inherit;
  font-size:.92rem;
  transition:border-color .2s,box-shadow .2s;
}
.form-control:focus{
  outline:none;
  border-color:var(--purple);
  box-shadow:0 0 0 3px rgba(43,33,104,0.1);
}
textarea.form-control{resize:vertical;min-height:120px;}
.checkbox-label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:.82rem;
  color:var(--ink-soft);
  cursor:pointer;
  line-height:1.45;
}
.checkbox-label input[type="checkbox"]{
  margin-top:3px;
  accent-color:var(--orange);
  width:16px;
  height:16px;
}

/* ==========================================================================
   COOKIE BANNER
   ========================================================================== */
#ab-cookie-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:999999;
  transform:translateY(120%);
  opacity:0;
  transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .45s ease;
  pointer-events:none;
}
#ab-cookie-banner.ab-visible{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
#ab-cookie-banner.ab-hiding{
  transform:translateY(120%);
  opacity:0;
}
.ab-cookie-inner{
  max-width:1200px;
  margin:0 auto;
  background:var(--card);
  border:1px solid var(--line);
  border-bottom:none;
  border-radius:16px 16px 0 0;
  box-shadow:0 -8px 30px var(--shadow-strong);
  padding:22px 30px;
}
.ab-cookie-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.ab-cookie-text{
  color:var(--ink-soft);
  font-size:.88rem;
  line-height:1.55;
  flex:1;
  min-width:280px;
}
.ab-cookie-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

/* ==========================================================================
   RESPONSIVENESS
   ========================================================================== */
@media(max-width:992px){
  .section{padding:70px 0;}
  .nav-menu{display:none !important;}
  .burger-btn{display:flex !important;}
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}
  .pricing-grid{grid-template-columns:1fr;gap:28px;}
  .plan-card.plan-founders{transform:none;}
  .perks-grid{grid-template-columns:1fr;}
  .modules-list{grid-template-columns:1fr;}
  .module-body{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr;gap:36px;}
}
@media(max-width:600px){
  .section{padding:54px 0;}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}
  .founders-perks-box{padding:24px 18px;}
  .ab-cookie-main{flex-direction:column;align-items:stretch;}
  .ab-cookie-actions{width:100%;flex-direction:column-reverse;}
  .ab-cookie-actions .btn{width:100%;}
}

/* PET CREATORS */
.creator-feature-icon{width:24px;height:24px;display:block;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.creator-media-icon{min-height:52px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px;color:var(--purple);}
.creator-media-icon svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;}
.creator-media-icon svg+svg{width:24px;height:24px;color:var(--orange);}
.page-hero-inner.reveal{transition-delay:0s;}
.page-hero-inner.reveal.in{animation:creatorHeroIn .75s cubic-bezier(.2,.7,.2,1) both;}
@keyframes creatorHeroIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
.creator-reveal-1{transition-delay:.12s;}
.creator-reveal-2{transition-delay:.24s;}
.creator-reveal-3{transition-delay:.36s;}
@media (prefers-reduced-motion:reduce){.page-hero-inner.reveal.in{animation:none;}}

/* ==========================================================================
   ACCESSIBILITY MODAL
   ========================================================================== */
.a11y-modal {
  position: fixed;
  top: 90px;
  right: 24px;
  width: 300px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(30,20,50,0.15);
  padding: 20px;
  z-index: 1100;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}
.a11y-modal.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.a11y-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.a11y-modal-header h4 {
  font-size: 1.05rem;
  margin: 0;
}
.a11y-modal-close {
  width: 32px;
  height: 32px;
  border: none;
  background: var(--wash);
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  color: var(--ink);
  transition: background 0.2s;
}
.a11y-modal-close:hover { background: var(--line); }
.wcag-sub {
  font-size: 0.78rem;
  color: var(--muted);
  margin-bottom: 18px;
}
.a11y-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.9rem;
}
.a11y-item:last-of-type { border-bottom: none; }
.a11y-font-group { display: flex; gap: 6px; }
.a11y-font-group button {
  width: 36px;
  height: 32px;
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  color: var(--ink);
  transition: all 0.2s;
}
.a11y-font-group button:hover {
  background: var(--wash);
  border-color: var(--purple);
}
.toggle-switch {
  width: 44px;
  height: 24px;
  background: var(--line);
  border-radius: 100px;
  border: none;
  position: relative;
  cursor: pointer;
  transition: background 0.2s;
}
.toggle-switch::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.toggle-switch.on { background: var(--purple); }
.toggle-switch.on::after { transform: translateX(20px); }
.a11y-reset-btn {
  width: 100%;
  margin-top: 16px;
  padding: 10px;
  border: 1px solid var(--line);
  background: var(--wash);
  border-radius: 10px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  color: var(--ink);
  transition: all 0.2s;
}
.a11y-reset-btn:hover { background: var(--line); }
@media (max-width: 600px) {
  .a11y-modal {
    right: 12px;
    left: 12px;
    width: auto;
    top: 80px;
  }
}

/* ===== Language suggestion banner (ElevenLabs-style) ===== */
/* ── Language banner v2: czarno-biały, flagi kolorowe ── */
.ab-lang-banner {
  position: fixed;
  top: 50%;
  right: 20px;
  transform: translateY(-50%) translateX(120%);
  z-index: 99990;
  width: min(300px, calc(100vw - 32px));
  background: #1a1a1a;
  border: 1px solid #333;
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
  padding: 18px 16px 14px;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
  opacity: 0;
  pointer-events: none;
  color: #e8e8e8;
}
.ab-lang-banner.ab-lang-visible {
  transform: translateY(-50%) translateX(0);
  opacity: 1;
  pointer-events: auto;
}
.ab-lang-banner.ab-lang-hiding {
  transform: translateY(-50%) translateX(120%);
  opacity: 0;
  pointer-events: none;
}
.ab-lang-banner-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.ab-lang-banner-head h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.3;
}
.ab-lang-close {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: none;
  background: #333;
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  color: #aaa;
  transition: background 0.2s, color 0.2s;
}
.ab-lang-close:hover { background: #444; color: #fff; }
.ab-lang-close svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}
.ab-lang-banner p {
  font-size: 0.82rem;
  color: #999;
  line-height: 1.45;
  margin: 0 0 14px;
}
/* Opcje językowe z flagami */
.ab-lang-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ab-lang-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  background: #252525;
  border: 1.5px solid #3a3a3a;
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  font-family: inherit;
  color: #e0e0e0;
}
.ab-lang-opt:hover {
  background: #303030;
  border-color: #555;
}
.ab-lang-flag {
  font-size: 1.35rem;
  line-height: 1;
  flex-shrink: 0;
}
.ab-lang-name {
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}
/* Dark-mode override (baner jest już ciemny, ale wyrównaj cień) */
html.dark-mode .ab-lang-banner {
  background: #111;
  border-color: #2a2a2a;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
}
html.dark-mode .ab-lang-opt {
  background: #1a1a1a;
  border-color: #333;
}
html.dark-mode .ab-lang-opt:hover {
  background: #222;
  border-color: #444;
}
@media (max-width: 600px) {
  .ab-lang-banner {
    top: auto;
    bottom: 16px;
    right: 12px;
    left: 12px;
    width: auto;
    transform: translateY(120%);
  }
  .ab-lang-banner.ab-lang-visible {
    transform: translateY(0);
  }
  .ab-lang-banner.ab-lang-hiding {
    transform: translateY(120%);
  }
}

/* Dropdowny – nic nie może ucinać */
.nav-menu,
.nav-container,
.site-nav {
  overflow: visible !important;
}
/* ==================================================================
   INLINE STYLES FROM INDEX.HTML
   (variable blocks below were a duplicate re-declaration of the
   :root / html.dark-mode blocks at the top of this file — removed;
   the page-specific dark-mode overrides that follow are still needed
   and were kept)
   ================================================================== */
html.dark-mode body{background:var(--bone);color:var(--ink)}
html.dark-mode .nav{background:rgba(20,16,25,.82);border-bottom-color:var(--line)}
html.dark-mode .burger{background:var(--card)}
html.dark-mode .burger span{background:var(--ink)}
html.dark-mode .mobile-menu{background:var(--bone)}
html.dark-mode .brand-svg{filter:brightness(0) invert(1)}
html.dark-mode .theme-toggle,html.dark-mode .a11y-toggle{border-color:#4a4360}

/* --- formularz rejestracji (karta na fioletowym tle) --- */

/* --- przyciski sklepów (App Store / Google Play) w hero-download --- */
html.dark-mode .store{background:#241a54;color:#fff}
html.dark-mode .store svg{fill:#fff}
html.dark-mode .hero-download{background:var(--card);border-color:var(--line)}
html.dark-mode .hero-download .qr{background:#fff}

/* --- stopka ciemna --- */
html.dark-mode .footer{background:#0e0b14;color:var(--ink-soft)}
html.dark-mode .footer .brand{color:#fff}
html.dark-mode .footer h4{color:#fff}
html.dark-mode .footer-grid p,html.dark-mode .footer-grid a{color:var(--muted)}
html.dark-mode .footer-grid a:hover{color:var(--orange)}
html.dark-mode .footer .legal{border-top-color:var(--line)}

/* --- mapka: przyciemnienie tła SVG, pinezki i markery bez zmian --- */
html.dark-mode .map{background:var(--card);border-color:var(--line)}
html.dark-mode .map-art{background:#141019}
html.dark-mode .map-art .basemap{filter:invert(0.92) hue-rotate(185deg) brightness(0.92) contrast(0.95)}
/* dark mode: białe ikonki/emoji i jaśniejsze obramowania markerów na mapie */
html.dark-mode .map-art .thumb b{color:#fff}
html.dark-mode .map-art .thumb{box-shadow:0 6px 16px rgba(0,0,0,.5),0 0 0 2px rgba(255,255,255,.35)}
html.dark-mode .map-art .loc{box-shadow:0 0 0 1.5px rgba(255,255,255,.4)}

/* dark mode: rozjaśnienie ciemnych ikon i linków (bazowo na --purple) */
html.dark-mode .mod .mod-ic svg{stroke:#c9a6ff}
html.dark-mode .social-tag svg{stroke:#c9a6ff}
html.dark-mode .feed-tabbar .active svg{stroke:#c9a6ff;fill:rgba(201,166,255,.12)}
html.dark-mode .sp-point .sp-ic svg{stroke:#c9a6ff}
html.dark-mode .role a{color:#c9a6ff}
html.dark-mode .faq .pm{color:#c9a6ff}
html.dark-mode .nav-links a:hover{color:#c9a6ff}
html.dark-mode .lang-opt:hover:not([aria-pressed="true"]){color:#c9a6ff}
html.dark-mode .theme-toggle:hover,html.dark-mode .a11y-toggle:hover{color:#c9a6ff;border-color:#4a4360}

/* honor a11y panel switches */
html.a11y-contrast{filter:contrast(1.18) saturate(1.05)}
html.a11y-underline a{text-decoration:underline !important}
html.a11y-reduce-motion *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{background:var(--bone);color:var(--ink);font-family:"Open Sauce Sans",system-ui,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
img,svg{display:block;max-width:100%}
.skip{position:absolute;left:-9999px}
.skip:focus{left:14px;top:14px;z-index:50;padding:11px 14px;background:#fff;border:1px solid var(--ink);border-radius:8px}
::selection{background:var(--purple);color:#fff}

h1,h2,h3{font-weight:600;letter-spacing:-.03em;line-height:1.08}

/* nav */
.nav{position:sticky;top:0;z-index:40;background:rgba(251,250,252,.85);
  backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line)}
.nav-in{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;font-weight:600;font-size:1.05rem;letter-spacing:-.02em}
.brand-svg{height:18px;width:auto;display:block}
.footer .brand-svg{filter:brightness(0) invert(1)}
.brand .logo{width:34px;height:34px;border-radius:10px;background:var(--grad);display:grid;place-items:center;
  color:#fff;font-size:.7rem;font-weight:700;letter-spacing:-.05em}
.nav-links{display:flex;align-items:center;gap:30px;font-size:.92rem;font-weight:600;color:var(--ink)}
.nav-links a{position:relative;padding:4px 0;transition:color .2s}
.nav-links a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;
  background:var(--grad);border-radius:2px;transition:width .28s cubic-bezier(.2,.7,.2,1)}
.nav-links a:hover{color:var(--purple)}
.nav-links a:hover:after{width:100%}
.nav-right{display:flex;align-items:center;gap:12px}
.nav .btn{padding:10px 18px;font-size:.85rem}

/* theme toggle + a11y trigger */
.theme-toggle,.a11y-toggle{display:flex;align-items:center;justify-content:center;width:42px;height:42px;
  background:none;border:1.5px solid var(--line);border-radius:11px;color:var(--ink-soft);cursor:pointer;
  transition:color .15s,border-color .15s,background .15s}
/* language switch */
.lang-switch{display:flex;border:1.5px solid var(--line);border-radius:11px;overflow:hidden;height:42px}
.lang-opt{padding:0 12px;background:none;border:0;cursor:pointer;font-size:.8rem;font-weight:600;
  color:var(--muted);letter-spacing:.03em;transition:color .15s,background .15s}
.lang-opt+.lang-opt{border-left:1.5px solid var(--line)}
.lang-opt[aria-pressed="true"]{background:var(--grad);color:#fff}
.lang-opt:hover:not([aria-pressed="true"]){color:var(--purple)}
.lang-opt:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
html.dark-mode .lang-switch{border-color:#4a4360}
html.dark-mode .lang-opt+.lang-opt{border-left-color:#4a4360}
.theme-toggle:hover,.a11y-toggle:hover{color:var(--purple);border-color:#cec6dc}
.theme-toggle svg,.a11y-toggle svg{width:23px;height:23px;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .icon-moon{display:none}
html.dark-mode .theme-toggle .icon-sun{display:none}
html.dark-mode .theme-toggle .icon-moon{display:block}
.a11y-label{display:flex;align-items:center;gap:9px}
.a11y-ic{width:16px;height:16px;flex:0 0 auto;stroke-linecap:round;stroke-linejoin:round;color:var(--muted)}
.theme-toggle:focus-visible,.a11y-toggle:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* accessibility panel */
.a11y-switch{position:relative}
.a11y-panel{position:absolute;top:calc(100% + 10px);right:0;width:284px;background:var(--card);
  border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px var(--shadow-strong);padding:18px;
  max-height:calc(100vh - 90px);overflow-y:auto;
  opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .15s,transform .15s;z-index:70}
.a11y-switch.open .a11y-panel{opacity:1;pointer-events:auto;transform:translateY(0)}
.a11y-close{position:absolute;top:12px;right:12px;width:28px;height:28px;display:flex;align-items:center;
  justify-content:center;background:none;border:none;cursor:pointer;color:var(--muted);border-radius:7px;padding:0}
.a11y-close:hover{background:var(--wash);color:var(--ink)}
.a11y-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.a11y-title{font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:2px;padding-right:24px}
.a11y-sub{font-size:.72rem;color:var(--muted);margin-bottom:14px}
.a11y-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;
  border-top:1px solid var(--line);font-size:.84rem;color:var(--ink)}
.a11y-row:first-of-type{border-top:none}
.a11y-fontsize{display:flex;gap:4px}
.a11y-fontsize button{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--line);background:none;
  cursor:pointer;font-size:.75rem;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:center;padding:0}
.a11y-fontsize button:hover{background:var(--wash)}
.toggle{width:40px;height:23px;border-radius:100px;background:#cec6dc;border:none;cursor:pointer;
  position:relative;flex-shrink:0;transition:background .2s;padding:0}
.toggle::after{content:"";position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;
  background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.toggle.on{background:var(--purple)}
.toggle.on::after{transform:translateX(17px)}
.a11y-reset{width:100%;margin-top:14px;padding:10px;border-radius:9px;border:1.5px solid var(--line);
  background:none;cursor:pointer;font-size:.8rem;font-weight:600;color:var(--ink-soft);font-family:inherit}
.a11y-reset:hover{background:var(--wash);color:var(--ink)}
html.dark-mode .toggle{background:#4a4360}
@media(max-width:820px){
  .a11y-panel{position:fixed;top:auto;bottom:14px;left:12px;right:12px;width:auto;max-height:calc(100vh - 90px);overflow-y:auto}
}
/* gdy panel przeniesiony do <body> (poza sticky nav), fixed liczy się od viewportu */
.a11y-panel.a11y-relocated{position:fixed;top:auto;bottom:14px;left:12px;right:12px;width:auto;max-height:calc(100vh - 28px);overflow-y:auto;z-index:2000;
  opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .15s,transform .15s}
.a11y-panel.a11y-relocated.open{opacity:1;pointer-events:auto;transform:translateY(0)}
.burger{display:none;width:44px;height:44px;border-radius:11px;border:1.5px solid var(--line);
  background:#fff;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.burger span{width:18px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}
.mobile-menu{display:none;flex-direction:column;gap:4px;padding:12px var(--gut) 20px;border-bottom:1px solid var(--line);background:var(--bone)}
.mobile-menu a{padding:12px 4px;font-size:1rem;border-bottom:1px solid var(--line)}
.mobile-menu .btn{margin-top:14px}
body.menu-open .mobile-menu{display:flex}
body.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* reveal on scroll */
.reveal{opacity:1;transform:none}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:0s}.reveal.d2{transition-delay:0s}.reveal.d3{transition-delay:0s}.reveal.d4{transition-delay:0s}

/* section shell */
.section{padding:96px 0}
.section-head{max-width:640px;margin-bottom:52px}
.section-head h2{font-size:clamp(1.9rem,4vw,2.6rem);line-height:1.15;margin-bottom:16px}
.section-head p{margin:0;color:var(--muted);font-size:1.05rem}
.system-section{padding-top:100px}

/* ---------- HERO ---------- */
.hero{padding:72px 0 0;position:relative}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.14}
.hero h1 .g{background:linear-gradient(90deg,#651842 0%,#bb3516 42%,#ef903b 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.hero p.lede{margin-top:22px;color:var(--ink-soft);font-size:1.12rem;max-width:44ch}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.hero-stats{display:grid;grid-template-columns:repeat(3,auto);gap:36px;margin-top:44px;padding-top:30px;border-top:1px solid var(--line)}
.hero-stats .n{font-size:1.7rem;font-weight:600;letter-spacing:-.03em;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.hero-stats .n.soon{background:none;-webkit-text-fill-color:var(--muted);color:var(--muted);opacity:.75}
.hero-stats .l{margin-top:6px;font-size:.82rem;color:var(--muted)}
.hero-stats .stat-soon{text-align:center}
.hero-stats .stat-soon-tag{display:block;margin-bottom:4px;font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange)}

/* download block: QR + store badges */
.hero-download{display:flex;align-items:center;gap:18px;margin-top:32px;padding:16px;
  background:var(--card);border:1px solid var(--line);border-radius:18px;max-width:440px}
.hero-download .qr{width:88px;height:88px;flex-shrink:0;border-radius:12px;overflow:hidden;
  border:1px solid var(--line);background:#fff;padding:6px}
.hero-download .qr svg{width:100%;height:100%;display:block}
.dl-badges{display:flex;flex-direction:column;gap:10px}
.qr-hint{display:none}
.dl-label{font-size:.82rem;font-weight:600;color:var(--ink)}
.store-row{display:flex;gap:8px;flex-wrap:wrap}
.store{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;
  background:var(--ink);color:#fff;transition:transform .2s,box-shadow .2s}
.store:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(31,17,58,.25)}
.store svg{width:20px;height:20px;flex-shrink:0}
.store span{display:flex;flex-direction:column;line-height:1.05}
.store small{font-size:.56rem;opacity:.8;letter-spacing:.02em}
.store b{font-size:.82rem;font-weight:600}

/* --- aplikacja mobilna: stan "już wkrótce" --- */
.hero-download.soon{position:relative}
.dl-soon-tag{display:inline-flex;align-items:center;gap:6px;font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;
  background:var(--grad);padding:4px 9px;border-radius:100px;margin-left:8px;vertical-align:middle}
.dl-label-row{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.store.disabled{background:var(--wash);color:var(--muted);cursor:default;pointer-events:none;
  border:1px solid var(--line);opacity:.75}
html.dark-mode .store.disabled{background:rgba(255,255,255,.05);color:var(--muted)}
.store.disabled svg{opacity:.6}
.qr.soon-qr{position:relative}
.qr.soon-qr::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.55);backdrop-filter:blur(1.5px);border-radius:12px}
html.dark-mode .qr.soon-qr::after{background:rgba(20,16,25,.35)}

/* phone mocks — two overlapping devices */
.phone-wrap{display:flex;justify-content:center;align-items:center;position:relative;min-height:auto;overflow:visible;margin-top:-90px}
.hero{overflow-x:clip}
.phone-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(80%,560px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(239,144,59,.22),rgba(101,24,66,.12) 45%,transparent 70%);
  filter:blur(10px);animation:breathe 6s ease-in-out infinite;z-index:0}
/* hero image (single graphic) — keeps the original phone shadow via drop-shadow */
.hero-img{position:relative;z-index:2;width:100%;max-width:600px;height:auto;
  filter:drop-shadow(0 40px 60px rgba(31,17,58,.45));
  animation:floaty 7s ease-in-out infinite}
@media(min-width:1200px){
  .hero-grid{grid-template-columns:.95fr 1.2fr}
  .hero-img{max-width:680px}
}
@media(min-width:1500px){
  .hero-grid{grid-template-columns:.9fr 1.3fr}
  .hero-img{max-width:780px}
}

/* ---------- MODULES (system) ---------- */
.mod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mod{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px;
  transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;overflow:hidden}
.mod:hover{transform:translateY(-5px);box-shadow:0 20px 36px rgba(31,17,58,.09);border-color:#d6cee4}
.mod .num{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.72rem;color:var(--muted)}
.mod .mod-ic{width:46px;height:46px;border-radius:13px;background:var(--wash);display:grid;place-items:center;
  margin:14px 0 16px;transition:transform .25s}
.mod:hover .mod-ic{transform:scale(1.08) rotate(-4deg)}
.mod .mod-ic svg{width:24px;height:24px;stroke:var(--purple);stroke-width:1.6;fill:none}
.mod h3{font-size:1.12rem}
.mod p{margin-top:8px;color:var(--muted);font-size:.9rem}
.mod.safety .mod-ic{background:rgba(187,53,22,.08)}
.mod.safety .mod-ic svg{stroke:var(--red)}

/* ---------- PROFILE DATA ---------- */
.panel{background:var(--purple-deep);color:#fff;border-radius:26px;overflow:hidden}
.panel-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0}
.panel-copy{padding:64px 52px}
.panel-copy h2{font-size:clamp(1.8rem,3.4vw,2.4rem);line-height:1.15}
.panel-copy p{margin:18px 0 28px;color:#cbc4d8;max-width:40ch}
.panel-art{align-self:stretch;min-height:440px;position:relative;
  background:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px) 0 0/36px 36px,
             linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px) 0 0/36px 36px;
  border-left:1px solid rgba(255,255,255,.12)}
.orbit-stage{position:absolute;inset:0}
/* CSS elbow connectors: from chip bottom, down, then turn toward centre spine */
.wire{position:absolute;z-index:1;pointer-events:none;border-style:dashed;border-color:rgba(239,144,59,.55);border-width:0;animation:floaty 6s ease-in-out infinite}
/* top chips: down from chip bottom, then turn in toward core side */
.wire.w1{left:calc(9% + 20px);top:20%;width:calc(41% - 34px);height:28%;border-left-width:1.5px;border-bottom-width:1.5px;border-bottom-left-radius:14px}
.wire.w2{right:calc(9% + 20px);top:20%;width:calc(41% - 34px);height:28%;border-right-width:1.5px;border-bottom-width:1.5px;border-bottom-right-radius:14px}
/* bottom chips: out from core side, then turn down into chip top */
.wire.w3{left:calc(9% + 20px);top:52%;width:calc(41% - 34px);height:24%;border-left-width:1.5px;border-top-width:1.5px;border-top-left-radius:14px;animation-delay:3s}
.wire.w4{right:calc(9% + 20px);top:52%;width:calc(41% - 34px);height:24%;border-right-width:1.5px;border-top-width:1.5px;border-top-right-radius:14px;animation-delay:3s}
.core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;width:132px;height:132px;
  border-radius:50%;background:var(--grad);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;text-align:center;color:#fff;
  box-shadow:0 0 0 8px rgba(239,144,59,.12),0 0 0 18px rgba(239,144,59,.06);animation:corepulse 4s ease-in-out infinite}
.core .mono{font-size:.56rem;letter-spacing:.12em;opacity:.9;line-height:1}
.core .dog{width:40px;height:40px;margin:11px 0 1px}
.core .dog svg{width:100%;height:100%;display:block}
.core b{font-size:1.15rem;font-weight:700;line-height:1;letter-spacing:.04em}
.chip{position:absolute;z-index:2;padding:9px 13px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
  border-radius:11px;font-size:.76rem;backdrop-filter:blur(4px);display:flex;align-items:center;gap:8px;animation:floaty 6s ease-in-out infinite}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--orange)}
.chip.c1{top:10%;left:9%}.chip.c2{top:10%;right:9%}
.chip.c3{bottom:10%;left:9%;animation-delay:3s}.chip.c4{bottom:10%;right:9%;animation-delay:3s}

/* ---------- ALERT ---------- */
.alert-panel{position:relative;background:#332a5c;color:#fff;border-radius:26px;overflow:hidden;border:1px solid rgba(239,144,59,.35)}
.alert-panel:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(239,144,59,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(239,144,59,.05) 1px,transparent 1px);
  background-size:40px 40px}
.alert-in{position:relative;z-index:1;padding:60px 52px}
.alert-head{max-width:640px;margin-bottom:44px}
.alert-head h2{font-size:clamp(1.8rem,3.4vw,2.4rem);line-height:1.15}
.alert-head p{margin-top:16px;color:#d6cfe6}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.step{padding:26px 22px;position:relative;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);border-radius:16px;transition:transform .25s,border-color .25s,background .25s}
.step:hover{transform:translateY(-4px);border-color:rgba(239,144,59,.5);background:rgba(255,255,255,.08)}
.step .k{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.66rem;letter-spacing:.08em;color:var(--orange)}
.step .num{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.06);border:1.5px solid var(--orange);
  display:grid;place-items:center;margin:14px 0 18px;font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;color:var(--orange);font-size:.85rem}
.step h3{font-size:1rem}
.step p{margin-top:7px;color:#cdc6de;font-size:.84rem}
/* subtle arrow in the gap between cards */
.step:not(:last-child):after{content:"";position:absolute;top:50%;right:-20px;width:20px;
  transform:translateY(-50%);display:flex;align-items:center;justify-content:center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ef903b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='0.7'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;height:16px}
.alert-foot{margin-top:36px}

/* ---------- MAP ---------- */
.map{display:grid;grid-template-columns:1.05fr .95fr;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--card)}
.map-art{position:relative;min-height:440px;overflow:hidden;background:#eef0f3}
.map-art .basemap{position:absolute;inset:0;width:100%;height:100%}
.map-badge{position:absolute;top:16px;left:16px;z-index:5;font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.62rem;
  letter-spacing:.08em;background:var(--purple);color:#fff;padding:6px 10px;border-radius:8px;box-shadow:0 4px 12px rgba(31,17,58,.25)}
/* marker = pin dot + animal thumbnail beside it */
.marker{position:absolute;z-index:4;display:flex;align-items:center;gap:8px;transform:translate(-50%,-50%);
  animation:markerin .6s both}
.marker.m1{animation-delay:.2s}.marker.m2{animation-delay:.4s}.marker.m3{animation-delay:.6s}
.loc{position:relative;width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--c,#2b2168);
  border:3px solid #fff;transform:rotate(-45deg);box-shadow:0 5px 12px rgba(31,17,58,.4);flex-shrink:0}
.m1 .loc{--c:#2b2168}.m2 .loc{--c:#f5a623}.m3 .loc{--c:#bb3516}
.loc:before{content:"";position:absolute;inset:0;margin:auto;width:9px;height:9px;border-radius:50%;background:#fff;transform:rotate(45deg)}
.thumb{position:relative;width:46px;height:46px;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:var(--c,#2b2168);border:3px solid var(--c,#2b2168);box-shadow:0 6px 16px rgba(31,17,58,.28);
  display:grid;place-items:center;animation:bob 4s ease-in-out infinite}
.m2 .thumb{animation-delay:.6s}.m3 .thumb{animation-delay:1.2s}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.thumb b{font-size:1.15rem;line-height:1;filter:grayscale(.1)}
.thumb:hover{transform:scale(1.08)}
.map-copy{padding:48px 42px;display:flex;flex-direction:column;justify-content:center}
.map-copy h2{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.15}
.map-copy>p{margin-top:14px;color:var(--muted)}
.map-list{list-style:none;margin:26px 0 30px}
.map-list li{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.map-list li:first-child{border-top:1px solid var(--line)}
.map-list .mn{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.72rem;color:var(--red);flex:0 0 22px}

/* ---------- ROLES ---------- */
.roles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.role{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px;
  display:flex;flex-direction:column;min-height:230px;transition:transform .25s,box-shadow .25s,border-color .25s}
.role:hover{transform:translateY(-5px);box-shadow:0 20px 36px rgba(31,17,58,.09);border-color:#d6cee4}
.role .k{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.66rem;letter-spacing:.06em;color:var(--muted)}
.role h3{font-size:1.1rem;margin:14px 0 8px}
.role p{color:var(--muted);font-size:.86rem;flex:1}
.role a{margin-top:16px;font-size:.86rem;font-weight:500;color:var(--purple);display:inline-flex;align-items:center;gap:6px}
.role a svg{width:15px;height:15px;transition:transform .2s}
.role:hover a svg{transform:translateX(4px)}

/* ---------- CTA ---------- */
.cta{background:var(--purple);color:#fff;border-radius:26px;overflow:hidden;position:relative}
.cta:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 70% at 85% 20%,rgba(239,144,59,.25),transparent 60%);pointer-events:none}
.cta-grid{display:grid;grid-template-columns:1fr .82fr;gap:52px;align-items:center;padding:60px 52px;position:relative}
.cta h2{font-size:clamp(1.9rem,3.6vw,2.6rem);line-height:1.15}
.cta p{margin:16px 0 28px;color:#cbc4d8;max-width:38ch}
.cta-actions{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- CONTACT CARD (CTA) ---------- */
.contact-card{background:#fff;color:var(--ink);border-radius:18px;padding:32px 28px;
  box-shadow:0 24px 48px rgba(20,12,36,.16);display:flex;flex-direction:column;min-width:0;overflow-x:hidden}
.contact-ic{width:46px;height:46px;border-radius:13px;background:var(--grad);color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:18px}
.contact-ic svg{width:22px;height:22px}
.contact-card .fnote{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.68rem;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;display:block}
.contact-card h3{font-size:1.28rem;margin-top:4px}
.contact-card p{margin:14px 0 20px;font-size:.92rem;line-height:1.6;color:var(--ink-soft)}
.contact-card label:not(.ct-consent){display:block;margin:14px 0 6px;font-size:.78rem;font-weight:500;color:var(--ink-soft)}
.contact-card input:not([type="checkbox"]),.contact-card textarea{width:100%;min-width:0;padding:13px 14px;border:1.5px solid var(--line);
  border-radius:11px;background:#fff;color:var(--ink);font-family:inherit;font-size:.92rem;
  transition:border-color .2s;resize:vertical;box-sizing:border-box}
.contact-card input:focus,.contact-card textarea:focus{outline:none;border-color:var(--purple)}
.contact-card .btn{width:100%;margin-top:20px}
.contact-msg{display:none;margin-top:12px;padding:11px 13px;background:rgba(187,53,22,.08);
  color:var(--red);border-radius:11px;font-size:.82rem;text-align:center}
.contact-msg.is-ok{background:rgba(101,24,66,.08);color:var(--plum)}
.contact-msg.is-err{background:rgba(187,53,22,.08);color:var(--red)}
html.dark-mode .contact-msg.is-ok{background:rgba(201,166,255,.12);color:#d9c2ff}
html.dark-mode .contact-msg.is-err{background:rgba(239,144,59,.14);color:#f0a765}
.field-err{display:none;margin:5px 0 2px;font-size:.75rem;line-height:1.35;color:var(--red)}
.field-err.show{display:block}
html.dark-mode .field-err{color:#f0a765}
.contact-card input.invalid,.contact-card textarea.invalid{border-color:var(--red)}
html.dark-mode .contact-card input.invalid,html.dark-mode .contact-card textarea.invalid{border-color:#f0a765}
.ct-consent.invalid{color:var(--red)}
html.dark-mode .ct-consent.invalid{color:#f0a765}
.ct-consent{display:flex;align-items:flex-start;gap:8px;margin:10px 0 2px;font-size:.82rem;line-height:1.4;color:var(--ink-soft);font-weight:400;cursor:pointer;text-align:left;min-width:0;width:100%;box-sizing:border-box}
.ct-consent input[type="checkbox"]{margin-top:3px;flex:0 0 auto;accent-color:var(--orange)}
.ct-consent span{flex:1 1 0%;min-width:0;overflow-wrap:break-word;word-break:break-word;text-align:left}
.contact-email{display:block;margin-top:14px;text-align:center;font-size:.78rem;color:var(--muted)}
html.dark-mode .contact-card{background:#1c1526;color:var(--ink)}
html.dark-mode .contact-card h3{color:var(--ink)}
html.dark-mode .contact-card input,html.dark-mode .contact-card textarea{background:#141019;color:var(--ink);border-color:var(--line)}

/* ---------- FAQ ---------- */
.faq{max-width:760px;margin-inline:auto}
.faq-head{text-align:center;margin-bottom:40px}
.faq-head h2{font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1.15;margin-bottom:16px}
.faq-head p{margin:0 auto;color:var(--muted);font-size:1.02rem;max-width:46ch;text-wrap:balance}
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:0 22px;transition:border-color .2s,box-shadow .2s}
.faq details[open]{border-color:#d6cee4;box-shadow:0 12px 26px rgba(31,17,58,.06)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;font-size:1.02rem;font-weight:600;color:var(--ink);-webkit-tap-highlight-color:transparent;outline:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::marker{content:'';display:none}
.faq .pm{position:relative;flex-shrink:0;width:28px;height:28px;border-radius:50%;color:var(--purple);transition:transform .25s,border-color .2s,background .2s;font-size:0;-webkit-tap-highlight-color:transparent}
.faq details[open] .pm{transform:rotate(45deg);border-color:transparent;background:var(--grad);color:#fff}
.faq .pm:before,.faq .pm:after{content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:2px}
.faq .pm:before{width:12px;height:1.8px;transform:translate(-50%,-50%)}
.faq .pm:after{width:1.8px;height:12px;transform:translate(-50%,-50%)}
.faq p{padding:0 0 22px;margin-top:-4px;color:var(--muted);font-size:.94rem;max-width:60ch}

/* ---------- FOOTER ---------- */
.footer{background:var(--ink);color:#c8c2d4;border-radius:26px 26px 0 0;margin-top:70px}
.footer-in{padding:56px var(--gut) 26px}
.footer-grid{display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:40px}
.footer .brand{color:#fff}
.footer-grid p{margin-top:16px;font-size:.86rem;color:#948db0;max-width:32ch}
.footer h4{color:#fff;font-size:.8rem;margin-bottom:14px;letter-spacing:.04em}
.footer-grid a{display:block;padding:6px 0;font-size:.86rem;color:#948db0;transition:color .2s}
.footer-grid a:hover{color:var(--orange)}
.legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:44px;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.1);font-size:.76rem;color:#7c7594}

/* ---------- SPOŁECZNOŚĆ (feed) ---------- */
.social-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.social-copy h2{font-size:clamp(1.9rem,3.6vw,2.6rem);line-height:1.15;margin-bottom:16px}
.social-copy p.lede{color:var(--ink-soft);font-size:1.08rem;max-width:44ch}
.social-tags{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px}
.social-tag{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:100px;
  background:var(--wash);border:1px solid var(--line);font-size:.86rem;font-weight:500;color:var(--ink-soft)}
.social-tag svg{width:16px;height:16px;stroke:var(--purple);stroke-width:1.7;fill:none}
html.dark-mode .social-tag{background:var(--card)}

/* telefon z feedem */
.feed-phone{position:relative;justify-self:center;width:300px;max-width:100%}
.feed-phone-img{display:block;width:100%;height:auto}
@media(min-width:1200px){
  .feed-phone{width:340px}
}
@media(min-width:1500px){
  .feed-phone{width:385px}
}
.feed-screen{border-radius:28px;overflow:hidden;background:var(--bone);border:1px solid var(--line)}
.feed-top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.feed-top .ft-logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;letter-spacing:-.02em}
.feed-top .ft-logo .brand-svg{height:15px;width:auto;display:block}
html.dark-mode .feed-top .ft-logo .brand-svg{filter:brightness(0) invert(1)}
.feed-top .ft-ic{display:flex;gap:14px;color:var(--muted)}
.feed-top .ft-ic svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.8;fill:none}
/* stories / obserwowani */
.feed-stories{display:flex;gap:12px;padding:14px 16px;overflow:hidden}
.story{display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 auto}
.story .ring{width:52px;height:52px;border-radius:50%;padding:2.5px;background:var(--grad)}
.story .ring b{display:flex;width:100%;height:100%;border-radius:50%;background:var(--card);
  align-items:center;justify-content:center;font-size:1.3rem}
.story small{font-size:.62rem;color:var(--muted);max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* post */
.feed-post{border-top:1px solid var(--line);padding:14px 16px}
.fp-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.fp-av{width:36px;height:36px;border-radius:50%;background:var(--wash);display:grid;place-items:center;font-size:1.1rem;flex:0 0 auto}
.fp-meta b{display:block;font-size:.82rem;line-height:1.2}
.fp-meta small{font-size:.68rem;color:var(--muted)}
.fp-photo{border-radius:16px;height:150px;background:
  radial-gradient(circle at 30% 30%,rgba(239,144,59,.35),transparent 55%),
  linear-gradient(130deg,var(--purple) 0%,var(--plum) 55%,var(--red) 100%);
  display:grid;place-items:center;font-size:2.6rem}
.fp-actions{display:flex;gap:18px;margin-top:12px;color:var(--ink-soft)}
.fp-actions span{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:500}
.fp-actions svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none}
.fp-actions .liked svg{fill:var(--red);stroke:var(--red)}
.fp-actions .liked{color:var(--red)}
/* dolny pasek zakładek + shortsy */
.feed-tabbar{display:flex;justify-content:space-around;align-items:center;padding:12px 8px;border-top:1px solid var(--line)}
.feed-tabbar svg{width:22px;height:22px;stroke:var(--muted);stroke-width:1.8;fill:none}
.feed-tabbar .active svg{stroke:var(--purple);fill:rgba(43,33,104,.08)}
.feed-tabbar .reel{width:34px;height:34px;border-radius:11px;background:var(--grad);display:grid;place-items:center}
.feed-tabbar .reel svg{stroke:#fff;width:18px;height:18px}

/* ---------- WETERYNARZ / DZIEŃ Z ŻYCIA GABINETU ---------- */
.provet{background:transparent;color:var(--ink);border-radius:26px;overflow:hidden;position:relative}
/* wielka łapa psa jako subtelny pattern (opacity ~5%) */
.provet:before{content:"";position:absolute;right:-40px;top:-30px;width:420px;height:420px;opacity:.05;pointer-events:none;
  background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='%23201a37'%3E%3Cellipse cx='50' cy='66' rx='26' ry='22'/%3E%3Cellipse cx='24' cy='40' rx='9' ry='13'/%3E%3Cellipse cx='42' cy='27' rx='9' ry='14'/%3E%3Cellipse cx='60' cy='27' rx='9' ry='14'/%3E%3Cellipse cx='77' cy='40' rx='9' ry='13'/%3E%3C/svg%3E")}
.provet:after{content:"";position:absolute;left:-30px;bottom:-50px;width:220px;height:220px;opacity:.05;pointer-events:none;transform:rotate(28deg);
  background:no-repeat center/contain
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='%23201a37'%3E%3Cellipse cx='50' cy='66' rx='26' ry='22'/%3E%3Cellipse cx='24' cy='40' rx='9' ry='13'/%3E%3Cellipse cx='42' cy='27' rx='9' ry='14'/%3E%3Cellipse cx='60' cy='27' rx='9' ry='14'/%3E%3Cellipse cx='77' cy='40' rx='9' ry='13'/%3E%3C/svg%3E")}
html.dark-mode .provet:before,html.dark-mode .provet:after{filter:invert(1)}
.provet-in{padding:60px 4px;position:relative}
.provet-head{max-width:640px;margin-bottom:14px}
.provet-head .k{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.72rem;letter-spacing:.14em;color:var(--red);text-transform:uppercase}
.provet-head h2{font-size:clamp(1.8rem,3.4vw,2.5rem);line-height:1.15;margin:10px 0 14px}
.provet-head p{color:var(--muted);font-size:1.05rem;max-width:54ch}

/* oś czasu dnia */
.pvday-label{display:flex;align-items:center;gap:12px;margin:46px 0 26px;font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;
  font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pvday-label:after{content:"";flex:1;height:1px;background:var(--line)}
.pvtl{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.pvtl:before{content:"";position:absolute;top:22px;left:6%;right:6%;height:2px;
  background:linear-gradient(90deg,rgba(239,144,59,.3),var(--orange) 60%,var(--red));z-index:0}
.pvstep{position:relative;z-index:1}
.pvstep .node{width:46px;height:46px;border-radius:50%;background:var(--bone);
  border:2px solid var(--orange);display:grid;place-items:center;margin-bottom:18px}
.pvstep .node svg{width:22px;height:22px;stroke:var(--orange);stroke-width:1.8;fill:none}
.pvstep.loop .node{background:var(--orange)}
.pvstep.loop .node svg{stroke:#fff}
.pvstep .t{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.72rem;letter-spacing:.06em;color:var(--red);margin-bottom:6px;display:block}
.pvstep h3{font-size:1.04rem;line-height:1.2;margin-bottom:7px;color:var(--ink)}
.pvstep p{color:var(--muted);font-size:.86rem;line-height:1.55}

/* domknięcie pętli */
.pvloop-note{margin-top:26px;padding:14px 18px;border-radius:14px;background:rgba(239,144,59,.1);
  border:1px solid rgba(239,144,59,.3);display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--ink-soft);max-width:max-content}
.pvloop-note svg{width:20px;height:20px;stroke:var(--red);stroke-width:1.8;fill:none;flex:0 0 auto}
.pvloop-note b{color:var(--ink);font-weight:600}

/* pas dodatkowych atutów */
.pvextra{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:46px;
  border-top:1px solid var(--line)}
.pvx{padding:28px 26px 4px;position:relative}
.pvx:first-child{padding-left:0}
.pvx+.pvx:before{content:"";position:absolute;left:0;top:28px;bottom:8px;width:1px;background:var(--line)}
.pvx-head{display:flex;align-items:center;gap:11px;margin-bottom:9px}
.pvx-head svg{width:21px;height:21px;stroke:var(--red);stroke-width:1.7;fill:none;flex:0 0 auto}
.pvx-head h3{font-size:1rem;color:var(--ink)}
.pvx p{color:var(--muted);font-size:.86rem;line-height:1.55}

.provet-foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:44px}
.provet-foot .note{font-size:.82rem;color:var(--muted);max-width:34ch}

/* ---------- ROADMAPA MONETYZACJI ---------- */
.spons{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:44px 48px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:52px;align-items:center}
.spons .k{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.72rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.spons h3{font-size:clamp(1.4rem,2.4vw,1.85rem);margin:10px 0 12px;letter-spacing:-.02em;line-height:1.15}
.spons p{color:var(--muted);font-size:.98rem;max-width:56ch}
.spons-points{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;margin-top:28px}
.sp-point{display:flex;gap:12px;align-items:flex-start}
.sp-point .sp-ic{width:38px;height:38px;flex:0 0 auto;border-radius:11px;background:var(--wash);display:grid;place-items:center}
.sp-point .sp-ic svg{width:20px;height:20px;stroke:var(--purple);stroke-width:1.7;fill:none}
.sp-point b{display:block;font-size:.92rem;letter-spacing:-.01em;margin-bottom:2px}
.sp-point span{font-size:.82rem;color:var(--muted);line-height:1.5}
html.dark-mode .sp-point .sp-ic{background:#141019}
.spons-visual{display:flex;flex-direction:column;gap:12px;width:100%}
.spons-visual .sv-cap{font-size:.72rem;color:var(--muted);letter-spacing:.02em;margin-bottom:2px;display:flex;align-items:center;gap:8px}
.spons-visual .sv-cap svg{width:15px;height:15px;stroke:var(--muted);stroke-width:1.8;fill:none;flex:0 0 auto}
.sv-row{display:flex;align-items:center;gap:13px;padding:14px 15px;border-radius:13px;background:var(--wash);border:1px solid var(--line);font-size:.86rem;color:var(--ink-soft)}
.sv-row .thumb{width:36px;height:36px;border-radius:9px;background:var(--grad);flex:0 0 auto;display:grid;place-items:center;font-size:1.1rem}
.sv-row.promo{background:linear-gradient(120deg,rgba(239,144,59,.14),rgba(187,53,22,.08));border-color:rgba(239,144,59,.4)}
.sv-badge{margin-left:auto;font-size:.6rem;font-weight:700;letter-spacing:.05em;color:var(--red);
  background:rgba(187,53,22,.1);border-radius:6px;padding:3px 7px;text-transform:uppercase;flex:0 0 auto}
html.dark-mode .sv-row{background:#141019}

/* keyframes */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:1}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(127,224,160,.6)}70%{box-shadow:0 0 0 8px rgba(127,224,160,0)}100%{box-shadow:0 0 0 0 rgba(127,224,160,0)}}
@keyframes corepulse{0%,100%{box-shadow:0 0 0 8px rgba(239,144,59,.12),0 0 0 18px rgba(239,144,59,.06)}50%{box-shadow:0 0 0 12px rgba(239,144,59,.18),0 0 0 26px rgba(239,144,59,.08)}}
@keyframes dash{to{stroke-dashoffset:-400}}
@keyframes drop{from{opacity:0;transform:rotate(-45deg) translateY(-12px)}to{opacity:1;transform:rotate(-45deg) translateY(0)}}
@keyframes ping{0%{transform:translate(-50%,-50%) rotate(45deg) scale(.6);opacity:.7}100%{transform:translate(-50%,-50%) rotate(45deg) scale(1.8);opacity:0}}
@keyframes markerin{from{opacity:0;transform:translate(-50%,-50%) translateY(-14px)}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;transform:none!important;transition:none}
  .hero-img,.phone-glow,.chip,.core,.orbit-stage svg .link,.marker,.thumb{animation:none!important}
  .marker{opacity:1}
}

/* ---------- responsive ---------- */
@media(max-width:940px){
  .nav-links{display:none}
  .nav-right .btn{display:none}
  .burger{display:flex}
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .phone-wrap{order:-1;min-height:auto;transform:none;margin-top:0}
  .hero-img{max-width:520px}
  .mod-grid{grid-template-columns:repeat(2,1fr)}
  .panel-grid,.cta-grid,.map{grid-template-columns:1fr}
  .panel-art{min-height:380px;border-left:0;border-top:1px solid rgba(255,255,255,.12)}
  .steps{grid-template-columns:1fr 1fr}
  .step:nth-child(2n):after{display:none}
  .step:nth-child(2n-1):not(:last-child):after{content:"";top:auto;bottom:-20px;right:auto;left:50%;
    transform:translateX(-50%) rotate(90deg)}
  .roles{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child{grid-column:1/-1}
  .panel-copy,.alert-in,.cta-grid,.map-copy{padding:44px 32px}
  .cta-grid{gap:36px}
  .cta-soon{display:none}
  .hero-download.soon .qr,.hero-download.soon .qr-hint,.hero-download.soon .dl-label-row{display:none}
  .map-art{min-height:0;aspect-ratio:600/440}
  .social-grid{grid-template-columns:1fr;gap:40px}
  .feed-phone{order:-1}
  .provet-in{padding:44px 32px}
  .pvtl{grid-template-columns:1fr 1fr;gap:32px 20px}
  .pvtl:before{display:none}
  .pvextra{grid-template-columns:1fr}
  .pvx{padding:24px 0}
  .pvx+.pvx{border-top:1px solid rgba(255,255,255,.1)}
  .pvx+.pvx:before{display:none}
  .spons{grid-template-columns:1fr;padding:36px;gap:36px}
  .system-section{padding-top:60px}
}
/* tablet: wyśrodkowanie treści hero, gdy kolumna jest jednorzędowa */
@media(min-width:561px) and (max-width:940px){
  .hero h1{font-size:clamp(1.7rem,3.6vw,2.65rem)}
  .hero-copy{text-align:center}
  .hero p.lede{margin-inline:auto}
  .hero-cta{justify-content:center}
  .hero-download{justify-content:center;margin-inline:auto}
  .store-row{justify-content:center}
  .hero-stats{justify-content:center;text-align:center}
  .phone-wrap{text-align:center}
  .hero-img{max-width:440px;margin-inline:auto}
}
@media(max-width:560px){
  .brand-svg{height:auto;width:118px;max-width:34vw}
  .nav-in{gap:10px}
  .nav-right{gap:7px}
  .lang-switch{height:38px}
  .lang-opt{padding:0 9px;font-size:.74rem}
  .theme-toggle,.a11y-toggle{width:38px;height:38px}
  .theme-toggle svg,.a11y-toggle svg{width:20px;height:20px}
  .burger{width:40px;height:40px}
  body{font-size:15px}
  .section{padding:66px 0}
  .system-section{padding-top:27px}
  .hero{padding:40px 0 0;overflow-x:clip}
  .hero-stats{gap:22px;justify-content:center;text-align:center}
  .hero-stats .n{font-size:1.4rem}
  .hero-download{flex-flow:row wrap;align-items:center;justify-content:flex-start;max-width:none;gap:10px 14px}
  .dl-badges{order:3;flex-basis:100%}
  .store-row{width:100%}
  .store{flex:1;justify-content:center}
  .phone-wrap{order:-1;min-height:auto;transform:none;margin-top:0}
  .hero-img{max-width:400px}
  .mod-grid,.roles,.steps{grid-template-columns:1fr}
  .step:not(:last-child):after{content:"";top:auto;bottom:-20px;right:auto;left:50%;
    transform:translateX(-50%) rotate(90deg);display:block}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .footer-grid>div:first-child{grid-column:auto}
  .footer-in{padding:44px var(--gut) 24px}
  .legal{flex-direction:column;gap:8px;margin-top:36px}
  .provet-in{padding:34px 24px}
  .pvtl{grid-template-columns:1fr;gap:0}
  .pvstep{padding-left:60px;padding-bottom:26px}
  .pvstep:not(:last-child):before{content:"";position:absolute;left:22px;top:46px;bottom:-4px;width:2px;background:rgba(239,144,59,.4)}
  .pvstep .node{position:absolute;left:0;top:0;margin-bottom:0}
  .pvloop-note{max-width:none}
  .spons{grid-template-columns:1fr;padding:28px 24px;gap:32px}
  .spons-visual{width:100%}
  .spons-points{grid-template-columns:1fr;gap:16px}
  .panel-copy,.alert-in,.map-copy,.cta-grid,.contact-card{padding:34px 24px}
  .cta-grid{padding:0;gap:0}
  .cta-grid>div:first-child{padding:36px 24px 0}
  .cta-grid>.contact-card{margin:24px}
  .hero-cta,.cta-actions{width:100%}
  .hero-cta .btn,.cta-actions .btn{flex:1}
}
@media(max-width:380px){
  .wrap{padding-inline:16px}
  .nav-in{gap:8px}
  .nav-right{gap:6px}
  .brand-svg{width:104px}
  .lang-opt{padding:0 7px;font-size:.72rem}
  .theme-toggle,.a11y-toggle{width:36px;height:36px}
  .burger{width:36px;height:36px}
}

/* ===== EKOSYSTEM / KATALOG FUNKCJI (z Nowa_animalbook) ===== */
.catalog{margin-top:20px}
.cat-head{max-width:640px;margin-bottom:36px}
.cat-head .mono{display:block;font-size:.66rem;letter-spacing:.14em;color:var(--red);
  text-transform:uppercase;margin-bottom:12px}
.cat-head h3{font-size:clamp(1.5rem,3vw,2rem);line-height:1.12;margin-bottom:12px}
.cat-head p{color:var(--muted);font-size:1rem}
.cat-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
.mod-acc{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  transition:border-color .2s,box-shadow .2s}
.mod-acc[open]{border-color:#d6cee4;box-shadow:0 14px 30px rgba(31,17,58,.07);grid-column:1 / -1}
.mod-acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;
  padding:20px 20px;user-select:none}
.mod-acc[open] summary{padding:22px 26px}
.mod-acc summary::-webkit-details-marker{display:none}
.mod-acc summary::marker{content:'';display:none}
.mod-acc summary:focus-visible{outline:3px solid var(--purple);outline-offset:-3px;border-radius:18px}
.mod-num{font-family:Futura,"Jost","Century Gothic",system-ui,sans-serif;font-size:.82rem;font-weight:600;
  color:#fff;background:var(--grad);width:40px;height:40px;border-radius:11px;
  display:grid;place-items:center;flex:0 0 auto;letter-spacing:.02em}
.mod-acc[open] .mod-num{width:44px;height:44px;font-size:.9rem}
.mod-tt{flex:1;min-width:0}
.mod-tt h4{font-size:1rem;font-weight:600;letter-spacing:-.02em;margin-bottom:2px}
.mod-acc[open] .mod-tt h4{font-size:1.12rem}
.mod-tt p{color:var(--muted);font-size:.8rem;line-height:1.35;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mod-acc[open] .mod-tt p{-webkit-line-clamp:unset;font-size:.85rem}
.mod-count{font-family:Futura,"Jost",system-ui,sans-serif;font-size:.66rem;letter-spacing:.04em;
  color:var(--muted);flex:0 0 auto;white-space:nowrap;display:none}
.mod-acc[open] .mod-count{display:block}
.mod-chev{flex:0 0 auto;width:20px;height:20px;color:var(--muted);transition:transform .25s}
.mod-acc[open] .mod-chev{transform:rotate(180deg)}
.mod-body{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);
  gap:14px;padding:22px 26px 26px}
.fn{background:var(--wash);border:1px solid var(--line);border-radius:14px;padding:18px 18px}
.fn .fh{display:flex;align-items:baseline;gap:9px;margin-bottom:6px}
.fn .fnum{font-family:Futura,"Jost",system-ui,sans-serif;font-size:.72rem;color:var(--red);font-weight:600;flex:0 0 auto}
.fn h5{font-size:.98rem;font-weight:600;letter-spacing:-.02em}
.fn>p{color:var(--ink-soft);font-size:.84rem;line-height:1.5}
.fn ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fn ul li{font-size:.74rem;color:var(--muted);background:var(--card);border:1px solid var(--line);
  border-radius:100px;padding:4px 10px}
.fn .goal{display:block;margin-top:10px;font-size:.78rem;color:var(--purple);font-weight:500;line-height:1.45}
html.dark-mode .fn .goal{color:#c9a6ff}
.fn.wide{grid-column:1 / -1}
.mod-acc.alert{border-color:rgba(239,144,59,.5)}
.mod-acc.alert .mod-num{background:var(--orange);color:#1a1000}

/* katalog - responsywność */
@media (max-width:940px){
  .cat-list{grid-template-columns:1fr}
  .mod-count{display:block}
  .mod-tt p{-webkit-line-clamp:unset}
  .mod-body{grid-template-columns:1fr}
  .mod-acc summary{padding:18px 18px;gap:14px}
  .mod-body{padding:18px}
}
@media (min-width:941px) and (max-width:1100px){
  .cat-list{grid-template-columns:repeat(2,1fr)}
  .mod-body{grid-template-columns:repeat(2,1fr)}
}


/* ==================================================================
   PAGE-SPECIFIC STYLES
   ================================================================== */

/* ---- cennik: price-hike ---- */
    .price-hike{
      margin:16px 0 4px;padding:14px 16px;
      border-radius:12px;
      background:linear-gradient(135deg,rgba(239,144,59,0.10) 0%,rgba(187,53,22,0.08) 100%);
      border:1.5px solid rgba(239,144,59,0.3);
      display:flex;align-items:flex-start;gap:12px;
    }
    .price-hike-title{font-size:0.88rem;font-weight:700;color:var(--ink);margin-bottom:2px;}
    .price-hike-date{color:var(--red);}
    .price-hike-sub{font-size:0.82rem;color:var(--ink-soft);line-height:1.45;}
    .price-hike-sub b{color:var(--ink);}
    .price-hike-timer{
      display:flex;gap:8px;margin-top:10px;
    }
    .price-hike-timer .t-block{
      text-align:center;background:var(--card);
      border:1px solid var(--line);border-radius:8px;
      padding:6px 10px;min-width:52px;
    }
    .price-hike-timer .t-val{
      font-size:1.15rem;font-weight:700;color:var(--purple);
      display:block;line-height:1.2;
    }
    .price-hike-timer .t-label{
      font-size:0.62rem;text-transform:uppercase;letter-spacing:0.06em;
      color:var(--muted);font-weight:600;
    }
    .price-hike.expired .price-hike-timer{display:none;}
    .price-hike.expired .price-hike-sub{color:var(--red);font-weight:600;}
    html.dark-mode .price-hike{
      background:linear-gradient(135deg,rgba(239,144,59,0.06) 0%,rgba(187,53,22,0.05) 100%);
      border-color:rgba(239,144,59,0.18);
    }
    html.dark-mode .price-hike-timer .t-block{background:#1e1a2d;border-color:#3a3450;}
    @media(max-width:480px){
      .price-hike-timer .t-block{min-width:44px;padding:5px 6px;}
      .price-hike-timer .t-val{font-size:1rem;}
    }

/* ---- nasz-zespol: team grid ---- */
    .team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
    .team-card{text-align:center;padding:36px 24px 28px;}
    .team-card .avatar{
      width:88px;height:88px;border-radius:50%;
      display:grid;place-items:center;
      font-size:1.6rem;font-weight:700;
      margin:0 auto 18px;
      color:#fff;
      background:var(--grad);
    }
    .team-card .avatar.alt{background:var(--purple);}
    .team-card .avatar.warm{background:var(--grad-warm);}
    .team-card h3{font-size:1.1rem;margin-bottom:2px;line-height:1.3;}
    .team-card .role{
      font-size:0.78rem;font-weight:600;text-transform:uppercase;
      letter-spacing:0.06em;color:var(--muted);margin-bottom:14px;
      background:none;border:none;border-radius:0;padding:0;
      min-height:auto;display:block;box-shadow:none;
    }
    .team-card .role:hover{transform:none;box-shadow:none;border-color:transparent;}
    .team-card p{font-size:0.88rem;color:var(--ink-soft);line-height:1.55;}
    .team-chairman{grid-column:1 / -1;max-width:480px;margin:0 auto;}
    @media(max-width:900px){
      .team-grid{grid-template-columns:repeat(2,1fr);}
      .team-chairman{max-width:100%;}
    }
    @media(max-width:540px){
      .team-grid{grid-template-columns:1fr;}
    }

/* ---- rozwiazania: solution blocks ---- */
    /* Page-specific helpers, kept local since they're only used here */
    .solution-icon{
      width:56px;height:56px;border-radius:16px;
      display:grid;place-items:center;margin-bottom:18px;
      flex-shrink:0;
    }
    .solution-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
    .solution-block{padding:44px;margin-bottom:28px;}
    .solution-block .grid-2{align-items:center;gap:44px;}
    .solution-media{
      border-radius:20px;padding:36px 32px;text-align:center;
      display:flex;flex-direction:column;align-items:center;
    }
    .solution-media .solution-icon{margin-bottom:14px;}
    .stat-mini{text-align:center;padding:24px 18px;}
    .stat-mini .num{font-size:2rem;font-weight:700;letter-spacing:-.03em;}
    .stat-mini p{color:var(--muted);font-size:.82rem;margin-top:6px;}
    .quicknav{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
    .quicknav a.filter-btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;}
    @media (max-width:992px){
      .solution-block{padding:30px;}
    }
    @media (max-width:600px){
      .solution-block{padding:24px 20px;}
      .solution-media{padding:28px 22px;}
    }

/* ---- przynaleznosc: reveal override ---- */
/* Ta strona ma być w pełni widoczna natychmiast po załadowaniu. */
.reveal,
.reveal.in,
.reveal.d1,
.reveal.d2,
.reveal.d3,
.reveal.d4{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
  animation:none !important;
  visibility:visible !important;
}

/* ---- cookie banner extended ---- */
  #ab-cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:999999;
    font-family:'Open Sauce Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
    transform:translateY(120%);opacity:0;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .45s ease;pointer-events:none}
  #ab-cookie-banner.ab-visible{transform:translateY(0);opacity:1;pointer-events:auto}
  #ab-cookie-banner.ab-hiding{transform:translateY(120%);opacity:0}
  #ab-cookie-banner[hidden]{display:none !important}
  #ab-cookie-banner .ab-cookie-inner{max-width:1232px;margin:0 auto;background:var(--card);
    border:1px solid var(--line);border-bottom:none;border-radius:16px 16px 0 0;
    box-shadow:0 -8px 28px var(--shadow-strong);padding:20px 28px;display:flex;flex-direction:column}
  #ab-cookie-banner .ab-cookie-text{color:var(--ink-soft);font-size:13.5px;line-height:1.55;margin:0;flex:1 1 auto;min-width:0}
  #ab-cookie-banner .ab-cookie-link{color:var(--plum);text-decoration:underline;
    text-decoration-color:rgba(101,24,66,.35);text-underline-offset:2px;transition:color .15s}
  #ab-cookie-banner .ab-cookie-link:hover{color:var(--red);text-decoration-color:currentColor}
  html.dark-mode #ab-cookie-banner .ab-cookie-link{color:#ef903b;text-decoration-color:rgba(239,144,59,.4)}
  #ab-cookie-banner .ab-cookie-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto;margin-left:auto}
  .ab-cookie-main{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%}
  #ab-cookie-banner .ab-btn-text{background:none;border:none;color:var(--ink-soft);text-decoration:underline;
    text-decoration-color:rgba(120,120,120,.35);text-underline-offset:2px;padding:12px 4px;font-size:13.5px;
    font-weight:600;font-family:inherit;cursor:pointer}
  #ab-cookie-banner .ab-btn-text:hover{color:var(--ink)}
  .ab-cookie-prefs{width:100%;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
  .ab-pref-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0}
  .ab-pref-row + .ab-pref-row{border-top:1px solid var(--line)}
  .ab-pref-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
  .ab-pref-title{font-size:13.5px;font-weight:700;color:var(--ink)}
  .ab-pref-desc{font-size:12.5px;color:var(--muted);line-height:1.45}
  .ab-pref-switch{flex:0 0 auto;width:40px;height:24px;border-radius:100px;border:none;background:#cec6dc;
    position:relative;cursor:pointer;padding:0;transition:background .15s}
  .ab-pref-switch .ab-pref-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
    background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
  .ab-pref-switch[aria-checked="true"]{background:var(--purple)}
  .ab-pref-switch[aria-checked="true"] .ab-pref-knob{transform:translateX(16px)}
  .ab-pref-switch-locked{background:var(--purple);opacity:.55;cursor:default}
  .ab-pref-switch-locked .ab-pref-knob{transform:translateX(16px)}
  html.dark-mode .ab-pref-switch{background:#4a4360}
  .ab-pref-actions{justify-content:flex-end;margin-top:10px}
  #ab-cookie-banner .ab-btn:focus-visible,#ab-cookie-banner .ab-btn-text:focus-visible,.ab-pref-switch:focus-visible{outline:2px solid var(--red);outline-offset:2px}
  #ab-cookie-banner .ab-btn{font-family:inherit;font-size:13.5px;font-weight:600;letter-spacing:.01em;
    border-radius:10px;padding:12px 20px;cursor:pointer;white-space:nowrap;transition:transform .15s,box-shadow .2s,background .2s,border-color .2s,color .2s}
  #ab-cookie-banner .ab-btn:active{transform:scale(.97)}
  #ab-cookie-banner .ab-btn-ghost{background:rgba(43,33,104,.06);border:0;color:var(--ink-soft)}
  #ab-cookie-banner .ab-btn-ghost:hover{color:var(--ink);background:rgba(43,33,104,.11)}
  #ab-cookie-banner .ab-btn-primary{border:0;color:#fff;background:linear-gradient(90deg,#651842 0%,#bb3516 55%,#ef903b 100%)}
  #ab-cookie-banner .ab-btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(101,24,66,.28)}
  @media(max-width:860px){#ab-cookie-banner .ab-cookie-inner{border-radius:0;padding:18px 20px}#ab-cookie-banner .ab-cookie-main{flex-wrap:wrap}}
  @media(max-width:560px){
    #ab-cookie-banner .ab-cookie-inner{padding:18px 16px 20px}
    #ab-cookie-banner .ab-cookie-main{flex-direction:column;align-items:stretch;gap:16px}
    #ab-cookie-banner .ab-cookie-actions{width:100%;flex-direction:column-reverse;gap:10px}
    #ab-cookie-banner .ab-btn{width:100%;text-align:center;padding:13px 20px}
    .ab-pref-row{flex-wrap:wrap;gap:8px}
  }
  @media(prefers-reduced-motion:reduce){#ab-cookie-banner{transition:none}}

/* === NAV-ACTIONS RESPONSIVE FIX === */
@media(max-width:940px){
  .nav-actions .btn.btn-sm { display: none; }
}
@media(max-width:560px){
  .nav-actions { gap: 6px; }
  .ctrl-icon-btn { width: 36px; height: 36px; }
  .ctrl-icon-btn svg { width: 18px; height: 18px; }
  .lang-switch { height: 36px; }
  .lang-opt { padding: 0 8px; font-size: .72rem; }
  .burger-btn { width: 36px; height: 36px; }
  .brand-logo-svg { height: 16px; }
  .nav-container { gap: 8px; overflow: hidden; }
}
@media(max-width:380px){
  .nav-actions { gap: 4px; }
  .ctrl-icon-btn { width: 34px; height: 34px; }
  .lang-switch { height: 34px; }
  .lang-opt { padding: 0 6px; font-size: .7rem; }
  .brand-logo-svg { height: 14px; }
}

/* ---- kontakt: form + company info layout ---- */
.contact-layout{
  display:grid;
  grid-template-columns:1.2fr 0.8fr;
  gap:36px;
  align-items:start;
}
@media(max-width:768px){
  .contact-layout{grid-template-columns:1fr;}
}

/* ---- influencer: mediakit layout ---- */
.mediakit-layout{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:40px;
  align-items:center;
}
@media(max-width:768px){
  .mediakit-layout{grid-template-columns:1fr;}
}

/* ===== Document pages (Polityka Prywatności, Regulamin) ===== */
.doc-page{max-width:840px;margin:0 auto;padding:48px 22px 80px}
.doc-page header.doc{border-bottom:2px solid var(--line);padding-bottom:22px;margin-bottom:12px}
.doc-page h1{font-size:1.9rem;margin:.35em 0 .1em;letter-spacing:-.01em}
.doc-page .sub{color:var(--muted);font-size:.94rem;margin:.2em 0 0}
.doc-page h2{font-size:1.16rem;margin:2.1em 0 .5em;color:var(--purple);letter-spacing:-.01em}
.doc-page p{margin:.55em 0}
.doc-page ol,.doc-page ul{margin:.4em 0 .8em;padding-left:1.5em}
.doc-page li{margin:.3em 0}
.doc-page .box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:16px 0}
.doc-page .box .mono{color:var(--plum)}
.doc-page dl{margin:.5em 0}
.doc-page dt{font-weight:600;margin-top:.8em}
.doc-page dd{margin:.1em 0 0}
.doc-page table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.95rem}
.doc-page th,.doc-page td{border:1px solid var(--line);padding:9px 11px;text-align:left;vertical-align:top}
.doc-page th{background:var(--card);font-weight:600}
.doc-page a{color:var(--purple)}
.doc-page footer.doc{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.86rem}
.doc-page .toc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:20px 0 8px}
.doc-page .toc ol{columns:2;column-gap:28px;margin:.3em 0 0}
@media(max-width:560px){.doc-page .toc ol{columns:1}}

/* ===== Dual-language content toggle (doc pages) ===== */
html[lang="en"] .doc-page [lang="pl"],
html[lang="pl"] .doc-page [lang="en"]{display:none}
