/* ============================================================================
   mobile-v77.css — WARSTWA OVERRIDE (ładowana PO style.min.css, prio kolejność
   enqueue w core-08). Cel: mobilne poprawki biją legacy style.min.css.
   v77.16.206: 163 zbędne !important zdjęte automatycznie (eksperyment kaskadowy,
   pixel-parity zweryfikowane). POZOSTAŁE !important w tym pliku są POTRZEBNE:
   przełamują !important, które nadal siedzą w style.min.css dla tych samych
   własności (usunięcie = realna zmiana renderu — sprawdzone per-deklaracja).
   Nie usuwać hurtem; nowe override pisz BEZ !important jeśli wystarcza
   specyficzność body.ed-v77 + kolejność ładowania.
   ========================================================================= */
/*!
 * EnergyDock — mobile v77.0
 * Nowy moduł CSS: design tokens, drawer 2.0, bottom nav, akordeon, focus styles.
 * Bez !important. Trzy breakpointy: ≤640px (mobile), 641-1024px (tablet), ≥1025px (desktop).
 *
 * Wczytywany PO style.css — wygrywa kaskadą, nie specificity.
 */

/* ====================================================================
 * 1. DESIGN TOKENS (CSS custom properties)
 * ==================================================================== */
:root {
  /* Spacing scale (4px grid) */
  --ed-space-1: 4px;
  --ed-space-2: 8px;
  --ed-space-3: 12px;
  --ed-space-4: 16px;
  --ed-space-5: 24px;
  --ed-space-6: 32px;
  --ed-space-7: 48px;
  --ed-space-8: 64px;

  /* Radii */
  --ed-radius-sm: 8px;
  --ed-radius-md: 14px;
  --ed-radius-lg: 22px;
  --ed-radius-pill: 999px;

  /* Z-index layers */
  --ed-z-header: 100;
  --ed-z-bottom-nav: 90;
  --ed-z-scrim: 198;
  --ed-z-drawer: 200;
  --ed-z-modal: 300;

  /* Motion */
  --ed-motion-fast: 160ms;
  --ed-motion-base: 240ms;
  --ed-motion-slow: 320ms;
  --ed-ease: cubic-bezier(.2, .8, .2, 1);

  /* Drawer */
  --ed-drawer-width: min(86vw, 420px);

  /* Mobile typography */
  --ed-fs-mobile-link-title: 1rem;
  --ed-fs-mobile-link-sub: 0.78rem;
}

/* ====================================================================
 * 2. ACCESSIBILITY ESSENTIALS
 * ==================================================================== */
.ed-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: #fff;
  color: #0b1826;
  padding: 12px 18px;
  border-radius: 0 0 14px 14px;
  z-index: 1000;
  font-weight: 700;
  text-decoration: none;
}
.ed-skip-link:focus {
  left: 0;
  outline: 3px solid var(--ed-cyan, #16C7F3);
  outline-offset: 2px;
}

.ed-main-anchor {
  display: block;
  height: 0;
  width: 0;
  overflow: hidden;
  position: absolute;
  left: -1px;
}

/* Focus visible — wszędzie spójnie */
.ed-v77 :focus-visible {
  outline: 3px solid var(--ed-cyan, #16C7F3);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Scroll lock — kiedy drawer otwarty */
html.ed-no-scroll,
body.ed-no-scroll {
  overflow: hidden;
  touch-action: none;
}

/* ====================================================================
 * 3. HEADER MOBILE — odchudzenie
 * ==================================================================== */
.ed-mobile-phone-icon {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--ed-radius-md);
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .10);
  color: var(--ed-cyan, #16C7F3);
  transition: background var(--ed-motion-fast) var(--ed-ease),
              border-color var(--ed-motion-fast) var(--ed-ease);
  text-decoration: none;
}
.ed-mobile-phone-icon:hover,
.ed-mobile-phone-icon:focus-visible {
  background: rgba(22, 199, 243, .08);
  border-color: rgba(22, 199, 243, .35);
}

/* Legacy mobile menu — ukryty (zostaje w DOMie dla theme.js compat) */
.ed-mobile-menu-legacy {
  display: none;
}

/* ====================================================================
 * 4. DRAWER 2.0 (slide-in z prawej, fixed, overlay)
 * ==================================================================== */
.ed-mobile-scrim {
  position: fixed;
  inset: 0;
  background: rgba(5, 12, 20, .68);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  z-index: var(--ed-z-scrim);
  opacity: 0;
  transition: opacity var(--ed-motion-base) var(--ed-ease);
  pointer-events: none;
}
.ed-mobile-scrim.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.ed-mobile-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: var(--ed-drawer-width);
  max-width: 100vw;
  background: linear-gradient(180deg, #0a1726 0%, #06111e 80%);
  border-left: 1px solid rgba(255, 255, 255, .06);
  box-shadow: -16px 0 48px rgba(0, 0, 0, .42);
  z-index: var(--ed-z-drawer);
  transform: translateX(100%);
  transition: transform var(--ed-motion-slow) var(--ed-ease);
  overflow-y: auto;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  color: #e7eff7;
  padding-bottom: env(safe-area-inset-bottom, 0);
}
.ed-mobile-drawer.is-open {
  transform: translateX(0);
}

.ed-mobile-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ed-space-4) var(--ed-space-5);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  position: sticky;
  top: 0;
  background: rgba(7, 14, 24, .92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  z-index: 2;
}
.ed-mobile-drawer-logo {
  display: inline-flex;
  align-items: center;
  gap: var(--ed-space-3);
  font-family: Sora, Inter, sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  color: #fff;
}
.ed-mobile-drawer-logo .ed-logo-mark {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--ed-cyan, #16C7F3), var(--ed-blue, #1fa3ff) 55%, var(--ed-orange, #ff6b2c));
  box-shadow: 0 0 14px rgba(31, 163, 255, .35);
}
.ed-mobile-drawer-logo .ed-logo-dock { color: var(--ed-cyan, #16C7F3); }

.ed-mobile-close {
  width: 44px;
  height: 44px;
  border-radius: var(--ed-radius-md);
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .10);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--ed-motion-fast) var(--ed-ease),
              transform var(--ed-motion-fast) var(--ed-ease);
}
.ed-mobile-close:hover,
.ed-mobile-close:focus-visible {
  background: rgba(255, 107, 44, .12);
  border-color: rgba(255, 107, 44, .35);
  transform: rotate(90deg);
}

/* Search */
.ed-mobile-search {
  padding: var(--ed-space-4) var(--ed-space-5) var(--ed-space-3);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
}
.ed-mobile-search-label {
  display: block;
  font-size: 0.72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ed-cyan, #16C7F3);
  font-weight: 700;
  margin-bottom: var(--ed-space-2);
}
.ed-mobile-search-row {
  display: flex;
  align-items: center;
  gap: var(--ed-space-3);
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: var(--ed-radius-md);
  padding: 0 var(--ed-space-4);
  min-height: 48px;
  transition: border-color var(--ed-motion-fast) var(--ed-ease);
}
.ed-mobile-search-row:focus-within {
  border-color: rgba(22, 199, 243, .55);
  box-shadow: 0 0 0 3px rgba(22, 199, 243, .12);
}
.ed-mobile-search-row svg { color: rgba(255, 255, 255, .55); flex: 0 0 18px; }
.ed-mobile-search-row input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font: inherit;
  padding: 12px 0;
  min-width: 0;
}
.ed-mobile-search-row input::placeholder { color: rgba(255, 255, 255, .42); }

.ed-mobile-search-suggest {
  margin-top: var(--ed-space-3);
  background: rgba(11, 24, 38, .92);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: var(--ed-radius-md);
  max-height: 280px;
  overflow-y: auto;
}
.ed-mobile-search-suggest ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ed-mobile-search-suggest li + li {
  border-top: 1px solid rgba(255, 255, 255, .05);
}
.ed-mobile-search-suggest a {
  display: block;
  padding: var(--ed-space-3) var(--ed-space-4);
  color: #e7eff7;
  text-decoration: none;
}
.ed-mobile-search-suggest a:hover,
.ed-mobile-search-suggest a:focus-visible {
  background: rgba(22, 199, 243, .08);
  color: #fff;
}
.ed-mobile-search-result-title {
  display: block;
  font-weight: 600;
  font-size: 0.92rem;
  line-height: 1.32;
}
.ed-mobile-search-empty {
  padding: var(--ed-space-4);
  font-size: 0.86rem;
  color: rgba(255, 255, 255, .58);
}

/* ====================================================================
 * 5. ACCORDION (sekcje drawera)
 * ==================================================================== */
.ed-mobile-nav {
  flex: 1;
  padding: var(--ed-space-3) 0 var(--ed-space-5);
}
.ed-mobile-accordion {
  border-bottom: 1px solid rgba(255, 255, 255, .05);
}
.ed-mobile-accordion-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #fff;
  font-family: Sora, Inter, sans-serif;
  font-weight: 700;
  font-size: 0.96rem;
  padding: var(--ed-space-4) var(--ed-space-5);
  text-align: left;
  letter-spacing: -0.01em;
  min-height: 56px;
  transition: background var(--ed-motion-fast) var(--ed-ease);
}
.ed-mobile-accordion-trigger:hover {
  background: rgba(255, 255, 255, .03);
}
.ed-mobile-accordion-chevron {
  color: rgba(255, 255, 255, .55);
  transition: transform var(--ed-motion-base) var(--ed-ease),
              color var(--ed-motion-fast) var(--ed-ease);
}
.ed-mobile-accordion[aria-expanded="true"] .ed-mobile-accordion-chevron,
.ed-mobile-accordion.is-open .ed-mobile-accordion-chevron,
.ed-mobile-accordion-trigger[aria-expanded="true"] .ed-mobile-accordion-chevron {
  transform: rotate(180deg);
  color: var(--ed-cyan, #16C7F3);
}

.ed-mobile-accordion-panel ul {
  list-style: none;
  margin: 0;
  padding: 0 var(--ed-space-3) var(--ed-space-2);
}
.ed-mobile-accordion-panel li + li {
  margin-top: 2px;
}

.ed-mobile-link {
  display: block;
  padding: var(--ed-space-3) var(--ed-space-4);
  border-radius: var(--ed-radius-md);
  text-decoration: none;
  color: #d9e3ee;
  position: relative;
  min-height: 52px;
  transition: background var(--ed-motion-fast) var(--ed-ease),
              color var(--ed-motion-fast) var(--ed-ease);
}
.ed-mobile-link:hover,
.ed-mobile-link:focus-visible {
  background: rgba(22, 199, 243, .06);
  color: #fff;
}
.ed-mobile-link.is-active {
  background: rgba(22, 199, 243, .08);
  box-shadow: inset 3px 0 0 var(--ed-cyan, #16C7F3);
  color: #fff;
}
.ed-mobile-link-title {
  display: block;
  font-size: var(--ed-fs-mobile-link-title);
  font-weight: 600;
  line-height: 1.32;
  letter-spacing: -0.005em;
}
.ed-mobile-link-sub {
  display: block;
  font-size: var(--ed-fs-mobile-link-sub);
  color: rgba(255, 255, 255, .54);
  margin-top: 2px;
  letter-spacing: 0;
}
.ed-mobile-link.is-active .ed-mobile-link-sub {
  color: rgba(22, 199, 243, .72);
}

/* Drawer footer CTA */
.ed-mobile-drawer-cta {
  padding: var(--ed-space-4) var(--ed-space-5) var(--ed-space-5);
  border-top: 1px solid rgba(255, 255, 255, .06);
  display: flex;
  flex-direction: column;
  gap: var(--ed-space-3);
  background: rgba(7, 14, 24, .82);
  position: sticky;
  bottom: 0;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.ed-mobile-drawer-phone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--ed-space-3) var(--ed-space-4);
  border-radius: var(--ed-radius-md);
  background: rgba(255, 255, 255, .03);
  border: 1px solid rgba(255, 255, 255, .10);
  text-decoration: none;
  color: #fff;
  min-height: 52px;
}
.ed-mobile-drawer-phone span {
  font-size: 0.84rem;
  color: rgba(255, 255, 255, .68);
}
.ed-mobile-drawer-phone strong {
  font-family: Sora, Inter, sans-serif;
  font-weight: 700;
  color: var(--ed-cyan, #16C7F3);
  font-size: 0.96rem;
}

/* ====================================================================
 * 6. BOTTOM NAV-BAR (mobile only)
 * ==================================================================== */
.ed-bottom-nav {
  display: none;
}

.ed-bottom-nav.is-hidden {
  transform: translateY(calc(100% + 4px));
}

/* ====================================================================
 * 7. MEDIA QUERY: MOBILE (≤900px) — pokaż drawer/bottom-nav, ukryj telefon-pill
 * ==================================================================== */
@media (max-width: 900px) {
  /* Mobile phone icon — pokaż */
  .ed-v77 .ed-mobile-phone-icon {
    display: inline-flex;
    order: 2;
    margin-left: auto;
    margin-right: var(--ed-space-2);
  }

  /* Hamburger — przesuń na koniec */
  .ed-v77 .ed-mobile-toggle {
    order: 3;
  }

  /* Bottom nav — pokaż */
  .ed-bottom-nav {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--ed-z-bottom-nav);
    background: rgba(7, 14, 24, .92);
    -webkit-backdrop-filter: blur(14px) saturate(1.1);
    backdrop-filter: blur(14px) saturate(1.1);
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding-bottom: env(safe-area-inset-bottom, 0);
    transition: transform var(--ed-motion-base) var(--ed-ease);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .28);
  }

  .ed-bottom-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-decoration: none;
    color: rgba(255, 255, 255, .62);
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 8px 4px 10px;
    min-height: 60px;
    position: relative;
    transition: color var(--ed-motion-fast) var(--ed-ease);
  }
  .ed-bottom-nav-item svg { color: currentColor; }
  .ed-bottom-nav-item:hover,
  .ed-bottom-nav-item:focus-visible { color: #fff; }
  .ed-bottom-nav-item.is-active { color: var(--ed-cyan, #16C7F3); }
  .ed-bottom-nav-item.is-active::before {
    content: "";
    position: absolute;
    top: 0;
    left: 25%;
    right: 25%;
    height: 2px;
    background: var(--ed-cyan, #16C7F3);
    border-radius: 0 0 4px 4px;
    box-shadow: 0 0 12px rgba(22, 199, 243, .45);
  }

  .ed-bottom-nav-item-primary {
    color: #fff;
  }
  .ed-bottom-nav-item-primary svg {
    color: #fff;
    background: linear-gradient(135deg, #ff874f, var(--ed-orange, #ff6b2c));
    border-radius: 999px;
    padding: 8px;
    width: 38px !important;
    height: 38px !important;
    box-shadow: 0 8px 20px rgba(255, 107, 44, .42), 0 0 0 4px rgba(255, 107, 44, .14);
    margin-bottom: 2px;
  }
  .ed-bottom-nav-item-primary span {
    color: #ffb791;
  }

  /* Doł padding aby contentu nie zasłaniał bottom-nav */
  

  /* Header: ukryj telefon pill (zostaje w DOMie dla desktopu) */
  .ed-v77 .ed-nav-actions { display: none; }

  /* Hide desktop menu */
  .ed-v77 .ed-menu { display: none; }
}

/* ====================================================================
 * 8. MEDIA QUERY: TABLET (641-1024px) — pokaż menu desktopowe, ukryj bottom nav
 * ==================================================================== */
@media (min-width: 901px) {
  .ed-v77 .ed-mobile-phone-icon,
  .ed-v77 .ed-mobile-toggle,
  .ed-bottom-nav { display: none; }
}

/* ====================================================================
 * 9. REDUCED MOTION
 * ==================================================================== */
@media (prefers-reduced-motion: reduce) {
  .ed-mobile-drawer,
  .ed-mobile-scrim,
  .ed-mobile-accordion-chevron,
  .ed-bottom-nav,
  .ed-mobile-close { transition: none; }
}

/* ====================================================================
 * 10. BYLINE w artykule (v77 — YMYL trust signals)
 * ==================================================================== */
.ed-article-byline {
  display: flex;
  align-items: flex-start;
  gap: var(--ed-space-3);
  padding: var(--ed-space-4) 0;
  margin: var(--ed-space-3) 0 var(--ed-space-2);
  border-top: 1px solid rgba(255, 255, 255, .06);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  flex-wrap: wrap;
}
.ed-article-byline-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #16C7F3, #1fa3ff 55%, #ff6b2c);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #0b1826;
  font-weight: 700;
  font-family: Sora, Inter, sans-serif;
  text-transform: uppercase;
  font-size: 0.92rem;
}
.ed-article-byline-text {
  flex: 1;
  min-width: 0;
  font-size: 0.84rem;
  line-height: 1.42;
  color: rgba(255, 255, 255, .72);
}
.ed-article-byline-author {
  color: #fff;
  font-weight: 700;
  font-size: 0.92rem;
  display: block;
  letter-spacing: -0.005em;
}
.ed-article-byline-role {
  color: rgba(255, 255, 255, .58);
  font-size: 0.78rem;
  display: block;
}
.ed-article-byline-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ed-space-2);
  align-items: center;
  margin-top: var(--ed-space-2);
  font-size: 0.78rem;
  color: rgba(255, 255, 255, .58);
}
.ed-article-byline-reviewer {
  color: #16C7F3;
  font-weight: 600;
}
.ed-article-byline-reviewer::before {
  content: "● ";
  color: #26c281;
}
.ed-article-byline-updated {
  color: rgba(255, 255, 255, .58);
}
.ed-article-byline-updated time {
  font-weight: 600;
  color: rgba(255, 255, 255, .82);
}

/* ====================================================================
 * 11. TRUST PAGES (redakcja, metodologia)
 * ==================================================================== */
.ed-trust-page {
  padding: var(--ed-space-7) 0;
}
.ed-trust-section {
  margin-bottom: var(--ed-space-7);
}
.ed-trust-section h2 {
  font-family: Sora, Inter, sans-serif;
  font-size: 1.55rem;
  color: #fff;
  margin-bottom: var(--ed-space-4);
  letter-spacing: -0.02em;
}
.ed-trust-grid {
  display: grid;
  gap: var(--ed-space-4);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.ed-trust-card {
  padding: var(--ed-space-5);
  border-radius: var(--ed-radius-lg);
  border: 1px solid rgba(255, 255, 255, .08);
  background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .015));
}
.ed-trust-card h3 {
  font-size: 1.15rem;
  margin-bottom: var(--ed-space-2);
  color: #fff;
}
.ed-trust-card p {
  color: rgba(255, 255, 255, .68);
  font-size: 0.92rem;
  line-height: 1.5;
}

/* ====================================================================
 * 12. KALKULATOR HOME — REKOMENDACJE (v77.1)
 * ==================================================================== */
.edhm { color: #e7eff7; }
.edhm-head { margin-bottom: var(--ed-space-5); }
.edhm-kicker {
  display: inline-block;
  font-size: 0.74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ed-cyan, #16C7F3);
  font-weight: 700;
  margin-bottom: var(--ed-space-2);
}
.edhm-h3 {
  font-family: Sora, Inter, sans-serif;
  font-size: 1.55rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.02em;
  margin: 0 0 var(--ed-space-2);
}
.edhm-lead {
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .72);
  margin: 0;
  max-width: 56ch;
}

/* Loading */
.edhm-loading {
  display: flex;
  align-items: center;
  gap: var(--ed-space-3);
  padding: var(--ed-space-5);
  background: rgba(255, 255, 255, .025);
  border: 1px solid rgba(255, 255, 255, .06);
  border-radius: var(--ed-radius-md);
  color: rgba(255, 255, 255, .55);
  font-size: 0.92rem;
}
.edhm-spin {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(22, 199, 243, .22);
  border-top-color: var(--ed-cyan, #16C7F3);
  border-radius: 50%;
  animation: edhmSpin 0.9s linear infinite;
  flex-shrink: 0;
}
@keyframes edhmSpin { to { transform: rotate(360deg); } }

/* Summary nad kartami */
.edhm-summary {
  margin: var(--ed-space-4) 0 var(--ed-space-5);
  padding: var(--ed-space-4);
  border: 1px solid rgba(22, 199, 243, .18);
  background: rgba(22, 199, 243, .04);
  border-radius: var(--ed-radius-md);
}
.edhm-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: var(--ed-space-4);
}
.edhm-summary-grid div span {
  display: block;
  font-size: 0.72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .55);
  margin-bottom: 4px;
}
.edhm-summary-grid div strong {
  font-family: Sora, Inter, sans-serif;
  font-size: 1.15rem;
  color: var(--ed-cyan, #16C7F3);
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Karty */
.edhm-cards {display: grid;grid-template-columns: 1fr}
@media (min-width: 768px) {
  .edhm-cards { grid-template-columns: repeat(3, 1fr); }
}

.edhm-card {position: relative;border: 1px solid rgba(255, 255, 255, .08);display: flex;flex-direction: column;transition: transform var(--ed-motion-fast) var(--ed-ease),
              border-color var(--ed-motion-fast) var(--ed-ease)}
.edhm-card:hover {
  border-color: rgba(255, 255, 255, .18);
  transform: translateY(-2px);
}
/* v77.17.3: rekomendacja ma byc widoczna od razu, bez czytania odznak. Poprzedni glow
   (0 0 32px / .12) gubil sie na ciemnym tle sekcji — przy trzech kartach obok siebie nic
   nie wskazywalo, ktora jest ta wlasciwa. Teraz: jasniejsza ramka, podwojny cien i delikatne
   podniesienie karty. Na desktopie dodatkowo lekkie powiekszenie, bo rekomendacja stoi
   posrodku i moze bezpiecznie „wyjsc" nad sasiadow. */
.edhm-card.is-best {
  border-color: rgba(22, 199, 243, .62);
  background: linear-gradient(180deg, rgba(22, 199, 243, .09), rgba(255, 255, 255, .02));
  box-shadow: 0 0 0 1px rgba(22, 199, 243, .28),
              0 26px 60px -26px rgba(22, 199, 243, .62),
              0 0 44px rgba(22, 199, 243, .16);
}
@media (min-width: 861px) {
  .edhm-card.is-best { transform: scale(1.035); z-index: 2; }
  .edhm-card.is-best:hover { transform: scale(1.035) translateY(-2px); }
}

/* v77.17.6: tabela porownania podniesiona do poziomu porownywarki katalogu — miniatury
   w naglowku, zebra, wyrozniona kolumna rekomendacji, wiersz ceny i cyjanowe podswietlenie
   najmocniejszej wartosci. Poprzednia wersja byla czytelna, ale plaska: wszystkie kolumny
   wygladaly tak samo, wiec rekomendacja gubila sie miedzy wariantami. */
.edhm-cmp { margin-top: var(--ed-space-6); }
.edhm-cmp-head { margin-bottom: var(--ed-space-3); }
.edhm-cmp-eyebrow {
  display: block; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ed-cyan, #16C7F3); font-weight: 800; margin-bottom: 4px;
}
.edhm-cmp-h4 {
  font-family: Sora, Inter, sans-serif; font-size: 1.15rem; font-weight: 700;
  color: #fff; margin: 0; letter-spacing: -.01em;
}
.edhm-cmp-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--ed-radius-lg);
  background: linear-gradient(180deg, rgba(12, 24, 38, .62), rgba(8, 16, 28, .38));
  box-shadow: 0 26px 60px -34px rgba(0, 0, 0, .75);
}
.edhm-cmp-t { width: 100%; border-collapse: collapse; font-size: .84rem; min-width: 640px; table-layout: fixed; }
.edhm-cmp-t th, .edhm-cmp-t td { padding: 13px 16px; text-align: left; vertical-align: middle; }

/* Pierwsza kolumna to etykiety — ma byc tlem dla danych, nie konkurowac z nimi. */
.edhm-cmp-t th:first-child, .edhm-cmp-t td:first-child {
  width: 24%; background: rgba(255, 255, 255, .03);
  border-right: 1px solid rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .66); font-weight: 600; font-size: .78rem;
  /* v77.17.419 (życzenie usera): długie etykiety wierszy (np. „Po maksymalnej dotacji") ZAWIJAJĄ się w kolumnie,
     zamiast wychodzić poza nią / być ucinane. Wcześniej white-space:nowrap przy stałej szerokości kolumny = overflow. */
  white-space: normal; line-height: 1.25; overflow-wrap: anywhere; word-break: break-word; hyphens: auto;
}
.edhm-cmp-t tbody tr:nth-child(odd) td, .edhm-cmp-t tbody tr:nth-child(odd) th { background: rgba(255, 255, 255, .022); }
.edhm-cmp-t tbody tr:nth-child(odd) td:first-child { background: rgba(255, 255, 255, .045); }

/* v77.17.204: position:relative → chip „Rekomendacja" jako badge w lewym górnym rogu (poza flow),
   dzięki czemu miniatury i tytuły WSZYSTKICH kolumn są wyrównane (chip w flow spychał środkową kolumnę w dół). */
.edhm-cmp-t thead th { vertical-align: top; padding-top: 18px; border-bottom: 1px solid rgba(255, 255, 255, .14); position: relative; }
.edhm-cmp-t thead th:first-child { vertical-align: bottom; padding-bottom: 16px; }
.edhm-cmp-param { font-size: .66rem !important; letter-spacing: .12em; text-transform: uppercase; font-weight: 800 !important; }

.edhm-cmp-thumb { display: flex; align-items: center; height: 62px; margin-bottom: 9px; }
.edhm-cmp-thumb img { max-height: 62px; max-width: 84px; width: auto; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(0, 0, 0, .5)); }
.edhm-cmp-name {
  display: block; font-family: Sora, Inter, sans-serif; font-size: .84rem; font-weight: 700;
  color: #eaf4ff; line-height: 1.28; letter-spacing: -.01em; text-decoration: none;
}
.edhm-cmp-name:hover { color: var(--ed-cyan, #16C7F3); }
/* v77.17.204 (feedback): chip „Rekomendacja" w LEWYM GÓRNYM ROGU kolumny (badge poza flow). */
.edhm-cmp-tag {
  position: absolute; top: 9px; left: 10px; z-index: 2;
  display: inline-block; font-size: .6rem; letter-spacing: .12em; text-transform: uppercase;
  color: #04222b; font-weight: 800; background: var(--ed-cyan, #16C7F3);
  border-radius: 999px; padding: 2px 9px; margin: 0;
  box-shadow: 0 4px 12px -4px rgba(22, 199, 243, .6);
}
.edhm-cmp-t td { color: #dbe6ef; }
.edhm-cmp-t tbody tr:last-child td, .edhm-cmp-t tbody tr:last-child th { border-bottom: none; }

/* Kolumna rekomendacji: delikatne tlo na calej wysokosci + swiecaca krawedz. */
.edhm-cmp-t .is-best { background: rgba(22, 199, 243, .075) !important; }
.edhm-cmp-t thead th.is-best { background: rgba(22, 199, 243, .15) !important; box-shadow: inset 0 2px 0 var(--ed-cyan, #16C7F3); }

/* Najmocniejsza wartosc w wierszu. */
.edhm-cmp-best { color: var(--ed-cyan, #16C7F3) !important; font-weight: 800; }
.edhm-cmp-best::before {
  content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%;
  background: #16C7F3; margin-right: 8px; vertical-align: middle;
  box-shadow: 0 0 7px rgba(22, 199, 243, .85);
}

.edhm-cmp-pricerow td, .edhm-cmp-pricerow th { border-top: 1px solid rgba(255, 255, 255, .14); }
.edhm-cmp-pricerow td { font-family: Sora, Inter, sans-serif; font-size: 1.02rem; font-weight: 800; color: #fff; }
/* v77.17.204 (feedback): cena w PRAWEJ kolumnie w kolorze cyan. */
.edhm-cmp-pricerow td:last-child { color: var(--ed-cyan, #16C7F3); }

/* v77.17.7: naglowek grupy parametrow. */
.edhm-cmp-grp th {
  background: rgba(22, 199, 243, .09) !important; color: var(--ed-cyan, #16C7F3) !important;
  font-size: .64rem !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 800 !important;
  padding: 9px 16px !important; white-space: nowrap;
  border-top: 1px solid rgba(22, 199, 243, .22); border-bottom: 1px solid rgba(22, 199, 243, .22);
}

.edhm-cmp-note { margin: 10px 0 0; font-size: .72rem; line-height: 1.5; color: rgba(255, 255, 255, .45); }

@media (max-width: 700px) {
  .edhm-cmp-t th, .edhm-cmp-t td { padding: 11px 12px; font-size: .8rem; }
  .edhm-cmp-thumb { height: 46px; }
  .edhm-cmp-thumb img { max-height: 46px; max-width: 62px; }
}

/* v77.17.375 (mobile fix): badge „Rekomendacja" (position:absolute, top:9px) w nagłówku porównania
   zasłaniał tytuł kolumny po rozwinięciu „Porównaj szczegółowo" (feedback iPhone Air). Na mobile miniatura
   nagłówka jest ukryta (#edHomeRecommend .edhm-cmp-thumb{display:none} niżej), więc nazwa siedziała TUŻ pod
   badge. Rezerwujemy miejsce nad treścią we WSZYSTKICH kolumnach nagłówka → chip siada w wolnej przestrzeni,
   kolumny pozostają wyrównane. UWAGA: reguła MUSI mieć specyficzność #edHomeRecommend (1,1,2), bo istnieje
   `#edHomeRecommend .edhm-cmp-t th{padding:6px 8px!important}` (1,1,1) — samo `.edhm-cmp-t thead th` przegrywa. */
@media (max-width: 767px) {
  .edhm-cmp-t thead th { padding-top: 36px !important; }
  .edhm-cmp-t thead th:first-child { padding-top: 11px !important; }
  .edhm-cmp-tag { top: 10px !important; }
  #edHomeRecommend .edhm-cmp-t thead th { padding-top: 34px !important; }
  #edHomeRecommend .edhm-cmp-t thead th:first-child { padding-top: 6px !important; }
  #edHomeRecommend .edhm-cmp-tag { top: 8px !important; }
}

.edhm-badge {position: absolute;left: var(--ed-space-4);border-radius: var(--ed-radius-pill);background: rgba(255, 255, 255, .08);border: 1px solid rgba(255, 255, 255, .14);color: rgba(255, 255, 255, .78)}
.edhm-badge-best {background: linear-gradient(135deg, #16C7F3, #1fa3ff);color: #061421;border-color: transparent}

.edhm-card-media {display: flex;align-items: center;justify-content: center;overflow: hidden}
.edhm-card-media img {max-width: 100%;object-fit: contain}
.edhm-card-img-ph {
  color: rgba(255, 255, 255, .22);
}

.edhm-card-title {font-family: Sora, Inter, sans-serif;color: #fff;margin: 0 0 var(--ed-space-3);letter-spacing: -0.01em;line-height: 1.25}

.edhm-card-specs {display: grid;grid-template-columns: 1fr auto;margin: 0 0 var(--ed-space-3)}
.edhm-card-specs dt {
  color: rgba(255, 255, 255, .55);
}
.edhm-card-specs dd {margin: 0;text-align: right;color: #fff}

.edhm-card-warn {
  margin: 0 0 var(--ed-space-3);
  padding: var(--ed-space-2) var(--ed-space-3);
  background: rgba(255, 167, 122, .08);
  border: 1px solid rgba(255, 167, 122, .22);
  border-radius: var(--ed-radius-sm);
  font-size: 0.78rem;
  color: rgba(255, 167, 122, .92);
  line-height: 1.4;
}

.edhm-card-roi {display: grid;grid-template-columns: 1fr 1fr;gap: var(--ed-space-2);border-top: 1px solid rgba(255, 255, 255, .06);border-bottom: 1px solid rgba(255, 255, 255, .06)}
.edhm-card-roi span {
  display: block;
  font-size: 0.68rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5);
  margin-bottom: 2px;
}
.edhm-card-roi strong {font-family: Sora, Inter, sans-serif;color: #fff}

.edhm-card-price {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--ed-space-3);
}
.edhm-price-label {
  font-size: 0.74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .55);
}
.edhm-price-value {font-family: Sora, Inter, sans-serif;color: var(--ed-cyan, #16C7F3);letter-spacing: -0.01em}
/* v77.17.3: „wycena indywidualna" to zdanie, nie kwota — w rozmiarze ceny lamalo sie na dwie
   linie i rozpychalo karte mocniej niz jakakolwiek realna cena. */
.edhm-price-value.is-quote {
  font-size: .92rem;
  font-weight: 600;
  color: rgba(255, 255, 255, .72);
  line-height: 1.35;
}

/* v77.17.2: cena + kwota po dotacji w jednej kolumnie po prawej. Bez tego linijka o dotacji
   wchodziła jako trzecie dziecko flexa `.edhm-card-price` i rozbijała układ etykieta–kwota. */
.edhm-price-box {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}
.edhm-price-grant {
  margin-top: 2px;
  font-size: 0.74rem;
  line-height: 1.3;
  color: rgba(110, 231, 168, .95);
}

/* v77.17.2: wyjaśnienie, co realnie ogranicza oszczędność przy tym zestawie. */
.edhm-card-note {
  margin: 0 0 var(--ed-space-3);
  padding: 9px 11px;
  border-radius: var(--ed-radius-sm);
  background: rgba(22, 199, 243, .07);
  border: 1px solid rgba(22, 199, 243, .18);
  font-size: 0.76rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, .74);
}
.edhm-card-note strong { color: #fff; font-weight: 600; }

.edhm-card-cta {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: var(--ed-space-2);
}
.edhm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 16px;
  border-radius: var(--ed-radius-pill);
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  text-align: center;
  border: 1px solid transparent;
  transition: background var(--ed-motion-fast) var(--ed-ease),
              transform var(--ed-motion-fast) var(--ed-ease),
              border-color var(--ed-motion-fast) var(--ed-ease);
}
.edhm-btn-primary {
  background: linear-gradient(135deg, #ff874f, var(--ed-orange, #ff6b2c));
  color: #fff;
  box-shadow: 0 6px 18px rgba(255, 107, 44, .28);
}
.edhm-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(255, 107, 44, .36);
}
.edhm-btn-secondary {
  background: rgba(255, 255, 255, .04);
  border-color: rgba(255, 255, 255, .12);
  color: #fff;
}
.edhm-btn-secondary:hover {
  border-color: rgba(22, 199, 243, .42);
}

.edhm-empty {
  padding: var(--ed-space-5);
  background: rgba(255, 167, 122, .04);
  border: 1px solid rgba(255, 167, 122, .2);
  border-radius: var(--ed-radius-md);
  color: rgba(255, 255, 255, .82);
}
.edhm-empty strong { display: block; margin-bottom: 6px; color: #fff; font-size: 1rem; }
.edhm-empty p { margin: 0 0 6px; font-size: 0.88rem; line-height: 1.45; color: rgba(255, 255, 255, .68); }
.edhm-empty code {
  background: rgba(11, 24, 38, .68);
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 0.84em;
  color: var(--ed-cyan, #16C7F3);
}

.edhm-foot {
  margin: var(--ed-space-4) 0 0;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, .48);
  line-height: 1.5;
}

/* ====================================================================
 * v77.17.12 — premium na trzech kartach rekomendacji.
 * Po usunieciu pojedynczej propozycji z lewej kolumny to te karty sa
 * glownym wynikiem — dostaja wiecej oddechu, mocniejsze zdjecie i
 * czytelniejsza hierarchie. Paleta bez zmian: cyan / orange / white
 * (+ zielen tylko przy kwocie oszczedzonej).
 * ==================================================================== */
.edhm-cards { gap: var(--ed-space-4); }
@media (min-width: 768px) { .edhm-cards { gap: 20px; align-items: stretch; } }

.edhm-card {
  padding: 22px 18px 18px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
}
.edhm-card-media {
  height: 132px;
  margin-bottom: 16px;
  border-radius: 15px;
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(22,199,243,.10), transparent 62%),
    linear-gradient(180deg, rgba(11,24,38,.55), rgba(11,24,38,.28));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.edhm-card-media img { max-height: 108px; filter: drop-shadow(0 12px 22px rgba(0,0,0,.5)); }

.edhm-card.is-best .edhm-card-media {
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(22,199,243,.20), transparent 60%),
    linear-gradient(180deg, rgba(11,24,38,.5), rgba(11,24,38,.24));
}

/* Odznaki: rekomendacja swieci cyanem, pozostale sa spokojne i identyczne,
   zeby nie konkurowaly z ta jedna, ktora ma zwrocic uwage. */
.edhm-badge {
  top: -11px; padding: 5px 12px; font-weight: 700; letter-spacing: .05em;
  font-size: .68rem; backdrop-filter: blur(4px);
}
.edhm-badge-best {
  box-shadow: 0 6px 18px rgba(22,199,243,.4), 0 0 0 1px rgba(22,199,243,.3);
}

.edhm-card-title { font-size: 1.14rem; font-weight: 700; margin-bottom: 16px; }

/* Wiersze specyfikacji: cienkie linie miedzy pozycjami czytaja sie porzadniej
   niz sam odstep — karta wyglada jak karta produktu, nie jak lista. */
.edhm-card-specs { gap: 0; font-size: .86rem; }
.edhm-card-specs dt, .edhm-card-specs dd { padding: 7px 0; border-top: 1px solid rgba(255,255,255,.06); }
.edhm-card-specs dt:first-of-type, .edhm-card-specs dd:first-of-type { border-top: 0; }
.edhm-card-specs dd { font-weight: 600; }

.edhm-card-roi {
  padding: 13px 14px; margin-bottom: 16px; border: 1px solid rgba(255,255,255,.08);
  border-radius: 13px; background: rgba(255,255,255,.025);
}
.edhm-card-roi strong { font-size: 1.12rem; font-weight: 800; letter-spacing: -.01em; }
.edhm-card.is-best .edhm-card-roi { border-color: rgba(22,199,243,.24); background: rgba(22,199,243,.05); }

.edhm-price-value { font-size: 1.55rem; font-weight: 800; }

/* Nota pod panelem po lewej — kieruje wzrok do kart nizej. */
.ed-home-belownote {
  margin: 4px 0 14px; padding: 10px 12px; border-radius: 11px;
  background: rgba(22,199,243,.06); border: 1px solid rgba(22,199,243,.16);
  font-size: .78rem; line-height: 1.5; color: #bcd0dd;
}

/* ====================================================================
 * 13. POPRAWKI v77.2 — header (telefon + blur), artykuł full-width, hero premium
 *     (te reguły używają !important świadomie — biją legacy override z l. 12171,
 *      31509 w style.css, które same są !important)
 * ==================================================================== */

@media (max-width: 900px) {

  /* --- 13a. Usuń duplikat telefonu (pill z numerem). Zostaje sama ikona. --- */
  .ed-v77 .ed-nav-actions,
  .ed-v77 .ed-nav-contact-cta,
  .ed-v77 .ed-header-phone-pill,
  .ed-v77 .ed-header-phone,
  .ed-v77 .ed-nav-contact-divider {
    display: none !important;
  }

  /* --- 13b. Jednolity premium blur na całą szerokość headera --- */
  .ed-v77 .ed-header {
    background: rgba(8, 16, 27, .55) !important;
    -webkit-backdrop-filter: blur(24px) saturate(1.35) !important;
    backdrop-filter: blur(24px) saturate(1.35) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .07) !important;
    overflow: visible !important;
  }
  /* Wyrzuć lokalne tła z elementów wewnątrz, żeby blur był jednolity */
  .ed-v77 .ed-header .ed-nav,
  .ed-v77 .ed-header .ed-container {
    background: transparent !important;
  }
  /* Telefon-ikona i hamburger: spójny, lekko przezroczysty fill */
  .ed-v77 .ed-mobile-phone-icon,
  .ed-v77 .ed-mobile-toggle {
    background: rgba(255, 255, 255, .06) !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    backdrop-filter: blur(6px) !important;
  }

  /* --- 13c. Artykuł single: pełna szerokość ekranu --- */
  .ed-v77.single-post .ed-container,
  .ed-v77.single .ed-container {
    width: calc(100% - 20px) !important;  /* 10px marginesu po bokach */
  }
  /* Karta artykułu edge-to-edge: bez grubego paddingu, bez ramki/zaokrągleń */
  .ed-v77 .ed-single-card,
  .ed-v77 .ed-content-card.ed-single-card {
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    background: transparent !important;
  }
  .ed-v77 .ed-single-card .ed-entry-content {
    padding: 16px 12px !important;
  }
  /* Treść artykułu — większy, swobodniejszy tekst */
  .ed-v77 .ed-single-card .ed-entry-content p,
  .ed-v77 .ed-single-card .ed-entry-content li {
    font-size: 1.04rem !important;
    line-height: 1.62 !important;
  }
  .ed-v77 .ed-single-card .ed-entry-content h2 {
    font-size: 1.42rem !important;
    line-height: 1.22 !important;
  }
  .ed-v77 .ed-single-card .ed-entry-content h3 {
    font-size: 1.18rem !important;
  }
  /* Lista TOC „W tym artykule” — pełna szerokość, mniej zawijania */
  .ed-v77 .ed-single-card .ed-entry-content ul,
  .ed-v77 .ed-single-card .ed-entry-content ol {
    padding-left: 20px !important;
  }
  /* Hero artykułu też szerszy */
  .ed-v77 .ed-single-hero .ed-container {
    width: calc(100% - 20px) !important;
  }

  /* --- 13d. HERO PREMIUM — pierwszy ekran --- */

  /* Scrim pod treścią dla kontrastu (czytelność na zdjęciu) */
  .ed-v77 .ed-hero-premium-integrated::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
      radial-gradient(120% 80% at 50% 0%, rgba(22,199,243,.10), transparent 55%),
      linear-gradient(180deg, rgba(5,12,20,.10) 0%, rgba(5,12,20,.42) 62%, rgba(5,12,20,.82) 100%);
  }
  .ed-v77 .ed-hero-premium-integrated .ed-container {
    position: relative;
    z-index: 1;
  }

  /* Kicker — bardziej kompaktowy, premium pill */
  .ed-v77 .ed-hero-kicker-pill {
    font-size: 0.66rem !important;
    letter-spacing: .14em !important;
    padding: 7px 14px !important;
    line-height: 1.4 !important;
    background: rgba(22,199,243,.08) !important;
    border: 1px solid rgba(22,199,243,.28) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    backdrop-filter: blur(8px) !important;
    border-radius: 999px !important;
    box-shadow: 0 0 22px rgba(22,199,243,.12) !important;
  }

  /* H1 — większy impact, ciaśniejszy leading, glow */
  .ed-v77 .ed-hero-copy h1 {
    font-size: clamp(2.65rem, 12.5vw, 3.9rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.035em !important;
    margin: 18px 0 0 !important;
    text-shadow: 0 2px 30px rgba(5,12,20,.5)}
  .ed-v77 .ed-hero-copy h1 .ed-accent-cyan {
    color: #16C7F3 !important;
    text-shadow: 0 0 30px rgba(22,199,243,.45), 0 0 60px rgba(22,199,243,.18)}

  /* Lead — większy, czytelniejszy, ograniczona szerokość */
  .ed-v77 .ed-hero-copy .ed-lead {
    font-size: 1.06rem !important;
    line-height: 1.55 !important;
    color: rgba(232,240,250,.84) !important;
    margin-top: 18px !important;
  }

  /* CTA — pełna szerokość, primary z subtelnym pulsem */
  .ed-v77 .ed-hero-actions-premium-home {
    margin-top: 24px !important;
    gap: 12px !important;
  }
  .ed-v77 .ed-hero-actions-premium-home .ed-btn {
    width: 100% !important;
    min-height: 56px !important;
    font-size: 1rem !important;
  }
  .ed-v77 .ed-hero-actions-premium-home .ed-btn-primary {
    animation: edHeroPulse 2.8s var(--ed-ease) infinite;
  }
  @keyframes edHeroPulse {
    0%, 100% { box-shadow: 0 8px 26px rgba(255,107,44,.30); }
    50%      { box-shadow: 0 8px 38px rgba(255,107,44,.52); }
  }

  /* Hero points — czytelne karty 2×2 zamiast luźnej listy */
  .ed-v77 .ed-hero-points {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 26px;
  }
  .ed-v77 .ed-hero-point {
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    backdrop-filter: blur(8px) !important;
    border-radius: 14px !important;
    padding: 12px !important;
    align-items: flex-start !important;
  }
  .ed-v77 .ed-hero-point-icon {
    color: #16C7F3 !important;
  }
  .ed-v77 .ed-hero-point-copy strong {
    font-size: 0.86rem !important;
    line-height: 1.2 !important;
  }
  .ed-v77 .ed-hero-point-copy small {
    font-size: 0.72rem !important;
    color: rgba(255,255,255,.55) !important;
  }

  /* Trust strip — drobny pasek pod hero-points (markup w front-page.php) */
  .ed-v77 .ed-hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.08);
  }
  .ed-v77 .ed-hero-trust span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    color: rgba(232,240,250,.74);
    font-weight: 500;
  }
  .ed-v77 .ed-hero-trust span::before {
    content: "";
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background: rgba(22,199,243,.14);
    border: 1px solid rgba(22,199,243,.4);
    border-radius: 50%;
    position: relative;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ed-v77 .ed-hero-actions-premium-home .ed-btn-primary { animation: none !important; }
}

/* ====================================================================
 * 14. STOPKA — logo z ikoną (v77.3, fix placeholder)
 * ==================================================================== */
.ed-footer-logo.ed-logo-final {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.ed-footer-logo .ed-logo-mark-final {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
}
.ed-footer-logo .ed-logo-mark-final picture,
.ed-footer-logo .ed-logo-mark-final img {
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
}
.ed-footer-logo .ed-logo-text-final {
  font-family: Sora, Inter, sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  color: #fff;
}
.ed-footer-logo .ed-logo-text-final .ed-logo-dock { color: var(--ed-cyan, #16C7F3); }


/* ====================================================================
 * fix v77.12.11 — bottom nav przywrócony (usunięto blokadę z v77.4)
 * ==================================================================== */
@media (max-width: 900px){
  /* Padding pod bottom nav aby treść nie chowała się pod paskiem */
  body.ed-v77 { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .ed-v77 .ed-mobile-drawer{ z-index: 10010; }
  .ed-v77 .ed-mobile-drawer-scrim{ z-index: 10000; }
}
@media (min-width: 901px){
  /* Na desktopie bottom nav jest ukryty (patrz mobile-v77.css linia ~538) */
  .ed-v77 .ed-bottom-nav { display: none; }
}.ed-mobile-link.ed-mobile-link-disabled{
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
  display: flex;
  flex-direction: column;
}.ed-mobile-link.ed-mobile-link-disabled .ed-mobile-link-sub{
  font-size: 0.75em;
  opacity: 0.8;
}


/* ====================================================================
 * v77.5 — controlled mobile polish: drawer fix, article width, glass header, hero cleanup
 * ==================================================================== */
@media (max-width: 900px) {
  /* Header: blur should live on the rounded nav capsule, not as a black full-width block */
  
  body.ed-v77 .ed-header::before,
  body.ed-v77 .ed-header::after { display: none !important; }
  body.ed-v77 .ed-header .ed-container.ed-nav,
  body.ed-v77 .ed-header .ed-nav {display: flex !important;align-items: center !important;justify-content: space-between;gap: 10px !important}
  body.ed-v77 .ed-header .ed-logo {gap: 9px !important;overflow: hidden !important}
  body.ed-v77 .ed-header .ed-logo-text-final {letter-spacing: -0.05em !important}
  body.ed-v77 .ed-header .ed-logo-mark-final { width: 42px !important; height: 42px !important; flex: 0 0 42px !important; }
  body.ed-v77 .ed-header .ed-logo-mark-final img { width: 40px !important; height: 40px !important; object-fit: contain}
  body.ed-v77 .ed-mobile-phone-icon,
  body.ed-v77 .ed-mobile-toggle {display: inline-flex !important;flex: 0 0 50px !important;width: 50px !important;height: 50px !important;border-radius: 17px !important;border: 1px solid rgba(255,255,255,.12) !important;box-shadow: none !important}
  body.ed-v77 .ed-mobile-toggle { cursor: pointer}
  body.ed-v77 .ed-mobile-toggle span { background: #fff !important; width: 22px !important; height: 2px !important; border-radius: 999px !important; }

  /* Drawer: make sure it is visible and above everything when opened */
  
  body.ed-v77 .ed-mobile-drawer {inset: 0 0 0 auto !important;max-width: 100vw !important;transition: transform .28s cubic-bezier(.2,.8,.2,1) !important}
  
  body.ed-v77 .ed-mobile-drawer-logo .ed-logo-mark-final,
  body.ed-v77 .ed-mobile-drawer-logo .ed-logo-mark-final img { width: 34px !important; height: 34px !important; }
  body.ed-v77 .ed-mobile-drawer-logo .ed-logo-text-final { font-size: 1.12rem !important; }

  /* Article width: use all available screen width, keep text padding only inside content */
  body.ed-v77.single-post .ed-container,
  body.ed-v77.single .ed-container,
  body.ed-v77.single-post .ed-single-layout,
  body.ed-v77.single .ed-single-layout,
  body.ed-v77.single-post .ed-single-hero .ed-container,
  body.ed-v77.single .ed-single-hero .ed-container {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  body.ed-v77.single-post .ed-single-card,
  body.ed-v77.single .ed-single-card,
  body.ed-v77.single-post .ed-content-card.ed-single-card,
  body.ed-v77.single .ed-content-card.ed-single-card {width: 100% !important;max-width: none !important;margin-left: 0 !important;margin-right: 0 !important}
  body.ed-v77.single-post .ed-single-card .ed-entry-content,
  body.ed-v77.single .ed-single-card .ed-entry-content {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* Home hero: remove the cyan text glow that made "Zawsze pod kontrolą" fuzzy */
  
  
  body.ed-v77.home .ed-hero-trust { display: none !important; }
  body.ed-v77.home .ed-hero-points {margin-top: 24px !important}
  body.ed-v77.home .ed-hero-point:nth-child(n+4) { display: none !important; }
  body.ed-v77.home .ed-hero-point {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start;
    gap: 7px !important;
    min-width: 0 !important;
    padding: 10px 6px !important;
    border-radius: 16px !important;
    background: rgba(5,12,20,.16) !important;
    border: 1px solid rgba(255,255,255,.08) !important}
  body.ed-v77.home .ed-hero-point-icon {
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    background: transparent !important;
  }
  body.ed-v77.home .ed-hero-point-copy { align-items: center !important; text-align: center; gap: 0 !important}
  body.ed-v77.home .ed-hero-point-copy strong { font-size: .78rem !important; line-height: 1.12 !important; }
  body.ed-v77.home .ed-hero-point-copy small { display: none !important; }
  body.ed-v77.home .ed-hero-actions-premium-home .ed-btn {
    width: auto !important;
    min-width: 210px !important;
    max-width: 100% !important;
    align-self: flex-start;
    padding-left: 22px !important;
    padding-right: 22px !important}
}

@media (max-width: 390px) {
  body.ed-v77 .ed-header .ed-logo-text-final { font-size: 1rem !important; }
  
}


/* ====================================================================
 * v77.6 — mobile stabilization: drawer viewport, fixed glass header,
 * article full width, clean home hero, hide legacy notes/dropdowns.
 * ==================================================================== */
@media (max-width: 900px) {
  html.ed-no-scroll,
  body.ed-no-scroll { overflow: hidden !important; touch-action: none}

  /* Global mobile header: fixed to the very top, glass only inside rounded nav. */
  body.ed-v77 .ed-header {position: fixed !important;left: 0 !important;right: 0 !important;z-index: 9999 !important;width: 100% !important;padding: max(8px, env(safe-area-inset-top)) 0 6px !important;margin: 0 !important;background: transparent !important;border: 0 !important;box-shadow: none !important;transform: translate3d(0,0,0) !important;overflow: visible !important;-webkit-backdrop-filter: none !important;backdrop-filter: none !important}
  body.ed-v77 .ed-header.ed-scroll-soft-hide {pointer-events: auto !important}
  body.ed-v77 .ed-header .ed-container.ed-nav,
  body.ed-v77 .ed-header .ed-nav {width: calc(100% - 22px) !important;max-width: calc(100vw - 22px) !important;margin: 0 auto !important;min-height: 66px !important;padding: 0 11px !important;border-radius: 22px !important;border: 1px solid rgba(132, 211, 255, .18) !important;box-shadow:
      inset 0 1px 0 rgba(255,255,255,.08),
      0 14px 34px rgba(0,0,0,.18) !important}
  body.ed-v77 .ed-header .ed-logo { flex: 1 1 auto !important; min-width: 0 !important; }
  
  body.ed-v77 .ed-mobile-phone-icon,
  body.ed-v77 .ed-mobile-toggle {
    background: rgba(4, 11, 20, .18) !important;
    border-color: rgba(255,255,255,.14) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.12) !important;
    backdrop-filter: blur(14px) saturate(1.12) !important;
  }

  /* Hide all desktop dropdown leftovers on mobile; they caused the visible text block after footer. */
  body.ed-v77 .ed-menu,
  body.ed-v77 .ed-menu-architecture,
  body.ed-v77 .ed-nav-dropdown-panel,
  body.ed-v77 .ed-nav-mega,
  body.ed-v77 .ed-nav-dropdown-col {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  /* Drawer: always full viewport, independent from header height. */
  body.ed-v77 .ed-mobile-scrim {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    z-index: 100000 !important;
    background: rgba(3, 8, 14, .68) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    backdrop-filter: blur(4px) !important;
  }
  body.ed-v77 .ed-mobile-drawer {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;
    width: min(90vw, 390px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-height: 100dvh !important;
    z-index: 100001 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    transform: translate3d(104%,0,0) !important;
    visibility: hidden !important;
    background: linear-gradient(180deg, rgba(7,17,29,.99), rgba(3,9,16,.99)) !important;
    box-shadow: -18px 0 52px rgba(0,0,0,.46) !important;
    border-left: 1px solid rgba(22,199,243,.16) !important;
    display: flex !important;
    flex-direction: column !important}
  body.ed-v77 .ed-mobile-drawer.is-open {
    transform: translate3d(0,0,0) !important;
    visibility: visible !important;
  }
  /* Drawer should be navigation-only: no logo/search/CTA block. */
  body.ed-v77 .ed-mobile-drawer-logo,
  body.ed-v77 .ed-mobile-search,
  body.ed-v77 .ed-mobile-drawer-cta {
    display: none !important;
  }
  
  body.ed-v77 .ed-mobile-nav { padding-top: 8px !important; }

  /* Articles: use full viewport width; text has internal padding only. */
  body.ed-v77.single-post #main-content,
  body.ed-v77.single #main-content,
  body.ed-v77.single-post .ed-main,
  body.ed-v77.single .ed-main,
  body.ed-v77.single-post .ed-single-layout,
  body.ed-v77.single .ed-single-layout,
  body.ed-v77.single-post .ed-container.ed-single-layout,
  body.ed-v77.single .ed-container.ed-single-layout,
  body.ed-v77.single-post .ed-single-hero .ed-container,
  body.ed-v77.single .ed-single-hero .ed-container {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  body.ed-v77.single-post .ed-single-card,
  body.ed-v77.single .ed-single-card,
  body.ed-v77.single-post .ed-content-card.ed-single-card,
  body.ed-v77.single .ed-content-card.ed-single-card,
  body.ed-v77.single-post .ed-entry-content,
  body.ed-v77.single .ed-entry-content {
    width: 100% !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  body.ed-v77.single-post .ed-single-card,
  body.ed-v77.single .ed-single-card,
  body.ed-v77.single-post .ed-content-card.ed-single-card,
  body.ed-v77.single .ed-content-card.ed-single-card {
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
  }
  

  /* Home hero polish: no text glow; use the calmer EnergyDock blue/cyan. */
  body.ed-v77.home .ed-hero-copy h1 .ed-accent-cyan,
  body.ed-v77.home .ed-hero-copy-premium-home h1 .ed-accent-cyan {background: none !important;-webkit-background-clip: initial;background-clip: initial !important}
  body.ed-v77.home .ed-hero-copy h1,
  body.ed-v77.home .ed-hero-copy-premium-home h1 {
    text-shadow: 0 16px 32px rgba(0,0,0,.24)}
  body.ed-v77.home .ed-hero-trust,
  body.ed-v77.home .ed-hero-proof,
  body.ed-v77.home .ed-hero-bullets,
  body.ed-v77.home .ed-hero-benefits-list {
    display: none !important;
  }
  body.ed-v77.home .ed-hero-points {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  /* Hide technical/context notes that may appear after footer on calculator pages. */
  body.ed-v77.page-template-page-energydock-go .ed-context-signals,
  body.ed-v77.page-template-page-energydock-home .ed-context-signals,
  body.ed-v77.page-energydock-go .ed-context-signals,
  body.ed-v77.page-energydock-home .ed-context-signals,
  body.ed-v77 .ed-ai-context,
  body.ed-v77 .ed-content-signals,
  body.ed-v77 .ed-machine-context,
  body.ed-v77 .ed-llm-context,
  body.ed-v77 .ed-rag-context,
  body.ed-v77 .ed-debug-context,
  body.ed-v77 .ed-hidden-context-notes {
    display: none !important;
  }
}

@media (max-width: 390px) {
  body.ed-v77 .ed-header .ed-container.ed-nav,
  body.ed-v77 .ed-header .ed-nav { width: calc(100% - 18px) !important; max-width: calc(100vw - 18px) !important; padding: 0 9px !important; }
  body.ed-v77 .ed-mobile-phone-icon,
  body.ed-v77 .ed-mobile-toggle { width: 47px !important; height: 47px !important; flex-basis: 47px !important; }
  body.ed-v77 .ed-header .ed-logo-mark-final { width: 38px !important; height: 38px !important; flex-basis: 38px !important; }
  body.ed-v77 .ed-header .ed-logo-mark-final img { width: 37px !important; height: 37px !important; }
}


/* ====================================================================
 * v77.7 — final header + home hero desktop/mobile polish
 * - stronger header glass blur
 * - stronger but still partial hide on scroll down
 * - drawer full viewport safety
 * - home accent color aligned with desktop, no glow
 * - desktop hero copy block transparent (remove rectangular dark gradient)
 * ==================================================================== */

/* Desktop + global header glass: blur the capsule more, not the whole page. */

body.ed-v77 .ed-mobile-phone-icon,
body.ed-v77 .ed-mobile-toggle,
body.ed-v77 .ed-header-phone,
body.ed-v77 .ed-phone-badge {
  -webkit-backdrop-filter: blur(22px) saturate(1.2) !important;
  backdrop-filter: blur(22px) saturate(1.2) !important;
  background: rgba(4, 11, 20, .24) !important;
}

/* Stronger header retreat when JS adds the scroll class. */

@media (min-width: 901px) {
  body.ed-v77 .ed-header {
    transition: transform .26s cubic-bezier(.2,.8,.2,1), opacity .22s ease !important;
  }
  
}
@media (max-width: 900px) {
  
  body.ed-v77 .ed-header .ed-container.ed-nav,
  body.ed-v77 .ed-header .ed-nav {
    background:
      linear-gradient(135deg, rgba(16,33,49,.46), rgba(5,12,22,.25) 58%, rgba(255,107,44,.08)) !important;
    -webkit-backdrop-filter: blur(28px) saturate(1.30) !important;
    backdrop-filter: blur(28px) saturate(1.30) !important;
  }
}

/* Drawer safety: always viewport height; never clipped by header. */
body.ed-v77 .ed-mobile-drawer,
body.ed-v77 .ed-mobile-drawer.is-open {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: auto !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  min-height: 100dvh !important;
  z-index: 100001 !important;
  overflow-y: auto !important;
  contain: none !important;
}
body.ed-v77 .ed-mobile-scrim,
body.ed-v77 .ed-mobile-scrim.is-visible {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  z-index: 100000 !important;
}

/* Home hero: accent color like desktop EnergyDock cyan, no fuzzy glow. */
body.ed-v77.home .ed-hero-copy h1 .ed-accent-cyan,
body.ed-v77.home .ed-hero-copy-premium-home h1 .ed-accent-cyan,
body.ed-v77.home .ed-page-home-test .ed-hero-copy h1 .ed-accent-cyan,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home h1 .ed-accent-cyan {-webkit-background-clip: initial;background-clip: initial !important}

/* Desktop home hero: remove the rectangular dark panel under the copy. */
body.ed-v77.home .ed-hero-copy,
body.ed-v77.home .ed-hero-copy-premium-home,
body.ed-v77.home .ed-hero-copy-premium-integrated,
body.ed-v77.home .ed-page-home-test .ed-hero-copy,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-integrated {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body.ed-v77.home .ed-hero-copy::before,
body.ed-v77.home .ed-hero-copy::after,
body.ed-v77.home .ed-hero-copy-premium-home::before,
body.ed-v77.home .ed-hero-copy-premium-home::after,
body.ed-v77.home .ed-hero-copy-premium-integrated::before,
body.ed-v77.home .ed-hero-copy-premium-integrated::after,
body.ed-v77.home .ed-page-home-test .ed-hero-copy::before,
body.ed-v77.home .ed-page-home-test .ed-hero-copy::after,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home::before,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home::after,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-integrated::before,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-integrated::after {
  display: none !important;
  content: none !important;
}
body.ed-v77.home .ed-page-home-test .ed-hero-copy h1,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home h1,
body.ed-v77.home .ed-page-home-test .ed-hero-copy .ed-lead,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home .ed-lead {
  text-shadow: 0 18px 44px rgba(0,0,0,.42)}

/* ====================================================================
 * v77.8 — controlled mobile header, anchor and segment spacing polish
 * - slightly softer header blur than v77.7
 * - smoother header hide/reveal transition
 * - mobile calculator shortcut icon
 * - full viewport drawer navigation without logo/search/CTA
 * - anchor offset fix for calculator links
 * - remove top empty gaps on GO/HOME mobile pages
 * ==================================================================== */

/* Softer glass than v77.7, still premium and readable. */
body.ed-v77 .ed-header .ed-container.ed-nav,
body.ed-v77 .ed-header .ed-nav {
  background:
    linear-gradient(135deg, rgba(14, 30, 45, .34), rgba(5, 12, 22, .20) 58%, rgba(255, 107, 44, .055)) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.16) !important;
  backdrop-filter: blur(18px) saturate(1.16) !important;
  border-color: rgba(132, 211, 255, .18) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.075),
    0 14px 34px rgba(0,0,0,.20) !important;
}
body.ed-v77 .ed-mobile-phone-icon,
body.ed-v77 .ed-mobile-calc-icon,
body.ed-v77 .ed-mobile-toggle,
body.ed-v77 .ed-header-phone,
body.ed-v77 .ed-phone-badge {
  -webkit-backdrop-filter: blur(16px) saturate(1.12) !important;
  backdrop-filter: blur(16px) saturate(1.12) !important;
  background: rgba(4, 11, 20, .20) !important;
}

/* Smooth header movement; class toggles remain but transform is animated. */
body.ed-v77 .ed-header {
  transition:
    transform .42s cubic-bezier(.22,.8,.22,1),
    opacity .34s ease,
    box-shadow .34s ease,
    background-color .34s ease !important;
  will-change: transform, opacity;
}
/* v77.17.431 (feedback): header CHOWA się przy przewijaniu W DÓŁ. v392 przypinało go na stałe (0,0,0),
   ale user zgłosił, że „chowa się zbyt słabo" — zwalniało to ekran za mało. Teraz przy scroll-down nagłówek
   zjeżdża W CAŁOŚCI nad ekran (translateY -100%), a przy scroll-up / blisko góry wraca. Sterują tym klasy
   .ed-scroll-soft-hide (na headerze) oraz html.ed-scroll-down — theme.js ustawia OBIE RAZEM, więc są w sync
   z korektą górnego sticky „Kompletność" w Moim planie (niżej: przy schowanym headerze dosuwa się do top:0,
   dzięki czemu NIE zostaje luka wysokości nagłówka — to był powód pinowania w v392). */
body.ed-v77 .ed-header.ed-scroll-soft-hide,
html.ed-scroll-down body.ed-v77 .ed-header {
  transform: translate3d(0,-100%,0) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
/* v77.17.493 (życzenie usera): na MOBILE/TABLECIE nagłówek przy scroll-down NIE chowa się w całości —
   zostaje ~16px dolnej krawędzi pilla z paskiem postępu czytania (scroll progress), żeby czytelnik przez
   cały czas widział, na jakim etapie artykułu jest. Pełne schowanie (-100%) zostaje na desktopie (≥901px).
   Reguła niżej niż bazowa + ta sama specyficzność → wygrywa tam, gdzie media pasuje. */
@media (max-width: 900px){
  body.ed-v77 .ed-header.ed-scroll-soft-hide,
  html.ed-scroll-down body.ed-v77 .ed-header {
    transform: translate3d(0, calc(-100% + var(--ed-header-peek, 16px)), 0) !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }
}
/* Mój plan: górny sticky kompletności trzyma się pod headerem (top: header-h). Gdy header znika (scroll-down),
   dosuwamy go do samej góry, żeby nie było pustej luki nad paskiem. */
@media (max-width: 767px){
  html.ed-scroll-down body.ed-v77 .ed-plan-side { top: 0 !important; }
}
@media (max-width: 900px) {
  body.ed-v77 .ed-header {transition:
      transform .44s cubic-bezier(.22,.8,.22,1),
      opacity .36s ease !important}
}

/* Mobile header: add compact calculator shortcut, keep logo readable. */
.ed-mobile-calc-icon {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--ed-radius-md, 18px);
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  color: var(--ed-cyan, #16C7F3);
  text-decoration: none;
}
.ed-mobile-calc-icon:hover,
.ed-mobile-calc-icon:focus-visible {
  background: rgba(22,199,243,.08);
  border-color: rgba(22,199,243,.35);
}
@media (max-width: 900px) {
  body.ed-v77 .ed-mobile-calc-icon {
    display: inline-flex !important;
    order: 2 !important;
    margin-left: auto !important;
    margin-right: 8px !important;
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
  }
  body.ed-v77 .ed-mobile-phone-icon {
    order: 3 !important;
    margin-left: 0 !important;
    margin-right: 8px !important;
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
  }
  body.ed-v77 .ed-mobile-toggle {
    order: 4 !important;
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
  }
  body.ed-v77 .ed-header .ed-logo,
  body.ed-v77 .ed-header .ed-logo-final {
    min-width: 0 !important;
    max-width: calc(100vw - 205px) !important;
  }
  body.ed-v77 .ed-header .ed-logo-text-final {
    font-size: clamp(1.02rem, 4.1vw, 1.28rem) !important;
    white-space: nowrap !important;
  }
}
@media (max-width: 380px) {
  body.ed-v77 .ed-mobile-calc-icon,
  body.ed-v77 .ed-mobile-phone-icon,
  body.ed-v77 .ed-mobile-toggle {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
    margin-right: 6px !important;
  }
  body.ed-v77 .ed-mobile-toggle { margin-right: 0 !important; }
  body.ed-v77 .ed-header .ed-logo,
  body.ed-v77 .ed-header .ed-logo-final { max-width: calc(100vw - 190px) !important; }
}

/* Drawer should be navigation only and full viewport, never clipped by header. */
@media (max-width: 900px) {
  body.ed-v77 .ed-mobile-drawer,
  body.ed-v77 .ed-mobile-drawer.is-open {
    position: fixed !important;
    inset: 0 0 auto auto !important;
    width: min(88vw, 380px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    z-index: 100001 !important;
    contain: none !important;
  }
  body.ed-v77 .ed-mobile-scrim,
  body.ed-v77 .ed-mobile-scrim.is-visible {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    z-index: 100000 !important;
  }
  body.ed-v77 .ed-mobile-drawer-logo,
  body.ed-v77 .ed-mobile-search,
  body.ed-v77 .ed-mobile-drawer-cta,
  body.ed-v77 .ed-mobile-drawer .ed-btn,
  body.ed-v77 .ed-mobile-drawer .ed-mobile-drawer-footer {
    display: none !important;
  }
  body.ed-v77 .ed-mobile-drawer-head {
    justify-content: flex-end;
    min-height: 58px !important;
    padding: max(10px, env(safe-area-inset-top)) 14px 8px !important;
    background: rgba(6,14,24,.72) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.1) !important;
    backdrop-filter: blur(14px) saturate(1.1) !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important}
  body.ed-v77 .ed-mobile-nav {
    padding: 12px 14px 22px !important;
  }
}

/* Home accent: no fuzzy glow; use the same desktop variable. */
body.ed-v77.home .ed-hero-copy h1 .ed-accent-cyan,
body.ed-v77.home .ed-hero-copy-premium-home h1 .ed-accent-cyan,
body.ed-v77.home .ed-page-home-test .ed-hero-copy h1 .ed-accent-cyan,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home h1 .ed-accent-cyan {
  color: var(--ed-cyan, #16C7F3) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  text-shadow: 0 0 18px rgba(22,199,243,.16);
  filter: none !important}

/* GO/HOME mobile: remove empty top space but keep copy safely below fixed header. */
@media (max-width: 900px) {
  body.ed-v77.page-template-page-energydock-go .ed-go-segment-hero,
  body.ed-v77.page-template-page-energydock-go-php .ed-go-segment-hero,
  body.ed-v77.page-template-page-energydock-home .ed-home-segment-hero,
  body.ed-v77.page-template-page-energydock-home-php .ed-home-segment-hero {
    margin-top: -74px !important;
    padding-top: 82px !important;
    padding-bottom: 56px !important;
  }
  body.ed-v77.page-template-page-energydock-go .ed-go-segment-hero .ed-hero-grid-premium-integrated,
  body.ed-v77.page-template-page-energydock-go-php .ed-go-segment-hero .ed-hero-grid-premium-integrated,
  body.ed-v77.page-template-page-energydock-home .ed-home-segment-hero .ed-hero-grid-premium-integrated,
  body.ed-v77.page-template-page-energydock-home-php .ed-home-segment-hero .ed-hero-grid-premium-integrated {
    min-height: min(690px, 88svh) !important;
    padding-top: 0 !important;
    align-items: end !important;
  }
  body.ed-v77.page-template-page-energydock-go .ed-go-segment-hero .ed-hero-copy-premium-integrated,
  body.ed-v77.page-template-page-energydock-go-php .ed-go-segment-hero .ed-hero-copy-premium-integrated,
  body.ed-v77.page-template-page-energydock-home .ed-home-segment-hero .ed-hero-copy-premium-integrated,
  body.ed-v77.page-template-page-energydock-home-php .ed-home-segment-hero .ed-hero-copy-premium-integrated {
    padding-top: 120px !important;
    padding-bottom: 22px !important;
  }
}

/* ====================================================================
 * v77.9 — article top/content/table + segment anchor cleanup
 * - GO/HOME mobile hero no large empty top area
 * - calculator anchors land on content, not blank space
 * - article hero controlled independently from full-width body content
 * - article body uses full viewport width with readable internal padding
 * - tables are horizontally scrollable instead of squeezed/cut
 * - hide stray desktop/navigation context blocks on mobile
 * ==================================================================== */

@media (max-width: 900px) {
  /* Keep fixed glass header above everything, but do not let it create layout gaps. */
  body.ed-v77 .ed-header {
    top: 0 !important;
    padding-top: max(8px, env(safe-area-inset-top)) !important;
  }

  /* Segment pages GO/HOME/PRO: background may sit under header, copy should not start after a huge empty image area. */
  body.ed-v77 .ed-page-segment .ed-hero-premium-integrated {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 14px !important; /* v77.17.224 #B4: było 38px — zwężamy odstęp hero→„Zanim wybierzesz pojemność" */
    min-height: auto !important;
  }
  body.ed-v77 .ed-page-segment .ed-hero-premium-bg,
  body.ed-v77 .ed-page-segment .ed-hero-premium-bg picture,
  body.ed-v77 .ed-page-segment .ed-hero-premium-bg .ed-hero-premium-img {
    top: 0 !important;
    height: 100% !important;
    min-height: 100% !important;
  }
  body.ed-v77 .ed-page-segment .ed-hero-grid-premium-integrated {
    width: 100% !important;
    max-width: 100vw !important;
    min-height: auto !important;
    padding: calc(86px + env(safe-area-inset-top)) 14px 34px !important;
    margin: 0 !important;
    align-items: start !important;
  }
  body.ed-v77 .ed-page-segment .ed-hero-copy-premium-integrated {
    max-width: 100% !important;
    padding: 18px 0 0 !important;
  }
  body.ed-v77 .ed-page-segment .ed-hero-copy-premium-integrated::before {
    top: 0 !important;
    height: 100% !important;
  }
  body.ed-v77 .ed-page-segment .ed-hero-kicker-pill {width: 100% !important;max-width: 100% !important}
  body.ed-v77 .ed-page-segment .ed-hero-copy h1,
  body.ed-v77 .ed-page-segment .ed-hero-copy-premium-home h1 {
    max-width: 100% !important;
    font-size: clamp(2.25rem, 10.2vw, 3.55rem) !important;
    line-height: .94 !important;
    letter-spacing: -.06em !important;
  }

  /* Anchor targets — prevents blank screen after clicking from articles into calculators. */
  body.ed-v77 #runtime,
  body.ed-v77 #kalkulator-home,
  body.ed-v77 #checklista-pro,
  body.ed-v77 .ed-section-calculator-hub,
  body.ed-v77 .ed-section-tools {
    scroll-margin-top: calc(92px + env(safe-area-inset-top))}

  /* Article top/header: independent from article body full-width rules. */
  body.ed-v77.single-post .ed-single-hero,
  body.ed-v77.single .ed-single-hero {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-top: calc(84px + env(safe-area-inset-top)) !important;
    padding-bottom: 26px !important;
  }
  body.ed-v77.single-post .ed-single-hero .ed-container,
  body.ed-v77.single .ed-single-hero .ed-container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  body.ed-v77.single-post .ed-single-hero .ed-section-head,
  body.ed-v77.single .ed-single-hero .ed-section-head,
  body.ed-v77.single-post .ed-single-hero .ed-section-head-wide,
  body.ed-v77.single .ed-single-hero .ed-section-head-wide {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  body.ed-v77.single-post .ed-single-hero h1,
  body.ed-v77.single .ed-single-hero h1 {
    max-width: 100% !important;
    font-size: clamp(2.2rem, 11.2vw, 3.55rem) !important;
    line-height: .94 !important;
    letter-spacing: -.065em !important;
    margin-top: 18px !important;
  }
  body.ed-v77.single-post .ed-single-excerpt,
  body.ed-v77.single .ed-single-excerpt {
    max-width: 100% !important;
    font-size: clamp(1.02rem, 5vw, 1.28rem) !important;
    line-height: 1.42 !important;
  }
  body.ed-v77.single-post .ed-article-meta-row,
  body.ed-v77.single .ed-article-meta-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    margin-top: 18px !important;
  }
  body.ed-v77.single-post .ed-article-meta-cats,
  body.ed-v77.single .ed-article-meta-cats {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  body.ed-v77.single-post .ed-article-meta-info,
  body.ed-v77.single .ed-article-meta-info {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: auto;
    letter-spacing: .08em !important;
  }
  body.ed-v77.single-post .ed-article-meta-info .ed-article-meta-divider,
  body.ed-v77.single .ed-article-meta-info .ed-article-meta-divider {
    margin: 0 !important;
    opacity: .65 !important;
  }

  /* Article body: full viewport width; only text padding remains. */
  body.ed-v77.single-post .ed-blog-listing,
  body.ed-v77.single .ed-blog-listing,
  body.ed-v77.single-post .ed-single-layout,
  body.ed-v77.single .ed-single-layout,
  body.ed-v77.single-post .ed-single-main,
  body.ed-v77.single .ed-single-main,
  body.ed-v77.single-post .ed-single-card,
  body.ed-v77.single .ed-single-card,
  body.ed-v77.single-post .ed-content-card.ed-single-card,
  body.ed-v77.single .ed-content-card.ed-single-card {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
  }
  body.ed-v77.single-post .ed-entry-content,
  body.ed-v77.single .ed-entry-content {width: 100vw !important;max-width: 100vw !important;margin-left: calc(50% - 50vw) !important;margin-right: calc(50% - 50vw) !important}
  body.ed-v77.single-post .ed-entry-content p,
  body.ed-v77.single .ed-entry-content p,
  body.ed-v77.single-post .ed-entry-content li,
  body.ed-v77.single .ed-entry-content li {
    max-width: none !important;
  }

  /* Tables: no squeezing/cutting columns; horizontal scroll when needed. */
  
  body.ed-v77.single-post .ed-entry-content table,
  body.ed-v77.single .ed-entry-content table,
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll table,
  body.ed-v77.single .ed-entry-content .ed-table-scroll table {width: max(660px, 100%) !important;min-width: 660px !important}
  
  body.ed-v77.single-post .ed-entry-content table th:first-child,
  body.ed-v77.single .ed-entry-content table th:first-child,
  body.ed-v77.single-post .ed-entry-content table td:first-child,
  body.ed-v77.single .ed-entry-content table td:first-child {
    min-width: 170px !important;
  }
  body.ed-v77.single-post .ed-entry-content table th:nth-child(2),
  body.ed-v77.single .ed-entry-content table th:nth-child(2),
  body.ed-v77.single-post .ed-entry-content table td:nth-child(2),
  body.ed-v77.single .ed-entry-content table td:nth-child(2) {
    min-width: 230px !important;
  }
  body.ed-v77.single-post .ed-entry-content table th:nth-child(3),
  body.ed-v77.single .ed-entry-content table th:nth-child(3),
  body.ed-v77.single-post .ed-entry-content table td:nth-child(3),
  body.ed-v77.single .ed-entry-content table td:nth-child(3) {
    min-width: 230px !important;
  }

  /* Remove stray desktop dropdown/context blocks that can appear after footer on mobile. */
  body.ed-v77 .ed-footer ~ .ed-menu,
  body.ed-v77 .ed-footer ~ .ed-menu-architecture,
  body.ed-v77 .ed-footer ~ .ed-nav-dropdown,
  body.ed-v77 .ed-footer ~ .ed-nav-dropdown-panel,
  body.ed-v77 .ed-footer ~ .ed-nav-dropdown-col,
  body.ed-v77 .ed-site-map-dump,
  body.ed-v77 .ed-nav-dump,
  body.ed-v77 .ed-debug-links,
  body.ed-v77 .ed-context-signals,
  body.ed-v77 .ed-content-signals,
  body.ed-v77 .ed-machine-context,
  body.ed-v77 .ed-llm-context,
  body.ed-v77 .ed-rag-context {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  /* Home hero accent remains clean: color only, no fuzzy glow. */
  body.ed-v77.home .ed-hero-copy h1 .ed-accent-cyan,
  body.ed-v77.home .ed-hero-copy-premium-home h1 .ed-accent-cyan {
    color: var(--ed-cyan, #16C7F3) !important;
    text-shadow: none;
    filter: none !important}
}


/* ====================================================================
 * v77.10 — mobile table system + segment top/anchor final polish
 * - 2-column article tables stay readable without unnecessary horizontal scroll
 * - 3+ column tables scroll horizontally with consistent typography
 * - GO/HOME/PRO heroes start closer to the header on mobile
 * - deep links land on the actual calculator step/card instead of blank hero space
 * ==================================================================== */
@media (max-width: 900px) {
  /* Segment pages: remove the large empty top area above the first meaningful copy. */
  body.ed-v77 .ed-page-segment .ed-hero-premium-integrated,
  body.ed-v77.page-template-page-energydock-go .ed-go-segment-hero,
  body.ed-v77.page-template-page-energydock-home .ed-home-segment-hero,
  body.ed-v77.page-template-page-energydock-pro .ed-pro-segment-hero {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: auto !important;
  }
  body.ed-v77 .ed-page-segment .ed-hero-grid-premium-integrated,
  body.ed-v77.page-template-page-energydock-go .ed-go-segment-hero .ed-hero-grid-premium-integrated,
  body.ed-v77.page-template-page-energydock-home .ed-home-segment-hero .ed-hero-grid-premium-integrated,
  body.ed-v77.page-template-page-energydock-pro .ed-pro-segment-hero .ed-hero-grid-premium-integrated {
    min-height: auto !important;
    height: auto !important;
    align-items: start !important;
    /* v224 #14: body ma już padding-top:72px (czyści fixed-header 86px). Grid nie musi
       dokładać kolejnych 72px — wyrównane do 28px jak reszta segmentów (linia ~2458).
       Efekt: luka header→eyebrow spada z ~70px do ~26px na GO/HOME/PRO. */
    padding-top: calc(28px + env(safe-area-inset-top)) !important;
    padding-bottom: 14px !important; /* v77.17.224 #B4: było 30px — zwężamy dolny odstęp hero */
  }
  body.ed-v77 .ed-page-segment .ed-hero-copy-premium-integrated,
  body.ed-v77.page-template-page-energydock-go .ed-go-segment-hero .ed-hero-copy-premium-integrated,
  body.ed-v77.page-template-page-energydock-home .ed-home-segment-hero .ed-hero-copy-premium-integrated,
  body.ed-v77.page-template-page-energydock-pro .ed-pro-segment-hero .ed-hero-copy-premium-integrated {
    padding-top: 12px !important;
    padding-bottom: 10px !important;
  }
  body.ed-v77 .ed-page-segment .ed-hero-kicker-pill {margin-bottom: 18px !important}

  /* Deep link targets should resolve to the real calculator card. */
  body.ed-v77 #runtime,
  body.ed-v77 #kalkulator-home,
  body.ed-v77 #checklista-pro,
  body.ed-v77 #runtime .ed-tool-card,
  body.ed-v77 #kalkulator-home .ed-home-rebuild-shell,
  body.ed-v77 #checklista-pro .ed-tool-card {
    scroll-margin-top: calc(86px + env(safe-area-inset-top))}

  /* Article content remains wide, but tables get their own readable system. */
  body.ed-v77.single-post .ed-entry-content,
  body.ed-v77.single .ed-entry-content {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll,
  body.ed-v77.single .ed-entry-content .ed-table-scroll {
    width: 100% !important;
    max-width: 100% !important;
    margin: 20px 0 28px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    border-radius: 18px !important;
    border: 1px solid rgba(159,179,200,.16) !important;
    background: linear-gradient(180deg, rgba(12,25,39,.82), rgba(7,17,29,.68)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 18px 42px rgba(0,0,0,.18) !important}
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll::after,
  body.ed-v77.single .ed-entry-content .ed-table-scroll::after {
    content: none !important;
  }
  body.ed-v77.single-post .ed-entry-content table,
  body.ed-v77.single .ed-entry-content table,
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll table,
  body.ed-v77.single .ed-entry-content .ed-table-scroll table {
    display: table !important;
    margin: 0 !important;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    max-width: none !important;
    color: #dbe8f7 !important}
  body.ed-v77.single-post .ed-entry-content table th,
  body.ed-v77.single .ed-entry-content table th,
  body.ed-v77.single-post .ed-entry-content table td,
  body.ed-v77.single .ed-entry-content table td {
    padding: 14px 13px !important;
    font-size: 15px !important;
    line-height: 1.36 !important;
    letter-spacing: -0.01em !important;
    min-width: 0 !important;
    white-space: normal !important;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: auto;
    vertical-align: top !important;
    border-color: rgba(159,179,200,.12) !important}
  body.ed-v77.single-post .ed-entry-content table th,
  body.ed-v77.single .ed-entry-content table th {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.045) !important;
  }

  /* Most problematic article tables are 2-column decision/checklist tables: keep them fully visible. */
  body.ed-v77.single-post .ed-entry-content table.ed-table-cols-2,
  body.ed-v77.single .ed-entry-content table.ed-table-cols-2,
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll table.ed-table-cols-2,
  body.ed-v77.single .ed-entry-content .ed-table-scroll table.ed-table-cols-2 {
    width: 100% !important;
    min-width: 100% !important;
  }
  body.ed-v77.single-post .ed-entry-content table.ed-table-cols-2 th:first-child,
  body.ed-v77.single .ed-entry-content table.ed-table-cols-2 th:first-child,
  body.ed-v77.single-post .ed-entry-content table.ed-table-cols-2 td:first-child,
  body.ed-v77.single .ed-entry-content table.ed-table-cols-2 td:first-child {
    width: 38% !important;
  }
  body.ed-v77.single-post .ed-entry-content table.ed-table-cols-2 th:nth-child(2),
  body.ed-v77.single .ed-entry-content table.ed-table-cols-2 th:nth-child(2),
  body.ed-v77.single-post .ed-entry-content table.ed-table-cols-2 td:nth-child(2),
  body.ed-v77.single .ed-entry-content table.ed-table-cols-2 td:nth-child(2) {
    width: 62% !important;
  }

  /* Wider tables are intentionally scrollable, with balanced column widths. */
  body.ed-v77.single-post .ed-entry-content table.ed-table-cols-3,
  body.ed-v77.single .ed-entry-content table.ed-table-cols-3,
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll table.ed-table-cols-3,
  body.ed-v77.single .ed-entry-content .ed-table-scroll table.ed-table-cols-3 {
    width: 720px !important;
    min-width: 720px !important;
  }
  body.ed-v77.single-post .ed-entry-content table.ed-table-cols-4,
  body.ed-v77.single .ed-entry-content table.ed-table-cols-4,
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll table.ed-table-cols-4,
  body.ed-v77.single .ed-entry-content .ed-table-scroll table.ed-table-cols-4 {
    width: 860px !important;
    min-width: 860px !important;
  }

  /* A tiny, clear scroll hint only for tables that really overflow. */
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll.is-scrollable,
  body.ed-v77.single .ed-entry-content .ed-table-scroll.is-scrollable {
    padding-top: 22px !important;
    position: relative !important;
  }
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll.is-scrollable::before,
  body.ed-v77.single .ed-entry-content .ed-table-scroll.is-scrollable::before {
    content: "Przesuń tabelę w bok →" !important;
    position: absolute !important;
    top: 5px !important;
    left: 13px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    color: rgba(159,179,200,.78) !important;
    letter-spacing: .02em !important;
    pointer-events: none !important;
  }
}


/* ====================================================================
 * v77.11.1 — adaptive article tables + segment scroll restoration fix
 * - tables use natural/adaptive column widths instead of fixed ratios
 * - first column behaves like compact label column when possible
 * - table typography is smaller than article body text
 * - GO/HOME/PRO pages no longer restore to a blank intermediate viewport
 * ==================================================================== */

/* Global article table system: desktop + mobile. */
body.ed-v77 .ed-entry-content .ed-table-scroll {
  width: 100% !important;
  max-width: 100% !important;
  margin: 20px 0 30px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  border-radius: 18px !important;
  border: 1px solid rgba(159,179,200,.16) !important;
  background: linear-gradient(180deg, rgba(12,25,39,.82), rgba(7,17,29,.68)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 18px 42px rgba(0,0,0,.16) !important}

body.ed-v77 .ed-entry-content table,
body.ed-v77 .ed-entry-content .ed-table-scroll table {
  display: table !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
  color: #dbe8f7 !important;
  font-size: clamp(13px, .86rem, 15px) !important;
  line-height: 1.34 !important}

body.ed-v77 .ed-entry-content table th,
body.ed-v77 .ed-entry-content table td {
  padding: 12px 14px !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: -0.01em !important;
  min-width: 0 !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal;
  overflow-wrap: anywhere;
  hyphens: auto;
  vertical-align: top !important;
  border-color: rgba(159,179,200,.12) !important}

body.ed-v77 .ed-entry-content table th {
  font-size: .94em !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  background: rgba(255,255,255,.045) !important;
}

/* Compact label column: shrink to content instead of consuming a fixed percentage.
   v77.16.291 — jak w bloku desktopowym: `nowrap` + `max-width` się wykluczały i długie etykiety
   wylewały się na sąsiednią kolumnę. Na mobile było gorzej niż na desktopie, bo kolumna
   potrafiła spaść do 7 px przy dziesięciu wylewających się komórkach. */
body.ed-v77 .ed-entry-content table th:first-child,
body.ed-v77 .ed-entry-content table td:first-child {
  width: auto !important;
  min-width: 14ch !important;
  max-width: 24ch !important;
  white-space: normal !important;
  overflow-wrap: break-word;
  hyphens: none}

/* 2-column tables should usually stay fully visible. No fixed 30/70 split. */
body.ed-v77 .ed-entry-content table.ed-table-cols-2,
body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-cols-2 {
  width: 100% !important;
  min-width: 100% !important;
  table-layout: auto}

/* 3+ column tables may scroll on narrow screens, but columns stay content-driven. */
body.ed-v77 .ed-entry-content table.ed-table-cols-3,
body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-cols-3,
body.ed-v77 .ed-entry-content table.ed-table-cols-4,
body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-cols-4 {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: auto}

body.ed-v77 .ed-entry-content .ed-table-scroll::before,
body.ed-v77 .ed-entry-content .ed-table-scroll::after {
  content: none !important;
}

@media (max-width: 900px) {
  body.ed-v77 .ed-entry-content table,
  body.ed-v77 .ed-entry-content .ed-table-scroll table {
    font-size: clamp(12.5px, 3.35vw, 14px) !important;
    line-height: 1.32 !important;
  }

  body.ed-v77 .ed-entry-content table th,
  body.ed-v77 .ed-entry-content table td {
    padding: 11px 12px !important;
  }

  /* For mobile, compact labels still shrink, but long labels can wrap instead of forcing huge horizontal scroll. */
  body.ed-v77 .ed-entry-content table th:first-child,
  body.ed-v77 .ed-entry-content table td:first-child {
    width: 1% !important;
    min-width: max-content !important;
    max-width: 13rem !important;
    white-space: normal !important;
    overflow-wrap: break-word}

  /* 2-column tables remain viewport-friendly. */
  body.ed-v77 .ed-entry-content table.ed-table-cols-2,
  body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-cols-2 {
    width: 100% !important;
    min-width: 100% !important;
  }

  /* 3+ columns get a practical minimum, but not rigid column proportions. */
  body.ed-v77 .ed-entry-content table.ed-table-cols-3,
  body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-cols-3 {
    width: max(620px, 100%) !important;
    min-width: min(620px, 100vw) !important;
  }

  body.ed-v77 .ed-entry-content table.ed-table-cols-4,
  body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-cols-4 {
    width: max(760px, 100%) !important;
    min-width: min(760px, 100vw) !important;
  }

  body.ed-v77 .ed-entry-content .ed-table-scroll.is-scrollable {
    padding-top: 0 !important;
  }
}

@media (min-width: 901px) {
  body.ed-v77 .ed-entry-content .ed-table-scroll {
    overflow-x: visible !important;
  }
}

@media (max-width: 900px) {
  /* GO/HOME/PRO: remove the empty viewport gap above the hero copy. */
  body.ed-v77 .ed-page-segment .ed-hero-premium-integrated,
  body.ed-v77 .ed-page-segment-go .ed-hero-premium-integrated,
  body.ed-v77 .ed-page-segment-home .ed-hero-premium-integrated,
  body.ed-v77 .ed-page-segment-pro .ed-hero-premium-integrated {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
  }

  body.ed-v77 .ed-page-segment .ed-hero-grid-premium-integrated,
  body.ed-v77 .ed-page-segment-go .ed-hero-grid-premium-integrated,
  body.ed-v77 .ed-page-segment-home .ed-hero-grid-premium-integrated,
  body.ed-v77 .ed-page-segment-pro .ed-hero-grid-premium-integrated {
    min-height: auto !important;
    height: auto !important;
    align-items: start !important;
    padding-top: calc(28px + env(safe-area-inset-top)) !important;
    padding-bottom: 24px !important;
  }

  body.ed-v77 .ed-page-segment .ed-hero-copy-premium-integrated {
    padding-top: 8px !important;
    padding-bottom: 12px !important;
  }

  body.ed-v77 .ed-page-segment .ed-hero-kicker-pill {
    margin-top: 0 !important;
  }
}

/* ================================================================
 * v77.12.13 — HOME results bridge CTA (między kalkulatorem a #dopasowanie)
 * ================================================================ */
.ed-home-results-bridge {
  background: var(--ed-color-primary, #1a6b3a);
  padding: 0;
  position: sticky;
  bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  z-index: 90;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
}
.ed-home-results-bridge-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  padding: 14px 20px;
  text-decoration: none;
  text-align: center;
}
.ed-home-results-bridge-cta:hover {
  background: rgba(0,0,0,0.08);
}
@media (min-width: 901px) {
  .ed-home-results-bridge {
    position: static;
    background: transparent;
    box-shadow: none;
    padding: 16px 0 0;
  }
  .ed-home-results-bridge-cta {
    color: var(--ed-color-primary, #1a6b3a);
    font-size: 1rem;
    padding: 10px 0;
    justify-content: flex-start;
  }
  .ed-home-results-bridge-cta:hover {
    background: transparent;
    text-decoration: underline;
  }
}

/* v77.12.13 — ROI details tooltip w kartach HOME */
.edhm-roi-details {
  font-size: 0.8rem;
  color: var(--ed-color-text-muted, #666);
  margin: 4px 0 8px;
}
.edhm-roi-details summary {
  cursor: pointer;
  color: var(--ed-color-primary, #1a6b3a);
  font-weight: 500;
}
.edhm-roi-details p {
  margin: 6px 0 0;
  line-height: 1.5;
}

/* v77.12.77.2 — mobile cyan parity with desktop (#16C7F3). */
body.ed-v77.home .ed-page-home-test .ed-hero .ed-accent-cyan,
body.ed-v77.home .ed-hero-copy h1 .ed-accent-cyan,
body.ed-v77.home .ed-hero-copy-premium-home h1 .ed-accent-cyan,
body.ed-v77.home .ed-page-home-test .ed-hero-copy h1 .ed-accent-cyan,
body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-home h1 .ed-accent-cyan{
  color:#16C7F3 !important;
  -webkit-text-fill-color:#16C7F3 !important;
  text-shadow:0 0 18px rgba(22,199,243,.16), 0 0 42px rgba(31,163,255,.12);
  filter:none !important}
.ed-mobile-drawer-logo .ed-logo-dock,
.ed-footer-logo .ed-logo-text-final .ed-logo-dock,
.ed-logo-text-final .ed-logo-dock,
.ed-brand-dock{
  color:#16C7F3 !important;
  text-shadow:0 0 12px rgba(22,199,243,.20)}
.ed-page-home-test .ed-home-hub-primary .ed-home-hub-primary-meta,
.ed-page-home-test .ed-home-hub-primary .ed-featured-badge-thumb,
.ed-page-home-test .ed-home-hub-primary.ed-home-hub-primary-accent .ed-featured-badge-thumb{
  color:#16C7F3 !important;
}
.ed-page-home-test .ed-home-hub-primary .ed-featured-badge-thumb,
.ed-page-home-test .ed-home-hub-primary.ed-home-hub-primary-accent .ed-featured-badge-thumb{
  background:rgba(22,199,243,.14) !important;
  border-color:rgba(22,199,243,.30) !important;
  box-shadow:0 12px 26px rgba(7,17,29,.28), 0 0 20px rgba(22,199,243,.18) !important;
}

/* v77.12.78.65 — Mobile homepage hero visual refresh: variant 4 inspired layout. */
.ed-label-mobile{display:none;}
@media (max-width:767px){
  body.ed-v77.home .ed-label-desktop{display:none;}
  body.ed-v77.home .ed-label-mobile{display:inline;}
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-integrated{border-bottom:0!important}
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-bg,
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-bg picture,
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-bg img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    display:block!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-bg img{transform:none!important}
  
  
  body.ed-v77.home .ed-page-home-test .ed-hero-grid-premium-integrated{display:block!important;min-height:0!important}
  
  body.ed-v77.home .ed-page-home-test .ed-hero-kicker-pill{display:none!important;}
  body.ed-v77.home .ed-page-home-test .ed-hero-copy h1{margin:0!important}
  body.ed-v77.home .ed-page-home-test .ed-hero-copy h1 .ed-accent-cyan{color:#16C7F3!important;text-shadow:0 0 34px rgba(22,199,243,.20)}
  
  
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn{width:100%!important;min-width:0!important;align-self:stretch}
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn-primary{text-shadow:0 1px 0 rgba(0,0,0,.18)}
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn-secondary{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 16px 42px rgba(0,0,0,.24)!important}
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn::after{content:"→";margin-left:auto;font-size:1.3rem;line-height:1;opacity:.92;}
  body.ed-v77.home .ed-page-home-test .ed-btn-premium-icon{flex:0 0 auto!important;}
  
  body.ed-v77.home .ed-page-home-test .ed-hero-point{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center;gap:8px!important;text-align:center}
  body.ed-v77.home .ed-page-home-test .ed-hero-flow-card,
  body.ed-v77.home .ed-page-home-test .ed-hero-crest-divider{display:none!important;}
}
@media (max-width:390px){
  
  
  
}

/* v77.12.78.66 — Mobile hero variant 4 layout fix: shorter mobile copy, real visual depth, benefits before CTA. */
.ed-lead-mobile,
.ed-hero-mobile-trust{display:none;}
@media (max-width:767px){
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-integrated{
    min-height:auto!important;
    padding:26px 0 34px!important;
    overflow:hidden!important;
    background:#030c16!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-bg img{
    opacity:1!important;
    object-fit:cover;
    object-position:58% 0%!important;
    filter:saturate(1.15) contrast(1.05) brightness(.92)!important}
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-integrated::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    pointer-events:none!important;
    background:
      linear-gradient(180deg,rgba(3,9,17,.94) 0%,rgba(3,9,17,.70) 24%,rgba(3,9,17,.30) 48%,rgba(3,9,17,.10) 62%,rgba(3,9,17,.72) 100%),
      linear-gradient(90deg,rgba(3,9,17,.96) 0%,rgba(3,9,17,.72) 42%,rgba(3,9,17,.22) 78%,rgba(3,9,17,.32) 100%)!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-premium-integrated::after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    pointer-events:none!important;
    background:
      radial-gradient(95% 42% at 78% 44%,rgba(22,199,243,.12),transparent 62%),
      radial-gradient(74% 36% at 14% 58%,rgba(255,107,44,.10),transparent 62%),
      linear-gradient(180deg,transparent 0%,rgba(3,9,17,.08) 52%,rgba(3,9,17,.82) 100%)!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-grid-premium-integrated{
    width:calc(100% - 34px)!important;
    padding-top:42px!important;
    padding-bottom:0!important;
    margin:0 auto!important;
    position:relative!important;
    z-index:1!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-copy-premium-integrated{
    display:flex!important;
    flex-direction:column!important;
    max-width:100%!important;
    min-height:0!important;
    padding:0!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-copy h1{
    order:1!important;
    max-width:9.35ch!important;
    font-size:clamp(3.02rem,12.65vw,4.05rem)!important;
    line-height:.99!important;
    letter-spacing:-.058em!important;
    text-shadow:0 22px 46px rgba(0,0,0,.50)}
  body.ed-v77.home .ed-page-home-test .ed-hero-copy .ed-lead{
    order:2!important;
    max-width:29ch!important;
    margin-top:18px!important;
    font-size:clamp(1.03rem,4.3vw,1.18rem)!important;
    line-height:1.48!important;
    color:rgba(239,247,255,.88)!important;
    text-shadow:0 12px 28px rgba(0,0,0,.42)}
  body.ed-v77.home .ed-page-home-test .ed-lead-desktop{display:none!important;}
  body.ed-v77.home .ed-page-home-test .ed-lead-mobile{display:inline!important;}
  body.ed-v77.home .ed-page-home-test .ed-hero-points{
    order:3!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin-top:176px!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-point{
    min-height:108px!important;
    padding:12px 8px!important;
    border-radius:20px!important;
    background:linear-gradient(180deg,rgba(9,22,36,.70),rgba(4,11,21,.54))!important;
    border:1px solid rgba(255,255,255,.13)!important;
    box-shadow:0 18px 46px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.08)!important;
    -webkit-backdrop-filter:blur(14px)!important;
    backdrop-filter:blur(14px)!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home{
    order:4!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    margin-top:22px!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn{
    min-height:62px!important;
    border-radius:999px!important;
    justify-content:flex-start;
    padding:0 22px!important;
    font-size:1.08rem!important}
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn-primary{
    color:#fff!important;
    background:linear-gradient(135deg,#ff985f 0%,#ff6b2c 54%,#ff7c35 100%)!important;
    box-shadow:0 18px 48px rgba(255,107,44,.34),inset 0 1px 0 rgba(255,255,255,.32)!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn-secondary{
    color:#16C7F3!important;
    background:rgba(3,14,25,.54)!important;
    border-color:rgba(22,199,243,.38)!important;
  }
  body.ed-v77.home .ed-page-home-test .ed-hero-mobile-trust{
    order:5!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center;
    flex-wrap:wrap!important;
    gap:8px 12px!important;
    margin-top:18px!important;
    color:rgba(218,232,245,.72)!important;
    font-size:.78rem!important;
    font-weight:760!important;
    text-align:center}
  body.ed-v77.home .ed-page-home-test .ed-hero-mobile-trust span+span::before{
    content:"•";
    color:#16C7F3;
    margin-right:12px;
  }
}
@media (max-width:390px){
  body.ed-v77.home .ed-page-home-test .ed-hero-copy h1{font-size:clamp(2.8rem,12.2vw,3.48rem)!important;}
  body.ed-v77.home .ed-page-home-test .ed-hero-copy .ed-lead{font-size:1rem!important;max-width:28ch!important;}
  body.ed-v77.home .ed-page-home-test .ed-hero-points{margin-top:146px!important;gap:8px!important;}
  body.ed-v77.home .ed-page-home-test .ed-hero-point{min-height:96px!important;padding:10px 6px!important;}
  body.ed-v77.home .ed-page-home-test .ed-hero-actions-premium-home .ed-btn{min-height:58px!important;font-size:1rem!important;}
}

/* v77.16.51: FIX mobilnej piguły kategorii pod boksem „W skrócie".
   Bug: w hero artykułu reguła `.ed-single-hero .ed-article-meta-cats .ed-article-meta-link:not(:first-of-type){display:none}`
   pokazywała na mobile TYLKO pierwszą pigułę = rodzic „AKTUALNOŚCI" (kolejność [rodzic, podkategoria]),
   ukrywając właściwą podkategorię (np. „Rynek energii"). User chce widzieć podkategorię, w której jest artykuł.
   Fix: na ≤767px pokazuj OSTATNIĄ (najbardziej szczegółową) pigułę zamiast redundantnego rodzica
   (rodzic „Aktualności" jest i tak w breadcrumbie + nawigacji). Wyższa specyficzność + !important = wygrywa. */
@media (max-width: 767px){
  body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats,
  body.ed-v77.single .ed-single-hero .ed-article-meta-cats{ display:inline-flex !important; flex-wrap:wrap !important; }
  body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats .ed-article-meta-link,
  body.ed-v77.single .ed-single-hero .ed-article-meta-cats .ed-article-meta-link{ display:none !important; }
  body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats .ed-article-meta-link:last-of-type,
  body.ed-v77.single .ed-single-hero .ed-article-meta-cats .ed-article-meta-link:last-of-type{ display:inline-flex !important; }
  body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats .ed-article-meta-divider,
  body.ed-v77.single .ed-single-hero .ed-article-meta-cats .ed-article-meta-divider{ display:none !important; }
}

/* v77.17.207 (#7): meta artykułu w JEDNEJ linii na telefonie (kategoria • miesiąc • czas czytania).
   Osobny blok ≤767 (nie ruszamy reguły ≤900 flex-direction:column, żeby 768–900 zostało bez zmian). */
@media (max-width:767px){
  body.ed-v77.single-post .ed-article-meta-row,
  body.ed-v77.single .ed-article-meta-row{
    flex-direction:row !important;flex-wrap:nowrap !important;align-items:center !important;
    gap:8px !important;letter-spacing:.02em !important;
  }
  /* data + czas czytania: nie zawijają, nie kurczą się; mniejszy font by zrobić miejsce na pigułkę kategorii */
  body.ed-v77.single-post .ed-article-meta-info,
  body.ed-v77.single .ed-article-meta-info{flex:0 0 auto !important;white-space:nowrap !important;font-size:.68rem !important;}
  body.ed-v77.single-post .ed-article-meta-cats,
  body.ed-v77.single .ed-article-meta-cats{flex:0 1 auto !important;min-width:0 !important;overflow:hidden !important;}
  /* widoczna pigułka kategorii (:last-of-type) = JEDNA linia, zwarta, elipsa gdy za długa (koniec 3-4 rzędów) */
  body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats .ed-article-meta-link:last-of-type,
  body.ed-v77.single .ed-single-hero .ed-article-meta-cats .ed-article-meta-link:last-of-type{
    min-height:26px !important;padding:0 10px !important;font-size:.66rem !important;
    white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis;max-width:100% !important}
}


/* ====================================================================
 * v77.16.51 — Premium tabele artykułów na DESKTOP (≥901px)
 * Naprawia 2 realne defekty z desktopu + spójny, „premium" wygląd:
 *   FIX #1  Ucięte „Źródło: PSE…" — wiersz źródła (tfoot / komórka colspan)
 *           był łapany przez regułę pierwszej kolumny (white-space:nowrap;
 *           max-width:24ch z bloku v77.11.1) i nie zawijał się → wyciek poza
 *           zaokrąglony kontener. Tu: tfoot/caption/colspan = pełna szer. + zawijanie.
 *   FIX #2  Brzydkie dzielenie wyrazów („codzien-ne", „ela-styczność") —
 *           hyphens:auto na komórkach. Tu: hyphens:manual (PL bez auto-dzielenia).
 * Doczepione na końcu mobile-v77.css (ładowany PO style.min.css, zależność
 * 'energydock-style') → wygrywa kaskadę nad blokiem v77.11.1 przy równej
 * swoistości dzięki kolejności źródła. Dotyczy WYŁĄCZNIE desktopu (mobile bez zmian).
 * ==================================================================== */
@media (min-width: 901px) {

  /* Kontener: tabele wąskie (2-4 kol.) mieszczą się w kolumnie treści; szerokie (7+ kol.) NIE — dlatego
     v77.17.449: overflow-x:auto (poziomy scroll gdy trzeba) zamiast visible (tabela wyciekała poza kolumnę,
     nachodziła na sidebar / dawała miażdżenie kolumn do „5 0 k W"). Pion zostaje visible. */
  body.ed-v77 .ed-entry-content .ed-table-scroll {
    overflow-x: auto !important;
    overflow-y: visible !important;
    margin: 26px 0 34px !important;
  }

  /* Tabela: naturalne szerokości kolumn, pełna szerokość kolumny treści. */
  body.ed-v77 .ed-entry-content table,
  body.ed-v77 .ed-entry-content .ed-table-scroll table {
    table-layout: auto;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    font-size: .95rem !important;
    line-height: 1.5 !important}

  /* v77.17.449: tabele optymalizowane przez balancer (`.ed-table-optimized`) honorują SWOJĄ docelową
     szerokość (--ed-table-mobile-width = getMobileWidth, ~122px/kol.) także na desktopie — kolumny nie
     zapadają się przy węższej kolumnie treści; gdy się nie mieści, `.ed-table-scroll` przewija poziomo.
     Tabele niebalansowane (brak zmiennej) → fallback 0 = bez zmian. */
  body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-optimized,
  body.ed-v77 .ed-entry-content table.ed-table-optimized {
    min-width: var(--ed-table-mobile-width, 0) !important;
  }

  /* v77.17.449: mniejszy padding poziomy w tabelach optymalizowanych — wąskie kolumny (np. „Moc PCS",
     „Cena") mają realne miejsce na tekst zamiast tracić je na padding (18px×2 zjadało 62px kolumny →
     nagłówek łamał się „Mo/c/PCS"). 11px = słowa mieszczą się w linii, kolumny opisowe bez zmian wizualnie. */
  body.ed-v77 .ed-entry-content table.ed-table-optimized th,
  body.ed-v77 .ed-entry-content table.ed-table-optimized td,
  body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-optimized th,
  body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-optimized td {
    padding-left: 11px !important;
    padding-right: 11px !important;
  }

  /* Komórki: oddech + KONIEC brzydkiego dzielenia wyrazów. */
  body.ed-v77 .ed-entry-content table th,
  body.ed-v77 .ed-entry-content table td {
    padding: 14px 18px !important;
    vertical-align: top !important;
    white-space: normal !important;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: manual;
    -webkit-hyphens: manual}

  /* Nagłówek: editorial (mieszana wielkość liter) + akcent cyan pod spodem. */
  body.ed-v77 .ed-entry-content table thead th {
    font-weight: 800 !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.05) !important;
    border-bottom: 2px solid rgba(22,199,243,.32) !important;
    white-space: normal !important;
  }

  /* Delikatne zebrowanie + hover = lepsza skanowalność. Linie między wierszami. */
  body.ed-v77 .ed-entry-content table tbody td {
    border-bottom: 1px solid rgba(159,179,200,.10) !important;
  }
  body.ed-v77 .ed-entry-content table tbody tr:nth-child(even) td {
    background: rgba(255,255,255,.022) !important;
  }
  body.ed-v77 .ed-entry-content table tbody tr:hover td {
    background: rgba(22,199,243,.05) !important;
  }
  body.ed-v77 .ed-entry-content table tbody tr:last-child td {
    border-bottom: 0 !important;
  }

  /* Pierwsza kolumna = etykieta: kompaktowa, ale ZAWIJALNA.
     v77.16.291 — `white-space:nowrap` razem z `max-width:26ch` był wewnętrznie sprzeczny:
     etykieta dłuższa niż 26 znaków nie mogła się zawinąć, a pudełko było przycięte, więc tekst
     wychodził poza komórkę i malował się NA sąsiedniej kolumnie. Zmierzone na produkcji:
     „Stacja 2 kWh (Oukitel P2001E Plus, …)" potrzebowała 512 px, dostawała 261 px — ćwierć
     tysiąca pikseli tekstu lądowało na kolumnie obok. Na jednym artykule 6 takich komórek.
     Teraz: `width:auto` + widełki 18–26ch. Dolna granica jest po to, żeby kolumna nie zwęziła się
     do najdłuższego słowa (samo `normal` dawało 124 px i 11 wierszy w komórce). Efekt uboczny:
     tabele są NIŻSZE (996 → 836 px), bo wiersze nie potrzebują już nadmiarowej wysokości. */
  body.ed-v77 .ed-entry-content table tbody td:first-child,
  body.ed-v77 .ed-entry-content table thead th:first-child {
    width: auto !important;
    min-width: 18ch !important;
    max-width: 26ch !important;
    white-space: normal !important;
    overflow-wrap: break-word;
    hyphens: none;
    font-weight: 600 !important;
    color: #f3f9ff !important}

  /* WYJĄTEK (FIX #1): źródło/podpis — tfoot, caption, komórki colspan —
     pełna szerokość + zawijanie. Wyższa swoistość niż reguła pierwszej kolumny. */
  body.ed-v77 .ed-entry-content table caption,
  body.ed-v77 .ed-entry-content table tfoot td,
  body.ed-v77 .ed-entry-content table tfoot td:first-child,
  body.ed-v77 .ed-entry-content table td[colspan]:first-child,
  body.ed-v77 .ed-entry-content table th[colspan]:first-child {
    width: auto !important;
    max-width: none !important;
    white-space: normal !important;
    overflow-wrap: break-word;
    hyphens: manual;
    -webkit-hyphens: manual}

  /* tfoot = nota/źródło pod tabelą: przypis oddzielony linią. */
  body.ed-v77 .ed-entry-content table tfoot td {
    padding: 12px 18px 14px !important;
    font-size: .82rem !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
    color: rgba(159,179,200,.92) !important;
    background: rgba(255,255,255,.02) !important;
    border-top: 1px solid rgba(159,179,200,.16) !important;
    border-bottom: 0 !important;
    text-align: left}
}


/* ====================================================================
 * v77.16.51 — Mini-huby decyzyjne + ikony kategorii Bazy Wiedzy
 * Paczki „ikony strona-2" (mini-hub-boxy) i „strona-3" (6 ikon kategorii).
 *  • Karty decyzyjne (.ed-category-decision-card) → układ pionowy, ikona
 *    cyjan-linia + poświata, BEZ wypełnionego kafelka (jak referencja).
 *  • Pasek „Zawęź temat" (.ed-category-subnav-link) → pigułki cyjan-outline.
 *  • Ikony 6 kategorii (home .ed-home-hub-icon-img / KB .ed-blog-category-box-icon) — nowe SVG (podmiana src w PHP) + delikatna poświata.
 * Doczepione na końcu mobile-v77.css (po style.min.css) → wygrywa kaskadę.
 * ==================================================================== */

/* --- Karty mini-hubów (strony kategorii) --- */
body.ed-v77 .ed-category-decision-card{
  display:block;
  grid-template-columns:none;
  min-height:0;
  padding:22px 22px 24px;
  border-radius:18px;
  background:linear-gradient(170deg, rgba(255,255,255,.04), rgba(255,255,255,.008) 55%, rgba(0,0,0,.14));
  border:1px solid rgba(120,170,210,.12);
  box-shadow:0 14px 34px rgba(0,0,0,.14);
  transition:transform .22s cubic-bezier(.3,.8,.4,1), border-color .22s, box-shadow .22s;
}
body.ed-v77 .ed-category-decision-card:hover{
  transform:translateY(-3px) !important;
  border-color:rgba(22,199,243,.5) !important;
  box-shadow:0 22px 44px -26px rgba(0,0,0,.9), 0 0 0 1px rgba(22,199,243,.14) !important;
}
/* Ikona = cyjan-linia + poświata, ZERO wypełnionego kafelka. */
body.ed-v77 .ed-category-decision-icon.is-img{
  display:flex; align-items:center; justify-content:center;
  width:50px; height:50px; flex:none;
  margin:0 0 16px;
  border-radius:0;
  background:radial-gradient(34px 28px at 50% 42%, rgba(22,199,243,.16), transparent 72%);
  box-shadow:none;
}
body.ed-v77 .ed-category-decision-icon.is-img::after{ display:none; }
body.ed-v77 .ed-category-decision-icon.is-img img{
  width:42px; height:42px; display:block;
  filter:drop-shadow(0 4px 10px rgba(22,150,220,.28)); transition:filter .22s;
}
body.ed-v77 .ed-category-decision-card:hover .ed-category-decision-icon.is-img img{
  filter:drop-shadow(0 0 12px rgba(22,199,243,.55)) !important;
}
body.ed-v77 .ed-category-decision-card h3{
  font-size:1.18rem; font-weight:800; line-height:1.18; margin:0 0 10px; color:#fff;
}
body.ed-v77 .ed-category-decision-card p{
  font-size:.92rem; line-height:1.5; color:#93A6BC; margin:0;
}
body.ed-v77 .ed-category-decision-grid{ gap:16px; }

/* --- Pasek „Zawęź temat" → pigułki cyjan-outline (zachowuje obecne linki) --- */
body.ed-v77 .ed-category-topic-strip .ed-category-subnav-link{
  min-height:0;
  padding:11px 18px;
  border-radius:999px;
  font-size:12.5px; font-weight:700; letter-spacing:.06em !important; text-transform:uppercase;
  color:#A7D8EC !important;
  background:rgba(22,199,243,.05) !important;
  border:1px solid rgba(22,199,243,.3) !important;
  box-shadow:none;
  transition:.18s !important;
  line-height:1 !important}
body.ed-v77 .ed-category-topic-strip .ed-category-subnav-link:hover,
body.ed-v77 .ed-category-topic-strip .ed-category-subnav-link:focus-visible{
  background:rgba(22,199,243,.14) !important;
  border-color:rgba(22,199,243,.6) !important;
  color:#EAFAFF !important;
}

/* --- Nowe ikony 6 kategorii (home + Baza Wiedzy): rozmiar dobrany do stylu liniowego + poświata.
       Stare PNG-i renderowały się drobne (home 34px) — linia w tej skali byłaby zbyt cienka. --- */
/* Home: ikony 6 kategorii DUŻE jak przed zmianą (stare PNG były ~108px; nowy line-SVG też duży).
   Wysoka swoistość, by pobić plątaninę legacy .ed-home-hub-icon-img w style.min.css. */
body.ed-v77 .ed-home-hubs .ed-home-hub-card .ed-home-hub-icon.ed-home-hub-icon-img,
body.ed-v77 .ed-home-hubs .ed-home-hub-card img.ed-home-hub-icon-img{
  width:156px !important; height:auto !important; max-width:156px !important; max-height:124px !important;
  object-fit:contain; opacity:1 !important; margin:0 auto !important;
  filter:drop-shadow(0 6px 16px rgba(22,150,220,.26)) drop-shadow(0 0 10px rgba(22,199,243,.16)) !important}
@media(max-width:700px){
  body.ed-v77 .ed-home-hubs .ed-home-hub-card .ed-home-hub-icon.ed-home-hub-icon-img,
  body.ed-v77 .ed-home-hubs .ed-home-hub-card img.ed-home-hub-icon-img{
    width:117px !important; height:auto !important; max-width:117px !important; max-height:92px !important;
  }
}
/* Baza Wiedzy: ikony w boxach kategorii. Nowe ikony (strona-8) są poziome (landscape) —
   object-fit:contain, rozmiar po wysokości, by się nie zniekształcały. */
body.ed-v77 .ed-blog-category-box-icon img{
  width:auto; height:52px; max-width:96px; max-height:52px;
  object-fit:contain;
  filter:drop-shadow(0 4px 12px rgba(22,150,220,.20));
}

/* v77.16.51 (user): obraz w sekcji Dotacje wyrównany DO DOLNEJ KRAWĘDZI sekcji
   (dolna krawędź obrazu = dół boxa „4. Wdrożenie i rozliczenie"). Tylko desktop 2-kol. */
@media (min-width:901px){
  body.ed-v77 .ed-section-dotacje .ed-dotacje-grid{ align-items:stretch; }
  body.ed-v77 .ed-section-dotacje .ed-dotacje-copy{ display:flex; flex-direction:column; height:100%; }
  body.ed-v77 .ed-section-dotacje .ed-dotacje-visual{ flex:1 1 auto; display:flex; min-height:0; margin-top:22px; }
  body.ed-v77 .ed-section-dotacje .ed-dotacje-image{ height:auto; min-height:260px; flex:1 1 auto; width:100%; max-width:none; align-self:stretch; }
}

/* ===== v77.16.62: poprawki responsywne dla szerokich viewportów (oddalony widok / zoom-out) ===== */
@media (min-width:1100px){
  /* (1) „O marce" — obraz na PEŁNĄ wysokość kolumny tekstu (skaluje się z tekstem: align-items:stretch + object-fit:cover; v77.16.66 — user: „na wysokość tekstu") */
  .ed-section-about .ed-about-grid{ align-items:stretch; }
  .ed-section-about .ed-about-image{ height:auto; min-height:0; align-self:stretch; max-width:760px; display:flex; }
  .ed-section-about .ed-about-image img{ height:100%; width:100%; min-height:0; aspect-ratio:auto; object-fit:cover; }
  /* (2) nagłówki sekcji narzędziowych (Szybka diagnoza, Checklista PRO) — H2 przestaje zawijać się tak wąsko (było max-width:14ch — wąziej niż H1 wyżej) */
  .ed-section-tools .ed-home-section-head-compact h2{ max-width:22ch !important; }
  /* (3) „Polecany przewodnik" — tytuł używa pełnej szerokości kolumny (było ~476px → 6 linii) */
  .ed-blog-featured-card h2{ max-width:none !important; }
  /* (4) kafle bazy wiedzy „Znajdź temat" — karty wysokości treści, bez nadmiernej pustej przestrzeni (było: stretch do najwyższej karty → duże luki przy szerokim widoku) */
  .ed-home-hubs-grid{ align-items:start !important; }
  .ed-home-hub-card{ min-height:0 !important; }
}

/* v77.16.181 (LCP mobile): hero-obraz TYLKO na desktopie. Na telefonach ukrywamy warstwę hero-obrazu
   (nie pobieramy jej też — patrz przezroczysty <source> ≤767px + usunięty mobile preload w header.php).
   Sekcja hero z nagłówkiem/CTA zostaje; obraz znika, bo na mobile nie ma na niego miejsca. */
@media (max-width: 767px){
  .ed-hero-premium-bg,
  .ed-hero-premium-img{ display:none !important; }
}

/* v77.16.184: menu mobilne — Aktualnosci/Testy (direct-link) wygladaja jak akordeony (spojny font) */


/* v77.16.184: mobilne menu — spojny premium rytm (Aktualnosci/Testy direct-linki = akordeony) */
.ed-mobile-nav .ed-mobile-accordion{border-bottom:1px solid rgba(255,255,255,.08)!important;border-radius:0!important}
.ed-mobile-nav .ed-mobile-accordion:last-child{border-bottom:0!important}
.ed-mobile-nav .ed-mobile-accordion-trigger,.ed-mobile-nav .ed-mobile-direct-link{display:flex!important;align-items:center!important;justify-content:space-between;width:100%!important;min-height:60px!important;padding:17px 6px!important;gap:12px!important;background:none!important;border:0!important;text-decoration:none!important}
.ed-mobile-nav .ed-mobile-accordion-trigger>span,.ed-mobile-nav .ed-mobile-direct-link>span{font-family:'Sora','Inter',sans-serif;font-weight:700!important;font-size:16.5px!important;color:#fff!important;letter-spacing:-.01em!important}
.ed-mobile-nav .ed-mobile-accordion-chevron{width:20px!important;height:20px!important;color:rgba(234,241,248,.5)!important;flex:0 0 auto!important}
.ed-mobile-nav .ed-mobile-direct-link.is-active>span,.ed-mobile-nav .ed-mobile-direct-link.is-active{border:0!important;box-shadow:none!important}
.ed-mobile-nav .ed-mobile-direct-link.is-active>span{color:#16C7F3!important}

/* v77.16.184: ikony sekcji menu mobilnego + layout ikona+tytul / chevron */
.ed-mobile-nav .ed-mnav-lbl{display:flex!important;align-items:center!important;gap:14px!important;min-width:0}
.ed-mobile-nav .ed-mnav-ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(180deg,rgba(22,199,243,.16),rgba(22,199,243,.04));border:1px solid rgba(22,199,243,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.ed-mobile-nav .ed-mnav-ic svg{width:20px;height:20px;stroke:#16C7F3;fill:none}
.ed-mobile-nav .ed-mnav-t{font-family:'Sora','Inter',sans-serif;font-weight:700!important;font-size:16.5px!important;color:#fff!important;letter-spacing:-.01em!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-mobile-nav .ed-mobile-direct-link.is-active .ed-mnav-t{color:#16C7F3!important}
.ed-mobile-nav .ed-mobile-direct-link.is-active .ed-mnav-ic{border-color:rgba(22,199,243,.5);background:linear-gradient(180deg,rgba(22,199,243,.28),rgba(22,199,243,.08))}

/* =====================================================================
   v77.16.185 — MOBILE HOME: kompaktowy, premium układ (≤767px, body.home)
   Cel: mniej „ściany" tekstu — nagłówki H2 39px→26px, 2×2 zamiast 1-kol
   (jak kafle Bazy Wiedzy), RCE „lite" (wykres ukryty), zwarty padding.
   Desktop i podstrony NIETKNIĘTE. Zdjęcia produktów/lifestyle bez zmian.
   mobile-v77.css ładuje się PO style.min.css → body.home + !important wygrywa.
   ===================================================================== */
@media (max-width:767px){

  /* 1) Rytm globalny — nagłówki sekcji mniejsze, padding zwarty */
  body.home .ed-section{padding-top:40px!important;padding-bottom:40px!important}
  body.home .ed-section-head{margin-bottom:20px!important}
  body.home .ed-section-head h2{font-size:26px!important;line-height:1.15!important;letter-spacing:-.022em!important}
  body.home .ed-section-head p{font-size:15px!important;line-height:1.5!important}

  /* 2) Szybka diagnoza — Krok 1: opcje Outdoor/Mieszkanie/Dom/Firma → 2×2 kafle */
  body.home #kalkulatory .ed-tool-intro{font-size:14px!important;line-height:1.5!important}
  body.home .ed-object-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  body.home .ed-object-chip{display:flex!important;flex-direction:column!important;align-items:flex-start!important;text-align:left;justify-content:flex-start;gap:7px!important;padding:14px!important;min-height:0!important}
  body.home .ed-object-chip .ed-preset-icon{width:34px!important;height:34px!important;margin:0!important}
  body.home .ed-object-chip strong{font-size:15px!important;line-height:1.1!important}
  body.home .ed-object-chip small{font-size:11px!important;line-height:1.35!important}

  /* 2b) Diagnoza — kroki 2/3: opcje (pills) też → 2×2.
        UWAGA: grid-template-columns na tych grupach jest ZABLOKOWANY regułą wysokiej swoistości
        (nie do nadpisania nawet #id!important — prawdop. shorthand `grid:` w style.min).
        Dlatego 2×2 robimy przez flex-wrap + dzieci 50% (to działa niezależnie od locka gridu). */
  body.home #diagnosticBoxOneOptions,
  body.home #diagnosticBoxTwoOptions{display:flex;flex-wrap:wrap;gap:10px}
  body.home #diagnosticBoxOneOptions>button,
  body.home #diagnosticBoxTwoOptions>button{flex:0 0 calc(50% - 5px)!important;max-width:calc(50% - 5px)!important;min-width:0!important}
  body.home .ed-smart-option-pill{display:flex!important;flex-direction:column!important;align-items:flex-start!important;text-align:left;gap:5px!important;padding:12px 13px!important;min-height:0!important}
  body.home .ed-smart-option-pill strong{font-size:14px!important;line-height:1.15!important}
  body.home .ed-smart-option-pill small{font-size:11px!important;line-height:1.3!important}

  /* 3) Cena energii (RCE) LITE — 4 KPI → 2×2 kafle, wykres ukryty (numery+spread+CTA wystarczą) */
  body.home #cena-energii .kpis{grid-template-columns:1fr 1fr;gap:10px}
  body.home #cena-energii .kpi{border-bottom:0;padding:14px;border-radius:14px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}

  /* 4) „Dlaczego EnergyDock" (benefity) → 2×2 */
  body.home .ed-benefits-grid{grid-template-columns:1fr 1fr;gap:12px}
  body.home .ed-benefit{padding:18px 15px}
  body.home .ed-benefit .ed-icon-wrap{width:42px;height:42px;margin-bottom:10px}
  body.home .ed-benefit h3{font-size:15.5px;line-height:1.2}
  body.home .ed-benefit p{font-size:12.5px;line-height:1.45}

  /* 5) „Backup bez zgadywania" (korzyści marquee) → 2×2, karta pionowa (ikona na górze) */
  body.home .ed-marquee-grid-premium{grid-template-columns:1fr 1fr;gap:12px}
  body.home .ed-marquee-card{display:flex;flex-direction:column;align-items:flex-start;padding:16px 15px;gap:11px}
  body.home .ed-marquee-card .ed-icon-wrap{margin:0}
  body.home .ed-marquee-card .ed-marquee-copy{width:100%}
  body.home .ed-marquee-card .ed-marquee-copy h3{font-size:15.5px;line-height:1.2}
  body.home .ed-marquee-card .ed-marquee-copy p{font-size:12.5px;line-height:1.45}

  /* 6) Lekka kompaktacja kroków procesu + dotacji (mniej pustej wysokości) */
  body.home .ed-process-card{padding:18px 16px}
  body.home .ed-process-card .ed-icon-wrap{width:44px;height:44px}
  

  /* ——— PASS 2 (decyzja usera): odchudzenie struktury na mobile ——— */

  /* 7) Ukryj „Od wiedzy do właściwego wariantu" (proces 3-krok) — pokrywa się z krokami Dotacji
        + sama diagnoza prowadzi przez ten przepływ. Tylko mobile; treść zostaje w DOM (SEO OK). */
  body.home #jak-to-dziala{display:none}

  /* 8) „O marce” — na mobile tylko główny (1.) akapit; drugi („Dlatego stawiamy…”) ukryty.
        Statystyki (Rynek/1000+/1 dzień) i zdjęcie PV zostają. */
  body.home #o-nas .ed-about-text>p:nth-of-type(2){display:none}

  /* 8b) H2 poza .ed-section-head (newsletter/o-nas/kontakt miały 32px) → spójne 26px */
  body.home #newsletter .ed-newsletter-copy h2,
  body.home #o-nas .ed-about-text h2,
  body.home #kontakt .ed-cta-card h2{font-size:26px!important;line-height:1.15!important;letter-spacing:-.022em!important}

  /* 9) GO/HOME/PRO — zdjęcia zostają (premium lifestyle), kompaktujemy copy/bullety/padding */
  body.home .ed-product-card-copy{padding:14px 15px 15px}
  body.home .ed-product-card-copy>p{font-size:13.5px;line-height:1.45;margin:6px 0 10px}
  body.home .ed-product-card-copy ul{margin:0 0 12px}
  body.home .ed-product-card-copy ul li{font-size:13px;line-height:1.35;margin-bottom:5px}
  body.home .ed-product-card-grid{gap:16px}
}

/* =====================================================================
   v77.16.186 — MOBILE HOME pass 3 (runda 3): szew tła, dotacje 2×2, newsletter
   ===================================================================== */
@media (max-width:767px){

  /* A) Szew hero→sekcje: koniec „mocnego odcięcia". Tło hero jako gradient
        z #030c16 (góra) do #08121d (dół = kolor body) → płynne przejście w diagnozę. */
  

  /* B) Dotacje: 4 kroki → 2×2, karta pionowa (ikona góra, tytuł, opis) */
  body.home .ed-dotacje-steps{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  body.home .ed-dotacje-step{display:flex;flex-direction:column;align-items:flex-start;padding:16px 15px;gap:10px}
  body.home .ed-dotacje-step .ed-icon-wrap{margin:0}
  body.home .ed-dotacje-step strong{font-size:14.5px;line-height:1.2}
  body.home .ed-dotacje-step span{font-size:12.5px;line-height:1.4}

  /* C) Newsletter: mocniej skondensowany (mniej paddingu, mniejszy lead/pola) */
  body.home #newsletter{padding-top:34px!important;padding-bottom:34px!important}
  
  body.home #newsletter .ed-newsletter-copy{margin-bottom:2px!important}
  body.home #newsletter .ed-newsletter-lead{font-size:13.5px!important;line-height:1.45!important;margin:6px 0 0!important}
  body.home #newsletter .ed-newsletter-form{gap:12px!important}
  body.home #newsletter .ed-newsletter-field span{font-size:12.5px!important}
  body.home #newsletter .ed-newsletter-consent span{font-size:11.5px!important;line-height:1.4!important}
}

/* v77.16.186: anchor doboru z diagnozy — ląduje na kroku 1 kalkulatora (nie w pustce nad nim).
   Scroll-margin by sticky-header nie zasłaniał; działa na desktop+mobile (kalkulatory GO/HOME). */
#dobor-go,#dobor-home,#goV2ResultPanel{scroll-margin-top:90px}

/* =====================================================================
   v77.16.187 — KALKULATOR GO (mobile ≤767px): siatki 2×2 zamiast 1-kolumny.
   Klasy .ed-go-v2-* występują WYŁĄCZNIE na /energydock-go/ → bezpieczne bez scope.
   ===================================================================== */
@media (max-width:767px){

  /* 1) Scenariusze użycia → 2×2 (było 9 kart w słupku) */
  .ed-go-v2-scenario-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .ed-go-v2-choice-card{padding:12px!important;gap:9px!important}
  .ed-go-v2-choice-card .ed-go-v2-icon{width:30px!important;height:30px!important;flex:0 0 auto!important}
  .ed-go-v2-choice-card strong{font-size:13px!important;line-height:1.15!important}
  .ed-go-v2-choice-card small{font-size:11px!important;line-height:1.3!important}

  /* 2) Urządzenia (sugerowane + inne) → 2×2 (było 8+12 kart w słupku, po 99px) */
  .ed-go-v2-device-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .ed-go-v2-device{padding:12px!important;min-height:0!important;height:auto!important;gap:6px!important}
  .ed-go-v2-device .ed-go-v2-icon{width:30px!important;height:30px!important}
  .ed-go-v2-device strong{font-size:13.5px!important;line-height:1.2!important;white-space:normal!important}
  .ed-go-v2-device span{font-size:12px!important}
  .ed-go-v2-device small{font-size:11px!important}

  /* 3) Zwarty rytm sekcji kalkulatora GO (#runtime) — H2 32→26, padding 58→40 */
  #runtime{padding-top:40px!important;padding-bottom:40px!important}
  #runtime .ed-section-head h2{font-size:26px!important;line-height:1.15!important;letter-spacing:-.02em!important}

  /* v77.17.207 (#12): wyłącz tooltip parametrów (hover na zdjęciu stacji) na mobile — na dotyku :hover/:focus-within
     „przykleja" szklany overlay i szarpie scroll. Desktop (≥768) zachowuje podgląd. */
  .ed-go-v2-spec-pop{display:none!important}

  /* v77.17.207 (#13): pole edycji mocy urządzenia = 16px na mobile, żeby iOS nie robił auto-zoomu i nie „przyklejał"
     powiększenia po blur (baza .8rem!important jest w pages-inline — trzeba wyższą specyficzność: body.ed-v77). */
  body.ed-v77 .ed-go-v2-watts-input{font-size:16px!important}
  body.ed-v77 .ed-go-v2-custom input{font-size:16px!important}
}

/* =====================================================================
   v77.16.188 — partia: HOME urządzenia 2×2 (jak GO) + hero glow + wzmocnienie szwu
   ===================================================================== */
@media (max-width:767px){

  /* A) HOME: siatka urządzeń backupu → 2 kolumny (jak GO) */
  .ed-home-device-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .ed-home-device-card{padding:11px 12px!important;gap:6px!important;min-height:0!important}
  .ed-home-device-card .ed-home-device-ico{width:28px!important;height:28px!important}
  .ed-home-device-card b{font-size:13px!important;line-height:1.2!important}
  .ed-home-device-card .ed-home-device-watts,
  .ed-home-device-card .ed-home-device-mode{font-size:11px!important}
  .ed-home-device-more-bar{grid-column:1 / -1!important}

  /* B) Hero — mocniejszy glow / premium (gauge + dashboard) */
  html body .ed-page-home-test .edm-glow{filter:blur(11px)!important}
  html body .ed-page-home-test .edm-visual{background:radial-gradient(60% 56% at 50% 50%,color-mix(in oklab,var(--emwc),transparent 72%),transparent 72%)!important}
  html body .ed-page-home-test .edm-disc{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 48px color-mix(in oklab,var(--emwc),transparent 68%),0 0 82px -4px color-mix(in oklab,var(--emwc),transparent 30%),0 0 160px -14px color-mix(in oklab,var(--emwc),transparent 34%)!important}
  html body .ed-page-home-test .edm-widget{box-shadow:0 26px 55px -26px rgba(0,0,0,.85),0 0 72px -22px color-mix(in oklab,var(--emwc),transparent 16%),inset 0 1px 0 rgba(255,255,255,.11)!important}

  /* C) Szew hero→diagnoza — hero trzyma #08121d na dole (bez przejścia przy granicy) + zero krawędzi diagnozy */
  html body.ed-v77.home .ed-page-home-test .ed-hero.ed-hero-premium-home{background:linear-gradient(180deg,#030c16 0%,#030c16 40%,#08121d 84%,#08121d 100%)!important}
  body.home .ed-page-home-test #kalkulatory{border-top:0!important;box-shadow:none!important}
}

/* =====================================================================
   v77.16.189 — KALKULATOR GO: sticky pasek rekomendacji (mobile). Klasa .ed-go-sticky-reco
   wyłącznie na /energydock-go/. Pokazuje wybraną stację + pojemność + cenę + „Kup" (→checkout).
   ===================================================================== */
.ed-go-sticky-reco{position:fixed;left:0;right:0;bottom:0;z-index:120;display:flex;align-items:center;gap:12px;padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(8,18,29,.9),rgba(6,14,24,.97));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(22,199,243,.24);box-shadow:0 -18px 44px -20px rgba(0,0,0,.72)}
.ed-go-sticky-reco[hidden]{display:none!important}
/* v77.17.394 (feedback): miniaturka rekomendowanej stacji (bez ramki, sama grafika) — jak w sticky produktu */
.ed-go-sticky-reco-thumb{flex:0 0 auto;width:50px;height:50px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ed-go-sticky-reco-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.ed-go-sticky-reco-thumb[hidden]{display:none!important}
.ed-go-sticky-reco-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
.ed-go-sticky-reco-name{font-family:'Sora','Inter',sans-serif;font-weight:700;font-size:14px;color:#EAF1F8;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-go-sticky-reco-meta{font-size:11.5px;color:rgba(234,241,248,.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-go-sticky-reco-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:12px 17px;border-radius:999px;background:linear-gradient(135deg,#ff874f,#ff6b2c);color:#fff;font-weight:700;font-size:13.5px;text-decoration:none;box-shadow:0 8px 22px -8px rgba(255,107,44,.6);white-space:nowrap;-webkit-tap-highlight-color:transparent}
@media(min-width:768px){.ed-go-sticky-reco{display:none!important}}
.ed-bottom-nav.ed-hidden-by-sticky{transform:translateY(130%)!important;opacity:0!important;pointer-events:none!important;transition:transform .28s ease,opacity .28s ease}

/* =====================================================================
   v77.16.190 — batch: newsletter minimal + kalkulator oszczędności (szerszy + sticky wynik)
   + Testy/Aktualności kategorie 2×2 + hero „money" animacja
   ===================================================================== */
@media (max-width:767px){
  /* 1) Newsletter — do minimum: bez leada „1-2 e-maile", zwarta karta */
  
  

  /* 2) Kalkulator oszczędności — szerszy (mniej marginesu, pełna szerokość ekranu) */
  .ed-savings-calc-section>.ed-container,.ed-savings-calc-section .ed-container{max-width:100%!important;padding-left:8px!important;padding-right:8px!important}
  /* v77.17.208 (A5): usuń NAJBARDZIEJ ZEWNĘTRZNĄ ramkę karty (box-in-box) → wewnętrzne karty = jedyna ramka, pełna szerokość */
  .ed-page-savings-calc .ed-savings-calc.ed-tool-card{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important;padding:0!important}
  .ed-page-savings-calc .ed-savings-calc.ed-tool-card::before,
  .ed-page-savings-calc .ed-savings-calc.ed-tool-card::after{display:none!important}

  /* 3) Testy/Aktualności — kategorie 2 kolumny + skondensowane (karta pionowa) */
  .ed-blog-category-boxes{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  .ed-blog-category-box{flex-direction:column!important;align-items:flex-start!important;padding:12px!important;gap:8px!important;min-height:0}
  .ed-blog-category-box .ed-blog-category-box-icon img{width:34px;height:34px}
  .ed-blog-category-box .ed-blog-category-box-copy strong{font-size:13.5px;line-height:1.2}
  .ed-blog-category-box .ed-blog-category-box-copy small{font-size:11px;line-height:1.35}
  .ed-category-subnav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}

  #odbiorca{scroll-margin-top:90px}
}

/* Savings — sticky pasek wyniku (mobile). Klasa .ed-sc-sticky tylko na /kalkulator-oszczednosci/ */
.ed-sc-sticky{position:fixed;left:0;right:0;bottom:0;z-index:120;display:flex;align-items:center;gap:10px;padding:9px 12px;padding-bottom:calc(9px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(8,18,29,.93),rgba(6,14,24,.98));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(22,199,243,.24);box-shadow:0 -18px 44px -20px rgba(0,0,0,.72)}
.ed-sc-sticky[hidden]{display:none}
.ed-sc-sticky-total{flex:0 0 auto;display:flex;flex-direction:column;line-height:1.03}
.ed-sc-sticky-total b{font-family:'Sora','Inter',sans-serif;font-weight:800;font-size:21px;color:#16C7F3;white-space:nowrap;letter-spacing:-.01em}/* v77.17.402: większe kwoty w mobilnym sticky (życzenie usera) */
.ed-sc-sticky-total small{font-size:10px;color:rgba(234,241,248,.6);letter-spacing:.02em}
@media(max-width:360px){.ed-sc-sticky-total b{font-size:18px}}/* wąskie ekrany — nieco mniej, żeby zmieścić pasek+CTA */
/* v77.17.208 (A4): drugi blok = zysk w N lat (zielony), pcha CTA na prawą krawędź */
.ed-sc-sticky-profit{margin-right:auto}
.ed-sc-sticky-profit b{color:#57c7a3}
.ed-sc-sticky-bar{flex:1 1 auto;min-width:0;height:8px;border-radius:999px;overflow:hidden;display:flex;background:rgba(255,255,255,.06)}
.ed-sc-sticky-bar>span{height:100%;display:block}
.ed-sc-sticky-cta{flex:0 0 auto;padding:9px 15px;border-radius:999px;background:linear-gradient(135deg,#ff874f,#ff6b2c);color:#fff;font-weight:700;font-size:12.5px;text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent}
@media(min-width:768px){.ed-sc-sticky{display:none}}

/* Hero — „money" animacja na kole (unoszące się zł, akcent że chodzi o oszczędności) */
@media (max-width:767px){
  .edm-money{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:visible}
  /* v77.16.198: monety startują NA wysokości kwoty i unoszą się NAD nią (były niżej, wjeżdżały na tekst koła) */
  .edm-zl{position:absolute;left:50%;bottom:52%;font:800 13px/1 'Sora','Inter',sans-serif;color:var(--emwc,#16C7F3);opacity:0;text-shadow:0 0 10px color-mix(in oklab,var(--emwc,#16C7F3),transparent 40%);animation:edmZl 3.4s ease-in-out infinite}
  .edm-zl:nth-child(2){left:38%;color:var(--emo,#ff874f);animation-delay:1.1s;font-size:12px}
  .edm-zl:nth-child(3){left:62%;animation-delay:2.2s;font-size:11px}
  @keyframes edmZl{0%{opacity:0;transform:translate(-50%,6px) scale(.7)}18%{opacity:.95}55%{opacity:.7}100%{opacity:0;transform:translate(-50%,-64px) scale(1.05)}}
}

/* ============================================================================
   v77.16.193 — AUDYT MOBILNY (etap 1): strona główna — ukrycia + kondensacje
   Tylko mobile ≤767px, body.home. Desktop nietknięty.
   ============================================================================ */
@media (max-width:767px){
  /* UKRYJ: sekcje dublujące osobne strony / nadmiarowe (zostają na desktopie) */
  body.home #aktualnosci-home,
  body.home #artykuly,
  body.home #kalkulacja,
  body.home #o-nas{display:none}

  /* SKRÓĆ: Baza wiedzy „Zacznij" — zostaw featured, ukryj dodatkowe artykuły */
  
  body.home #start-here{padding-top:24px!important;padding-bottom:24px!important}

  /* „Przegląd bazy wiedzy" (#baza-wiedzy-tematy) — ZOSTAJE na życzenie */

  /* SKRÓĆ: Dotacje — teaser (ukryj 4-krokowy proces, zostaw nagłówek+CTA+obraz) */
  body.home #dotacje .ed-dotacje-steps{display:none}
  body.home #dotacje{padding-top:24px!important;padding-bottom:24px!important}

  /* SKRÓĆ: Produkty — kompaktowe karty */
  body.home #produkty{padding-top:24px!important;padding-bottom:24px!important}
  
  body.home #produkty .ed-product-card-copy{padding:14px 16px!important}

  /* SKRÓĆ: Dlaczego/benefity + stopka */
  body.home #segmenty{padding-top:24px!important;padding-bottom:24px!important}
  body.home .ed-footer{padding-top:28px!important;padding-bottom:18px!important}
}

/* ---- v77.16.193 etap 2: blog / kategoria / aktualności (wspólny szablon) ---- */
@media (max-width:767px){
  /* Hero bloga — kompaktowy tytuł */
  .ed-blog-hero h1{font-size:1.72rem!important;line-height:1.16!important}
  .ed-blog-hero{padding-bottom:20px!important}
  /* Listing artykułów — kompaktowe karty: niższy thumb, bez excerptu, ciaśniej */
  .ed-articles-grid{gap:14px}
  .ed-articles-grid .ed-article-thumb-wrap{aspect-ratio:16/9}
  .ed-articles-grid .ed-article-card .ed-article-copy>p{display:none}
  .ed-articles-grid .ed-article-card .ed-article-copy{padding:12px 14px;gap:6px}
  /* Wyróżniony wpis też kompaktowo */
  .ed-blog-featured .ed-article-card .ed-article-copy>p{display:none!important}
}

/* ---- v77.16.193 etap 3: strona produktu /stacja/ ---- */
@media (max-width:767px){
  /* UKRYJ cross-sell „Inne stacje / Porównaj z podobnymi" (zostaje na desktopie) */
  .eds-sec:has(.eds-rel-grid){display:none!important}
  /* SKRÓĆ: Specyfikacja + W zestawie — ciaśniej */
  .eds-sec:has(.eds-spec-grid){padding-top:30px!important;padding-bottom:30px!important}
  .eds-sec:has(.eds-box-grid){padding-top:30px!important;padding-bottom:30px!important}
  .eds-spec-grid{gap:8px!important}
  .eds-box-grid{gap:12px!important}
}

/* ---- v77.16.193 etap 4: kalkulatory GO/HOME/PRO (wspólne segmenty) ---- */
@media (max-width:767px){
  /* SKRÓĆ intro nad kalkulatorem (foundation) */
  .ed-segment-foundation{padding-top:14px!important;padding-bottom:18px!important} /* v77.17.224 #B4: pt 22→14 — zwężamy odstęp hero→foundation */
  /* UKRYJ metodologię „Jak wygląda dobór / Najpierw scenariusz" (jest osobna /metodologia/) */
  .ed-segment-process{display:none!important}
}

/* ---- v77.16.193 etap 5: strona główna — głębsza kondensacja produktów ---- */
@media (max-width:767px){
  /* Karty GO/HOME/PRO — kompaktowo: ukryj bullety (zostaje nazwa+tagline+CTA), przytnij obraz */
  body.home #produkty .ed-product-card-copy ul{display:none!important}
  body.home #produkty .ed-product-card-media{aspect-ratio:16/10!important;overflow:hidden!important}
  body.home #produkty .ed-product-card-media img{width:100%!important;height:100%!important;object-fit:cover;object-position:center!important}
}

/* ---- v77.16.194 etap 6: strona produktu — 2×2 sekcji + sticky + usunięcia ---- */
@media (max-width:767px){
  /* Boxy sekcji Dlaczego / Zastosowania / W zestawie → 2×2 */
  .eds-feat-grid,.eds-use-grid,.eds-box-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  /* „Co realnie zasili" → 2 kolumny MIESZCZĄCE się w viewport (v77.17.207 #5: druga kolumna była ucięta —
     brak min-width:0 na komórce/nazwie powodował grid-blowout; minmax(0,1fr) + min-width:0 + mniejsze ikony/font) */
  .eds-zasili{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important}
  .eds-zr{min-width:0!important;padding:10px 11px!important;gap:9px!important}
  .eds-zr-ic{width:30px!important;height:30px!important;border-radius:9px!important}
  .eds-zr-ic svg{width:22px!important;height:22px!important}
  .eds-zr-n{min-width:0!important;font-size:12px!important;overflow-wrap:anywhere}
  .eds-zr-p{font-size:10.5px!important}
  .eds-zr-t{font-size:12.5px!important}
  .eds-zr.is-over .eds-zr-t{font-size:11px!important}
  /* Sticky buybar — na mobile tylko główne CTA „Zamów" (ukryj „Kalkulator", cena nie najeżdża) */
  .eds-buybar .eds-cta2{display:none!important}
  /* Usuń sekcję „Czy to stacja dla Ciebie / Nie wiesz" na mobile */
  .eds-sec:has(.eds-fit){display:none!important}
}

/* ============================================================================
   v77.17.376 — POPRAWKI MOBILE (paczka 2): strony produktowe 2×2, kompresja odstępów,
   ukrycia (feedback usera). Wyłącznie ≤767px o ile nie zaznaczono inaczej.
   ============================================================================ */

/* P1: panel parametrów (trustband) na stronie produktu → 2×2 zamiast 4 wierszy (magazyn + firma) */
@media (max-width:767px){
  .eds-shell .eds-trustband-mag{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:10px 12px!important;flex-grow:0!important;justify-content:stretch!important}
  .eds-shell .eds-trustband-mag .eds-tb-item{border-top:0!important;min-height:0!important;padding:9px 10px!important;background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:10px!important;align-items:center!important}
  /* v77.17.382 (P2-03): długie wartości (np. „80% po 10 latach", stopień ochrony) muszą się MIEŚCIĆ w boxie 2×2 —
     pozwól kolumnie tekstu się kurczyć i zawijać, zmniejsz font wartości. */
  .eds-shell .eds-trustband-mag .eds-tb-tx{min-width:0!important;flex:1 1 auto!important;overflow:hidden!important}
  .eds-shell .eds-trustband-mag .eds-tb-t{font-size:13.5px!important;line-height:1.2!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  .eds-shell .eds-trustband-mag .eds-tb-d{font-size:10.5px!important;line-height:1.25!important;white-space:normal!important}
  .eds-shell .eds-trustband-mag .eds-tb-ic{flex:0 0 auto!important}
}
/* P2: sekcja „Dopasowanie" (edm-compat) → 2×2; nota końcowa (edm-cnote) pełna szerokość */
@media (max-width:767px){
  .eds-shell .edm-compat{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .eds-shell .edm-cnote{grid-column:1/-1!important}
}
/* P3: „Co dostajesz w komplecie" (BOM) — kompaktowo, mnożnik ×N po PRAWEJ w linii nazwy (nie nowa linijka) */
@media (max-width:767px){
  .eds-shell .edm-bom{gap:6px!important}
  .eds-shell .edm-bom-row{grid-template-columns:26px 1fr auto!important;padding:9px 12px!important;column-gap:10px!important;row-gap:2px!important;align-items:center!important}
  .eds-shell .edm-bom-n{font-size:13px!important}
  .eds-shell .edm-bom-r{grid-column:2/-1!important;font-size:11px!important}
  .eds-shell .edm-bom-q{grid-column:3!important;grid-row:1!important;text-align:right!important;align-self:center!important}
}
/* P4: ukrycie widżetu „Obserwuj cenę" (alert cenowy) — na życzenie usera (desktop+mobile). Wykres historii (.ed-pwh) zostaje. */
.eds-shell .ed-pw, #obserwuj-cene{display:none!important}

/* v77.17.377 (N3): „Dobierz system" kieruje na box diagnozy #diagnosticSection — scroll-margin, żeby natywny skok kotwicy
   lądował pod sticky-headerem, na tekście „Wskaże ścieżkę krok po kroku" (desktop+mobile). */
#diagnosticSection{scroll-margin-top:90px}

/* ============================================================================
   v77.17.377 — RCE (/cena-energii-dzis/). Reguły TU (override, .edxr-scoped) — NIE edytujemy plików RCE
   (aktywny wątek „widget RCE"). Sticky R5 = JS osobno.
   ============================================================================ */
/* R1 (v77.17.383 / feedback): operatorzy OSD jako BUTTONY, PO DWA NA WIERSZ (kompaktowo), zamiast karuzeli/wielu w rzędzie. */
@media (max-width:767px){
  .edxr .rce-osd-picker{flex-wrap:wrap!important}
  .edxr .rce-osd-chips{flex:1 1 100%!important;width:100%!important;max-width:100%!important;min-width:0!important;flex-wrap:wrap!important;overflow:visible!important;gap:8px!important;padding-bottom:0!important}
  .edxr .rce-osd-chip{flex:1 1 calc(50% - 5px)!important;min-width:0!important;justify-content:center!important;white-space:nowrap;padding-left:8px!important;padding-right:8px!important}
}
/* v77.17.383 (feedback): RCE — sekcja operatorów + tabela obok SZERSZE na desktopie (było ~1000px, jest miejsce po bokach).
   Poszerzamy wrapper treści RCE (inline max-width:1000px) do 1180px; scoped do strony RCE, bez poziomego overflow. */
@media (min-width:980px){
  body.page-template-page-cena-energii section > div[style*="max-width:1000px"]{max-width:1180px!important}
}
/* R2: przełącznik Dziś/Jutro WYEKSPONOWANY (desktop+mobile) — było prawie niewidoczne, stan .on ledwo się różnił od off */
.edxr .day-toggle{border:1px solid rgba(22,199,243,.5)!important;background:rgba(22,199,243,.07)!important;border-radius:999px!important;padding:3px!important;gap:2px!important}
.edxr .day-toggle button{color:#c8d6de!important;font-weight:700!important;border-radius:999px!important;padding:8px 18px!important;transition:background .15s,color .15s}
.edxr .day-toggle button.on{background:linear-gradient(180deg,#16C7F3,#1fa3ff)!important;color:#041421!important;box-shadow:0 2px 10px -2px rgba(22,199,243,.6)!important}
.edxr .day-toggle button[disabled]{opacity:.4!important}
/* R3: usunięty tekst pod tabelą RCEm (źródło + linki), do sekcji „Dlaczego cena się zmienia" (desktop+mobile) */
.edxr-rcem-src,.edxr-rcem-links{display:none!important}
/* R4 (v77.17.382 / P2-10): tabela godzinowa RCE PRZYWRÓCONA na mobile (pod wyborem operatora) — user chce ją widzieć.
   Poprzednio (v377) była ukryta; teraz wyświetlamy z poziomym scrollem wewnątrz kontenera. */
@media (max-width:767px){
  .edxr .rce-table-scroll{display:block!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
  .edxr .rce-table{display:table!important}
}
/* R5: dolny sticky RCE ma znikać, gdy sekcja docelowa #calc jest na ekranie (klasę dokłada JS w theme.js).
   Nadpisuje .show (oba selektory 0,2,0, ale my mamy !important). */
.edxr-sticky.ed-sticky-athome{transform:translateY(120%)!important;pointer-events:none!important;opacity:0!important;visibility:hidden!important}

/* ============================================================================
   v77.17.377 (N4+N5) — Aktualności/Testy/Poradniki (wspólne klasy .ed-blog-*): kompresja pustych przestrzeni
   + wyszukiwarka przeniesiona POD paginację, nad „Najczęściej szukane".
   ============================================================================ */
@media (max-width:767px){
  /* N4: mniej pustej przestrzeni na górze (main padTop 56→18) i między hero a wyróżnionym artykułem */
  .ed-blog-wrap{padding-top:18px!important}
  .ed-blog-hero{padding-top:6px!important;padding-bottom:12px!important}
  .ed-blog-featured,.ed-news-featured{padding-top:14px!important;margin-top:0!important}
  /* N5: górną (mobilną) wyszukiwarkę chowamy; sidebarową odsłaniamy — aside stackuje się PO liście/paginacji,
     a karta search stoi tuż NAD „Najczęściej szukane" (dokładnie jak prosił user). Dotyczy news/testy/poradniki. */
  .ed-blog-search-mobile{display:none!important}
  .ed-blog-side .ed-sidebar-search.ed-desktop-only,
  .ed-blog-side .ed-sidebar-search{display:block!important}
}

/* GLOBAL: kompresja pustych przestrzeni w pionie na mobile — generyczna sekcja .ed-section
   (58px→36px góra/dół). Home ma własne, wyżej-specyficzne reguły (body.home / .ed-page-home-test) → nietknięty. */
@media (max-width:767px){
  .ed-section{padding-top:36px!important;padding-bottom:36px!important}
  .ed-section-head{margin-bottom:20px!important}
}

/* HOME H4: na mobile ukryj „Punkt startowy z diagnozy" (belka kontekstu nad kalkulatorem) */
@media (max-width:767px){
  #homeContextNotice{display:none!important}
}

/* v77.17.377 (HOME H1): na mobile ODSŁANIAMY panel „Wynik kalkulatora HOME" (.ed-home-live-panel) — był display:none ≤760px.
   W DOM stoi ZARAZ PO „Co oznacza wynik" (#storageResult jest ostatni w .ed-home-calculator-main, aside jest kolejnym
   dzieckiem grid-shella) → w jednokolumnowym gridzie ląduje dokładnie po „Co oznacza wynik". Zawiera rekomendowany
   magazyn + CTA produktu + suwak budżetu (na mobile był niedostępny). Specyficzność body.page-template bije style.min. */
@media (max-width:767px){
  body.page-template-page-energydock-home .ed-home-live-panel{display:block!important;margin-top:14px!important}
}

/* v77.17.380 (HOME H2): górny sticky z rekomendowanym magazynem (mobile) — wzór GO. */
@media (max-width:767px){
  .ed-home-sticky-top:not([hidden]){position:fixed;left:12px;right:12px;top:72px;z-index:118;display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:14px;border:1px solid rgba(22,199,243,.3);background:linear-gradient(180deg,#0c1a28,#070f18);box-shadow:0 14px 34px -12px rgba(0,0,0,.8);cursor:pointer;animation:edHomeStickyIn .28s ease}
  .ed-home-sticky-top .ed-home-sticky-img{width:40px;height:40px;object-fit:contain;flex:0 0 40px}
  .ed-home-sticky-top .ed-home-sticky-imgph{width:40px;height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.4)}
  .ed-home-sticky-top .ed-home-sticky-imgph svg{width:26px;height:26px}
  .ed-home-sticky-top .ed-home-sticky-cap{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}
  .ed-home-sticky-top .ed-home-sticky-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8ba0ad;font-weight:700}
  .ed-home-sticky-top #homeStickyName{font-size:14px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ed-home-sticky-top .ed-home-sticky-meta{font-size:11.5px;color:#c3d3e2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ed-home-sticky-top .ed-home-sticky-arrow{flex:0 0 auto;color:#16C7F3;font-size:22px;font-weight:800;line-height:1}
  /* v77.17.382 (P2-12): usuń ikonę-placeholder (cyan/battery) z górnego sticky HOME — pokazywała się nawet obok zdjęcia produktu. */
  .ed-home-sticky-top .ed-home-sticky-imgph{display:none!important}
  /* v77.17.383 (feedback): to JEDYNE sticky HOME i jest na DOLE (nie górze). Pomarańczowe CTA „Zobacz" → #dopasowanie. */
  .ed-home-sticky-top.ed-home-sticky-bottom:not([hidden]){top:auto!important;bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;cursor:default;animation:edHomeStickyInB .28s ease}
  .ed-home-sticky-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#ff8a3e,#ff6b2c);color:#0a1420;font-weight:800;font-size:13px;padding:9px 15px;border-radius:999px;text-decoration:none;box-shadow:0 8px 20px -8px rgba(255,107,44,.6);white-space:nowrap}
  .ed-home-sticky-cta i{font-style:normal}
}
.ed-home-sticky-top[hidden]{display:none!important}
@keyframes edHomeStickyIn{from{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes edHomeStickyInB{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
/* v77.17.384 (feedback): tytuły sekcji w scalonych wierszach porównania HOME PO LEWEJ (wszystkie szerokości). */
#edHomeRecommend .edhm-cmp-grp th{text-align:left!important}

/* v77.17.380 (MP2): oś Min/Optimum/Resilience jako DOLNY sticky (mobile) — 3 czyste kolumny, bez nachodzenia. */
@media (max-width:767px){
  /* v77.17.391 (feedback): przypięty do SAMEGO DOŁU (pełna szerokość, bez odstępu 10px), klik → karuzela zestawów. */
  .ed-plan-axis-sticky:not([hidden]){position:fixed;left:0;right:0;bottom:0;z-index:119;display:flex;align-items:stretch;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;border:1px solid rgba(22,199,243,.28);border-bottom:0;background:linear-gradient(180deg,#0c1a28,#070f18);box-shadow:0 -12px 30px -10px rgba(0,0,0,.85);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .ed-plan-axis-sticky:not([hidden]):active{filter:brightness(1.08)}
  .ed-plan-axis-sticky .ed-pas-go{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:26px;color:#7fe0ff;font-size:20px;font-weight:700;line-height:1;align-self:center}
  .ed-plan-axis-sticky .ed-pas-cell{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:5px 6px;border-radius:10px;background:rgba(255,255,255,.03)}
  /* v77.17.394: komórki Min/Opt/Res klikalne (przewijają do wariantu w karuzeli) */
  .ed-plan-axis-sticky .ed-pas-cell[data-role]{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,background .16s ease}
  .ed-plan-axis-sticky .ed-pas-cell[data-role]:active{transform:scale(.96)}
  /* v77.17.394 (feedback): „ładny cyan glow" na boxie Optimum w dolnym sticku (pulsujący) */
  .ed-plan-axis-sticky .ed-pas-cell.is-opt{background:rgba(22,199,243,.14);border:1px solid rgba(22,199,243,.5);box-shadow:0 0 0 1px rgba(22,199,243,.32),0 0 16px rgba(22,199,243,.42),inset 0 0 12px rgba(22,199,243,.12);animation:edPasOptGlow 2.6s ease-in-out infinite}
  @keyframes edPasOptGlow{0%,100%{box-shadow:0 0 0 1px rgba(22,199,243,.28),0 0 11px rgba(22,199,243,.30),inset 0 0 9px rgba(22,199,243,.09)}50%{box-shadow:0 0 0 1px rgba(22,199,243,.52),0 0 24px rgba(22,199,243,.58),inset 0 0 15px rgba(22,199,243,.18)}}
  @media(prefers-reduced-motion:reduce){.ed-plan-axis-sticky .ed-pas-cell.is-opt{animation:none}}
  .ed-plan-axis-sticky .ed-pas-n{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#8ba0ad;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .ed-plan-axis-sticky .ed-pas-cell.is-opt .ed-pas-n{color:#7fe0ff}
  .ed-plan-axis-sticky .ed-pas-v{font-size:14px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
}
.ed-plan-axis-sticky[hidden]{display:none!important}
body:has(.ed-plan-axis-sticky:not([hidden])) .ed-bottom-nav{display:none!important}

/* v77.17.378 (D3): dolny sticky Dotacje → karuzela „Dopasowane zestawy" (mobile) */
@media (max-width:767px){
  .ed-grants-sticky:not([hidden]){position:fixed;left:12px;right:12px;bottom:12px;z-index:120;display:flex;justify-content:center}
  .ed-grants-sticky .ed-btn{width:100%;box-shadow:0 -8px 30px -8px rgba(0,0,0,.75)}
}
.ed-grants-sticky[hidden]{display:none!important}
body:has(.ed-grants-sticky:not([hidden])) .ed-bottom-nav{display:none!important}

/* v77.17.382 (P2-01): strony NARZĘDZI/KALKULATORÓW mają WŁASNE mechanizmy sticky (goStickyReco, homeLiveMobile,
   #homeStickyTop, edPlanAxisSticky, ed-grants-sticky, edxrSticky, scSticky). Generyczny dolny nav NIE może się tam
   pojawiać — nawet przelotnie przy scroll-up — bo nakłada się na te paski. Na głównej, artykułach, kategoriach,
   produktach i checkoucie zostaje bez zmian. */
body.page-template-page-energydock-go .ed-bottom-nav,
body.page-template-page-energydock-home .ed-bottom-nav,
body.page-template-page-energydock-pro .ed-bottom-nav,
body.page-template-page-moj-plan .ed-bottom-nav,
body.page-template-page-kalkulator-oszczednosci .ed-bottom-nav,
body.page-template-page-kalkulator-dotacji .ed-bottom-nav,
body.page-template-page-porownaj-taryfy .ed-bottom-nav,
body.page-template-page-cena-energii .ed-bottom-nav,
body.page-template-page-kalkulator-dla-firm .ed-bottom-nav{display:none!important}

/* v77.17.382 (P2-04): na mobile ukryj tekstową notę historii ceny („najniższa cena… Zakres… N zapisów") —
   sam mini-wykres historii zostaje. */
@media (max-width:767px){ .ed-pwh-note{display:none!important} }

/* ---- v77.16.194 etap 7: hero moneta + baza wiedzy 2 pillary + newsletter ---- */
@media (max-width:767px){
  /* Hero — moneta zamiast „zł" (dziedziczy kolor animacji przez currentColor) */
  .edm-zl .edm-coin{width:17px;height:17px;display:block;filter:drop-shadow(0 0 6px currentColor)}
  /* Baza wiedzy — 2 pozostałe pillary w mini 1×2 (bez excerptu, niższy thumb) */
  
  body.home #start-here .ed-home-support-card .ed-article-copy>p{display:none!important}
  
  body.home #start-here .ed-home-support-card h2,body.home #start-here .ed-home-support-card h3{font-size:.95rem!important}
  /* Newsletter — ukryj label „Adres e-mail" (jest placeholder) + minimalizacja */
  body.home #newsletter .ed-newsletter-field>span{display:none!important}
  body.home #newsletter .ed-newsletter-lead{display:none!important}
  body.home #newsletter .ed-newsletter-card{padding:18px 16px!important;gap:10px!important}
}

/* ---- v77.16.194 etap 8: kalkulatory (zoom-fix + GO zapisz) + alerty ---- */
@media (max-width:767px){
  /* iOS zoom Watów: input zostaje mały (zoom-in pokazuje edycję), powrót do skali 1.0 po blur robi JS (theme footer) */
  /* GO — ukryj „Zapisz wynik na później" na mobile */
  #runtime .ed-go-v2-rp-save{display:none!important}
  /* Alerty ceny energii — minimum tekstu (ukryj opis, zostają bąble + form) */
  #alerty-rce .ed-rcea-sub{display:none}
}

/* ---- v77.16.195: /cena-energii-dzis/ — usuń mini widget RCE z hero (duplikat pełnego wykresu poniżej). Desktop+mobile. ---- */
.edxr .hero .live-card{display:none}
.edxr .hero .hero-grid{grid-template-columns:1fr;max-width:820px}

/* ---- v77.16.195 etap 10: diagnoza „Szczegóły doboru" zwijana (mobile) ---- */
@media (max-width:767px){
  .ed-diag-why{border:1px solid rgba(159,179,200,.16);border-radius:12px;background:rgba(255,255,255,.03);overflow:hidden;margin-top:8px}
  .ed-diag-why>summary{cursor:pointer;list-style:none;padding:11px 14px;font:700 .92rem/1.2 'Sora','Inter',sans-serif;color:#eaf1f8;display:flex;align-items:center;justify-content:space-between;gap:10px}
  .ed-diag-why>summary::-webkit-details-marker{display:none}
  .ed-diag-why>summary::after{content:"⌄";font-size:1.15rem;color:#16C7F3;transition:transform .2s;line-height:1}
  .ed-diag-why[open]>summary::after{transform:rotate(180deg)}
  .ed-diag-why>ul{margin:0;padding:2px 14px 12px 30px;font-size:.86rem;color:rgba(219,234,248,.8)}
}

/* ---- v77.16.195 etap 11: Aktualności — ukryj boxy kategorii po wejściu w filtr/kategorię + WYMUŚ 2-kol (mobile) ---- */
@media (max-width:767px){
  .ed-blog-search-mobile:has(form.is-active) ~ .ed-blog-category-boxes{display:none!important}
  /* 2-kol na Aktualności/Testy — bije bardziej swoiste .ed-news-archive .ed-blog-category-boxes{1fr!important} (0,2,0) przez body.ed-v77 (0,2,1) */
  body.ed-v77 .ed-blog-category-boxes{grid-template-columns:1fr 1fr!important}
}

/* ---- v77.16.195 etap 12: sekcja aplikacji (strona stacji) — premium, mniej martwej przestrzeni (mobile) ---- */
@media (max-width:767px){
  .eds-app{padding:22px 16px!important;gap:12px!important}
  .eds-app-phone{min-height:0!important;margin:4px 0 0}
  .eds-app-phone img{max-height:340px!important;max-width:74%!important}
  .eds-app-phone::before{inset:10% 16%!important;filter:blur(36px)!important}
  .eds-app-badges{margin-top:16px!important;gap:10px!important}
  .eds-app-badge{height:44px!important}
  .eds-app-scene{margin-top:14px!important;border-radius:16px!important}
  .eds-app-scene img{max-height:240px!important}
  .eds-app-scene figcaption{padding:30px 16px 13px!important;font-size:12.5px!important;line-height:1.45}
}

/* ---- v77.16.195 etap 13: HOME kalkulator — sticky wyniku jako fixed bottom-bar (mobile) ---- */
@media (max-width:767px){
  .ed-home-live-mobile{
    position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;
    margin:0!important;width:auto!important;z-index:120;
    border-radius:0!important;border:0!important;border-top:1px solid rgba(22,199,243,.28)!important;
    padding:10px 14px!important;padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;
    background:linear-gradient(180deg,#0c1a28,#070f18)!important; /* v77.17.227 [C]: pełne, nieprzezroczyste tło (było półprzezroczyste → CTA zlewało się z tłem) */
    box-shadow:0 -18px 44px -14px rgba(0,0,0,.85)!important;-webkit-backdrop-filter:none;backdrop-filter:none;
    transform:translateY(135%);opacity:0;pointer-events:none;
    transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .22s ease;
  }
  .ed-home-live-mobile.ed-hlm-on{transform:none!important;opacity:1!important;pointer-events:auto!important}
}

/* v77.17.30: notki kontekstowe pod podsumowaniem kalkulatora HOME (projekt indywidualny >30 kWh,
   rozbudowa modułami). Globalne (nie tylko mobile) — ten plik ładuje się po style.min.css. */
.edhm-note{margin-top:12px;padding:13px 16px;border-radius:14px;font-size:13.5px;line-height:1.55;color:#c3d3e2;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1)}
.edhm-note strong{color:#fff}
.edhm-note-legal{border-color:rgba(255,122,51,.32);background:rgba(255,122,51,.07)}
.edhm-note-expand{border-color:rgba(22,199,243,.28);background:rgba(22,199,243,.06)}

/* v77.17.32: link do kalkulatora oszczędności z prefill (strona produktu magazynu) */
.edm-zwrot-calc{display:inline-block;margin-top:12px;font-size:13.5px;font-weight:700;color:#16C7F3;text-decoration:none;border-bottom:1px solid rgba(22,199,243,.35);padding-bottom:2px}
.edm-zwrot-calc:hover{border-bottom-color:#16C7F3}
/* v77.17.32: badge typu zestawu (All-in-one / Zestaw dobierany) */
.edm-kind{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;padding:4px 9px;border-radius:999px;background:rgba(22,199,243,.1);border:1px solid rgba(22,199,243,.3);color:#7fe0ff}
.edm-kind.is-combo{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);color:#c3d3e2}

/* v77.17.34: nota progu dotacji PME w kalkulatorze HOME (2 kWh/kWp, min 10 kWh).
   Wariant ostrzegawczy = pomaranczowy jak nota prawna; is-ok = stonowana zielen. */
.edhm-note-grant{border-color:rgba(255,122,51,.32);background:rgba(255,122,51,.07)}
.edhm-note-grant.is-ok{border-color:rgba(94,222,160,.30);background:rgba(94,222,160,.06);color:#bfe6d2}

/* ============================================================================
   v77.17.60 — mobilne dopracowanie (iPhone 13 / 390px):
   1) home: 2 karty pod polecanym przewodnikiem → stos poziomych kart z miniaturą
   2) home „Najnowsze artykuły" → koniec nakładania miniatury na tytuł (czysta karta)
   3) chip formatu TEST/NEWS/PORADNIK czytelny na kartach
   4) diagnoza: ikony wyśrodkowane w kaflach
   5) strona Kalkulatory → karty 2×2 (wyróżniona pełna szerokość)
   6) diagnoza na stronie Kalkulatory → 2×2
   Blok na końcu pliku = najwyższy priorytet źródłowy (wygrywa remisy swoistości).
   ============================================================================ */
@media (max-width:767px){

  /* 1) HOME — dwie karty wsparcia pod polecanym przewodnikiem: jedna pod drugą,
        pozioma karta z miniaturą z lewej, wyraźnie lżejsza niż polecany. */
  body.home #start-here .ed-home-start-support-grid{grid-template-columns:1fr!important;gap:12px!important}
  body.home #start-here .ed-home-support-card{display:grid!important;grid-template-columns:118px minmax(0,1fr)!important;align-items:stretch!important;overflow:hidden!important;border-radius:16px!important}
  body.home #start-here .ed-home-support-card .ed-article-thumb-wrap{aspect-ratio:auto!important;width:118px!important;min-width:0!important;max-width:118px!important;height:100%!important;min-height:104px!important;position:relative!important;overflow:hidden!important;border-radius:0!important}
  body.home #start-here .ed-home-support-card .ed-article-thumb,
  body.home #start-here .ed-home-support-card .ed-article-noimg,
  body.home #start-here .ed-home-support-card .ed-article-thumb-wrap img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
  body.home #start-here .ed-home-support-card .ed-article-copy{min-width:0!important;padding:11px 13px!important;display:flex!important;flex-direction:column!important;justify-content:center;gap:5px!important}
  body.home #start-here .ed-home-support-card h2,
  body.home #start-here .ed-home-support-card h3{font-size:.96rem!important;line-height:1.24!important;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden!important}

  /* 2) HOME — „Najnowsze artykuły": czysta karta pozioma (miniatura z lewej, przycięta
        object-fit:cover), koniec nakładania obrazu na tytuł. */
  body.home .ed-page-home-test .ed-articles-grid-home-latest{grid-template-columns:1fr!important;gap:12px!important}
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-card{grid-template-columns:118px minmax(0,1fr)!important;min-height:0!important;align-items:stretch!important;overflow:hidden!important;position:relative!important}
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-thumb-wrap{position:relative!important;height:100%!important;min-height:104px!important;width:118px!important;min-width:0!important;max-width:118px!important;border-right:0!important;overflow:hidden!important}
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-thumb,
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-noimg,
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-thumb-wrap img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-noimg{display:flex!important;align-items:center!important;justify-content:center;font-size:9px!important;letter-spacing:.06em!important;text-align:center;padding:6px!important}
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-copy{position:relative!important;min-width:0!important;padding:10px 13px!important;background:transparent!important;display:flex!important;flex-direction:column!important;justify-content:center;gap:5px!important}
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-card h3{font-size:.95rem!important;line-height:1.24!important;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden!important}
  body.home .ed-page-home-test .ed-articles-grid-home-latest .ed-article-card h3 a{color:#eef5fa!important}

  /* 3) Chip formatu (TEST/NEWS/PORADNIK) czytelny na kartach artykułów (home + /tematy/) */
  .ed-article-card .ed-article-meta{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:6px 8px!important;font-size:11.5px!important;line-height:1.3!important}
  .ed-article-card .ed-hub-fmt{font-size:10px!important;font-weight:800!important;letter-spacing:.08em!important;padding:3px 9px!important;border-radius:999px!important;margin:0!important;vertical-align:baseline!important}

  /* 4) Diagnoza — ikony WYŚRODKOWANE w kaflach (home + strona Kalkulatory) */
  body.home .ed-object-chip,
  .ed-page-kalkulatory .ed-object-chip{display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center;justify-content:center;gap:8px!important;padding:16px 12px!important;min-height:0!important}
  body.home .ed-object-chip .ed-preset-icon,
  .ed-page-kalkulatory .ed-object-chip .ed-preset-icon{margin:0 auto!important}

  /* 5) Strona Kalkulatory — karty kalkulatorów w 2 kolumnach (2×2), wyróżniona pełna szerokość */
  .ed-page-kalkulatory .ed-calculators-overview-grid{grid-template-columns:1fr 1fr!important;gap:12px!important}
  .ed-page-kalkulatory .ed-calculator-overview-card{min-height:0!important;padding:16px 14px 14px!important;border-radius:18px!important}
  .ed-page-kalkulatory .ed-calculator-overview-card-featured{grid-column:1/-1!important}
  /* v77.17.238: tylko „Twój Plan" zostaje wyróżniony (pełna szerokość, filar). „Kalkulator dotacji"
     wraca do siatki 2-kol → 6 pozostałych kafli układa się w równe 3 wiersze po 2 (koniec drugiego
     kafla pełnej szerokości i samotnej, rozciągniętej „Porównywarki taryf"). */
  .ed-page-kalkulatory #asystent-dotacji-card{grid-column:auto!important}
  .ed-page-kalkulatory .ed-calculator-overview-icon{width:44px!important;height:44px!important}
  .ed-page-kalkulatory .ed-calculator-overview-card h3{font-size:15px!important;line-height:1.2!important}
  .ed-page-kalkulatory .ed-calculator-overview-card p{font-size:12px!important;line-height:1.42!important}

  /* 6) Diagnoza na stronie Kalkulatory — kafle Krok 1 → 2×2 (home ma to już wyżej) */
  .ed-page-kalkulatory .ed-object-grid,
  .ed-page-kalkulatory .ed-object-grid-calm{grid-template-columns:1fr 1fr!important;gap:10px!important}
}

/* =====================================================================
   v77.17.205 — REDESIGN MOBILNY (kondensacja, ≤767px; katalog ≤600; checkout ≤860)
   Spec: projekt 11.08 (artefakt fa2a0107 + addendum c720d8f9). Desktop NIETYKALNY:
   wszystko w blokach mobilnych; neutralizatory ≥768 zerują wyłącznie nowe wrappery.
   ===================================================================== */

/* --- 1. HOME: sekcje produktowe = poziome scrollery (karty zostają w DOM, parytet SEO) --- */
@media (max-width:767px){
  body.home #stacje-home .eds-cat-grid,
  body.home #magazyny-home .eds-cat-grid{
    display:flex;grid-template-columns:none;gap:12px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;scroll-padding-left:16px;
    margin:26px -16px 0;padding:4px 16px 12px;
    scrollbar-width:none;
  }
  body.home #stacje-home .eds-cat-grid::-webkit-scrollbar,
  body.home #magazyny-home .eds-cat-grid::-webkit-scrollbar{display:none}
  body.home #stacje-home .eds-cat-card,
  body.home #magazyny-home .eds-cat-card{flex:0 0 82%;scroll-snap-align:start;min-width:0}
  /* v77.17.207 (#11): karty produktowe home niższe — mniej paddingu, niższe media; chipy stacji ≤2 (były 3 rzędy).
     3. chip zostaje w DOM (parytet SEO), ukryty na mobile. Scope #id bije base eds-katalog (ładowany później). */
  body.home #stacje-home .eds-cat-card,
  body.home #magazyny-home .eds-cat-card{padding:14px 14px 15px}
  body.home #stacje-home .eds-cat-media,
  body.home #magazyny-home .eds-cat-media{height:150px;margin-bottom:10px}
  body.home #stacje-home .eds-cat-media img,
  body.home #magazyny-home .eds-cat-media img{max-height:138px}
  body.home #stacje-home .eds-cat-chips{gap:6px;margin:8px 0 12px}
  body.home #stacje-home .eds-cat-chip{font-size:11.5px;padding:4px 9px}
  body.home #stacje-home .eds-cat-chip svg{width:13px;height:13px}
  body.home #stacje-home .eds-cat-chip:nth-child(n+3){display:none}
  body.home #produkty .ed-product-card-grid{
    display:flex;gap:12px!important;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;scroll-padding-left:16px;
    margin:0 -16px;padding:4px 16px 12px;scrollbar-width:none;
  }
  body.home #produkty .ed-product-card-grid::-webkit-scrollbar{display:none}
  body.home #produkty .ed-product-card{flex:0 0 86%;scroll-snap-align:start;min-width:0}
}

/* --- 2. PDP (stacje + magazyny + EV, szablony eds-*): kup-first, buybar od startu, akordeon spec, scroller porównania --- */
@media (max-width:767px){
  /* v77.17.210 (P1 #8): PRODUCENT + MODEL NAD ZDJĘCIEM. `.eds-buy{display:contents}` → jego dzieci wpadają do
     gridu `.eds-hero` obok galerii, więc eyebrow (producent·kategoria) + H1 (model) stają NAD obrazem. Kolejność ≤767:
     eyebrow → H1 → GALERIA → cena → CTA → opis → chipy → statgrid → reszta. hero gap=0, rytm z marginesów dzieci. */
  body .eds-hero{gap:0}
  body .eds-buy{display:contents}
  body .eds-buy>.eds-eyebrow{order:1}
  body .eds-buy>.eds-h1{order:2}
  body .eds-hero>.eds-gallery{order:3;margin-top:14px}
  body .eds-buy>.eds-price-row{order:4;margin-top:16px}
  body .eds-buy>.eds-cta{order:5}
  body .eds-buy>.eds-cta2{order:6}
  body .eds-buy>.eds-sub{order:7}
  body .eds-buy>.eds-chips{order:8}
  body .eds-buy>.edm-inv-badges{order:8} /* magazyn: wyróżniki razem z chipami */
  body .eds-buy>.eds-statgrid{order:9}
  body .eds-buy>.eds-hr{order:10}
  body .eds-buy>*{order:11} /* nieznane dzieci (trust/disclaimery) — pod spodem */
  /* v77.17.210 (P1 #1): chipy PDP GĘŚCIEJ — mniejszy font/padding/gap → więcej w rzędzie, niższy stos (były w
     desktopowej gęstości na 375px). body-prefix bije inline `.eds-chip`(0,1,0) i shared `.eds-shell .edm-inv-badge`(0,2,0). */
  body .eds-chips,
  body .eds-shell .edm-inv-badges{gap:6px;margin-top:12px}
  body .eds-chip,
  body .eds-shell .edm-inv-badge{font-size:11px;padding:4px 9px;gap:5px;white-space:nowrap}
  body .eds-chip .eds-ci,
  body .eds-shell .edm-inv-badge .edm-inv-badge-i{width:14px;height:14px}
  body .eds-chip .eds-ci svg,
  body .eds-shell .edm-inv-badge .edm-inv-badge-i svg{width:14px;height:14px}
  /* v77.17.207 (#1): breadcrumb schowany na mobile PDP (desktop zachowuje). :has(.eds-hero) = tylko produkt, NIE checkout */
  body:has(.eds-hero) .eds-crumb{display:none!important}
  /* galeria: koniec stałych 480px — zdjęcie nie spycha treści (klik = pełny widok jak dotąd) */
  body .eds-gal-main{height:auto!important;max-height:46vh}
  body .eds-gal-main img{max-height:46vh}
  /* v77.17.207 (#2): buybar reveal-on-scroll — IO odsłania go dopiero, gdy główne CTA zejdzie z ekranu (koniec
     „przypięcia od startu", żeby nie dublować widocznego CTA). z-index nad bottom-nav (z=90) dla fallbacku bez :has();
     base translateY(115%) + .is-show{transform:none} sterowane observerem (jak na desktopie). */
  body .eds-buybar{z-index:100}
  /* rytm sekcji: 66 → 40px */
  body .eds-sec{margin-top:40px!important}
  /* „Porównaj z podobnymi" = poziomy scroller kart (tylko grid WEWNĄTRZ .eds-sec — katalog/home nietknięte) */
  body .eds-sec .eds-cat-grid{
    display:flex;grid-template-columns:none;gap:12px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;scroll-padding-left:18px;
    margin:26px -18px 0;padding:4px 18px 12px;scrollbar-width:none;
  }
  body .eds-sec .eds-cat-grid::-webkit-scrollbar{display:none}
  body .eds-sec .eds-cat-grid .eds-cat-card{flex:0 0 78%;scroll-snap-align:start;min-width:0}
  /* akordeon w sekcjach eds (spec): wygląd zgodny z systemem kart */
  body .eds-acc{border:1px solid var(--line-2,rgba(255,255,255,.14));border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden}
  body .eds-acc .ed-mobile-accordion-panel{padding:0 14px 14px}
  body .eds-acc .eds-spec-grid{margin-top:6px}
}
/* neutralizator desktopu: zeruje WYŁĄCZNIE nowe wrappery akordeonu (render 1:1 jak przed zmianą) */
@media (min-width:768px){
  .eds-sec .ed-mobile-accordion-trigger{display:none}
  .eds-sec .ed-mobile-accordion{border:0;background:none}
  .eds-sec .ed-mobile-accordion-panel[hidden]{display:block!important}
}

/* --- 3. KATALOGI /stacje/ + /magazyny/ (breakpoint katalogu = 600px, jak w eds-katalog) --- */
@media (max-width:600px){
  /* siatka: 1-kol → 2-kol compact (nadpisuje eds-styles-katalog @600 {grid-template-columns:1fr}) */
  body:has(.eds-filter-acc) .eds-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  body:has(.eds-filter-acc) .eds-cat-card{
    padding:12px;border-radius:16px;
    content-visibility:auto;contain-intrinsic-size:0 340px; /* pomija layout/paint kart poza ekranem (94 kart) */
  }
  /* v77.17.210 (P2a): CAŁA KARTA klikalna → strona produktu. `.eds-cat-media` (już <a href=produkt>) na position:static,
     jego ::after (inset:0) rozciąga się na CAŁĄ kartę (position:relative) → klik gdziekolwiek = produkt. CTA „Zamów/Szczegóły" ukryte. */
  body:has(.eds-filter-acc) .eds-cat-media{height:120px;position:static}
  body:has(.eds-filter-acc) .eds-cat-media::after{content:"";position:absolute;inset:0;z-index:1}
  /* v77.17.390 (feedback): karty MAGAZYNÓW (mają .eds-cat-brandrow, stacje nie) — wysokie „szafy" (LUNA/SigenStor)
     przy max-height 172px przelewały się poza 120-px kadr i ZASŁANIAŁY logo producenta + badge „Premium" pod spodem.
     Skalujemy obraz do wysokości kadru (max-height:100%) i przycinamy nadmiar → grafika nigdy nie wchodzi na brandrow. */
  body:has(.eds-filter-acc) .eds-cat-card:has(.eds-cat-brandrow) .eds-cat-media{overflow:hidden}
  body:has(.eds-filter-acc) .eds-cat-card:has(.eds-cat-brandrow) .eds-cat-media img{max-height:100%;max-width:100%}
  body:has(.eds-filter-acc) .eds-cat-cta{display:none}
  body:has(.eds-filter-acc) .eds-cat-name{font-size:14.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}
  /* v77.17.208/210 (B-a1/P2b): chipy parametrów MNIEJSZE (size-to-content), zawijają, cap 2 (3. w DOM ukryty) */
  /* v77.17.224 (życzenie usera): chipy specyfikacji ZAWSZE 1 linia (nowrap kontenera) + mniejsza czcionka (9px) → koniec zawijania do 2 linii na wąskiej karcie 2-kol */
  /* v77.17.477: chipy pakowane na całą szerokość karty (2/linię gdy się mieszczą), ikona ukryta = więcej miejsca na tekst, oszczędność wysokości; zawijają dopiero gdy naprawdę nie mieszczą się obok siebie */
  body:has(.eds-filter-acc) .eds-cat-chips{flex-wrap:wrap;overflow:visible;gap:3px;margin:7px 0 10px}
  body:has(.eds-filter-acc) .eds-cat-chip{font-size:8.5px;padding:2px 5px;gap:0;line-height:1.3;letter-spacing:-.1px;white-space:nowrap;flex:0 0 auto;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  body:has(.eds-filter-acc) .eds-cat-chip svg{display:none}
  body:has(.eds-filter-acc) .eds-cat-chip svg{width:11px;height:11px}
  body:has(.eds-filter-acc) .eds-cat-chip:nth-child(n+3){display:none}
  /* v77.17.208 (B-a2): plakietka/klasyfikacja odzyskują szerokość karty */
  /* v77.17.210 (P2e): plakietka „powód · metryka" — na wąskiej karcie 2-kol NIE przycinaj metryki (było white-space:nowrap
     z bazy → ellipsis ucinał „· 80 min"/„· 9,4 kg"). Zawijaj do 2 linii (wyśrodkowane), font 10px → krótsze zostają 1 linią. */
  /* v77.17.224 (życzenie usera): plakietka ZAWSZE 1 linia + mniejsza czcionka (odwrócenie P2e — user woli
     krótkie 1-liniowe z ewentualnym ellipsisem niż zawijane 2-liniowe). font 9px, nowrap, ellipsis. */
  body:has(.eds-filter-acc) .eds-cat-badge,
  body:has(.eds-filter-acc) .eds-cat-reco{top:10px;left:10px;max-width:calc(100% - 20px);font-size:9px;padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;text-align:center}
  body:has(.eds-filter-acc) .edm-classrow{top:44px;left:10px;max-width:calc(100% - 20px)}
  body:has(.eds-filter-acc) .eds-cat-card .edm-kind{top:42px;left:10px}
  /* v77.17.210 (P2d): STACJE — cena + zniżka w JEDNYM wierszu (scope :has(.eds-cat-pct) = tylko karty z rabatem; magazyny bez zmian) */
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-pct){flex-wrap:nowrap;gap:6px;align-items:baseline}
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-pct) .eds-cat-now{font-size:17px;white-space:nowrap}
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-pct) .eds-cat-old{font-size:11px;white-space:nowrap}
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-pct) .eds-cat-pct{font-size:10px;padding:2px 6px;flex:none;white-space:nowrap}
  /* v77.17.473: filtr = akordeony rozwijane W TREŚCI strony (bez sticky i bez wewnętrznego scrolla).
     Wcześniej otwarty panel miał max-height+overflow:auto+overscroll:contain = pułapka scrolla
     (palec przewijał panel, nie stronę). Teraz panel rośnie naturalnie, strona przewija się normalnie. */
  body .eds-filter-acc{position:static;border:0;margin-bottom:10px}
  body .eds-filter-acc .ed-mobile-accordion-trigger{
    min-height:48px;padding:12px 16px;border-radius:999px;
    background:rgba(9,16,26,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 30px -12px rgba(0,0,0,.6);
    font-size:13.5px;
  }
  body .eds-filter-acc .ed-mobile-accordion-panel{
    margin-top:8px;border-radius:18px;
    background:rgba(9,16,26,.97);border:1px solid rgba(255,255,255,.12);
    box-shadow:0 24px 60px -20px rgba(0,0,0,.7);
  }
  body .eds-filter-acc .eds-filter{margin:0;border:0;box-shadow:none;background:none}
  /* v77.17.476: cały wiersz suwaka (tytuł + wartość + suwak) odsunięty równo od krawędzi — suwak nie sięga skraju ekranu (koniec łapania gestu „wstecz"), a tytuł jest wyrównany do początku toru suwaka */
  body .eds-filter-acc .eds-frow{padding-left:18px;padding-right:18px}
  /* v77.17.476: „Wyczyść" na wspólnej linii z licznikiem (tytuł filtra w osobnym wierszu) — koniec samotnego przycisku pod spodem */
  body .eds-filter .eds-filter-head{gap:6px 10px}
  body .eds-filter .eds-filter-head .eds-filter-title{flex:1 1 100%}
}
/* v77.17.451 (część 2): PRODUCENT jako KARUZELA na mobile — pigułki w poziomym scrollu zamiast zawijania,
   ZAWSZE WIDOCZNE nad akordeonem „Filtruj wyniki" (brand wyjęty z panelu do .eds-filter). Wzorzec jak brand-bar
   w kalkulatorze GO / filtr w dziale Testy. .eds-filter jest teraz kontenerem zewnętrznym → na mobile bez własnej
   karty (chrome daje panel akordeonu), żeby head + karuzela leżały czysto na stronie. */
@media (max-width:767px){
  body .eds-filter{margin:0;border:0;box-shadow:none;background:none;padding:0}
  body .eds-filter>.eds-brandrow{flex-direction:column;align-items:stretch;gap:10px;padding-bottom:14px;margin-bottom:12px}
  body .eds-filter>.eds-brandrow>.eds-brandrow-label{align-self:flex-start}
  body .eds-brands{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;gap:8px;padding-bottom:4px}
  body .eds-brands::-webkit-scrollbar{display:none;width:0;height:0}
  body .eds-brand{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap}
  body .eds-filter>.eds-brandrow>.eds-appflt-wrap{margin:0;justify-content:space-between;width:100%}
}
/* v77.17.451 (część 4): pigułka producenta bez trafień przy aktualnych filtrach = wygaszona (sygnał „brak modeli"). */
.eds-brand.eds-brand-empty{opacity:.42}
/* v77.17.389 (feedback): koniec OSOBNEGO wiersza „Porównaj" (i na desktop, i na mobile).
   Na wąskich kartach 2-kol (≤600 px, ~146 px treści) słowo „Porównaj" + pełna cena NIE mieszczą się
   w jednym wierszu — najszersze kwoty to stacje „10 999 zł" i magazyny „63 547 zł", a pigułka ze
   słowem zjada ~85 px. Zamiast psuć cenę maleńką czcionką, na mobile pokazujemy SAM checkbox
   (aria-label na <input> trzyma dostępność dla czytników), a cena zostaje czytelna — clamp skaluje ją
   do szerokości karty. Powyżej 600 px karty 2-kol są na tyle szerokie, że pigułka ze słowem mieści się
   w wierszu ceny (reguły bazowe w eds-katalog). z-index:6 wynosi przełącznik nad overlay „cała karta
   klikalna" (media::after z-index:1), żeby tap w checkbox zaznaczał, a nie nawigował.
   Zakres: STACJE = compare w .eds-cat-price BEZ .eds-cc-corner; MAGAZYNY = .eds-cc-corner. */
@media (max-width:600px){
  /* wspólne: przełącznik klikalny nad overlayem, słowo schowane (zostaje sam checkbox) */
  body:has(.eds-filter-acc) .eds-cat-compare .eds-cc-txt{display:none}
  body:has(.eds-filter-acc) .eds-cat-compare:not(.eds-cc-corner){position:relative;z-index:6}
  /* STACJE: cena + kompaktowy checkbox w JEDNYM wierszu; cena skalowana do szerokości karty */
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-compare:not(.eds-cc-corner)):not(:has(.edm-price-detail)){flex-wrap:nowrap;gap:6px;align-items:center} /* v77.17.472: wyklucz MAGAZYNY (mają .edm-price-detail = detale w osobnym wierszu) — nowrap nakładał „Porównaj" na cenę */
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-compare:not(.eds-cc-corner)) .eds-cat-now{font-size:clamp(15px,4.8vw,20px);white-space:nowrap;flex:0 1 auto;min-width:0;letter-spacing:-.02em}
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-compare:not(.eds-cc-corner)) .eds-cat-old{font-size:10px;white-space:nowrap}
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cat-compare:not(.eds-cc-corner)) .eds-cat-pct{font-size:9px;padding:2px 5px;white-space:nowrap}
  body:has(.eds-filter-acc) .eds-cat-compare:not(.eds-cc-corner){margin-left:auto;flex:0 0 auto;padding:6px 9px;gap:0}
  /* MAGAZYNY: sam checkbox w rogu bloku ceny; cena skalowana; wąska rezerwa na pigułkę */
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cc-corner){padding-right:36px}
  body:has(.eds-filter-acc) .eds-cat-price:has(.eds-cc-corner) .eds-cat-now{font-size:clamp(15px,4.8vw,20px)}
  body:has(.eds-filter-acc) .eds-cat-compare.eds-cc-corner{top:13px;padding:6px 8px}
}
@media (max-width:767px){
  /* v77.17.210 (P2c): ukryj chip typu „ALL-IN-ONE"/„COMBO" (.edm-taxchip-kind) na mobile — deklutter kart Zestawów.
     !important, bo reguła bazowa `.eds-cat-grid.kat-zestaw .edm-taxchip-kind{display:inline-flex}` = (0,3,0). */
  body:has(.eds-filter-acc) .edm-taxchip-kind{display:none!important}
}
/* neutralizator desktopu/tabletu (≥601): filtr rozwinięty 1:1 jak dotąd, trigger niewidoczny */
@media (min-width:601px){
  .eds-filter-acc .ed-mobile-accordion-trigger{display:none}
  .eds-filter-acc{border:0;background:none;position:static}
  .eds-filter-acc .ed-mobile-accordion-panel[hidden]{display:block!important}
}

/* --- 4. CHECKOUT (≤860 = breakpoint .edo-grid): sticky pasek suma+submit (fix: .edo-summary static na mobile) --- */
.edo-mobar{display:none}
@media (max-width:860px){
  .edo-mobar{
    position:fixed;left:0;right:0;bottom:0;z-index:100;
    display:flex;align-items:center;gap:14px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(9,13,20,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    border-top:1px solid rgba(255,255,255,.14);box-shadow:0 -10px 30px rgba(0,0,0,.4);
  }
  .edo-mobar-t{display:flex;flex-direction:column;line-height:1.15;min-width:0}
  .edo-mobar-l{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(234,241,248,.55);font-weight:700}
  .edo-mobar-t b{font-family:'Sora','Inter',sans-serif;font-size:17px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
  .edo-mobar-go{
    margin-left:auto;flex:none;border:0;cursor:pointer;
    padding:12px 18px;border-radius:12px;font-weight:800;font-size:13.5px;font-family:inherit;
    background:linear-gradient(135deg,#ff874f,#ff6b2c);color:#fff;
    box-shadow:0 8px 22px -8px rgba(255,107,44,.6);
  }
  .edo-mobar-go:focus-visible{outline:2px solid #16C7F3;outline-offset:2px}
  /* rezerwa pod pasek + para pól kod/miasto (telefon/kod w wariancie magazynu) obok siebie */
  body:has(.edo-mobar) .eds-page{padding-bottom:150px!important}
  body .edo-fields{grid-template-columns:1fr 1fr}
  body .edo-fields label{grid-column:1/-1}
  body .edo-fields label.edo-half{grid-column:auto}
  /* v77.17.210 (P3): stop przycięcia checkoutu z prawej na mobile — grid items i inputy muszą zejść poniżej
     intrinsic width inputa (min-width:auto→0), input wypełnia track; długie etykiety/hinty zawijają zamiast wystawać.
     body-prefix (0,0,1,2) bije inline `.edo-fields input` (0,0,1,1) z bloku edo-css-v77163. */
  body .edo-fields label{min-width:0}
  body .edo-fields input,
  body .edo-fields textarea,
  body .edo-fields select{width:100%;min-width:0;max-width:100%}
  body .edo-fields label,
  body .edo-fields .edo-fieldhint{white-space:normal}
}

/* --- 5. KOORDYNACJA STICKY: jeden dolny pasek naraz (kontekstowy > globalna nawigacja).
       Ożywienie zamysłu .ed-hidden-by-sticky przez :has() — zero nowego JS; fallback (brak :has)
       = dotychczasowe zachowanie, przy czym pasek kontekstowy ma wyższy z-index niż nav. --- */
body:has(.eds-buybar.is-show) .ed-bottom-nav,            /* v77.17.207 (#2): PDP buybar dopiero po odsłonięciu (is-show) — nad zgięciem nav widoczny */
body:has(.edo-mobar) .ed-bottom-nav,                     /* checkout: edo-mobar */
body:has(.ed-home-live-mobile.ed-hlm-on) .ed-bottom-nav, /* kalkulator HOME: pasek wyniku widoczny */
body:has(.ed-go-sticky-reco:not([hidden])) .ed-bottom-nav,/* kalkulator GO: pasek rekomendacji */
body:has(.ed-sc-sticky:not([hidden])) .ed-bottom-nav,    /* kalkulator oszczędności */
body:has(.edxr-sticky.show) .ed-bottom-nav,              /* cena energii: mini-pasek ceny */
body:has(.eds-cmpbar.is-show) .ed-bottom-nav{            /* katalog: pasek porównywarki aktywny */
  display:none}

/* --- 5b. RCE cena energii: mini-pasek = tylko cena + pomarańczowe CTA (≤767).
       .meta (Tanio/Drogo/Spread) zawijał pigułkę na 2-3 rzędy = za wysoki pasek. --- */
@media (max-width:767px){
  .edxr-sticky .meta{display:none}
  .edxr-sticky .sticky-inner{padding:8px 12px 8px 16px;gap:12px;margin-bottom:12px;flex-wrap:nowrap}
  .edxr-sticky .now .v{font-size:16px}
  .edxr-sticky .now .v small{font-size:11px}
  .edxr-sticky .btn{flex:0 0 auto;white-space:nowrap}
}

/* --- 6. HUBY (kategoria / aktualności / testy / tematy): kompakt hero + karty poziome (port wzorca home-latest) --- */
@media (max-width:767px){
  /* hero kategorii: pasmo obrazu zamiast pełnej karty ~1.3k px */
  body.category .ed-category-hero-bg{max-height:170px}
  body.category .ed-category-hero-bg img{height:170px;object-fit:cover}
  body.category .ed-blog-hero,
  body.page-template-page-aktualnosci .ed-blog-hero,
  body.page-template-page-testy-recenzje .ed-blog-hero,
  body.page-template-page-tematy .ed-blog-hero{padding-top:18px;padding-bottom:14px}
  /* featured: przycięte media. v77.17.237: kontener dostawał min-height 260–320px, a obrazek był
     capowany do 200px → pod zdjęciem zostawała pusta przestrzeń. Kadr = dokładnie wysokość obrazka. */
  body.page-template-page-aktualnosci .ed-blog-featured-media,
  body.page-template-page-testy-recenzje .ed-blog-featured-media{min-height:0!important}
  body.page-template-page-aktualnosci .ed-blog-featured-media img,
  body.page-template-page-testy-recenzje .ed-blog-featured-media img{height:200px!important;max-height:200px!important;width:100%!important;object-fit:cover!important}
  /* listing: karta pozioma 118px miniatura + clamp (wzorzec z home-latest, mobile-v77 ~3791) */
  body.category .ed-articles-grid-full,
  body.page-template-page-aktualnosci .ed-articles-grid-full,
  body.page-template-page-testy-recenzje .ed-articles-grid-full,
  body.page-template-page-tematy .ed-articles-grid-full{grid-template-columns:1fr!important;gap:12px!important}
  body.category .ed-articles-grid-full .ed-article-card,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-card,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-card,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-card{
    display:grid!important;grid-template-columns:118px minmax(0,1fr)!important;
    min-height:0!important;align-items:stretch!important;overflow:hidden!important;position:relative!important;
  }
  body.category .ed-articles-grid-full .ed-article-thumb-wrap,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-thumb-wrap,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-thumb-wrap,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-thumb-wrap{
    position:relative!important;height:100%!important;min-height:104px!important;
    width:118px!important;min-width:0!important;max-width:118px!important;border-right:0!important;overflow:hidden!important;
  }
  body.category .ed-articles-grid-full .ed-article-thumb-wrap img,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-thumb-wrap img,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-thumb-wrap img,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-thumb-wrap img{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
  body.category .ed-articles-grid-full .ed-article-copy,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-copy,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-copy,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-copy{
    min-width:0!important;padding:10px 13px!important;display:flex!important;flex-direction:column!important;justify-content:center;gap:5px!important}
  body.category .ed-articles-grid-full .ed-article-card h3,
  body.category .ed-articles-grid-full .ed-article-card h2,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-card h3,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-card h3,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-card h3{
    font-size:.95rem!important;line-height:1.24!important;
    display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden!important}
  /* v77.17.209 (#1): kafle hubów → poziomy scroller na WSZYSTKICH landingach artykułów (Artykuły/Aktualności/Testy/Poradniki).
     v77.17.231 [6]: węższe kafle (42% = 2 pełne + WYRAŹNY peek 3. kafla) + wcześniejszy prawy fade = jasna wskazówka „przesuń w prawo". */
  body.page-template-page-tematy .ed-blog-category-boxes,
  body.page-template-page-aktualnosci .ed-blog-category-boxes,
  body.page-template-page-testy-recenzje .ed-blog-category-boxes,
  body.page-template-page-blog .ed-blog-category-boxes{
    display:flex!important;grid-template-columns:none!important;gap:10px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
    margin-left:-16px;margin-right:-16px;padding:4px 16px 12px;scrollbar-width:none;
    -webkit-mask-image:linear-gradient(to right,#000 72%,transparent 100%);
            mask-image:linear-gradient(to right,#000 72%,transparent 100%);
  }
  body.page-template-page-tematy .ed-blog-category-boxes::-webkit-scrollbar,
  body.page-template-page-aktualnosci .ed-blog-category-boxes::-webkit-scrollbar,
  body.page-template-page-testy-recenzje .ed-blog-category-boxes::-webkit-scrollbar,
  body.page-template-page-blog .ed-blog-category-boxes::-webkit-scrollbar{display:none}
  body.page-template-page-tematy .ed-blog-category-boxes>*,
  body.page-template-page-aktualnosci .ed-blog-category-boxes>*,
  body.page-template-page-testy-recenzje .ed-blog-category-boxes>*,
  body.page-template-page-blog .ed-blog-category-boxes>*{flex:0 0 42%;scroll-snap-align:start;min-width:0}

  /* v77.17.207/209 (#9a): wyśrodkuj ikonę + tytuł w kaflu kategorii (wszystkie landingi) */
  body.page-template-page-aktualnosci .ed-blog-category-box,
  body.page-template-page-testy-recenzje .ed-blog-category-box,
  body.page-template-page-tematy .ed-blog-category-box,
  body.page-template-page-blog .ed-blog-category-box{
    display:flex!important;flex-direction:column!important;
    align-items:center!important;justify-items:center;
    text-align:center;grid-template-columns:none!important}
  body.page-template-page-aktualnosci .ed-blog-category-box .ed-blog-category-box-copy,
  body.page-template-page-testy-recenzje .ed-blog-category-box .ed-blog-category-box-copy,
  body.page-template-page-tematy .ed-blog-category-box .ed-blog-category-box-copy,
  body.page-template-page-blog .ed-blog-category-box .ed-blog-category-box-copy{text-align:center}

  /* ukrycie kafli przy aktywnym wyszukiwaniu (Aktualności/Testy/Poradniki) */
  body.page-template-page-aktualnosci .ed-blog-search-mobile:has(form.is-active) ~ .ed-blog-category-boxes,
  body.page-template-page-testy-recenzje .ed-blog-search-mobile:has(form.is-active) ~ .ed-blog-category-boxes,
  body.page-template-page-blog .ed-blog-search-mobile:has(form.is-active) ~ .ed-blog-category-boxes{display:none!important}

  /* v77.17.207 (#9c): chip podkategorii na miniaturze 118px feedu — zawijanie na 2 linie zamiast ucięcia
     (długie UPPERCASE nazwy jak „Mikroinstalacje balkonowe" nie mieściły się w nowrap). */
  body.category .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip{
    left:8px!important;bottom:8px!important;
    min-height:0!important;max-width:calc(100% - 16px)!important;padding:4px 9px!important;
    font-size:.6rem!important;letter-spacing:.02em!important;line-height:1.18!important;
    white-space:normal!important;text-align:center;
    display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important}

  /* v77.17.209 (#3): krótsze etykiety podkategorii na mobile w feedzie — pokaż .edacc-short, ukryj .edacc-full */
  body.category .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-full,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-full,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-full,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-full,
  body.page-template-page-blog .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-full{display:none!important}
  body.category .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-short,
  body.page-template-page-aktualnosci .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-short,
  body.page-template-page-testy-recenzje .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-short,
  body.page-template-page-tematy .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-short,
  body.page-template-page-blog .ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-short{display:inline!important}
}
/* v77.17.209 (#3): baza (desktop + mobile poza feedem) = pełna etykieta widoczna, krótka ukryta */
.ed-article-category-chip .edacc-short{display:none}
.ed-article-category-chip .edacc-full{display:inline}

/* --- 7. ARTYKUŁY: mocniejsza separacja H2 (rytm w gęstej treści; długości NIE tniemy) --- */
@media (max-width:767px){
  body.single-post .ed-v77 .ed-entry-content h2,
  body.single-post .ed-single-card .ed-entry-content h2{
    font-size:25px!important;line-height:1.22!important;letter-spacing:-.02em;
    margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.09);
  }
  body.single-post .ed-single-card .ed-entry-content h2:first-child{margin-top:0;padding-top:0;border-top:0}
}

/* --- 8. (v77.17.205 cd.) Akordeony treści poza eds-*: foundation kalkulatorów (GO/HOME/PRO),
       „Co warto przygotować" (kontakt), „Jak to czytać" (cena energii) --- */
@media (max-width:767px){
  body .ed-fnd-acc{border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden;margin-top:14px}
  body .ed-fnd-acc .ed-mobile-accordion-panel{padding:0 14px 14px}
  body .ed-fnd-acc .ed-segment-foundation-grid{margin-top:8px}
  /* licznik w triggerze filtra katalogu */
  .ed-facc-n{display:inline-block;min-width:22px;padding:0 7px;margin-left:6px;border-radius:999px;background:rgba(22,199,243,.16);border:1px solid rgba(22,199,243,.4);color:#16C7F3;font-size:11px;line-height:20px;text-align:center;font-variant-numeric:tabular-nums}
  /* cena energii: ciaśniejsze paddingi sekcji (nadpisanie inline przez !important) */
  body .edxr section.hero{padding:28px 0 12px!important}
  body .edxr section.block{padding:0 0 40px!important}
  body .edxr section.block#calc{padding:36px 0 40px!important}
}
/* neutralizator desktopu dla .ed-fnd-acc (render 1:1 jak przed zmianą) */
@media (min-width:768px){
  .ed-fnd-acc .ed-mobile-accordion-trigger{display:none}
  .ed-fnd-acc{border:0;background:none}
  .ed-fnd-acc .ed-mobile-accordion-panel[hidden]{display:block!important}
}

/* --- v77.17.207 (#8): ujednolicenie chipów w stopce (mobile) — przycisk „Ustawienia prywatności",
       KRS i chipy „Narzędzia" spójne z chipami „Informacje"/kontaktu. Reużywa istniejący wzór pigułki. --- */
@media (max-width:767px){
  .ed-footer-block--info li.ed-footer-privacy-settings button[data-ed-consent-settings]{
    display:inline-flex!important;align-items:center!important;justify-content:center;
    width:auto!important;min-height:38px!important;margin:0!important;padding:0 12px!important;
    border-radius:999px!important;border:1px solid rgba(255,255,255,.10)!important;
    background:rgba(255,255,255,.035)!important;color:#eaf4ff!important;
    font:inherit!important;font-size:.88rem!important;line-height:1.2!important;
    text-decoration:none!important;cursor:pointer;-webkit-appearance:none;appearance:none;box-shadow:none!important}
  /* v77.17.210 (P4): chipy „Narzędzia" GĘŚCIEJ — <ul> flex-wrap + <li> reset (miał UA default block = 1/wiersz),
     <a> inline-flex size-to-content → kilka chipów w rzędzie (jak w bloku Informacje). */
  /* v77.17.224 (życzenie usera): opis marki „EnergyDock pomaga…" (w kolumnie brand, order:1) NAD sekcją
     Narzędzia → Narzędzia dostają order:2 (przed order:3 Kontakt / order:4 Informacje). */
  .ed-footer-block--tools{order:2!important}
  .ed-footer-block--tools ul{display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin:0!important;padding:0!important}
  .ed-footer-block--tools li{margin:0!important;padding:0!important;list-style:none!important;width:auto!important;min-height:0!important;border:0!important;background:transparent!important}
  .ed-footer-block--tools li a:not(.ed-footer-backtop){
    display:inline-flex!important;align-items:center!important;justify-content:center;width:auto!important;
    min-height:32px!important;padding:0 10px!important;border-radius:999px!important;
    border:1px solid rgba(255,255,255,.10)!important;background:rgba(255,255,255,.035)!important;
    color:#eaf4ff!important;font-size:.78rem!important;line-height:1.15!important;text-decoration:none!important}
  .ed-footer-block--contact li.ed-footer-contact-krs{
    display:flex!important;align-items:center!important;width:100%!important;min-height:42px!important;
    padding:0 13px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.10)!important;
    background:rgba(255,255,255,.035)!important;color:#eaf4ff!important;font-size:.92rem!important;
    line-height:1.2!important;box-sizing:border-box!important;
  }
}

/* --- v77.17.207 (#14): HOME „Jak podasz zużycie?" nad suwakiem ZUŻYCIA, nie nad PV (mobile). Desktop już OK
       (toggle w kolumnie 2 nad Rachunkiem). display:contents spłaszcza 2 wrappery → dzieci = rodzeństwo, potem order. --- */
@media (max-width:767px){
  .ed-home-rebuild .ed-home-pv-panel{display:flex!important;flex-direction:column!important;gap:14px!important}
  .ed-home-rebuild .ed-home-pv-panel .ed-home-simple-controls.ed-home-simple-controls-3col,
  .ed-home-rebuild .ed-home-pv-panel .ed-home-input-grid{display:contents!important}
  .ed-home-rebuild .ed-home-pv-panel .ed-home-flow-head{order:0}
  .ed-home-rebuild .ed-home-pv-panel .ed-home-inline-group-status{order:1}
  .ed-home-rebuild .ed-home-pv-panel #homePvPowerField{order:2}
  .ed-home-rebuild .ed-home-pv-panel .ed-home-use-group{order:3}
  .ed-home-rebuild .ed-home-pv-panel label[data-home-use-field="kwh"]{order:4}
  .ed-home-rebuild .ed-home-pv-panel #homeMonthlyBillField{order:5}
}

/* --- v77.17.208 (A5 ext.): usuń NAJBARDZIEJ ZEWNĘTRZNĄ ramkę kalkulatorów na mobile (box-in-box → wąski widok).
       Zdejmujemy border/tło/cień/radius/padding TYLKO z zewnętrznego wrappera — wewnętrzne karty zostają oprawione.
       4 wrappery różnią się klasą, więc 4 scoped reguły. Desktop (≥768) nietknięty. --- */
@media (max-width:767px){
  /* HOME (wrapper .ed-home-rebuild; .ed-tool-card tu przegrywa z jego !important) */
  .ed-home-rebuild-page .ed-home-rebuild-container{width:calc(100% - 8px)!important}
  /* tło ustawia reguła ID-owa `.ed-page-segment-home #kalkulator-home .ed-tool-card-home` (1,2,0) — trzeba dopasować ID
     i przebić: `body.ed-v77 #kalkulator-home .ed-home-rebuild` = (1,2,1). */
  body.ed-v77 #kalkulator-home .ed-home-rebuild{border:0!important;background:transparent!important;background-image:none!important;box-shadow:none!important;border-radius:0!important}
  body.ed-v77 #kalkulator-home .ed-home-rebuild::before,
  body.ed-v77 #kalkulator-home .ed-home-rebuild::after{display:none!important}
  .ed-home-rebuild-page .ed-home-rebuild .ed-home-rebuild-hero,
  .ed-home-rebuild-page .ed-home-rebuild .ed-home-calculator-shell{padding-left:4px!important;padding-right:4px!important}
  /* GO (klasa unikalna dla /energydock-go/) */
  .ed-go-v2-card{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important}
  /* DOTACJE (scoped na stronę) */
  body.ed-v77 .ed-page-kalkulator-dotacji .ed-grants-stepper{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  body.ed-v77 .ed-page-kalkulator-dotacji .ed-grants-step{padding-left:0!important;padding-right:0!important}
  /* PRO (`.ed-tool-card` jest generyczne → MUSI być scoped na sekcję PRO) */
  body.ed-v77 #checklista-pro .ed-tool-card{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important;overflow:visible!important}
}

/* --- v77.17.209 (#2): STRONA GŁÓWNA — kafle hubów „Znajdź temat" z siatki 2-kol (4 rzędy) na poziomy scroller
       ze snapem (wzorzec landingów). Ten sam prefiks `.ed-page-home-test .ed-home-hubs-grid` (0,2,0) co reguła bazowa
       !important + ładowanie później = wygrywa. Tylko ≤767; desktop bez zmian. --- */
@media (max-width:767px){
  .ed-page-home-test .ed-home-hubs-grid{
    display:flex!important;grid-template-columns:none!important;gap:12px!important;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;
    margin-left:-16px;margin-right:-16px;padding:4px 16px 12px;scrollbar-width:none;align-items:stretch;
    -webkit-mask-image:linear-gradient(to right,#000 82%,transparent 100%);
            mask-image:linear-gradient(to right,#000 82%,transparent 100%);
  }
  .ed-page-home-test .ed-home-hubs-grid::-webkit-scrollbar{display:none}
  .ed-page-home-test .ed-home-hubs-grid>.ed-home-hub-card{flex:0 0 46%;scroll-snap-align:start;min-width:0}
}

/* v77.17.224 #14/#16: nadmiarowy odstęp header→eyebrow naprawiony u ŹRÓDŁA — reguła
   `.ed-page-segment .ed-hero-grid-premium-integrated` (linia ~2163) zredukowana z 72px do 28px,
   spójnie z resztą segmentów (linia ~2458). Nie dokładamy tu szerokiej reguły niskiej
   specyficzności, bo przegrywała z regułami segmentowymi i mogła ruszać nie-segmentowe hero. */

/* v77.17.224 #12: sticky mini-podsumowanie kalkulatora GO (TYLKO mobile ≤767px).
   Pojawia się, gdy obraz stacji z panelu wyniku zniknie u góry (pod fixed-headerem).
   Obraz stacji + „Pojemność z zapasem" obok, pod spodem mini pasek mocy do regulacji. */
/* v77.17.384 (feedback): GO ma mieć TYLKO dolne sticky (goStickyReco). Górne mini-podsumowanie (#goV2StickySummary,
   fixed top) WYŁĄCZONE — user widział górne zamiast dolnego. */
.ed-go-v2-sticky-summary{display:none!important}
@media(max-width:767px){
  .ed-go-v2-sticky-summary:not([hidden]){
    display:flex;flex-direction:column;gap:8px;
    position:fixed;left:0;right:0;top:72px;z-index:9990;   /* JS nadpisuje top = spód headera; header ma z-index 9999 */
    padding:9px 14px 11px;
    background:rgba(7,17,24,.97);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(122,196,210,.20);
    box-shadow:0 12px 28px rgba(0,0,0,.42);
    animation:edGoStickyIn .18s ease;
    transition:transform .26s ease, opacity .26s ease;/* v77.17.232 [1]: płynne chowanie przy scrollu w górę */
  }
  .ed-go-v2-sticky-summary.is-scroll-hidden{transform:translateY(-122%)!important;opacity:0!important;pointer-events:none!important}
  .ed-go-v2-sticky-main{display:flex;align-items:center;gap:12px}
  .ed-go-v2-sticky-img,.ed-go-v2-sticky-imgph{width:46px;height:46px;flex:0 0 auto;border-radius:9px;background:rgba(255,255,255,.05)}
  .ed-go-v2-sticky-img{object-fit:contain}
  .ed-go-v2-sticky-imgph{display:flex;align-items:center;justify-content:center;color:#7AC4D2}
  .ed-go-v2-sticky-imgph[hidden]{display:none!important}/* v77.17.231 [4]: gdy realna miniatura się załaduje, JS ustawia hidden — bez tego guardu display:flex nadpisywał [hidden]{display:none} i ikona-placeholder wisiała obok zdjęcia */
  .ed-go-v2-sticky-cap{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1 auto}
  .ed-go-v2-sticky-caplabel{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:#7FA7B2;line-height:1.2}
  .ed-go-v2-sticky-cap strong{font-size:17px;color:#EAF2F4;line-height:1.15}
  .ed-go-v2-sticky-class{font-size:11.5px;color:#9FB7BE;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* v77.17.227 [E]: mini pasek mocy jak główny suwak GO — gradient cyan→niebieski→orange + biały knob z cyan obwódką */
  .ed-go-v2-sticky-meter{position:relative;height:12px;border-radius:999px;background:rgba(255,255,255,.10);overflow:visible;cursor:ew-resize;touch-action:pan-y;margin:3px 8px 3px 0}
  .ed-go-v2-sticky-meter>i{position:absolute;left:0;top:0;bottom:0;width:4%;border-radius:999px;background:linear-gradient(90deg,#16C7F3 0%,#1fa3ff 58%,#ff6b2c 100%);transition:width .12s ease}
  .ed-go-v2-sticky-meter>i::after{content:"";position:absolute;right:0;top:50%;width:18px;height:18px;transform:translate(50%,-50%);border-radius:50%;background:#fff;border:5px solid #20cfff;box-shadow:0 0 0 3px rgba(32,207,255,.16),0 6px 14px rgba(0,0,0,.32)}
  .ed-go-v2-sticky-meter.is-dragging>i{transition:none}
  @keyframes edGoStickyIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
}

/* v77.17.224 #15: rekomendacje HOME (#dopasowanie) jako POZIOMA KARUZELA na mobile + kompresja kart.
   Wcześniej .edhm-cards = pionowy grid 1-kol (długa lista). Teraz przewijana w bok, karta ~82% szer. */
@media(max-width:767px){
  #edHomeRecommend .edhm-cards{
    display:flex!important;grid-template-columns:none!important;
    gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;scroll-padding-left:16px;
    margin-left:-16px;margin-right:-16px;padding:4px 16px 12px;
    scrollbar-width:none;
    -webkit-mask-image:linear-gradient(to right,#000 84%,transparent 100%);
            mask-image:linear-gradient(to right,#000 84%,transparent 100%);
  }
  #edHomeRecommend .edhm-cards::-webkit-scrollbar{display:none}
  #edHomeRecommend .edhm-card{flex:0 0 82%;scroll-snap-align:start;min-width:0;transform:none!important;padding:16px 15px}
  #edHomeRecommend .edhm-card.is-best{transform:none!important}   /* w karuzeli nie skalujemy środkowej (rozbija snap) */
  /* kompresja karty */
  #edHomeRecommend .edhm-card-media{height:96px}
  #edHomeRecommend .edhm-card-media img{max-height:88px}
  #edHomeRecommend .edhm-card-title{font-size:1rem;margin-bottom:10px}
  #edHomeRecommend .edhm-card-specs{font-size:.8rem}
  #edHomeRecommend .edhm-card-specs dt,#edHomeRecommend .edhm-card-specs dd{padding:5px 0}
  #edHomeRecommend .edhm-card-roi{padding:8px 0}
}

/* v77.17.224 #17: CTA w dolnym sticky HOME — pomarańczowe (kolor ogniskowy) + prowadzi do rekomendacji.
   Kotwica #dopasowanie z zapasem pod fixed-header (żeby sekcja nie chowała się pod nagłówkiem). */
#dopasowanie{scroll-margin-top:calc(86px + env(safe-area-inset-top))}
@media(max-width:767px){
  .ed-home-live-mobile .ed-hlm-cta{
    margin-left:auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
    background:linear-gradient(135deg,#ff8a3c,#ff6a1a)!important;color:#fff!important;
    font-weight:700;font-size:13.5px;padding:9px 15px;border-radius:999px;text-decoration:none;
    box-shadow:0 6px 16px -4px rgba(255,122,26,.6);
  }
  .ed-home-live-mobile .ed-hlm-cta i{font-style:normal}
  .ed-home-live-mobile .ed-hlm-cta:hover{filter:brightness(1.06)}
}

/* v77.17.227 [B]: usuń dolny bottom-nav („Omów dobór") na kalkulatorach HOME i GO — zostaje TYLKO sticky wyniku kalkulatora. */
body.page-template-page-energydock-home .ed-bottom-nav,
body.page-template-page-energydock-go .ed-bottom-nav{display:none!important}

/* v77.17.227 [3]: mobilny HOME zaczyna się WPROST od kalkulatora — ukryty cały hero (z H1 „Magazyn energii
   do domu…") i sekcja foundation (żądanie usera). Kalkulator = pierwsza sekcja pod headerem. */
@media(max-width:767px){
  body.page-template-page-energydock-home .ed-home-segment-hero,
  body.page-template-page-energydock-home .ed-segment-foundation{display:none!important}
  body.page-template-page-energydock-home #kalkulator-home{padding-top:16px!important}
  /* [4] karty rekomendacji magazynów: bez CTA (cała karta klikalna → strona produktu, listener w home-calc) */
  body.page-template-page-energydock-home #edHomeRecommend .edhm-card-cta{display:none!important}
  /* [5] usuń dużą pustą przerwę między „Co oznacza wynik" a sekcją „Krok 2 · rekomendacja" (#dopasowanie) */
  body.page-template-page-energydock-home #dopasowanie{padding-top:6px!important;margin-top:0!important}
  body.page-template-page-energydock-home .ed-home-rebuild-section{padding-bottom:8px!important}
}

/* v77.17.231 [2]: mobilny GO zaczyna się WPROST od „Kalkulator przenośnej stacji" (#runtime) — ukryty hero
   (z H1) i sekcja foundation; kalkulator = pierwsza sekcja pod headerem, bez pustej przestrzeni na górze
   (analogicznie do HOME). H1 zostaje w markupie dla SEO. */
@media(max-width:767px){
  body.page-template-page-energydock-go .ed-go-segment-hero,
  body.page-template-page-energydock-go .ed-segment-foundation{display:none!important}
  body.page-template-page-energydock-go #runtime{padding-top:16px!important}
}

/* v77.17.231 [3]: KONIEC pułapki scrolla GO na mobile. Panel wyniku `.ed-go-v2-result` (zawiera obraz stacji)
   był `position:sticky` + `max-height:calc(100vh-…)` + `overflow-y:auto` + `overscroll-behavior:contain` (układ
   desktop-sidebar) BEZ nadpisania mobilnego → na telefonie treść panelu > max-height, więc panel stawał się
   własnym kontenerem scrolla i ŁAPAŁ gest kciuka przy obrazie stacji, a `overscroll-behavior:contain` blokował
   przewijanie STRONY (scroll „wracał", dopiero po wyczerpaniu scrolla panelu strona ruszała). Odsztywniamy panel
   na mobile → cała strona przewija się naturalnie. */
@media(max-width:767px){
  body.ed-v77 .ed-go-v2-result,
  body.ed-v77 .ed-go-v2-result--home{
    position:static!important;top:auto!important;max-height:none!important;
    overflow:visible!important;overscroll-behavior:auto!important;
    align-self:auto!important;z-index:auto!important;
    /* v77.17.375 (mobile fix): panel wyniku POD konfiguracją (pod sekcją 4 „Ładowanie"/paskiem mocy paneli).
       style.min.css (@media≤1100px) daje order:-1 (winduje wynik na górę) — tu nadpisujemy na order:2, żeby wynik
       przeszedł POD .ed-go-v2-config w jednokolumnowym gridzie .ed-go-v2-layout. Feedback iPhone Air. */
    order:2!important;
  }
}

/* v77.17.383 (feedback): GO przycinał treść z PRAWEJ — grid-item .ed-go-v2-config miał min-width:auto i szeroka,
   niezawijana zawartość (brandbar) rozpychała go poza kartę. min-width:0 pozwala zmieścić się w karcie. */
@media(max-width:767px){
  .ed-go-v2-layout, .ed-go-v2-layout > *, .ed-go-v2-config, .ed-go-v2-result{min-width:0!important}
  .ed-go-v2-config, .ed-go-v2-brandbar, .ed-go-v2-brand-btns, .ed-go-v2-scenario-grid, .ed-go-v2-head{min-width:0!important;max-width:100%!important}
}

/* v77.17.227 [6]: „Porównaj szczegółowo" (tabela porównania w rekomendacji HOME) — kompresja + czytelność mobile. */
@media(max-width:767px){
  #edHomeRecommend .edhm-cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px}
  #edHomeRecommend .edhm-cmp-t{font-size:12px}
  #edHomeRecommend .edhm-cmp-t th,#edHomeRecommend .edhm-cmp-t td{padding:6px 8px!important}
  #edHomeRecommend .edhm-cmp-thumb{display:none!important} /* miniatury w nagłówku tabeli → na mobile zostaje sama nazwa */
  #edHomeRecommend .edhm-cmp-name{font-size:11.5px;line-height:1.2;white-space:normal}
  #edHomeRecommend .edhm-cmp-grp th{font-size:10.5px!important;padding:7px 8px 3px!important;letter-spacing:.02em;text-align:left!important}/* v77.17.384 (feedback): tytuły sekcji po lewej */
  #edHomeRecommend .edhm-cmp-h4{font-size:16px}
  /* v77.17.382 (P2-02): etykiety parametrów NIE mogą wyjeżdżać poza wąską kolumnę na mobile — pozwól zawijać. */
  #edHomeRecommend .edhm-cmp-param{white-space:normal;font-size:11.5px;line-height:1.2;overflow-wrap:anywhere}
  #edHomeRecommend .edhm-cmp-t td{overflow-wrap:anywhere;word-break:break-word}
  #edHomeRecommend .edhm-cmp-body{padding:12px 12px 14px!important}
}

/* v77.17.227 [1]: feed artykułów — WIĘKSZA miniatura (118→146px) + chip kategorii zawsze mieszczący się
   (mniejszy font, zawijanie do 2 linii bez ucinania słowa). Nie dotyczy home (inny kontener). */
/* v77.17.231 [7]: karty feedów (Artykuły/Poradniki/Newsy/Testy) — JEDEN spójny układ poziomy na mobile.
   Zastępuje v227 [1]. Naprawia „rozjechane": chip kategorii nie miał NIGDZIE `position` (offsety left/bottom
   były martwe → chip w normalnym flow) → teraz absolutny, przypięty do dołu zdjęcia na foto-scrimie, krótka
   1-liniowa pigułka z wielokropkiem. Ujednolica też Poradniki/Home (były foto-na-górze) do układu poziomego.
   Tytuł 2 linie, miniatura 132px, treść wyśrodkowana pionowo. */
@media(max-width:767px){
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full{grid-template-columns:1fr!important;gap:12px!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card{
    display:grid!important;grid-template-columns:132px minmax(0,1fr)!important;
    align-items:stretch!important;position:relative!important;overflow:hidden!important;
    border-radius:16px!important;min-height:0!important;
  }
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-thumb-wrap{
    position:relative!important;width:132px!important;min-width:132px!important;max-width:132px!important;
    height:auto!important;min-height:112px!important;aspect-ratio:auto!important;overflow:hidden!important;margin:0!important;border-right:0!important;border-radius:0!important;
  }
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-thumb,
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-thumb-wrap img,
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-noimg{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;display:block!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-thumb-wrap::after{
    content:""!important;position:absolute!important;left:0;right:0;bottom:0;height:60%!important;
    background:linear-gradient(to top,rgba(4,10,17,.88),rgba(4,10,17,0))!important;pointer-events:none!important;z-index:1}
  /* chip: przypięty do dołu miniatury (fix braku position); .ed-article-thumb-wrap w selektorze = wyższa specyficzność niż stare reguły */
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip{
    position:absolute!important;left:7px!important;bottom:7px!important;top:auto!important;right:auto!important;z-index:2!important;
    margin:0!important;min-height:0!important;max-width:calc(100% - 14px)!important;
    padding:3px 8px!important;border-radius:999px!important;
    font-size:9.5px!important;font-weight:800!important;letter-spacing:.03em!important;line-height:1.15!important;
    /* v77.17.240: pełna nazwa kategorii bez przycięcia — zawijanie do 2 linii zamiast 1 z wielokropkiem.
       v77.17.488 (życzenie usera): NIE łamiemy słów w połowie — keep-all + overflow-wrap:normal → podział
       tylko przy spacji (np. „AUTOKONSUMPCJA" / „PV"), a nie „AUTOKONSUMPCJ" / „A". */
    white-space:normal!important;word-break:keep-all!important;overflow-wrap:normal!important;overflow:hidden!important;text-overflow:clip!important;
    display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;text-align:center!important;
    background:rgba(7,17,29,.80)!important;border:1px solid rgba(22,199,243,.28)!important;color:var(--ed-cyan)!important;
    -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  }
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-full{display:none!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-thumb-wrap .ed-article-category-chip .edacc-short{display:inline!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-copy{
    display:flex!important;flex-direction:column!important;justify-content:center!important;
    min-width:0!important;padding:10px 13px!important;gap:6px!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-copy>p{display:none!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card h2,
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card h3{
    margin:0!important;font-size:13px!important;line-height:1.26!important;letter-spacing:-.01em!important}/* v77.17.232: mniejsza czcionka tytułu = więcej tekstu w 2 liniach, mniej ucięć */
  /* klamra 2-linii na WEWNĘTRZNYM <a>: .ed-article-copy jest flex-kolumną → h2 to flex-item, a Blink blokifikuje
     na nim `-webkit-box` do `flow-root` i klamra nie działa. Anchor (dziecko h2, nie flex-item) klamruje poprawnie. */
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card h2 a,
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card h3 a{
    /* v77.17.243: 3→4 linie tytułu na feedzie. Karty na mobile to jedna kolumna (stos) — różne wysokości kart
       są OK, a ważniejsze jest, żeby długie tytuły („…Porównanie producentów magazynów energii", „…przegląd
       naszych zestawów") NIE były ucinane. Krótkie tytuły i tak zajmują mniej linii (clamp = maksimum, nie pad).
       Obejmuje też kartę wyróżnioną `.is-featured` (ma zapas wysokości w kolumnie treści). */
    display:-webkit-box!important;-webkit-line-clamp:4!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
  /* v77.17.247: chip RODZAJU (NEWS/PORADNIK/TEST) WRACA do kolumny treści (v246 „w róg miniatury" zasłaniał
     na karcie wyróżnionej badge „POLECANA ŚCIEŻKA"). Teraz jest w OSOBNYM wierszu NAD datą: meta = blok,
     chip = block width:fit-content (własny wiersz), a data•czas płyną pod nim w jednej linii. */
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-meta{
    display:block!important;white-space:nowrap!important;font-size:10.5px!important;line-height:1.25!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-meta .ed-reading-time-compact{white-space:nowrap!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card .ed-hub-fmt{
    /* v77.17.248: ujemny lewy margines = lewy padding pigułki → TEKST chipu wyrównany do daty/tytułu poniżej
       (pigułka ma padding, więc jej tekst był wcięty ~9px względem tekstu w wierszu pod nią). */
    position:static!important;display:block!important;width:-moz-fit-content!important;width:fit-content!important;
    margin:0 0 5px -9px!important;font-size:9.5px!important;font-weight:800!important;letter-spacing:.06em!important;
    padding:3px 9px!important;border-radius:999px!important;line-height:1.2!important;vertical-align:baseline!important;
    color:#16c7f3!important;background:rgba(22,199,243,.14)!important;border:1px solid transparent!important;
    -webkit-backdrop-filter:none;backdrop-filter:none}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card .ed-hub-fmt-news{color:#ff9d5f!important;background:rgba(255,107,44,.14)!important}
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-article-card .ed-hub-fmt-test{color:#eaf1f4!important;background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.18)!important}
  /* v77.17.247: badge „Polecany przewodnik / Polecana ścieżka" na karcie wyróżnionej — w JEDNEJ linii (był 2
     wiersze). Miniatura ma 132px, więc nowrap + font 8px mieści najdłuższy wariant (19 znaków). Bezpiecznik:
     max-width + ellipsis, gdyby kiedyś pojawił się dłuższy badge (nie wyleje się na kolumnę treści). */
  body.ed-v77 .ed-articles-grid.ed-articles-grid-full .ed-featured-badge-thumb{
    white-space:nowrap!important;font-size:8px!important;letter-spacing:.02em!important;padding:3px 8px!important;
    line-height:1.3!important;left:6px!important;max-width:calc(100% - 12px)!important;
    overflow:hidden!important;text-overflow:ellipsis!important}
}

/* v77.17.382 (P2-10 part 1): wykres RCE miesięczny (.edxr-rcem-chart svg) był SPŁASZCZONY poziomo — viewBox 1000×240
   (ratio 4,17) z preserveAspectRatio="none" wtłoczony w wąski kontener (~293px) rozciągał treść. Zamiast tego trzymamy
   PROPORCJĘ (width:auto z wysokości → ~708px) i przewijamy poziomo w kontenerze (tekst czytelny, brak zniekształcenia). */
@media(max-width:767px){
  .edxr .edxr-rcem-chart, .edxr-rcem-chart{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .edxr .edxr-rcem-chart svg, .edxr-rcem-chart svg{height:170px!important;width:auto!important;min-width:0!important;max-width:none!important}
}

/* v77.17.231 [5]: tabela RCEm miesięczna (/cena-energii-dzis/, .edxr-rcem z inc/rcem-monthly) — na mobile mieści
   się na CAŁĄ szerokość ekranu, bez ucięcia z prawej. Strona ma własny inline <style> (ukrywa kol. 3 zł/kWh ≤640px),
   ale 3 pozostałe kolumny i tak wychodziły poza ekran (nowrap miesiąc + chip „najnowszy"). Nadpisujemy wyższą
   specyficznością: table-layout:fixed + zawijanie 1. kolumny + mniejsze paddingi/chip. */
@media(max-width:640px){
  body.ed-v77 .edxr-rcem table{table-layout:fixed!important;width:100%!important}
  body.ed-v77 .edxr-rcem thead th,
  body.ed-v77 .edxr-rcem tbody td{padding:10px 7px!important;overflow:hidden!important}
  body.ed-v77 .edxr-rcem tbody td:first-child,
  body.ed-v77 .edxr-rcem thead th:first-child{width:44%!important;white-space:normal!important;word-break:normal;overflow-wrap:anywhere}
  body.ed-v77 .edxr-rcem .v{font-size:.94rem!important}
  body.ed-v77 .edxr-rcem .bar{max-width:76px!important}
  body.ed-v77 .edxr-rcem .chip-new{margin-left:5px!important;padding:2px 6px!important;font-size:.52rem!important}
  body.ed-v77 .edxr-rcem-card{overflow-x:hidden!important}
}

/* v77.17.232 [5]: dolne sticky HOME (#homeLiveMobile) było position:sticky w sekcji kalkulatora → znikało już
   przy „Co oznacza wynik?". Zmiana na fixed + chowanie DOPIERO gdy sekcja rekomendacji #dopasowanie wjedzie w ekran
   (klasa .ed-hlm-off dodawana przez IntersectionObserver w page-energydock-home.php). */
@media(max-width:767px){
  body.page-template-page-energydock-home .ed-home-live-mobile{
    position:fixed!important;left:12px!important;right:12px!important;bottom:12px!important;margin:0!important;
    transition:transform .28s ease, opacity .28s ease;
  }
  body.page-template-page-energydock-home .ed-home-live-mobile.ed-hlm-off{
    transform:translateY(160%)!important;opacity:0!important;pointer-events:none!important;
  }
}

/* v77.17.233: tabele w artykułach — koniec dzielenia wyrazów w nagłówkach („fa-low-nika") na desktop i mobile.
   Balancer (`.ed-table-optimized`) już zeruje stare min-width kolumn i ustawia table-layout:fixed → colgroup
   z computeColWidths jest honorowany; tu tylko wyłączamy hyphens i domykamy fixed-layout dla pewności. */
body.ed-v77 .ed-entry-content table th,
body.ed-v77 .ed-entry-content table td{-webkit-hyphens:none!important;hyphens:none!important;overflow-wrap:break-word;word-break:normal}
body.ed-v77 .ed-entry-content table.ed-table-optimized,
body.ed-v77 .ed-entry-content .ed-table-scroll table.ed-table-optimized{table-layout:fixed!important}

/* v77.17.233: na mobile zoptymalizowana tabela używa SWOJEJ docelowej szerokości (--ed-table-mobile-width z
   getMobileWidth), a nie starego min-width:660 — kolumny mają miejsce, nagłówki się nie łamią; przewijanie
   poziome i tak przez .ed-table-scroll. Wyższa specyficzność niż reguła single-post (0,5,2 > 0,4,2). */
@media(max-width:767px){
  body.ed-v77.single-post .ed-entry-content table.ed-table-optimized,
  body.ed-v77.single .ed-entry-content table.ed-table-optimized{
    width:var(--ed-table-mobile-width,680px)!important;min-width:var(--ed-table-mobile-width,680px)!important;
  }
  /* v77.17.450: padding poziomy tabel optymalizowanych na mobile ujednolicony do 11px — TAKI SAM jak na
     desktopie (blok @media min-width:901px), więc oddech komórek jest spójny na obu szerokościach. Zmieszczenie
     najdłuższego słowa nagłówka gwarantuje teraz POMIAROWA podłoga kolumn w JS (computeColWidths mierzy realną
     szerokość słowa w px i poszerza kolumnę), więc nie trzeba już ściskać paddingu. Swoistość 0,6,3 > cols-N i baza. */
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll table.ed-table-optimized th,
  body.ed-v77.single-post .ed-entry-content .ed-table-scroll table.ed-table-optimized td,
  body.ed-v77.single .ed-entry-content .ed-table-scroll table.ed-table-optimized th,
  body.ed-v77.single .ed-entry-content .ed-table-scroll table.ed-table-optimized td{
    padding-left:11px!important;padding-right:11px!important;
  }
}

/* ============================================================================
   v77.17.237 — poprawki mobilne (batch): tabele + chipy PDP + featured
   ============================================================================ */
@media (max-width:767px){
  /* [8] Jednolity rozmiar czcionki w komórkach tabel artykułów. th miało .84rem (14px),
     td .94rem (15px) → w tym samym wierszu nagłówek/wartość (albo nagłówek-wiersza/wartość)
     różniły się rozmiarem. Ujednolicamy th=td (waga zostaje: th pogrubione). Wysoka
     specyficzność, bo reguła td 15px siedzi w CSS z CDN (poza zasięgiem zwykłych selektorów). */
  html body.ed-v77 .ed-entry-content table td,
  html body.ed-v77 .ed-entry-content table th,
  html body.ed-v77 .ed-entry-content table.ed-table-optimized td,
  html body.ed-v77 .ed-entry-content table.ed-table-optimized th,
  html body.ed-v77 .ed-entry-content table.ed-table-balanced td,
  html body.ed-v77 .ed-entry-content table.ed-table-balanced th{
    font-size:14px !important;
    /* v77.17.438: iOS Safari „font boosting" powiększał tekst w SZEROKIEJ kolumnie („Wartość") tabeli także w PIONIE
       (text-size-adjust:100% było dotąd tylko dla orientation:landscape). Wymuszamy rozmiar z CSS w komórkach tabel
       artykułów, żeby czcionka „Wartość" nie puchła względem sąsiedniej kolumny. Reszta portretu nietknięta. */
    -webkit-text-size-adjust:100% !important; text-size-adjust:100% !important;
  }

  /* [10] Chipy specyfikacji I wyróżniki produktów zawijają się poziomo, KAŻDY chip = szerokość treści
     (nie rozciągany). v77.17.239: siatka 2-kol z v238 rozciągała krótkie chipy („Praca off-grid",
     „Aplikacja mobilna") do połowy szerokości → chip dużo większy niż tekst. Wracamy do flex-wrap
     z `flex:0 0 auto` (rozmiar dokładnie pod tekst) i upakowaniem po szerokości wiersza.
     v77.17.244: ciaśniejsze upakowanie — gap 7→5 i poziomy padding chipa 9→7px. Dzięki temu dwa chipy,
     które wcześniej minimalnie NIE mieściły się w wierszu (np. „Ładowanie z nadwyżek PV" 181px +
     „Zarządzanie energią (EMS)" 183px = 364 > 363), pakują się w jeden wiersz → „Praca off-grid" i
     „Aplikacja mobilna" nie lądują już w osobnych wierszach (3→2 wiersze wyróżników). */
  body .eds-chips, body .edm-inv-badges,
  body .eds-shell .eds-chips, body .eds-shell .edm-inv-badges{
    display:flex !important; flex-wrap:wrap !important; grid-template-columns:none !important; align-items:flex-start !important; gap:5px !important;
  }
  body .eds-chip, body .edm-inv-badge,
  body .eds-shell .eds-chip, body .eds-shell .edm-inv-badge{
    flex:0 0 auto !important; width:auto !important; max-width:100% !important; min-width:0 !important;
  }
  body.ed-v77 .eds-chips>*, body.ed-v77 .edm-inv-badges>*,
  body.ed-v77 .eds-shell .eds-chips>*, body.ed-v77 .eds-shell .edm-inv-badges>*{
    padding-left:7px !important; padding-right:7px !important;
  }

  /* [11] HEMS „Pełna kontrola w Twojej kieszeni" — 4 kafle 2×2 zamiast 4 wierszy w jednej kolumnie
     (style.min.css robił z nich 1fr na ≤760px; nadpisujemy tu, żeby nie ruszać pliku innego wątku). */
  .ed-hems-v7810-feature-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:12px !important; }
  .ed-hems-v7810-feature-grid span{ padding:14px !important; }
}

/* ============================================================================
   v77.17.246 — meta artykułu (mobile): DWA chipy kategorii (główna + podkategoria) w jednym wierszu
   ============================================================================ */
@media (max-width:767px){
  /* HISTORIA: v241 chował kategorię-rodzica (tylko podkategoria). v246 (życzenie): pokazujemy OBA chipy —
     kategorię GŁÓWNĄ (po lewej) + podkategorię — obok siebie w JEDNYM wierszu; data + czas czytania schodzą
     pod nie jako lekki caption. UWAGA specyficzność: baza (style.min.css/CDN, INNY wątek) ma DEDYKOWANY zestaw
     reguł „na single-hero mobile pokaż tylko OSTATNI chip":
        body.ed-v77.single(-post) .ed-single-hero .ed-article-meta-cats .ed-article-meta-link{display:none} (0,6,1)
        …:last-of-type{display:inline-flex} (0,7,1)
     żeby ODSŁONIĆ rodzica trzeba je przebić — stąd selektor z `.ed-single-hero` + `:not(.ed-zz)` = 0,6,2 (wygrywa
     nad 0,6,1). Separator „•" ukryty (dwie osobne pigułki); font 10px, żeby oba zmieściły się w wierszu. */
  html body.ed-v77.single .ed-article-meta-row,
  html body.ed-v77.single-post .ed-article-meta-row{
    flex-direction:row !important; flex-wrap:wrap !important; white-space:normal !important;
    overflow:visible !important; text-overflow:clip !important; align-items:center !important; gap:5px 8px !important;
  }
  html body.ed-v77.single .ed-single-hero .ed-article-meta-cats,
  html body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats,
  html body.ed-v77.single .ed-article-meta-cats,
  html body.ed-v77.single-post .ed-article-meta-cats{
    display:inline-flex !important; flex-wrap:wrap !important; align-items:center !important; gap:5px !important;
    overflow:visible !important; white-space:normal !important; max-width:100% !important; text-overflow:clip !important;
  }
  /* separator „•" między chipami kategorii ukryty (dwie osobne pigułki) */
  html body.ed-v77.single .ed-single-hero .ed-article-meta-cats .ed-article-meta-divider,
  html body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats .ed-article-meta-divider,
  html body.ed-v77.single .ed-article-meta-cats .ed-article-meta-divider,
  html body.ed-v77.single-post .ed-article-meta-cats .ed-article-meta-divider{ display:none !important; }
  /* OBA chipy widoczne (rodzic + dziecko) i JEDNAKOWEJ WYSOKOŚCI. Baza (INNY wątek) daje dziecku osobny styl
     przez `…meta-link:last-of-type` (0,7,1) → rodzic i dziecko miały różną wysokość. `.ed-single-hero` +
     `:not(.ed-zz):not(.ed-zy)` = 0,7,2 przebija to i nadaje OBU identyczny box (inline-flex, ten sam padding/
     font/line-height) → równa wysokość. */
  html body.ed-v77.single .ed-single-hero .ed-article-meta-cats .ed-article-meta-link:not(.ed-zz):not(.ed-zy),
  html body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats .ed-article-meta-link:not(.ed-zz):not(.ed-zy),
  html body.ed-v77.single .ed-article-meta-cats .ed-article-meta-link,
  html body.ed-v77.single-post .ed-article-meta-cats .ed-article-meta-link{
    display:inline-flex !important; align-items:center !important; white-space:nowrap !important;
    font-size:10px !important; letter-spacing:.3px !important; padding:4px 9px !important; line-height:1.2 !important; min-height:0 !important;
  }
  /* data + czas czytania = lekki caption pod chipami kategorii */
  html body.ed-v77.single .ed-article-meta-info,
  html body.ed-v77.single-post .ed-article-meta-info,
  html body.ed-v77.single .ed-article-meta-info *,
  html body.ed-v77.single-post .ed-article-meta-info *{
    font-weight:600 !important; font-size:10.5px !important; letter-spacing:.2px !important;
  }
}

/* ====================================================================
 * v77.17.416 — ORIENTACJA POZIOMA / NISKI VIEWPORT (telefon w poziomie)
 * Nagłówek zjadał ~24% wysokości krótkiego ekranu (104px @ 430px) → strona
 * ciężka w obsłudze. Kompaktujemy pasek: niższe menu/dropdowny, mniejsze logo
 * i przyciski. Próg max-height:500px łapie telefony w poziomie (nie tablety,
 * których wysokość landscape ≥768px). Zweryfikowane live: 104→64px (24%→15%).
 * ==================================================================== */
@media (max-height: 500px) {
  body.ed-v77 .ed-header { padding-top: 0 !important; padding-bottom: 0 !important; }
  body.ed-v77 .ed-header .ed-container.ed-nav,
  body.ed-v77 .ed-header .ed-container { padding-top: 2px !important; padding-bottom: 2px !important; min-height: 0 !important; height: auto !important; }
  /* menu desktopowe: niższy pasek + pozycje (dropdowny mają na stałe 70px) */
  body.ed-v77 .ed-header .ed-menu.ed-menu-architecture { height: 46px !important; min-height: 0 !important; align-items: center !important; }
  body.ed-v77 .ed-header .ed-nav-dropdown { height: 46px !important; min-height: 0 !important; }
  body.ed-v77 .ed-header .ed-menu a,
  body.ed-v77 .ed-header .ed-nav-dropdown-trigger { line-height: 1.15 !important; font-size: 13.5px !important; }
  /* logo mniejsze */
  body.ed-v77 .ed-header .ed-logo-mark img,
  body.ed-v77 .ed-header picture img,
  body.ed-v77 .ed-header .ed-logo img { height: 24px !important; width: auto !important; }
  body.ed-v77 .ed-logo-final, body.ed-v77 .ed-logo-mark-final { height: auto !important; min-height: 0 !important; }
  /* mobilne ikony (kalkulator/telefon/hamburger) + przyciski akcji headera */
  body.ed-v77 .ed-mobile-calc-icon,
  body.ed-v77 .ed-mobile-phone-icon,
  body.ed-v77 .ed-mobile-toggle { width: 36px !important; height: 36px !important; }
  body.ed-v77 .ed-btn-nav,
  body.ed-v77 .ed-header .ed-btn { padding-top: 8px !important; padding-bottom: 8px !important; font-size: 13px !important; }
  /* otwarty dropdown/mega-menu nie może przekroczyć niskiego ekranu — przewijaj w środku */
  body.ed-v77 .ed-header .ed-nav-dropdown-panel,
  body.ed-v77 .ed-header .ed-mega,
  body.ed-v77 .ed-header [class*="dropdown-panel"] { max-height: calc(100vh - 54px) !important; overflow-y: auto !important; }
}

/* v77.17.419 (życzenie usera): na mobile box „Rekomendowany zakres" (.ed-home-live-main) NIŻSZY — mniej pustej
   przestrzeni wokół wartości (był min-height:190px + padding 28/24). Wartość zostaje wyraźna, box się kompaktuje. */
@media (max-width: 767px) {
  body.ed-v77 .ed-home-live-main { min-height: 0 !important; padding: 15px 16px 14px !important; }
  body.ed-v77 .ed-home-live-main span { margin-bottom: 5px !important; }
  body.ed-v77 .ed-home-live-main strong { font-size: clamp(2rem, 8.5vw, 2.55rem) !important; line-height: .98 !important; }
}

/* v77.17.421 (życzenie usera): ORIENTACJA POZIOMA telefonu. Portret NIETKNIĘTY — wszystko poniżej zawężone do
   orientation:landscape (+ max-height dla części nagłówkowej, więc tablety w poziomie też bez zmian). */
/* (1) iOS: w poziomie Safari NIENATURALNIE powiększa czcionki (text auto-inflation) → hero i teksty „się rozjeżdżają".
   text-size-adjust:100% = renderuj w rozmiarze z CSS (bez auto-powiększania). W pionie iOS i tak nie inflatuje → bez zmian. */
@media (orientation: landscape) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
}
/* (2) Poziomy telefon (niski viewport) SZERSZY niż mobilny breakpoint 900px (np. iPhone landscape ~932px): user wybrał
   nawigację DESKTOPOWĄ na belce (v77.17.423). Menu 6 pozycji (~520px) jest szersze niż dostępne miejsce, więc menu jest
   POZIOMO PRZEWIJALNE (jak karuzela) — prawie wszystkie pozycje widoczne, ostatnia dostępna swipe'em; dropdowny są
   `position:fixed` → działają mimo overflow. „Uzupełnij profil" (badge) ukryte by zrobić miejsce; CTA „Dobierz system"
   przypięte po prawej. Tablety w poziomie (height>500) bez zmian. Portret nietknięty. */
@media (orientation: landscape) and (max-height: 500px) and (min-width: 901px) {
  html body .ed-header .ed-container.ed-nav { display: flex !important; align-items: center !important; gap: 8px !important; }
  html body .ed-header .ed-menu.ed-menu-architecture {
    display: flex !important; flex: 1 1 auto !important; min-width: 0 !important;
    overflow-x: auto !important; overflow-y: hidden !important; justify-content: flex-start !important;
    scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch;
  }
  html body .ed-header .ed-menu.ed-menu-architecture::-webkit-scrollbar { display: none; height: 0; }
  /* pozycje menu NIE kurczą się (flex:0 0 auto) — inaczej ściskają się i tekst NACHODZI; trzymają naturalną szerokość i przewijają się. Padding lekko zmniejszony. */
  html body .ed-header .ed-menu-architecture.ed-menu-architecture > a,
  html body .ed-header .ed-menu-architecture.ed-menu-architecture > .ed-nav-dropdown { flex: 0 0 auto !important; padding-left: 9px !important; padding-right: 9px !important; }
  html body .ed-header .ed-nav-actions { display: flex !important; flex: 0 0 auto !important; }
  /* schowaj mobilne ikony (nawigacja desktopowa je zastępuje) */
  html body .ed-header .ed-mobile-calc-icon,
  html body .ed-header .ed-mobile-phone-icon,
  html body .ed-header .ed-mobile-toggle { display: none !important; }
  /* v77.17.426 (życzenie usera): USUŃ z belki Poradniki/Artykuły/Testy, a badge „Twój profil" POKAŻ w kompaktowym
     układzie 2×2 (jak na desktopie, tylko zminimalizowany). Zostają: Rozwiązania, Kalkulatory, Aktualności. */
  html body .ed-header .ed-menu.ed-menu-architecture .ed-nav-land-hide { display: none !important; }
  html body .ed-header .ed-profile-strip { display: inline-flex !important; padding: 4px 9px !important; }
  /* 4 wartości w siatce 2×2 (nadpisz ukrywanie kafli ≤1160/1280/1400 i wyświetl wszystkie); tylko gdy profil wypełniony */
  html body .ed-header .ed-profile-strip:not(.is-empty) .ed-ps-vals { display: grid !important; grid-template-columns: auto auto !important; gap: 3px 10px !important; }
  html body .ed-header .ed-profile-strip:not(.is-empty) .ed-ps-tile { display: inline-flex !important; }
  html body .ed-header .ed-profile-strip .ed-ps-ico,
  html body .ed-header .ed-profile-strip .ed-ps-go { display: none !important; }
  html body .ed-header .ed-btn-nav { padding: 8px 13px !important; font-size: 13px !important; min-height: 0 !important; }
  /* dropdowny w niskim viewport: przewijalne w środku, nie wychodzą poza ekran */
  html body .ed-header .ed-nav-dropdown-panel { max-height: calc(100vh - 56px) !important; overflow-y: auto !important; }
}
/* v77.17.422 (życzenie usera): drawer w poziomie — CTA „Dobierz system" + telefon było `position:sticky;bottom:0`
   (~177px) i NACHODZIŁO na dolne pozycje menu w niskim widoku (user: „CTA i numer zasłaniają całe Menu"). W landscape
   ustawiamy je W TOKU (static) → menu w pełni przewijalne, CTA/telefon na końcu listy. Portret bez zmian (sticky). */
@media (orientation: landscape) and (max-height: 500px) {
  html body #ed-mobile-drawer .ed-mobile-drawer-cta { position: static !important; }
}

/* v77.17.425 (życzenie usera): META ARTYKUŁU na mobile — chipy kategoria/podkategoria ZAWSZE w JEDNYM rzędzie
   (długa etykieta → przewijanie poziome, NIE zawijanie do 2-3 rzędów), a poniżej data + czas czytania wyrównane
   do lewej z chipami. Konsoliduje/nadpisuje sprzeczne bloki wyżej (część ukrywała pigułki, część robiła 1 linię z overflow). */
@media (max-width: 767px) {
  html body.ed-v77.single-post .ed-article-meta-row,
  html body.ed-v77.single .ed-article-meta-row {
    display: flex !important; flex-direction: column !important; align-items: flex-start !important;
    gap: 9px !important; margin-top: 16px !important; max-width: 100% !important;
  }
  html body.ed-v77.single-post .ed-article-meta-cats,
  html body.ed-v77.single .ed-article-meta-cats,
  html body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats,
  html body.ed-v77.single .ed-single-hero .ed-article-meta-cats {
    display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 6px !important;
    max-width: 100% !important; overflow-x: auto !important; overflow-y: hidden !important;
    scrollbar-width: none; -webkit-overflow-scrolling: touch;
    padding: 0 !important; border: 0 !important; background: none !important; min-height: 0 !important;
  }
  html body.ed-v77.single-post .ed-article-meta-cats::-webkit-scrollbar,
  html body.ed-v77.single .ed-article-meta-cats::-webkit-scrollbar { display: none; height: 0; }
  /* obie pigułki widoczne (nadpisuje stare ukrywanie :last-of-type), każda = osobna piguła, nie kurczy się */
  html body.ed-v77.single-post .ed-single-hero .ed-article-meta-cats .ed-article-meta-link,
  html body.ed-v77.single .ed-single-hero .ed-article-meta-cats .ed-article-meta-link,
  html body.ed-v77.single-post .ed-article-meta-cats .ed-article-meta-link,
  html body.ed-v77.single .ed-article-meta-cats .ed-article-meta-link {
    display: inline-flex !important; flex: 0 0 auto !important; align-items: center;
    min-height: 27px !important; padding: 0 11px !important; border: 1px solid rgba(22, 199, 243, .30) !important;
    border-radius: 999px !important; background: rgba(22, 199, 243, .06) !important; color: var(--ed-cyan, #16C7F3) !important;
    font-size: .64rem !important; white-space: nowrap !important; max-width: none !important;
  }
  html body.ed-v77.single-post .ed-article-meta-cats .ed-article-meta-divider,
  html body.ed-v77.single .ed-article-meta-cats .ed-article-meta-divider { display: none !important; }
  /* data + czas czytania POD chipami: wyrównane do lewej, subtelne, bez ramki */
  html body.ed-v77.single-post .ed-article-meta-info,
  html body.ed-v77.single .ed-article-meta-info {
    display: inline-flex !important; align-items: center !important; gap: 7px !important; flex: 0 0 auto !important;
    padding: 0 2px !important; border: 0 !important; background: none !important; min-height: 0 !important;
    font-size: .7rem !important; letter-spacing: .06em !important; color: rgba(255, 255, 255, .66) !important; white-space: nowrap !important;
  }
}

/* v77.17.425 (życzenie usera): ORIENTACJA POZIOMA — strona główna. Mniej pustej przestrzeni między sekcjami,
   karuzele produktów jak na mobile, uporządkowany hero (3 równe korzyści zamiast 2+1, dashboard się mieści). Portret nietknięty. */
@media (orientation: landscape) and (max-height: 500px) {
  /* (a) mniejsze odstępy sekcji → mniej scrollowania (było pt/pb ~98px każda) */
  body.home .ed-section { padding-top: 40px !important; padding-bottom: 40px !important; }
  body.home .ed-hero-education { padding-top: 72px !important; padding-bottom: 22px !important; }
  /* (b) hero: 3 korzyści w RÓWNYM rzędzie (były 2+1, a 3. nachodziła na dashboard); minmax(0,1fr) → mieszczą się w kolumnie */
  body.home .ed-hero-education .ed-hero-points { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; max-width: 100% !important; }
  body.home .ed-hero-education .ed-hero-trio-item { min-width: 0 !important; }
  body.home .ed-hero-education .ed-hero-trio-copy { min-width: 0 !important; font-size: .82rem !important; }
  /* (c) karuzele produktów HOME (stacje / magazyny / produkty) jak na mobile — w landscape >767px robiły się gridem 2-kol. */
  body.home #stacje-home .eds-cat-grid,
  body.home #magazyny-home .eds-cat-grid,
  body.home #produkty .ed-product-card-grid {
    display: flex !important; grid-template-columns: none !important; gap: 12px !important;
    overflow-x: auto !important; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; scroll-padding-left: 16px; scrollbar-width: none;
  }
  body.home #stacje-home .eds-cat-grid::-webkit-scrollbar,
  body.home #magazyny-home .eds-cat-grid::-webkit-scrollbar,
  body.home #produkty .ed-product-card-grid::-webkit-scrollbar { display: none; height: 0; }
  body.home #stacje-home .eds-cat-card,
  body.home #magazyny-home .eds-cat-card,
  body.home #produkty .ed-product-card { flex: 0 0 34% !important; scroll-snap-align: start; min-width: 0; }
}

/* ============================================================================
   v77.17.440 — RESPONSYWNOŚĆ (życzenia usera):
   (A) FIX CZCIONEK: text-size-adjust GLOBALNIE — po zmianie orientacji (pion→poziom→pion)
       opisy sekcji NIE puchną (dotąd 100% było tylko w landscape → toggle auto↔100% powodował,
       że iOS „zapamiętywał" napompowanie po powrocie do pionu).
   (B) DESKTOP: górne menu w strefie kompaktowej 901–1120px nie gniecie pozycji (nachodzenie/nieczytelność).
   (C) POZIOMY TELEFON (HOME): przewodnik poziomo + 2 sub-filary w JEDNYM rzędzie, niższe karty karuzeli,
       mniejsze obrazy. PORTRET i desktop ≥1121 NIETKNIĘTE.
   ============================================================================ */

/* (A) iOS Safari auto-powiększa czcionki po obrocie i „zapamiętuje" to po powrocie do pionu, bo dotąd
   text-size-adjust:100% obowiązywało TYLKO dla orientation:landscape (toggle auto↔100%). Ustawiamy 100%
   GLOBALNIE (obie orientacje) → brak toggle → po powrocie z poziomu do pionu rozmiary = z CSS (spójne z
   pierwotnym pionem). Desktop tę własność ignoruje. Zastępuje wcześniejszą regułę landscape-only. */
html, body { -webkit-text-size-adjust: 100% !important; text-size-adjust: 100% !important; }

/* (B) DESKTOP strefa kompakt 901–1120: 6 pozycji menu + CTA + profil nie mieściły się → 3 ostatnie
   (Poradniki/Aktualności/Testy i Recenzje) kurczyły się do ~36px, tekst nachodził (nieczytelnie). FIX:
   profil (pomocniczy) ukryty, pozycje NIE kurczą się (flex:0 0 auto → pełny, czytelny tekst); gdy przy
   najwęższych szerokościach (≲1050px) nadal brak miejsca — menu przewija się poziomo (wzorzec z landscape),
   zamiast gnieść pozycje. Powyżej ~1050px mieści się bez przewijania. */
@media (min-width: 901px) and (max-width: 1120px) {
  html body .ed-header .ed-profile-strip { display: none !important; }
  html body .ed-header .ed-menu.ed-menu-architecture {
    overflow-x: auto !important; overflow-y: visible !important; flex-wrap: nowrap !important;
    justify-content: flex-start !important; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  html body .ed-header .ed-menu.ed-menu-architecture::-webkit-scrollbar { display: none; height: 0; }
  html body .ed-header .ed-menu-architecture > a,
  html body .ed-header .ed-menu-architecture > .ed-nav-dropdown { flex: 0 0 auto !important; white-space: nowrap !important; }
}

/* (C) POZIOMY TELEFON — strona główna. Portret NIETKNIĘTY (wszystko pod orientation:landscape + max-height:500). */
@media (orientation: landscape) and (max-height: 500px) {
  /* Przewodnik „Zacznij od najważniejszego": featured POZIOMO (obraz+tekst obok), 2 sub-filary w JEDNYM rzędzie.
     Wcześniej featured (~925px) i każdy sub-filar zajmowały cały ekran, jeden pod drugim. */
  body.home .ed-home-start-flow { display: flex !important; flex-direction: column !important; gap: 12px !important; }
  body.home .ed-blog-featured-card.ed-home-start-primary { display: grid !important; grid-template-columns: 36% 1fr !important; gap: 14px !important; align-items: center !important; }
  body.home .ed-home-start-primary .ed-blog-featured-media { max-height: 176px !important; overflow: hidden !important; border-radius: 14px !important; }
  body.home .ed-home-start-primary .ed-blog-featured-media img { width: 100% !important; height: 100% !important; max-height: 176px !important; object-fit: cover !important; }
  body.home .ed-home-start-primary .ed-blog-featured-copy p { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; }
  body.home .ed-home-start-support-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
  body.home .ed-home-support-card .ed-article-thumb-wrap { height: 112px !important; max-height: 112px !important; min-height: 0 !important; overflow: hidden !important; }
  body.home .ed-home-support-card .ed-article-thumb-wrap img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
  body.home .ed-home-support-card .ed-article-copy { padding: 10px 12px !important; gap: 5px !important; }
  body.home .ed-home-support-card .ed-article-copy h3 { margin: 0 !important; }
  body.home .ed-home-support-card .ed-article-copy p { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; margin: 0 !important; }
  /* Karuzele produktów (stacje/magazyny): niższe karty (mniejszy obraz + ciaśniej) → mieszczą się w ekranie
     poziomym (było ~549px > wysokość ekranu). Szerokość 42% = ~2,4 karty na widok. */
  body.home #stacje-home .eds-cat-card,
  body.home #magazyny-home .eds-cat-card { flex: 0 0 42% !important; padding-top: 12px !important; padding-bottom: 12px !important; }
  body.home #stacje-home .eds-cat-media,
  body.home #magazyny-home .eds-cat-media { height: 104px !important; max-height: 104px !important; overflow: hidden !important; }
  body.home #stacje-home .eds-cat-media img,
  body.home #magazyny-home .eds-cat-media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
  body.home #stacje-home .eds-cat-chips,
  body.home #magazyny-home .eds-cat-chips { gap: 4px !important; max-height: 30px !important; overflow: hidden !important; }
}

/* ============================================================================
   v77.17.488 (życzenie usera) — poprawki kart feedu + sekcji „Źródła i kontekst"
   Ładowane po style.min.css (ten layer zależy od energydock-style), więc nadpisuje.
   ============================================================================ */
/* #3: meta karty = TYP → miesiąc+rok → min. czytania ZAWSZE w jednym wierszu (bez zawijania).
   white-space:nowrap na tekście + flex-wrap:nowrap; na desktopie lekko mniejsza czcionka, żeby się zmieściło. */
.ed-article-card .ed-article-meta{flex-wrap:nowrap!important;white-space:nowrap!important;gap:4px 5px!important;min-width:0}
@media(min-width:768px){ .ed-article-card .ed-article-meta{font-size:.66rem!important}
  .ed-article-card .ed-article-meta .ed-hub-fmt{font-size:8.5px!important;padding:2px 6px!important;letter-spacing:.03em!important} }
/* #4: chipy kategorii na miniaturach NIE łamią słów w połowie — tylko przy spacji (keep-all, bez dzielenia). */
.ed-article-category-chip{word-break:keep-all!important;overflow-wrap:normal!important;hyphens:none!important}
/* #5: odstęp w pionie wokół „Źródła i kontekst" (nie zlewa się z kartą recenzenta nad nim ani z „Powiązanymi" pod nim). */
.ed-article-final-trust .ed-article-sources-box{margin-top:26px!important}
.ed-article-final-trust{margin-bottom:30px!important}
/* #5 mobile: style.min.css ma w @media(≤767) reguły o wyższej specyficzności (.ed-single-layout>.ed-article-final-trust--mobile)
   zerujące marginesy — bijemy je dopasowaną/wyższą specyficznością, żeby odstęp był też na telefonie (nad i pod sekcją). */
@media(max-width:767px){
  /* bijemy regułę style.min `body.single-post .ed-single-layout>...--mobile` (0,3,1) wyższą specyficznością (dodane .ed-single-wrap) */
  body.single-post .ed-single-wrap .ed-single-layout>.ed-article-final-trust--mobile{margin-top:24px!important;margin-bottom:28px!important}
  body.single-post .ed-single-wrap .ed-single-layout>.ed-article-final-trust--mobile .ed-article-sources-box{margin-top:22px!important}
}


/* ===== v77.17.540 ===== */
/* (1) TABELE PORÓWNAŃ na mobile — katalogi (.eds-cmp: /stacje/ /panele/ /zestawy/ /magazyny/), kalkulator GO (.ed-go-v2-cmp-table),
   HOME (.edhm-cmp-t): kolumna etykiet PRZYKLEJONA i NIEPRZEZROCZYSTA (wcześniej półprzezroczysta/za szeroka → wartości prześwitywały
   lub zajmowała ~1/3 ekranu), 100 px + cień krawędzi; tekst nagłówków grup (<span class="edc-gl">) trzyma się lewej. Spójnie z /stacja/ (v77.17.539). */
@media (max-width:767px){
  .eds-cmp tr:not(.eds-cmp-grp) > :first-child,
  .ed-go-v2-cmp-table tr:not(.ed-go-v2-cmp-grp) > :first-child,
  .edhm-cmp-t tr:not(.edhm-cmp-grp) > :first-child{position:sticky!important;left:0!important;z-index:2!important;width:100px!important;min-width:100px!important;max-width:100px!important;padding-left:12px!important;padding-right:8px!important;font-size:12px!important;line-height:1.3!important;background:#0c1520!important;box-shadow:8px 0 12px -8px rgba(0,0,0,.85),inset -1px 0 0 rgba(255,255,255,.08)!important;border-right:0!important}
  .eds-cmp thead tr > :first-child,.ed-go-v2-cmp-table thead tr > :first-child,.edhm-cmp-t thead tr > :first-child{z-index:3!important;font-size:10px!important;letter-spacing:.1em!important}
  .eds-cmp .eds-cmp-pricerow > :first-child{background:#1b1510!important}
  .eds-cmp-grp th,.ed-go-v2-cmp-grp th,.edhm-cmp-grp th{padding-left:0!important}
  .edc-gl{position:sticky;left:12px;display:inline-block;padding-right:8px}
  .eds-cmp .eds-cmp-rowlabel{font-size:12px!important}
}
/* (2) META KARTY ARTYKUŁU (v77.17.542): typ · miesiąc · minuty w JEDNYM wierszu, PEŁNA nazwa miesiąca. W wąskiej karcie (mobile):
   ikona zegara zamiast „czytania", kompaktowa plakietka, 12 px, bez kropki-separatora (zostaje odstęp); skrypt chowa rok bieżący TYLKO gdy brak miejsca (.is-noyear).
   Ostatnia deska ratunku (bardzo wąska karta): skrypt dodaje .is-short → skrót miesiąca. Odstęp „min czytania" zachowany. */
.ed-reading-time-compact{display:inline;white-space:nowrap}
.ed-reading-time-compact .ed-rt-ic{display:none;width:11px;height:11px;margin-right:3px;vertical-align:-1px;opacity:.9}
.ed-dt-s{display:none}
.ed-article-meta.is-noyear .ed-dt-l.is-cy .ed-dt-y{display:none!important}
.ed-article-meta.is-short .ed-dt-l{display:none!important}
.ed-article-meta.is-short .ed-dt-s{display:inline!important}
@media (max-width:767px){
  .ed-article-card .ed-article-meta{container-type:inline-size;container-name:edmeta}
  @container edmeta (max-width:340px){
    .ed-reading-time-compact .ed-rt-w,.ed-meta-sep{display:none}
    .ed-reading-time-compact .ed-rt-ic{display:inline-block;margin-left:.6em} /* v77.17.548: odstęp między datą a zegarem (separator „•” jest tu ukryty → „styczeń 2026◷12 min” się zlewało) */
  }
  .ed-article-card .ed-article-meta{font-size:12px!important;gap:4px 6px!important}
  .ed-article-card .ed-article-meta .ed-hub-fmt{font-size:9px!important;letter-spacing:.3px!important;padding:2px 6px!important}
  @supports not (container-type:inline-size){
    .ed-article-card .ed-reading-time-compact .ed-rt-w,.ed-article-card .ed-meta-sep{display:none}
    .ed-article-card .ed-reading-time-compact .ed-rt-ic{display:inline-block}
  }
  /* (3) nagłówek przy scroll-down: wystaje kawałek belki (26 px), nie tylko pasek postępu */
  :root{--ed-header-peek:26px}
}
