:root{
  --primary:#145dff;
  --dark:#0f172a;
  --text:#1e293b;
  --muted:#64748b;
  --border:#e5e7eb;
  --bg:#ffffff;
}

h1, h2, h3, h4 { overflow-wrap: break-word; }
*{ box-sizing:border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body { margin:0; font-family:'Inter',sans-serif; color:var(--text); background:#fff; overflow-x: hidden; width: 100%; }

.container{ width: 100%; max-width: 1360px; padding-left: 24px; padding-right: 24px; margin: 0 auto; }

.marquee-container { overflow: hidden; white-space: nowrap; position: relative; }
.marquee-content { animation: marquee 50s linear infinite; }
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.site-header{ position:sticky; top:0; z-index:1000; background:#fff; border-bottom:1px solid var(--border); }
.nav{ display:flex; align-items:center; justify-content:space-between; height:72px; }
.logo{ text-decoration:none; font-size:3rem; line-height:1; font-weight:800; color:var(--dark); }
.logo span{color:var(--primary)}
.main-nav{ display:flex; gap:40px; }
.main-nav a{ text-decoration:none; color:var(--dark); font-weight:500; }

.btn{ display:inline-flex; align-items:center; justify-content:center; padding:16px 28px; border-radius:12px; text-decoration:none; font-weight:600; transition:.2s ease; }
.btn-primary{ background:var(--primary); color:#fff; box-shadow:0 10px 25px rgba(20,93,255,.25); }
.btn-secondary{ border:1px solid rgba(255,255,255,.45); color:#fff; background:rgba(255,255,255,.04); }

.hero{ background: radial-gradient(circle at 15% 50%, rgba(0,71,171,.45), transparent 35%), linear-gradient(90deg, #051426 0%, #071827 40%, #0a1724 100%); }
.hero-grid{ display:grid; grid-template-columns: 1.05fr 1fr; gap:56px; align-items:center; min-height:720px; }
.hero-content{ color:#fff; }
.hero-content h1{ margin:0 0 28px; font-size:clamp(4rem, 5vw, 6rem); line-height:1.03; font-weight:800; }
.hero-content h1 span{ color:var(--primary); display:block; }
.hero-content p{ margin:0; max-width:720px; font-size:1.65rem; line-height:1.6; color:#d6e1f2; }
.hero-actions{ display:flex; gap:18px; margin-top:40px; }
.hero-image img{ width:100%; border-radius:12px; display:block; box-shadow:0 20px 60px rgba(0,0,0,.35); }

.offer-section{ padding:90px 0 20px; }
.offer-header{ display:grid; grid-template-columns: 1.25fr 1fr; gap:48px; align-items:start; margin-bottom:42px; }
.eyebrow{ margin:0 0 12px; color:var(--primary); font-size:.9rem; letter-spacing:.18em; font-weight:700; }
.offer-header h2{ margin:0; font-size:3.6rem; line-height:1.1; color:var(--dark); }
.offer-description{ margin:0; color:var(--muted); font-size:1.3rem; line-height:1.8; }
.cards{ display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; }

/* KARTY: Zwiększona stała poświata + jeszcze wyraźniejszy efekt hover */
.card {
    position: relative;
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow: visible; 
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    /* Stała, wyraźna poświata */
    box-shadow: 0 4px 20px rgba(20, 93, 255, 0.25);
}

.card:hover {
    transform: translateY(-10px) scale(1.02);
    /* Intensywna aura po najechaniu */
    box-shadow: 0 20px 45px rgba(20, 93, 255, 0.4), 
                0 0 40px rgba(20, 93, 255, 0.4) !important;
    z-index: 10;
}

.card img{ width:100%; height:240px; object-fit:cover; display:block; border-radius: 18px 18px 0 0; }
.card-body{ padding:22px 24px 26px; }
.card h3{ margin:0 0 10px; font-size:1.9rem; color:var(--dark); }
.card p{ margin:0; color:#475569; font-size:1.05rem; }

.benefits{ margin-top:70px; padding:42px 0; background: radial-gradient(circle at 85% 50%, rgba(20,93,255,.35), transparent 25%), linear-gradient(90deg, #031120 0%, #071827 50%, #08111d 100%); }
.benefits-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; }
.benefit strong{ display:block; font-size:1.5rem; margin-bottom:6px; color:#fff; }
.benefit span{ color:#b8c7de; font-size:1rem; }

.placeholder, .contact{ padding:80px 0; }
.placeholder h2, .contact h2{ font-size:3rem; margin:0 0 16px; color:var(--dark); }
.placeholder p, .contact p{ color:var(--muted); font-size:1.15rem; }

@media (max-width: 1200px){ .cards{grid-template-columns:repeat(2,1fr)} .offer-header{grid-template-columns:1fr} .benefits-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width: 900px){ .main-nav, .nav > .btn{display:none} .hero-grid{grid-template-columns:1fr; min-height:auto; padding:60px 24px} .hero-content h1{font-size:2.4rem;} .hero-content p{font-size:1.1rem} .hero-actions{flex-direction:column} .offer-header h2{font-size:2.4rem} }
@media (max-width: 640px){ .cards, .benefits-grid { grid-template-columns:1fr; } .logo { font-size:2.4rem; } .contact-form { padding: 24px; } .form-actions { flex-direction: column; } .form-actions .btn { width: 100%; } }

.contact{ background:#f8fafc; }
.contact-wrapper{ display:grid; grid-template-columns: 1fr 1.2fr; gap:60px; align-items:start; }
.contact-info h2{ margin:0 0 20px; }
.contact-info p{ line-height:1.8; }
.contact-details{ margin-top:30px; }
.contact-form{ background:#fff; padding:40px; border-radius:24px; box-shadow:0 10px 30px rgba(15,23,42,.08); border:1px solid var(--border); }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.form-group{ display:flex; flex-direction:column; }
.form-group.full{ grid-column:1 / -1; }
.form-group input, .form-group textarea{ border:1px solid var(--border); border-radius:12px; padding:16px; font-size:1rem; transition:.2s ease; }
.form-group input:focus, .form-group textarea:focus{ outline:none; border-color:var(--primary); box-shadow:0 0 0 4px rgba(20,93,255,.12); }
.form-actions{ display:flex; gap:16px; margin-top:32px; }
.btn-cancel{ background:#e2e8f0; color:var(--dark); }
.btn-cancel:hover{ background:#cbd5e1; }

@media (max-width: 900px){ .contact-wrapper{ grid-template-columns:1fr; } .form-grid{ grid-template-columns:1fr; } }

.rma-section{ padding:100px 0; background:#f8fafc; }
.rma-header{ margin-bottom:50px; }
.rma-header h1{ margin:0 0 20px; font-size:4rem; color:var(--dark); }
.rma-header p{ max-width:800px; color:var(--muted); font-size:1.15rem; line-height:1.8; }
.rma-form{ background:#fff; padding:48px; border-radius:24px; box-shadow:0 10px 30px rgba(15,23,42,.08); border:1px solid var(--border); }
.privacy-box{ margin-top:36px; padding:24px; background:#f8fafc; border-radius:16px; border:1px solid var(--border); }
.checkbox{ display:flex; align-items:flex-start; gap:14px; line-height:1.7; color:#475569; }
.checkbox input{ margin-top:5px; }
.checkbox a{ color:var(--primary); text-decoration:none; font-weight:600; }
.checkbox a:hover{ text-decoration:underline; }

.main-slider { position: relative; height: 500px; border-radius: 24px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,0.1); }
.slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease-in-out; z-index: 1; }
.slide.active { opacity: 1; z-index: 2; }
.slide img { width: 100%; height: 100%; object-fit: cover; }
.slide-caption { position: absolute; bottom: 40px; left: 40px; right: 40px; background: rgba(15, 23, 42, 0.85); backdrop-filter: blur(8px); padding: 24px 32px; border-radius: 16px; color: white; max-width: 500px; border-left: 4px solid var(--primary); }
.slide-caption h3 { margin: 0 0 8px; font-size: 1.5rem; color: #fff; }
.slide-caption p { margin: 0; font-size: 1rem; color: #d1d5db; line-height: 1.5; }
.slider-dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; gap: 12px; }
.dot { width: 12px; height: 12px; border-radius: 50%; background: rgba(255,255,255,0.4); cursor: pointer; transition: .3s; }
.dot.active { background: #fff; width: 30px; border-radius: 20px; }

@media (max-width: 900px) { .main-slider { height: 400px; } .slide-caption { bottom: 20px; left: 20px; right: 20px; padding: 16px; } }
@media (max-width: 640px) { .main-slider { height: 300px; border-radius: 16px; } .slide-caption { display: none; } }
#particles-js, #particles-benefits {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}
/* Niestandardowy wyglad checkboxa na ciemnym tle */
.custom-checkbox { background-image: none !important; margin-top: 0.25rem; border-radius: 0.25rem; border: 1px solid #475569; background-color: #1e293b; color: #145dff; width: 1rem; height: 1rem; cursor: pointer; appearance: none; -webkit-appearance: none; display: inline-block; position: relative; }
.custom-checkbox:checked { background-color: #145dff !important; border-color: transparent !important; background-image: none !important; }
.custom-checkbox:checked::after { content: ''; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.custom-checkbox:focus { outline: none; box-shadow: 0 0 0 2px #0f172a, 0 0 0 4px #145dff; }

/* ==========================================================================
   Menu na telefonie i pasek dzialan  (js/menu-mobilne.js)
   --------------------------------------------------------------------------
   Ponizej 768 px nawigacja w naglowku jest ukryta klasa "hidden md:flex",
   a zadnego przycisku ja rozwijajacego nie bylo - w naglowku zostawalo samo
   logo. Ponizsze reguly obsluguja przycisk, panel i pasek z dwoma dzialaniami
   przy dolnej krawedzi ekranu.
   ========================================================================== */

.umenu-przycisk { display: none; }
.umenu-panel { display: none; }
.upasek { display: none; }

@media (max-width: 767px) {

  .umenu-przycisk {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: 8px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 10px;
    background: rgba(255, 255, 255, .04);
    cursor: pointer;
  }
  .umenu-przycisk:focus-visible { outline: 2px solid #145dff; outline-offset: 2px; }

  .umenu-kreski { display: block; width: 20px; }
  .umenu-kreski i {
    display: block;
    height: 2px;
    margin: 4px 0;
    border-radius: 2px;
    background: #e2e8f0;
    transition: transform .18s ease, opacity .18s ease;
  }
  .umenu-otwarty .umenu-kreski i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .umenu-otwarty .umenu-kreski i:nth-child(2) { opacity: 0; }
  .umenu-otwarty .umenu-kreski i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  .umenu-panel {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: calc(100vh - 4rem);
    overflow-y: auto;
    padding: 8px 16px 20px;
    background: rgba(3, 7, 18, .97);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .45);
  }
  .umenu-panel[hidden] { display: none; }

  .umenu-panel nav { display: flex; flex-direction: column; }
  .umenu-panel nav a {
    padding: 14px 4px;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    color: #e2e8f0;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
  }
  .umenu-panel nav a:active { color: #60a5fa; }

  .umenu-dodatki { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; }
  .umenu-dodatki a {
    padding: 12px;
    border-radius: 10px;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
  }
  .umenu-telefon { background: #145dff; color: #fff; }
  .umenu-mail { border: 1px solid rgba(255, 255, 255, .16); color: #cbd5e1; }

  /* Gdy menu jest rozwiniete, strona pod nim sie nie przewija. */
  .umenu-blokada, .umenu-blokada body { overflow: hidden; }

  .upasek {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(3, 7, 18, .94);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-top: 1px solid rgba(255, 255, 255, .08);
  }
  .upasek a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
  }
  .upasek-telefon { border: 1px solid rgba(255, 255, 255, .18); color: #e2e8f0; }
  .upasek-zapytanie { background: #145dff; color: #fff; }

  /* Zeby pasek nie zaslanial konca stopki. */
  body.upasek-jest { padding-bottom: 72px; }
}


/* ==========================================================================
   Krotki formularz zapytania na kartach produktow i stronach kategorii
   --------------------------------------------------------------------------
   Dwie odmiany: "jasna" na kartach sluchawek (koncza sie jasna sekcja)
   i "ciemna" na stronach kategorii oraz blogu.
   ========================================================================== */

.uform-sekcja { padding: 64px 24px; border-top: 1px solid rgba(148, 163, 184, .18); }
.uform-srodek { max-width: 760px; margin: 0 auto; }
.uform-naglowek { font-size: 26px; line-height: 1.2; font-weight: 800; margin-bottom: 10px; }
.uform-wstep { font-size: 15px; line-height: 1.6; margin-bottom: 28px; }

.uform-siatka { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .uform-siatka { grid-template-columns: 1fr; } }

.uform-pole { display: flex; flex-direction: column; margin-bottom: 16px; }
.uform-siatka .uform-pole { margin-bottom: 0; }
.uform-pole label { font-size: 12px; font-weight: 600; margin-bottom: 6px; }

.uform input[type="text"],
.uform input[type="email"],
.uform input[type="tel"],
.uform input[type="number"],
.uform select,
.uform textarea {
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #0f172a;
  font-size: 14px;
  font-family: inherit;
}
.uform textarea { resize: vertical; }
.uform input:focus, .uform select:focus, .uform textarea:focus {
  outline: none;
  border-color: #145dff;
  box-shadow: 0 0 0 3px rgba(20, 93, 255, .18);
}

.uform-zgoda { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0 4px; }
.uform-zgoda input { margin-top: 3px; flex: 0 0 auto; }
.uform-zgoda label { font-size: 12px; line-height: 1.5; }
.uform-zgoda a { text-decoration: underline; }

.uform-wyslij { padding-top: 18px; }
.uform-przycisk {
  width: 100%;
  padding: 15px 32px;
  border: 0;
  border-radius: 12px;
  background: #145dff;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: background-color .15s ease;
}
.uform-przycisk:hover { background: #0d4ad6; }
.uform-przycisk:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (min-width: 641px) { .uform-przycisk { width: auto; } }

/* Odmiana jasna */
.uform-jasna { background: #f8fafc; }
.uform-jasna .uform-naglowek { color: #0f172a; }
.uform-jasna .uform-wstep { color: #475569; }
.uform-jasna .uform-pole label { color: #475569; }
.uform-jasna .uform-zgoda label { color: #64748b; }
.uform-jasna .uform-zgoda a { color: #145dff; }

/* Odmiana ciemna */
.uform-ciemna { background: #071827; }
.uform-ciemna .uform-naglowek { color: #fff; }
.uform-ciemna .uform-wstep { color: #94a3b8; }
.uform-ciemna .uform-pole label { color: #cbd5e1; }
.uform-ciemna .uform-zgoda label { color: #94a3b8; }
.uform-ciemna .uform-zgoda a { color: #60a5fa; }

/* Pytanie matematyczne dokladane przez captcha.js - zeby nie wisialo
   samotnie po lewej, tylko trzymalo sie szerokosci formularza. */
.uform .captcha-answer { max-width: 160px; }

/* ==========================================================================
   Sekcja doradcza "Jak dobrac..." na stronach kategorii
   --------------------------------------------------------------------------
   Wlasne reguly, nie klasy Tailwinda. Arkusz css/tailwind.css jest ZAMROZONY
   - wygenerowany raz przez _wyciskarka-css.html - i nie zawiera wszystkich
   klas. Uzyte pierwotnie gap-x-10, gap-y-8 i pt-20 w nim NIE ISTNIEJA, wiec
   kolumny zlepialy sie ze soba bez zadnego odstepu, a tekst z lewej kolumny
   wchodzil na prawa. Stad wlasne klasy: dzialaja niezaleznie od tego, co
   akurat jest w zamrozonym arkuszu.
   ========================================================================== */

.jw-sekcja {
  padding: 72px 24px 8px;
  border-top: 1px solid rgba(148, 163, 184, .14);
}
.jw-srodek { max-width: 940px; margin: 0 auto; }

.jw-naglowek {
  margin: 0 0 14px;
  font-size: 26px;
  line-height: 1.25;
  font-weight: 800;
  color: #fff;
}
@media (min-width: 768px) { .jw-naglowek { font-size: 30px; } }

.jw-wstep {
  max-width: 68ch;
  margin: 0 0 44px;
  font-size: 16px;
  line-height: 1.75;
  color: #cbd5e1;
}

.jw-siatka {
  display: grid;
  grid-template-columns: 1fr;
  column-gap: 56px;
  row-gap: 40px;
}
@media (min-width: 768px) { .jw-siatka { grid-template-columns: 1fr 1fr; } }

.jw-pozycja { min-width: 0; }

.jw-pozycja h3 {
  margin: 0 0 10px;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 700;
  color: #fff;
}

.jw-pozycja p {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: #b8c4d4;
  hyphens: auto;
}
