/**
 * PellasX Custom Overrides v4.4
 * Loaded AFTER style.css — higher cascade priority
 */

/* Dynamic header height — set by JS, fallback 61px */
:root {
    --header-h: 61px;
}

/* =============================================
   FONT FACES — WOFF2 + font-display:swap
   ============================================= */
@font-face {
    font-family: 'Roboto';
    src: url(/wp-content/themes/pellasx/fonts/Roboto/Roboto-Light.woff2) format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Roboto';
    src: url(/wp-content/themes/pellasx/fonts/Roboto/Roboto-Regular.woff2) format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Roboto';
    src: url(/wp-content/themes/pellasx/fonts/Roboto/Roboto-Bold.woff2) format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
/* RBNo3.1 — only Book (400) kept; ExtraLight/Medium removed (v4.1.3) */
@font-face {
    font-family: 'RBNo3.1';
    src: url(/wp-content/themes/pellasx/fonts/RBNo31/RBNo31-Book.woff2) format('woff2');
    font-weight: 200 400 500;
    font-style: normal;
    font-display: swap;
}

/* =============================================
   HEADER — fixed, thin, transparent, headroom
   ============================================= */
header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 10 !important;
    transition: transform .3s ease !important;
}
header.header--hidden {
    transform: translateY(-100%) !important;
}
.header__bar {
    padding: 8px 0 !important;
    background: rgba(10, 10, 10, 0.8) !important;
}
.header__bar .wrapper {
    position: relative;
}

/* Logo centering — shrink-wrapped, centered in wrapper */
.header__bar .wrapper {
    position: relative;
}
.col-hamburger-wrapper + .col-auto {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 2;
    width: auto !important;
    padding: 0 !important;
}
/* Remove leftover margin from old vertical-name layout */
.logo__image {
    margin-left: 0 !important;
}

/* Header buttons — consistent 45px circles, subtle hover */
.hamburger,
.square,
.search__square {
    width: 45px !important;
    height: 45px !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    border-radius: 50% !important;
    transition: background .3s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.hamburger:hover,
.square:hover,
.search__square:hover {
    background: rgba(255, 255, 255, 0.1) !important;
    box-shadow: none !important;
    color: #fff !important;
}
/* Hamburger lines — centered in 45px circle */
.hamburger span {
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 20px !important;
    height: 2px !important;
}
.hamburger span:nth-child(1) { top: 14px !important; }
.hamburger span:nth-child(2),
.hamburger span:nth-child(3) { top: 21px !important; width: 20px !important; }
.hamburger span:nth-child(4) { top: 28px !important; }
/* X state — keep centered */
.hamburger.is-active span:nth-child(2),
.hamburger.is-active span:nth-child(3) {
    width: 20px !important;
}
/* Language button — remove white square background */
.language__current {
    background: transparent !important;
}

/* Search input — rounded, doesn't overlap logo */
.search__input {
    height: 45px !important;
    border-radius: 25px !important;
    padding: 0 20px !important;
    max-width: 350px !important;
    background: rgba(255, 255, 255, 0.95) !important;
    color: #000 !important;
    font-size: 14px !important;
}
/* Language dropdown — dark theme, centered text */
.language__list {
    background: #1a1a1a !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 15px !important;
}
.language__list a {
    color: #fff !important;
}
.language__list a:hover {
    color: #e31e24 !important;
}
.language::before {
    display: none !important;
}

/* =============================================
   BODY & PAGE — dark bg, padding for fixed header
   ============================================= */
body {
    background: #0a0a0a !important;
}
body.page {
    padding-top: 0 !important;
}
.page > .section:first-of-type,
.page > .page:first-child {
    padding-top: var(--header-h) !important;
}
/* Homepage slider — no padding needed (dark bg blends with header) */
.page > .section--is-slider:first-of-type {
    padding-top: 0 !important;
}

/* =============================================
   HIDDEN ELEMENTS
   ============================================= */
#ue-logo {
    display: none !important;
}
/* v4.6.5 (2026-04-10): removed .subheader display:none — tech pages need visible H1 from subheader-view1 */
/* Vertical section labels + red line — outdated pattern (v4.2) */
.section__vertical-name-wrapper {
    display: none !important;
}
/* Remove leftover padding/margin from hidden vertical labels */
.section--products-line .container {
    padding-left: 30px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* =============================================
   NAVIGATION — hamburger menu
   ============================================= */
.header__nav {
    pointer-events: none !important;
}
.header__nav.is-active {
    top: var(--header-h) !important;
    pointer-events: auto !important;
}
.header__nav .menu__link--parent {
    font-size: 24px !important;
    line-height: 1.4 !important;
    font-weight: 400 !important;
}
.header__nav .nav__sub-menu__link {
    font-size: 18px !important;
    line-height: 1.4 !important;
}
.header__nav .nav__sub-menu--1__title,
.header__nav h2,
.header__nav h3 {
    font-size: 20px !important;
}

/* =============================================
   TYPOGRAPHY — comprehensive font system
   ============================================= */

/* Body weight: 400 (was 300 Light) */
body .page {
    font-weight: 400;
}

/* Body text */
body .page p,
body .page li,
body .page td,
body .page span:not([class*="icon"]) {
    font-size: clamp(15px, 0.5vw + 13px, 18px) !important;
}

/* H1 */
h1:not(.sr-only),
.title--h1 {
    font-size: clamp(26px, 3vw, 36px) !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}

/* H2 */
h2,
.title--h2 {
    font-size: clamp(22px, 2.5vw, 30px) !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
}

/* H3 */
h3,
.title--h3 {
    font-size: clamp(18px, 2vw, 24px) !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
}

/* H4 */
h4,
.title--h4 {
    font-size: clamp(16px, 1.5vw, 20px) !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
}

/* H5 */
h5,
.title--h5 {
    font-size: clamp(14px, 1.2vw, 17px) !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
}

/* H6 */
h6,
.title--h6 {
    font-size: clamp(13px, 1vw, 15px) !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;
}

/* H7 (custom) */
.title--h7 {
    font-size: clamp(12px, 0.8vw, 14px) !important;
    line-height: 1.4 !important;
}

/* Subheader page H1 */
h1.subheader__page,
.subheader__page {
    font-size: clamp(18px, 2vw, 24px) !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
}

/* .description (subtitles under headings) */
.description {
    font-size: clamp(15px, 0.5vw + 13px, 18px) !important;
    font-family: Roboto, sans-serif !important;
}

/* .lead (technology descriptions) */
.lead,
.lead p {
    font-size: clamp(15px, 0.8vw + 13px, 18px) !important;
    line-height: 1.5 !important;
}

/* Slider exception — bigger text */
.swiper-main .description {
    font-size: clamp(18px, 2vw, 26px) !important;
    font-family: "RBNo3.1", sans-serif !important;
}

/* TEMP: ukryj sekcję "Linia produktowa" (px-products) na homepage PL+EN.
   Decyzja Michała 2026-04-19 — później wrócimy. Reversible: usuń ten blok. */
.px-products,
section.px-products,
section#product-line {
    display: none !important;
}

/* Slider — pozycja tekstu na slajdach: dolna część (8% od dołu).
   Theme ma .container { bottom: -407px } co psuje flex.
   Strategy: flex column + margin-top:auto na container (push do bottom),
   override theme bottom/top: auto. Padding-bottom: 8% slide = 8% offset od dołu. */
.swiper-main .swiper-slide {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    position: relative !important;
    box-sizing: border-box !important;
}
.swiper-main .swiper-slide > .container {
    position: relative !important;
    bottom: auto !important;
    top: auto !important;
    margin-top: auto !important;  /* flex push to bottom */
    margin-bottom: 20px !important;  /* blisko dołu, nad pagination bullets */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    flex: 0 0 auto !important;
    z-index: 2 !important;
}
/* Media + overlay z out-of-flow (nie zaburzają flex container) */
.swiper-main .swiper-slide > .swiper-main__media,
.swiper-main .swiper-slide > .overlay {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
}
.swiper-main .swiper-slide > .overlay {
    z-index: 1 !important;
}

/* Content title (product slider homepage) */
.content__title {
    font-size: clamp(24px, 3vw, 36px) !important;
    line-height: 1.2 !important;
}

/* Content subtitle (red) */
.content__subtitle {
    font-size: clamp(14px, 1.2vw, 18px) !important;
}

/* Post titles (articles) */
.post__title,
.post__title a {
    font-size: clamp(16px, 1.5vw, 20px) !important;
    line-height: 1.3 !important;
}

/* Post description */
.post__description {
    font-size: clamp(14px, 0.5vw + 12px, 16px) !important;
    font-weight: 400 !important;
}

/* Content description */
.content__description {
    font-size: clamp(14px, 0.5vw + 12px, 16px) !important;
}

/* Product tabs — compact uppercase */
.nav__href {
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    font-family: Roboto, sans-serif !important;
    font-weight: 600 !important;
    padding: 8px 16px !important;
}

/* Reduce section padding — tighter layout */
.subsection {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

/* =============================================
   FOOTER MODERNIZATION (v4.3)
   ============================================= */

/* Social icons: monochrome circles, hover → red */
.social__item {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 50% !important;
    width: 40px !important;
    height: 40px !important;
    color: #fff !important;
    font-size: 16px !important;
}
.social__item:hover {
    border-color: #e31e24 !important;
    background: #e31e24 !important;
    box-shadow: none !important;
    color: #fff !important;
}

/* Hide language switcher in footer (redundant with header) */
#footer .language {
    display: none !important;
}

/* Scroll-to-top — round, smaller, doesn't overlap footer */
.scroll-top {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    bottom: 90px !important;
    opacity: 0.7 !important;
}

/* Copyright bar — separator, smaller font */
.copyright-bar {
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    font-size: 12px !important;
    padding: 15px 0 !important;
}
.copyright {
    font-size: 12px !important;
    color: #666 !important;
}
.nav--copyright .nav__link {
    font-size: 12px !important;
}

/* RBNo3.1 — force weight 400 (Book) everywhere, never 500 (Medium) */
[style*="RBNo"],
.menu__link--parent,
.content__title,
.content__subtitle,
.description,
.number,
.number-smaller,
.js-count-number {
    font-weight: 400 !important;
}

/* Bold/strong restore */
strong, b, .bold, .font-weight-bold {
    font-weight: 700 !important;
}

/* =============================================
   BUTTONS — refined borders (v4.1.5)
   ============================================= */
.btn {
    border-width: 1px !important;
    border-radius: 4px !important;
    padding: 12px 18px !important;
}
/* Arrow icon divider inside button */
.btn__icon {
    border-left-width: 1px !important;
    width: 38px !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: auto !important;
    border-radius: 0 3px 3px 0 !important;
}
/* Button with icon — center text in remaining space */
.btn:has(.btn__icon) {
    padding-right: 50px !important;
    overflow: hidden !important;
}
/* + icon box (ZOBACZ WIĘCEJ) — same treatment */
.read-more__icon {
    border-width: 1px !important;
    border-radius: 4px !important;
}

/* Slider buttons — fix <p> wrapper from ACF (v4.3.2) */
.swiper-slide p {
    margin: 0 !important;
    padding: 0 !important;
}
.swiper-slide .btn {
    display: inline-flex !important;
    align-items: center !important;
    white-space: nowrap !important;
}

/* =============================================
   LAYOUT — full-width backgrounds, constrained content (v4.3)
   ============================================= */
@media (min-width: 1441px) {
    /* ALL containers constrained — except header and slider overlay */
    .container {
        max-width: 1400px !important;
        padding-left: 30px !important;
        padding-right: 30px !important;
    }
    /* Header container stays full-width */
    header .container,
    .header__bar .container {
        max-width: 100% !important;
        padding-left: 85px !important;
        padding-right: 85px !important;
    }
    /* Slider overlay container — full width, absolute positioned */
    .container-absolute {
        max-width: 100% !important;
        padding: 0 !important;
    }
    /* Slider is outside .container — needs own constraint */
    .slider {
        max-width: 1400px !important;
        margin: 0 auto !important;
    }
}

/* =============================================
   PRODUCT PAGE — CLS fix (v4.1.3)
   ============================================= */
/* Technical drawing — known 984x492 (2:1) */
.burner__image {
    aspect-ratio: 2 / 1;
    width: 100%;
    height: auto;
    object-fit: contain;
}
/* Gallery images — square placeholder */
.media__image {
    aspect-ratio: 4 / 3;
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* =============================================
   HIDE OLD PRODUCT FLEXBOX SLIDER (v4.4)
   ============================================= */
.section--products-line {
    display: none !important;
}

/* =============================================
   NEW PRODUCT LINE SELECTOR (v4.4)
   ============================================= */
.px-products {
    display: flex;
    flex-direction: column;
    background: #1c1c1c;
    color: #fff;
    position: relative;
    overflow: hidden;
    padding: 0 0 20px;
}
.px-products__title {
    text-align: center;
    padding: 50px 0 20px;
    font-family: 'RBNo3.1', sans-serif;
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.px-products__inner {
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
    padding: 0 30px;
}
.px-products__groups {
    display: flex;
    gap: 1px;
    background: rgba(255,255,255,0.06);
    border-radius: 8px;
    overflow: hidden;
}
.px-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px 50px;
    background: #1c1c1c;
    transition: flex 0.5s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    min-height: 380px;
}
.px-group:hover {
    flex: 1.5;
    background: #222;
}
.px-group__name {
    font-family: 'RBNo3.1', sans-serif;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
    transition: transform 0.4s, opacity 0.4s;
}
.px-group:hover .px-group__name {
    transform: translateY(-8px);
}
.px-group__subtitle {
    color: #c8102e;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 20px;
    transition: opacity 0.3s;
}
.px-group__image {
    width: 55%;
    max-width: 220px;
    height: auto;
    object-fit: contain;
    transition: opacity 0.4s, transform 0.4s;
}
.px-group:hover .px-group__image {
    opacity: 0.15;
    transform: scale(0.75) translateY(-10px);
}
.px-group__sublines {
    position: absolute;
    bottom: 20%;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    opacity: 0;
    transform: translateY(15px);
    transition: opacity 0.35s 0.1s, transform 0.35s 0.1s;
    pointer-events: none;
}
.px-group:hover .px-group__sublines {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.px-subline {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 24px;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 4px;
    color: #fff;
    text-decoration: none;
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    transition: all 0.25s;
    min-width: 170px;
    justify-content: center;
    backdrop-filter: blur(4px);
    background: rgba(255,255,255,0.03);
}
.px-subline:hover {
    background: rgba(200, 16, 46, 0.2);
    border-color: #c8102e;
    color: #fff;
    box-shadow: 0 0 15px rgba(200, 16, 46, 0.15);
}
.px-subline__arrow {
    font-size: 0.75rem;
    margin-left: 6px;
    opacity: 0.4;
    transition: opacity 0.2s, transform 0.2s;
}
.px-subline:hover .px-subline__arrow {
    opacity: 1;
    transform: translateX(3px);
}

/* =============================================
   INTERACTIVE POWER AXIS — SVG (v4.4.3)
   ============================================= */
.px-power {
    max-width: 1400px;
    margin: 30px auto 0;
    padding: 0 30px 20px;
    box-sizing: border-box;
}
.px-power__svg {
    width: 100%;
    display: block;
    height: 280px;
}
/* Ranges hidden by default, appear on hover */
.px-power__svg-range {
    opacity: 0;
    transition: opacity 0.4s ease;
}
.px-power__svg-range.is-active {
    opacity: 1;
}

/* =============================================
   MOBILE FIXES (v4.4)
   ============================================= */
@media (max-width: 768px) {
    .header__bar a.square.message {
        display: none !important;
    }
    .px-products__groups {
        flex-direction: column;
    }
    .px-group {
        flex: none !important;
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.08);
        padding: 30px 20px;
        min-height: 200px;
    }
    .px-group__image {
        width: 40%;
        max-width: 150px;
    }
    .px-group__sublines {
        position: relative;
        bottom: auto;
        margin-top: 15px;
    }
    .px-group.is-expanded .px-group__sublines {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
    .px-group.is-expanded .px-group__image {
        opacity: 0.3;
        transform: scale(0.8);
    }
    .px-power {
        overflow-x: auto;
        padding: 0 15px 20px;
    }
    .px-power__bar {
        min-width: 500px;
    }
}

/* =============================================
   v4.6.0 — DRY RELATED TECHNOLOGIES + SUB-NAV (rewritten)
   2026-04-09
   ============================================= */

/* CRITICAL FIX v4.6.1 — sticky won't work if any ancestor has overflow:hidden.
   body and .page have overflow-x:hidden (from style.css) which establishes a
   scroll container that breaks descendant position:sticky. Switch to overflow-x:clip
   — clip clips overflow visually but does NOT establish a scroll container,
   so sticky descendants work. Supported Chrome 90+, FF 90+, Safari 16+. */
body.page-template-product-burner-page-php,
body.page-template-product-burner-page,
body.page-template-product-burner-page-php .page,
body.page-template-product-burner-page .page {
    overflow-x: clip !important;
    overflow-y: visible !important;
}

/* ---------- Product sub-nav (rendered after hero in layout.php) ----------
   v4.6.2: uses --header-offset (set by JS) which is 0 when headroom hides
   header, so sub-nav glides up to viewport top. No border-top to avoid
   the 1px gap visible when header is fully visible. */
.product-subnav {
    position: -webkit-sticky;
    position: sticky;
    top: var(--header-offset, var(--header-h, 61px));
    /* v4.6.26: was 50, but theme .header is z-index:10 (stacking context).
       With subnav at 50, mega menu overlay (inside .header context) was
       painted BELOW subnav. Keep z-index < 10 so header always wins when
       menu opens, but still > page sections (z-index:1) for scroll overlap. */
    z-index: 9;
    background: rgba(10, 10, 10, 0.94);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-top: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: 0 6px 16px -10px rgba(0, 0, 0, 0.7);
    /* Prevent any sub-pixel gap between header and subnav by pulling up 1px */
    margin-top: 0;
    transition: top 0.25s ease;
}
.product-subnav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 4px;
}
.product-subnav__list::-webkit-scrollbar { display: none; }
.product-subnav__list > li { flex: 0 0 auto; }
.product-subnav__link {
    display: block;
    padding: 16px 20px;
    color: rgba(255, 255, 255, 0.65);
    font-family: 'RBNo3.1', 'Roboto Condensed', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color .25s ease, border-color .25s ease, background .25s ease;
    white-space: nowrap;
    line-height: 1;
}
.product-subnav__link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.04);
    text-decoration: none;
}
.product-subnav__link.is-active {
    color: #fff;
    border-bottom-color: #e30613;
}
.product-subnav__link--external::after {
    content: " →";
    opacity: 0.6;
    font-weight: 400;
}
@media (max-width: 768px) {
    .product-subnav__link {
        padding: 14px 14px;
        font-size: 11px;
    }
}

/* offset anchored sections so the sticky sub-nav doesn't cover them */
.section[id]:not(:empty),
section[id]:not(:empty) {
    scroll-margin-top: calc(var(--header-h, 61px) + 64px);
}

/* ---------- Related Technologies sections ---------- */
.section--related-tech {
    padding: 80px 0;
    overflow: hidden;
}
@media (max-width: 768px) {
    .section--related-tech {
        padding: 48px 0;
    }
}

/* v4.6.6: FLEXBOX zamiast grid — grid auto-tworzył implicit 2-row layout
   gdy elementy miały explicit grid-column. Flex jest prostszy i stretch po prostu działa. */
.related-tech-card {
    display: flex;
    flex-direction: row;
    align-items: stretch;        /* equal heights */
    gap: 36px;
    max-width: 1100px;
    margin: 0 auto;
}
.related-tech-card__media  { flex: 0 0 33%; order: 0; }
.related-tech-card__content { flex: 1 1 auto; order: 1; }

/* Reverse: text LEFT (wide), image RIGHT (narrow) */
.section--related-tech.related-tech--reverse .related-tech-card__content { order: 0; }
.section--related-tech.related-tech--reverse .related-tech-card__media   { order: 1; }

@media (max-width: 900px) {
    .related-tech-card {
        flex-direction: column !important;
        gap: 24px;
    }
    .related-tech-card__media,
    .related-tech-card__content {
        flex: 1 1 auto !important;
        order: 0 !important;
    }
}

/* media (image) — equal-height with content via stretch + min-height */
.related-tech-card__media {
    width: 100%;
    height: 100%;               /* v4.6.5: explicit pełna wysokość row */
    align-self: stretch;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 18px 40px -20px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.05);
    background: #1a1a1a;
    min-height: 240px;          /* fallback gdy content jest bardzo krótki */
}
.related-tech-card__image {
    width: 100%;
    height: 100%;
    min-height: 240px;
    object-fit: cover;
    display: block;
    transition: transform .6s ease;
}
.related-tech-card:hover .related-tech-card__image {
    transform: scale(1.04);
}
/* Cards without an image: hide media slot, content takes full width */
.related-tech-card__media:empty,
.related-tech-card:not(:has(.related-tech-card__image)) .related-tech-card__media {
    display: none;
}
.related-tech-card:not(:has(.related-tech-card__image)) .related-tech-card__content {
    flex: 1 1 100%;
}

/* content (text card) — equal-height match with image */
.related-tech-card__content {
    padding: 32px 36px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 16px;
    align-self: stretch;        /* v4.6.4: equal height with media */
    min-height: 240px;          /* fallback gdy media jest bardzo małe */
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.related-tech-card__title,
.related-tech-card h2.related-tech-card__title {
    /* v4.6.6: !important + zwiększona specificity bo style.css ma h2,.title--h2{font-size:2.083rem} */
    margin: 0 0 14px !important;
    color: #fff !important;
    font-family: 'RBNo3.1', 'Roboto Condensed', sans-serif !important;
    font-size: clamp(17px, 1.4vw, 22px) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.02em !important;
    /* v4.6.19: usunięte text-transform uppercase — tytuły kart tech pokazują naturalną kapitalizację z ACF (np. "InCroX®", "X.Gnite System") */
    text-transform: none !important;
}
.related-tech-card__lead {
    margin: 0 0 22px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 15px;
    line-height: 1.65;
}
.related-tech-card__lead p { margin: 0 0 10px; }
.related-tech-card__lead p:last-child { margin-bottom: 0; }

/* Smaller, vertically centered "Read more" button */
.related-tech-card__link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: auto;
    align-self: flex-start;
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-decoration: none;
    line-height: 1;          /* eliminates the vertical baseline shift */
    border: 1px solid rgba(255, 255, 255, 0.22);
    padding: 11px 18px;
    border-radius: 999px;
    transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}
.related-tech-card__link:hover {
    background: #e30613;
    border-color: #e30613;
    color: #fff;
}
.related-tech-card__link span { line-height: 1; }
.related-tech-card__arrow {
    display: inline-flex;
    align-items: center;
    transition: transform .25s ease;
    font-size: 12px;
}
.related-tech-card__link:hover .related-tech-card__arrow {
    transform: translateX(3px);
}

@media (max-width: 768px) {
    .related-tech-card__content {
        padding: 26px 22px;
        min-height: 0;
    }
    .related-tech-card__media {
        min-height: 220px;
    }
}

/* ---------- Section background overrides (better contrast) ---------- */
.section--related-tech.section--background-codgray2 {
    background: #181818;
}
.section--related-tech.section--background-mineshaft {
    background: #232323;
}

/* =============================================
   v4.6.17 — tech category heading (grupowanie technologii)
   Used between groups of related_technologies cards on product pages
   v4.6.18 (2026-04-16): reduced padding, slimmer heading bar
   ============================================= */
.section--tech-category-heading {
    background: #fafafa;
    padding: 6px 0 !important;
    border-top: 1px solid #ff0000;
    min-height: 0 !important;
}
.section--tech-category-heading .container,
.section--tech-category-heading .row,
.section--tech-category-heading > div,
.section--tech-category-heading .col-spx-10 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.tech-category-heading__title {
    color: #232323;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3;
    text-align: left;
}
@media (max-width: 768px) {
    .section--tech-category-heading {
        padding: 5px 0 !important;
    }
    .tech-category-heading__title {
        font-size: 0.8rem;
    }
}

/* =============================================
   v4.6.3 — post_content fallback for tech pages
   Used when /baza-wiedzy/technologie/foo has no ACF sections (only post_content)
   ============================================= */
.section--post-content-fallback {
    padding: 80px 0;
    color: #fff;
}
/* v4.6.7 (2026-04-10 noc): back link "Wszystkie technologie" — native PellasX colors (#fff + #ff0000 hover) */
.section--post-content-fallback .back-link {
    display: inline-block;
    color: #fff;
    font-family: inherit; /* Roboto, sans-serif (native body font) */
    font-size: 0.875rem;
    font-weight: 400;
    text-decoration: none;
    margin-bottom: 2rem;
    transition: color 0.15s;
}
.section--post-content-fallback .back-link:hover {
    color: #ff0000; /* native PellasX brand red akcent */
}
.section--post-content-fallback .title--h1 {
    margin-bottom: 32px;
    color: #fff;
    font-family: 'RBNo3.1', 'Roboto Condensed', sans-serif;
    font-size: clamp(28px, 3.2vw, 44px);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: 0.01em;
    text-transform: none !important; /* v4.6.6: user wants normal case (not uppercase) */
}
/*
 * v4.6.7 (2026-04-10): !important hardening — wymusza native styling niezależnie od tego co
 * user wybierze w Gutenberg sidebar (Color picker, Typography panel). Wszystkie kluczowe
 * properties (color, font-family, font-size, font-weight, text-transform) mają !important
 * żeby Gutenberg inline styles ich nie nadpisały.
 */
.post-content-fallback__body {
    color: rgba(255, 255, 255, 0.85) !important;
    font-family: 'Roboto', sans-serif !important;
    line-height: 1.7 !important;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
    /* font-size: native body styling (clamp 15-18px) — bez nadpisywania */
}
/* Center wp:image blocks inside body (override Gutenberg default margin: 16px 40px) */
.post-content-fallback__body figure.wp-block-image {
    margin: 24px auto !important;
    text-align: center;
}
.post-content-fallback__body figure.wp-block-image img {
    margin: 0 auto;
    display: inline-block;
}
/* Block headings — native PellasX brand display font, hardened */
.post-content-fallback__body h1,
.post-content-fallback__body h2,
.post-content-fallback__body h3,
.post-content-fallback__body h4,
.post-content-fallback__body h5,
.post-content-fallback__body h6,
.post-content-fallback__body .wp-block-heading {
    color: #fff !important;
    font-family: 'RBNo3.1', 'Roboto Condensed', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
}
.post-content-fallback__body h2,
.post-content-fallback__body h2.wp-block-heading {
    font-size: clamp(22px, 2.2vw, 30px) !important;
    margin: 40px 0 16px !important;
    text-transform: uppercase !important;
}
.post-content-fallback__body h3,
.post-content-fallback__body h3.wp-block-heading {
    font-size: clamp(18px, 1.8vw, 22px) !important;
    margin: 32px 0 14px !important;
}
.post-content-fallback__body h4,
.post-content-fallback__body h4.wp-block-heading {
    font-size: clamp(16px, 1.5vw, 18px) !important;
    margin: 24px 0 12px !important;
}
/* Paragraph — hardened color/font, native size from body .page p (clamp 15-18px) */
.post-content-fallback__body p,
.post-content-fallback__body .wp-block-paragraph {
    color: rgba(255, 255, 255, 0.85) !important;
    font-family: 'Roboto', sans-serif !important;
    font-weight: 400 !important;
    line-height: 1.7 !important;
    margin: 0 0 18px !important;
    text-transform: none !important;
}
/* Lists */
.post-content-fallback__body ul,
.post-content-fallback__body ol,
.post-content-fallback__body .wp-block-list {
    color: rgba(255, 255, 255, 0.85) !important;
    font-family: 'Roboto', sans-serif !important;
    line-height: 1.7 !important;
    margin: 0 0 22px !important;
    padding-left: 22px !important;
}
.post-content-fallback__body li {
    margin-bottom: 8px !important;
    color: inherit !important;
}
/* Strong / inline emphasis */
.post-content-fallback__body strong,
.post-content-fallback__body b {
    color: #fff !important;
    font-weight: 600 !important;
}
/* Links — native PellasX red akcent */
.post-content-fallback__body a {
    color: #ff0000 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}
.post-content-fallback__body a:hover {
    color: #fff !important;
}

/* === PellasX auto-options-list (v4.6.19, FAZA C4c) === */
.section--auto-options-list {
    padding: 50px 0;
}
.pellasx-options-list__heading {
    font-family: 'RBNo3.1', 'Roboto', sans-serif;
    font-size: 1.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin: 0 0 1.5rem 0;
    color: #111;
}
.pellasx-options-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    font-family: inherit;
}
.pellasx-options-list li {
    position: relative;
    padding: 10px 14px 10px 38px;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    color: #232323;
    font-size: 1rem;
    line-height: 1.35;
}
.pellasx-options-list li::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 14px;
    height: 7px;
    border-right: 2px solid #ff0000;
    border-bottom: 2px solid #ff0000;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    .pellasx-options-list {
        grid-template-columns: 1fr;
    }
    .pellasx-options-list__heading {
        font-size: 1.375rem;
    }
}

/* === PellasX line comparison table (v4.6.23 FAZA 2) === */
.section--auto-line-comparison { padding: 60px 0; }
.pellasx-compare-heading {
    font-family: 'RBNo3.1', 'Roboto', sans-serif;
    font-size: 1.5rem; /* v4.6.24: zmniejszone z 1.75rem */
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin: 0 0 1.5rem;
    color: inherit;
}
.pellasx-compare-desktop { display: block; overflow-x: auto; }
.pellasx-compare-mobile  { display: none; }
.pellasx-compare-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem; /* v4.6.24: zmniejszone z 0.95rem */
    background: transparent;
}
.pellasx-compare-table thead th {
    padding: 10px 12px; /* v4.6.24: zmniejszone z 14px */
    background: rgba(0,0,0,0.04);
    border-bottom: 2px solid #ff0000;
    font-weight: 700;
    font-size: 0.9rem; /* v4.6.24: zmniejszone z 1rem */
    text-align: left;
    font-family: 'RBNo3.1', 'Roboto', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.pellasx-compare-table thead th a { color: inherit; text-decoration: none; }
.pellasx-compare-table thead th a:hover { color: #ff0000; }
.pellasx-compare-table tbody th {
    padding: 7px 12px; /* v4.6.24: zmniejszone z 10px */
    font-weight: 600;
    text-align: left;
    background: rgba(0,0,0,0.02);
    white-space: nowrap;
}
.pellasx-compare-table tbody td {
    padding: 7px 12px; /* v4.6.24: zmniejszone z 10px */
    border-bottom: 1px solid rgba(0,0,0,0.08);
    white-space: nowrap;
}
.pellasx-compare-table tbody tr:hover td,
.pellasx-compare-table tbody tr:hover th { background: rgba(255,0,0,0.03); }
.pellasx-compare-detail-row td { text-align: center; padding-top: 14px !important; border-bottom: none !important; }
.pellasx-compare-detail-link {
    display: inline-block;
    padding: 6px 16px;
    border: 1px solid currentColor;
    border-radius: 3px;
    color: inherit;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.15s;
}
.pellasx-compare-detail-link:hover {
    background: #ff0000;
    color: #fff;
    border-color: #ff0000;
}
.section--dark .pellasx-compare-table thead th,
.section--dark .pellasx-compare-table tbody th {
    background: rgba(255,255,255,0.04);
}
.section--dark .pellasx-compare-table tbody td {
    border-bottom-color: rgba(255,255,255,0.1);
}
@media (max-width: 767px) {
    .pellasx-compare-desktop { display: none; }
    .pellasx-compare-mobile  { display: block; }
}
.pellasx-compare-card {
    background: rgba(0,0,0,0.03);
    border-left: 3px solid #ff0000;
    padding: 14px 16px;
    margin-bottom: 14px;
    border-radius: 0 4px 4px 0;
}
.section--dark .pellasx-compare-card { background: rgba(255,255,255,0.05); }
.pellasx-compare-card__title { margin: 0 0 10px; font-size: 1.15rem; font-weight: 700; }
.pellasx-compare-card__title a { color: inherit; text-decoration: none; }
.pellasx-compare-card__title a:hover { color: #ff0000; }
.pellasx-compare-card__params {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 12px;
    margin: 0 0 12px;
    font-size: 0.9rem;
}
.pellasx-compare-card__params dt { font-weight: 600; opacity: 0.8; }
.pellasx-compare-card__params dd { margin: 0; font-weight: 500; }
.pellasx-compare-card__cta {
    display: inline-block;
    padding: 6px 14px;
    border: 1px solid currentColor;
    border-radius: 3px;
    color: inherit;
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
    transition: all 0.15s;
}
.pellasx-compare-card__cta:hover { background: #ff0000; color: #fff; border-color: #ff0000; }

/* === PellasX auto-spec-table (v4.6.8) === */
.pellasx-spec-table__heading {
    font-family: 'RBNo3.1', 'Roboto', sans-serif;
    font-size: 1.5rem; /* v4.6.24: zmniejszone z 1.75rem */
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin: 0 0 1.5rem 0;
    color: #111;
}
.pellasx-spec-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 2rem 0;
    font-family: inherit;
    background: transparent;
    font-size: 0.9rem; /* v4.6.24: zmniejszone z dziedziczonego */
}
.pellasx-spec-table th,
.pellasx-spec-table td {
    padding: 0.65rem 1rem; /* v4.6.24: zmniejszone z 0.95/1.1rem */
    text-align: left;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    vertical-align: top;
    line-height: 1.4;
}
.pellasx-spec-table th {
    font-weight: 600;
    width: 45%;
    color: #555;
    background: transparent;
}
.pellasx-spec-table td {
    color: #111;
    font-weight: 500;
}
.pellasx-spec-table tr:last-child th,
.pellasx-spec-table tr:last-child td {
    border-bottom: none;
}
.section--auto-spec-table .wrapper {
    padding: 2.5rem 0;
}
.section--auto-spec-table.section--dark .pellasx-spec-table__heading { color: #fff; }
.section--auto-spec-table.section--dark .pellasx-spec-table th { color: #aaa; }
.section--auto-spec-table.section--dark .pellasx-spec-table td { color: #fff; }
.section--auto-spec-table.section--dark .pellasx-spec-table th,
.section--auto-spec-table.section--dark .pellasx-spec-table td {
    border-bottom-color: rgba(255, 255, 255, 0.12);
}
@media (max-width: 640px) {
    .pellasx-spec-table__heading { font-size: 1.35rem; margin-bottom: 1rem; }
    .pellasx-spec-table th,
    .pellasx-spec-table td {
        padding: 0.75rem 0.6rem;
        font-size: 0.9rem;
    }
    .pellasx-spec-table th { width: 50%; }
}

/* === v4.6.8 hotfix: global section--hidden (was only on homepage) === */
.section--hidden{display:none !important}

/* === PellasX dimension table for wymiary section (v4.6.9) === */
.dim-heading {
    font-family: 'RBNo3.1', 'Roboto', sans-serif;
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: uppercase;
    margin: 2rem 0 1rem 0;
    text-align: center;
}
/* Wymiary section: 2 groups (burner dims + mounting dims) — v4.6.10 */
.pellasx-wymiary-block {
    width: 100%;
    padding: 1.5rem 0 2.5rem 0;
}
.pellasx-wymiary-group {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.pellasx-wymiary-group:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.pellasx-wymiary-drawings {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    margin: 1rem auto 2rem auto;
}
.pellasx-wymiary-drawings--row {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 2rem 3rem;
}
.pellasx-wymiary-img {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 380px !important;
    flex: 0 0 auto;
    object-fit: contain;
    background: transparent;
    padding: 0;
    margin: 0 auto;
}
.pellasx-wymiary-drawings--row .pellasx-wymiary-img {
    max-height: 340px !important;
    flex: 0 1 auto;
}
.pellasx-wymiary-img--mount {
    max-height: 360px !important;
}
@media (max-width: 768px) {
    .pellasx-wymiary-drawings--row { flex-direction: column; gap: 1.5rem; }
    .pellasx-wymiary-drawings--row .pellasx-wymiary-img { max-height: 280px !important; }
    .pellasx-wymiary-img,
    .pellasx-wymiary-img--mount { max-height: 260px !important; }
}

.pellasx-dim-table {
    width: 100%;
    margin: 1rem 0 2rem 0;
    border-collapse: collapse;
    font-family: inherit;
    font-size: 0.95rem;
}
.pellasx-dim-table thead th {
    background: transparent;
    color: #111;
    padding: 0.7rem 1rem;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    border-bottom: 2px solid #1a1a1a;
}
/* Column alignment: applied to both thead and tbody so columns line up */
.pellasx-dim-table th:nth-child(1),
.pellasx-dim-table td:nth-child(1) { text-align: center; width: 14%; }
.pellasx-dim-table th:nth-child(2),
.pellasx-dim-table td:nth-child(2) { text-align: center; width: 22%; }
.pellasx-dim-table th:nth-child(3),
.pellasx-dim-table td:nth-child(3) { text-align: left; }
.pellasx-dim-table tbody th {
    font-weight: 700;
    color: #c8102e;
    padding: 0.6rem 1rem;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.pellasx-dim-table tbody td {
    padding: 0.6rem 1rem;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    color: #111;
}
.pellasx-dim-table tbody td:nth-child(2) {
    font-weight: 600;
}
.pellasx-dim-table tbody td:last-of-type {
    color: #555;
    font-style: italic;
}
.pellasx-dim-table tbody tr:last-child th,
.pellasx-dim-table tbody tr:last-child td {
    border-bottom: none;
}
@media (max-width: 640px) {
    .pellasx-dim-table { font-size: 0.85rem; }
    .pellasx-dim-table thead th,
    .pellasx-dim-table tbody th,
    .pellasx-dim-table tbody td {
        padding: 0.5rem 0.4rem;
    }
    .pellasx-dim-table tbody td:last-of-type { display: none; }
}

/* === v4.6.11: Expandable linia menu items (Revo, ECOS) === */
.nav--main .js-expandable-linia > ul.nav__sub-menu {
    display: none !important;
}
.nav--main .js-expandable-linia.is-expanded > ul.nav__sub-menu {
    display: block !important;
    padding-left: 1rem;
    margin-top: 0.4rem;
}
.nav--main .js-expandable-linia > a::after {
    content: ' ▾';
    font-size: 0.75em;
    opacity: 0.55;
    display: inline-block;
    margin-left: 4px;
}
.nav--main .js-expandable-linia.is-expanded > a::after {
    content: ' ▴';
    opacity: 1;
}
.nav--main .js-expandable-linia.is-expanded > ul.nav__sub-menu > li > a {
    font-size: 0.92em;
    padding-left: 0.6rem;
    border-left: 2px solid rgba(200,16,46,0.35);
    display: block;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}
.nav--main .js-expandable-linia.is-expanded > ul.nav__sub-menu > li > a:hover {
    border-left-color: #c8102e;
    color: #c8102e;
}

/* === v4.6.14: Line pages hero + products grid === */
body.page-template-product-burner-line-page .section:first-of-type .media,
body.page-template-product-burner-line-page .section:first-of-type .media--image,
body.page-template-product-burner-line-page .section:first-of-type .media__wrapper {
    height: auto !important;
    max-height: none !important;
}
body.page-template-product-burner-line-page .section:first-of-type .media__image,
body.page-template-product-burner-line-page .section:first-of-type img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 480px !important;
    object-fit: contain !important;
    display: block;
    margin: 1rem auto;
}
.pellasx-products-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    max-width: 1200px;
    margin: 2rem auto;
    padding: 0 1rem;
}
@media (max-width: 900px) { .pellasx-products-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pellasx-products-grid { grid-template-columns: 1fr; } }
.product-tile-wrap { display: block; width: 100%; }
.product-tile {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    background: rgba(26, 26, 26, 0.6);
    padding: 1.5rem 1rem;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 4px;
    text-decoration: none !important;
    color: inherit;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    height: 100%;
    box-sizing: border-box;
}
.product-tile:hover {
    transform: translateY(-4px);
    border-color: #c8102e;
    background: rgba(26, 26, 26, 0.9);
}
.product-tile__media {
    display: block;
    width: 100%;
    text-align: center;
    margin-bottom: 1rem;
}
.product-tile__media img {
    max-width: 100% !important;
    max-height: 180px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    display: inline-block !important;
    background: transparent !important;
}
.product-tile__name {
    display: block;
    font-family: "RBNo3.1", "Roboto", sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    margin: 0 0 0.3rem 0;
    text-align: center;
}
.product-tile__power {
    display: block;
    font-size: 0.85rem;
    color: #c8102e;
    text-align: center;
    margin: 0;
}
.pellasx-linia-cta { text-align: center; padding: 2rem 1rem; }
.pellasx-linia-cta__text {
    color: #c4c4c6;
    font-size: 1.05rem;
    max-width: 720px;
    margin: 0 auto 1.5rem auto;
    line-height: 1.6;
}
.pellasx-linia-cta__button {
    display: inline-block;
    background: #c8102e;
    color: #fff !important;
    padding: 0.9rem 2rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.95rem;
    border-radius: 4px;
    text-decoration: none !important;
    transition: background 0.2s, transform 0.2s;
    font-family: "RBNo3.1", "Roboto", sans-serif;
}
.pellasx-linia-cta__button:hover { background: #a40d26; transform: translateY(-2px); }
.pellasx-linia-coming-soon { text-align: center; padding: 3rem 1rem; max-width: 760px; margin: 0 auto; }
.pellasx-linia-coming-soon h3 { color: #fff; font-size: 1.5rem; margin-bottom: 1rem; text-transform: uppercase; }
.pellasx-linia-coming-soon p { color: #c4c4c6; line-height: 1.6; margin-bottom: 1.5rem; }

/* ============================================================
 * v4.6.17: Global fix for .media--image height:100vh bug.
 *          Theme style.css rule: .media.media--image { height: calc(100vh - 65px) }
 *          stretches images on many pages. We override it globally
 *          with sensible max-height, EXCLUDING #wymiary sections
 *          (where technical drawings need full height).
 * ============================================================ */
.section:not([id="wymiary"]) .media.media--image,
.section:not([id="wymiary"]) .media.media--image .media__wrapper {
    height: auto !important;
    max-height: 480px !important;
}
.section:not([id="wymiary"]) .media.media--image .media__image {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 480px !important;
    object-fit: contain !important;
    margin: 0 auto;
    display: block;
}

/* ============================================================
 * v4.6.24: Button text vertical centering — use line-height 1.2
 *          and let flexbox handle centering. Works for both
 *          uppercase ("POZNAJ TECHNOLOGIE") and mixed case with
 *          diacritics ("Sprawdź szczegóły") without padding bias.
 *          Previous v4.6.18 over-compensated on mixed case.
 * ============================================================ */

.btn,
.btn--more,
.btn--more-black,
.btn--more-white,
.btn--more-red,
.btn--more-yellow,
.btn--more-black-black,
.btn--more-black-white {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1.2 !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}
@media (max-width: 1270px) {
    .btn,
    .btn--more,
    .btn--more-black,
    .btn--more-white,
    .btn--more-red,
    .btn--more-yellow {
        line-height: 1.2 !important;
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }
}
.btn .btn__icon,
.btn--more .btn__icon {
    line-height: 1;
}

/* Custom red CTA on line pages */
.pellasx-linia-cta__button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem;
    line-height: 1.2 !important;
    padding: 0.9rem 2rem !important;
}

/* Small tech card link ("Czytaj więcej o technologii") — RBNo31
 * uppercase glyphs sit above font-box center. Use translateY on
 * the text span to visually push glyphs down without resizing the
 * button box. */
.related-tech-card__link {
    line-height: 1.2 !important;
    padding: 11px 18px !important;
    align-items: center !important;
}
.related-tech-card__link > span:first-child {
    line-height: 1 !important;
    display: inline-block;
    transform: translateY(-3px);
}
.related-tech-card__arrow {
    line-height: 1 !important;
}

/* ============================================================
 * v4.6.25: Fix cropped dimension drawings on OLD product pages
 *          (REVO Micro, REVO Mini, etc.).
 *          Background: base rule .media__image { aspect-ratio: 4/3;
 *          object-fit: cover } forces gallery 4:3 crop, but wymiary
 *          drawings have 2:1 native aspect — sides get clipped.
 *          v4.6.17 excluded #wymiary from the max-height override
 *          (for new pellasx-wymiary-block), but that left old
 *          flat-drawing products broken. Fix: scope container+image
 *          overrides to #wymiary .media.media--image, which does
 *          NOT touch the new .pellasx-wymiary-block (different class).
 * ============================================================ */
#wymiary .media.media--image,
#wymiary .media.media--image .media__wrapper {
    height: auto !important;
    max-height: none !important;
}
#wymiary .media.media--image .media__image {
    aspect-ratio: auto !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 520px !important;
    object-fit: contain !important;
    margin: 0 auto;
    display: block;
}

/* =============================================================
   MEGA-MENU v8 — desktop 3-panel, X-KOM style, world-class
   v4.8.0 (2026-04-19)
   Goals:
   - Zero scrollbars, zero layout shift
   - Instant open (no FOUC), auto-select first category
   - Clean geometry: 3 × 260px grid, sharp dividers
   - Dark theme (#0a0a0a), white text, red (#e31e24) accent
   - Kill all theme pseudo decorations comprehensively
   - Progressive enhancement (works ≥768px only; mobile untouched)
   - A11y: focus-visible, Escape, click-outside-close
   ============================================================= */

:root {
    --mm-bg: #0a0a0a;
    --mm-hover: #1a1a1a;
    --mm-text: #ffffff;
    --mm-accent: #e31e24;
    --mm-divider: rgba(255, 255, 255, 0.08);
    --mm-col: 260px;       /* legacy — keep for non-panel uses (tech grid, wymiary img) */
    --mm-col-1: 245px;     /* PANEL 1: top-level categories (-15px vs base) */
    --mm-col-2: 275px;     /* PANEL 2: subcategories (+15px vs base) */
    --mm-col-3: 260px;     /* PANEL 3: leaf items (absolute, beside panel 2) */
    --mm-row-h: 38px;
    --mm-pad-x: 20px;
    --mm-pad-y: 14px;
    --mm-transition: 120ms cubic-bezier(0.4, 0, 0.2, 1);
    --mm-z: 9999;
}

@media (min-width: 768px) {

    /* --- Nuke ALL theme decorations inside the menu (pseudo reset) --- */
    /* Exclude icon fonts (.icon-* elements rely on ::before for glyph) */
    .header__nav.is-active *:not([class*="icon-"])::before,
    .header__nav.is-active *:not([class*="icon-"])::after {
        display: none !important;
        content: none !important;
        background: transparent !important;
        border: none !important;
        width: 0 !important;
        height: 0 !important;
        transform: none !important;
        box-shadow: none !important;
    }

    /* --- Outer .header__nav on desktop: absolute dropdown, no overlay --- */
    .header__nav {
        pointer-events: auto !important;
        transition: none !important;
    }
    .header__nav.is-active {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: auto !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        background: transparent !important;
        border-top: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        transform: none !important;
        pointer-events: none !important;
        z-index: var(--mm-z);
        overflow: visible !important;
    }
    .header__nav.is-active .container {
        padding: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        pointer-events: none !important;
    }
    .header__nav.is-active .nav__wrapper {
        padding: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        position: relative !important;
        pointer-events: none !important;
    }

    /* --- The menu box itself — the only pointer-events zone --- */
    .header__nav.is-active .nav-main {
        display: grid !important;
        grid-template-columns: var(--mm-col-1) var(--mm-col-2) var(--mm-col-3);
        width: calc(var(--mm-col-1) + var(--mm-col-2) + var(--mm-col-3)) !important;
        min-width: calc(var(--mm-col-1) + var(--mm-col-2) + var(--mm-col-3)) !important;
        max-width: calc(var(--mm-col-1) + var(--mm-col-2) + var(--mm-col-3)) !important;
        height: auto !important;
        min-height: 0 !important;
        background: var(--mm-bg);
        border-radius: 0 0 4px 4px;
        box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
        pointer-events: auto !important;
        overflow: visible !important;
        position: static !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        transform: none !important;
        animation: mmFadeIn 180ms cubic-bezier(0.4, 0, 0.2, 1);
    }
    @keyframes mmFadeIn {
        from { opacity: 0; transform: translateY(-6px); }
        to   { opacity: 1; transform: translateY(0); }
    }

    /* Force visibility + override theme position on all menu items */
    .header__nav.is-active .nav-main,
    .header__nav.is-active .nav-main *:not(.sub-menu__line) {
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* Zero borders on all interactive items — theme adds red border on hover/active */
    .header__nav.is-active .menu__link--parent,
    .header__nav.is-active .nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu__item,
    .header__nav.is-active .nav__item,
    .header__nav.is-active .nav__item--parent,
    .header__nav.is-active .nav-main__parent > .nav,
    .header__nav.is-active .nav-main__parent > .nav > li,
    .header__nav.is-active .nav__sub-menu,
    .header__nav.is-active .nav__sub-menu > li {
        border: 0 none transparent !important;
        outline: none;
    }

    /* Hide theme's .nav__cursor triangle indicator (red CSS border-triangle pointing at hovered item) */
    .header__nav.is-active .nav__cursor,
    .nav__cursor {
        display: none !important;
    }

    /* Fix hamburger X state — theme sets spans 2+3 to red, override to white */
    .hamburger.is-active span,
    .hamburger.is-active span:nth-child(2),
    .hamburger.is-active span:nth-child(3) {
        background: #ffffff !important;
    }

    /* Fix panel 1 LI spacing — force flex column layout so items don't overlap */
    .header__nav.is-active .nav-main__parent .nav--main.parent {
        display: flex !important;
        flex-direction: column !important;
        line-height: 1 !important;
        height: auto !important;
        columns: auto !important;
        column-count: auto !important;
    }
    .header__nav.is-active .nav-main__parent .nav--main.parent > li {
        display: flex !important;
        flex: 0 0 var(--mm-row-h);
        height: var(--mm-row-h);
        min-height: var(--mm-row-h);
        line-height: 1 !important;
        align-items: stretch;
    }
    /* Any non-LI elements in the UL — hide (theme may inject social/search mobile widgets) */
    .header__nav.is-active .nav-main__parent .nav--main.parent > *:not(li) {
        display: none !important;
    }

    /* --- PANEL 1 — top-level categories (sidebar) --- */
    .header__nav.is-active .nav-main__parent {
        grid-column: 1 !important;
        width: var(--mm-col-1) !important;
        max-width: var(--mm-col-1) !important;
        min-width: var(--mm-col-1) !important;
        padding: var(--mm-pad-y) 0 !important;
        margin: 0 !important;
        border-right: 1px solid var(--mm-divider);
        background: var(--mm-bg);
        position: static !important;
        height: auto !important;
        min-height: 0;
        overflow: visible !important;
    }
    .header__nav.is-active .nav-main__parent > .nav--main.parent {
        display: block !important;
        list-style: none;
        margin: 0 !important;
        padding: 0 !important;
    }
    .header__nav.is-active .nav--main.parent > li.nav__item--parent {
        display: block;
        margin: 0;
        padding: 0;
    }
    .header__nav.is-active .nav--main.parent > li.nav__item--parent > .menu__link--parent {
        display: flex !important;
        align-items: center;
        min-height: var(--mm-row-h);
        padding: 0 var(--mm-pad-x) !important;
        color: var(--mm-text) !important;
        background: transparent !important;
        font-family: 'RBNo31', sans-serif !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.4 !important;
        cursor: pointer;
        white-space: nowrap;
        transition: color var(--mm-transition), background var(--mm-transition);
    }
    .header__nav.is-active .nav--main.parent > li.nav__item--parent:hover > .menu__link--parent,
    .header__nav.is-active .nav--main.parent > li.nav__item--parent[data-mega-open] > .menu__link--parent,
    .header__nav.is-active .nav--main.parent > li.nav__item--parent:focus-within > .menu__link--parent {
        background: transparent !important;
        color: var(--mm-accent) !important;
    }

    /* Linia hero v4.9.7 — teraz native ACF 2-col (row/col-6/col-6).
     * CSS grid hack z v4.9.6 usunięty jako zbędny.
     * Native ACF structure (content_type=columns) renderuje poprawny 2-col bez CSS override.
     */

    /* v4.9.8 — Tagline (Lead 1) w hero linii: mniejszy + grubszy, subtitle pod H2.
     * Target: tylko pierwszy .lead w col__inner sekcji hero.
     * Drugi lead (długi opis) zostaje default .lead styling (~18px, weight 400).
     * UWAGA: theme rem base ~24px (nie 16px), więc używamy direct px.
     */
    .section--linia-hero .col__inner > .lead:first-of-type {
        font-family: 'RBNo31', sans-serif !important;  /* brand display font (jak H2/H6) */
        font-size: 20px !important;      /* większe od H6 (18px), mniejsze od H2 (30px) */
        font-weight: 500 !important;
        line-height: 1.4 !important;
        color: #ffffff !important;
        padding-top: 26px !important;    /* odstęp od H2 "Linia ..." */
        margin-bottom: 30px !important;
    }

    /* v4.9.18 — power-range w hero linii: grubsze (weight 600) */
    .section--linia-hero .col__inner .power-range {
        font-weight: 600 !important;
    }

    /* v4.9.19 — H6 "Palniki na pellet" w hero linii: weight 500 */
    .section--linia-hero .col__inner .title--h6 {
        font-weight: 500 !important;
    }

    /* v4.9.22 — Fix hover linków w hero linii + badge NOWOŚĆ! red solid.
     * Problem: linki w .lead na dark bg miały hover color:black → niewidoczne.
     * Fix: hover zachowuje accent red, lekki brightness + underline dla feedback.
     */
    .section--linia-hero .col__inner .lead a {
        color: #e31e24 !important;       /* brand accent red */
        transition: color 0.2s, opacity 0.2s;
    }
    .section--linia-hero .col__inner .lead a:hover,
    .section--linia-hero .col__inner .lead a:focus {
        color: #ff4d4d !important;       /* brighter red na hover */
        text-decoration: underline;
    }

    /* (badge .novelty przeniesiony poza @media block — global desktop+mobile) */

    /* v4.9.21 — Unifikacja nagłówków sekcji na stronach linii.
     * Target: Modele linii X, Technologie linii X, Porównanie modeli w linii, Modele innych linii palników
     * Wariant: hybrid (font/size/weight/align/transform/letter-spacing unified, kolor auto z theme)
     */
    .section--linia-models h2,
    .section--linia-cta h2,
    .section--auto-line-comparison h2,
    .section--auto-line-comparison h3,
    .pellasx-line-comparison__title,
    #porownanie h2,
    #porownanie h3,
    #modele-innych-linii .title--h7 {
        font-family: 'RBNo31', sans-serif !important;
        font-size: 30px !important;
        font-weight: 700 !important;
        text-align: center !important;
        text-transform: none !important;
        letter-spacing: normal !important;
        line-height: 1.25 !important;
    }

    /* Linia X — segment anchors (v4.9.4) — legacy, now unused but retained for graceful fallback */
    .x-anchor {
        display: block;
        scroll-margin-top: 120px;
        height: 0;
        width: 0;
        visibility: hidden;
    }

    /* Linia X — segmenty modeli z nagłówkami + centered grid (v4.9.5) */
    .pellasx-x-segments {
        max-width: 1200px;
        margin: 2rem auto;
        padding: 0 1rem;
    }
    .pellasx-x-segment {
        margin-bottom: 3rem;
    }
    .pellasx-x-segment:last-child {
        margin-bottom: 0;
    }
    .pellasx-x-segment__title {
        text-align: center;
        font-family: 'RBNo31', sans-serif;
        font-size: 1.75rem;
        font-weight: 400;
        color: #ffffff;
        text-transform: uppercase;
        letter-spacing: 1px;
        margin: 0 0 1.5rem 0;
        scroll-margin-top: 120px;
    }
    .pellasx-x-segment__title span {
        color: rgba(255, 255, 255, 0.5);
        font-size: 0.85em;
        margin-left: 0.5rem;
        font-weight: 300;
    }
    .pellasx-x-segment__grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 1.5rem;
    }
    .pellasx-x-segment__grid .product-tile-wrap {
        flex: 0 0 calc(25% - 1.125rem);
        min-width: 240px;
        max-width: 280px;
    }
    @media (max-width: 900px) {
        .pellasx-x-segment__grid .product-tile-wrap {
            flex: 0 0 calc(50% - 0.75rem);
        }
        .pellasx-x-segment__title {
            font-size: 1.35rem;
        }
    }
    @media (max-width: 560px) {
        .pellasx-x-segment__grid .product-tile-wrap {
            flex: 0 0 100%;
            max-width: 340px;
        }
    }

    /* Panel 2 nav-header — non-clickable section heading (for "Palniki na pellet" above segments) */
    .header__nav.is-active .nav__sub-menu--1 > li.nav-header > a.nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu--1 > li.nav-header > .nav__sub-menu__link {
        text-transform: uppercase !important;
        font-size: 10px !important;
        letter-spacing: 1.5px !important;
        color: rgba(255, 255, 255, 0.4) !important;
        padding-top: 10px !important;
        padding-bottom: 4px !important;
        min-height: auto !important;
        cursor: default !important;
        pointer-events: none !important;
    }
    .header__nav.is-active .nav__sub-menu--1 > li.nav-header:hover > a.nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu--1 > li.nav-header:focus-within > a.nav__sub-menu__link {
        background: transparent !important;
        color: rgba(255, 255, 255, 0.4) !important;
    }

    /* Hide search; keep social visible at bottom of panel 1 */
    .header__nav.is-active .nav-main__parent > .search__input {
        display: none !important;
    }
    .header__nav.is-active .nav-main__parent > .social {
        display: block !important;
        padding: 14px var(--mm-pad-x) !important;
        margin-top: 10px;
        border-top: 1px solid var(--mm-divider);
        background: transparent !important;
    }
    .header__nav.is-active .nav-main__parent > .social .social__name {
        display: none !important;
    }
    .header__nav.is-active .nav-main__parent > .social .social__items {
        display: flex !important;
        flex-wrap: wrap;
        gap: 8px;
        margin: 0 !important;
        padding: 0 !important;
        justify-content: flex-start;
        align-items: center;
    }
    .header__nav.is-active .nav-main__parent > .social .social__item,
    .header__nav.is-active .nav-main__parent > .social .square {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px;
        margin: 0 !important;
        font-size: 14px !important;
        background: #ffffff !important;
        color: #000000 !important;
        border: 0 !important;
        border-radius: 2px;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        transition: background var(--mm-transition), color var(--mm-transition);
        box-shadow: none !important;
    }
    .header__nav.is-active .nav-main__parent > .social .social__item:hover,
    .header__nav.is-active .nav-main__parent > .social .square:hover {
        background: var(--mm-accent) !important;
        color: #ffffff !important;
    }
    .header__nav.is-active .nav-main__parent > .social .social__icon,
    .header__nav.is-active .nav-main__parent > .social .icon-user,
    .header__nav.is-active .nav-main__parent > .social .icon-logout {
        color: inherit;
        font-size: 16px;
    }

    /* --- PANEL 2 + 3 wrapper --- */
    .header__nav.is-active .nav-main__submenu {
        grid-column: 2 / span 2 !important;
        width: calc(var(--mm-col-2) + var(--mm-col-3)) !important;
        min-width: calc(var(--mm-col-2) + var(--mm-col-3)) !important;
        max-width: calc(var(--mm-col-2) + var(--mm-col-3)) !important;
        padding: 0 !important;
        margin: 0 !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        transform: none !important;
        background: var(--mm-bg);
        display: flex !important;
        height: auto !important;
        overflow: visible !important;
    }
    .header__nav.is-active .nav-main__submenu-back {
        display: none !important;
    }

    .header__nav.is-active .nav-main__submenu > .nav--main.submenu {
        display: flex !important;
        list-style: none;
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        position: relative;
    }
    /* Theme injects .sub-menu__wrapper divs inside submenu UL. Hide all, show only active. */
    .header__nav.is-active .nav-main__submenu > .nav--main.submenu > .sub-menu__wrapper {
        display: none !important;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .header__nav.is-active .nav-main__submenu > .nav--main.submenu > .sub-menu__wrapper.is-mega-active {
        display: flex !important;
    }
    /* Hide theme decorative line inside wrapper */
    .header__nav.is-active .sub-menu__line {
        display: none !important;
    }
    /* Also hide legacy li wrappers if they exist in some render contexts */
    .header__nav.is-active .nav-main__submenu > .nav--main.submenu > li.nav__item--parent {
        display: none !important;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .header__nav.is-active .nav-main__submenu > .nav--main.submenu > li.nav__item--parent.is-mega-active {
        display: flex !important;
    }
    .header__nav.is-active .nav-main__submenu > .nav--main.submenu > li.nav__item--parent > .menu__link--parent {
        display: none !important;
    }

    /* --- PANEL 2 — .nav__sub-menu--1 (subcategories) --- */
    .header__nav.is-active .nav__sub-menu--1 {
        display: block !important;
        width: var(--mm-col-2) !important;
        max-width: var(--mm-col-2) !important;
        flex: 0 0 var(--mm-col-2);
        list-style: none !important;
        margin: 0 !important;
        padding: var(--mm-pad-y) 0 !important;
        border-right: 1px solid var(--mm-divider);
        background: var(--mm-bg);
        position: static !important;
        visibility: visible !important;
        opacity: 1 !important;
        left: auto !important;
        top: auto !important;
        height: auto !important;
        overflow: visible !important;
    }
    .header__nav.is-active .nav__sub-menu--1 > li {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        position: static !important;
        visibility: visible !important;
    }
    .header__nav.is-active .nav__sub-menu--1 > li > a.nav__sub-menu__link {
        display: flex !important;
        align-items: center;
        min-height: var(--mm-row-h);
        padding: 0 var(--mm-pad-x) !important;
        color: var(--mm-text) !important;
        background: transparent !important;
        font-family: 'RBNo31', sans-serif !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        line-height: 1.4 !important;
        text-decoration: none !important;
        white-space: nowrap;
        transition: color var(--mm-transition), background var(--mm-transition);
    }
    .header__nav.is-active .nav__sub-menu--1 > li:hover > a.nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu--1 > li[data-mega-col2-open] > a.nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu--1 > li:focus-within > a.nav__sub-menu__link {
        background: transparent !important;
        color: var(--mm-accent) !important;
    }

    /* --- PANEL 3 — .nav__sub-menu--2 (absolute, beside panel 2) --- */
    .header__nav.is-active .nav__sub-menu--2 {
        display: none !important;
        position: absolute !important;
        top: 0;
        left: var(--mm-col-2);
        width: var(--mm-col-3);
        height: 100%;
        min-height: 100%;
        list-style: none;
        margin: 0 !important;
        padding: var(--mm-pad-y) 0 !important;
        background: var(--mm-bg);
        z-index: 2;
    }
    .header__nav.is-active .nav__sub-menu--1 > li[data-mega-col2-open] > .nav__sub-menu--2 {
        display: block !important;
    }
    .header__nav.is-active .nav__sub-menu--2 > li {
        display: block;
        margin: 0;
        padding: 0;
    }
    .header__nav.is-active .nav__sub-menu--2 > li > a.nav__sub-menu__link {
        display: flex !important;
        align-items: center;
        min-height: var(--mm-row-h);
        padding: 0 var(--mm-pad-x) !important;
        color: var(--mm-text) !important;
        background: transparent !important;
        font-family: 'RBNo31', sans-serif !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        line-height: 1.4 !important;
        text-decoration: none !important;
        white-space: nowrap;
        transition: color var(--mm-transition), background var(--mm-transition);
    }
    .header__nav.is-active .nav__sub-menu--2 > li:hover > a.nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu--2 > li:focus-within > a.nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu--2 > li.current-menu-item > a.nav__sub-menu__link,
    .header__nav.is-active .nav__sub-menu--2 > li.current_page_item > a.nav__sub-menu__link {
        background: transparent !important;
        color: var(--mm-accent) !important;
    }

    /* Hide level 3 (models) */
    .header__nav.is-active .nav__sub-menu--3 {
        display: none !important;
    }

    /* Keyboard a11y — red focus outline */
    .header__nav.is-active a:focus-visible,
    .header__nav.is-active .menu__link--parent:focus-visible {
        outline: 2px solid var(--mm-accent);
        outline-offset: -2px;
    }
}

/* =============================================================
   MEGA-MENU v8 — end
   ============================================================= */

/* v4.9.26 — Unifikacja szablon produkt ↔ linia (typografia CSS-only).
 * Scope: body.page-template-(templates)product-burner-page-php (pojedyncze strony palników).
 * NIE wpływa na linie (body.page-template-product-burner-line-page).
 */

/* Hero produkt: H1 30px (match z linii H2), H6 weight 500, power-range weight 600 */
body.page-template-product-burner-page #opis h1,
body.page-template-templatesproduct-burner-page-php #opis h1 {
    font-size: 30px !important;
    line-height: 1.25 !important;
}
body.page-template-product-burner-page #opis .title--h6,
body.page-template-templatesproduct-burner-page-php #opis .title--h6 {
    font-weight: 500 !important;
}
body.page-template-product-burner-page #opis .power-range,
body.page-template-templatesproduct-burner-page-php #opis .power-range {
    font-weight: 600 !important;
}

/* Section headings produkt: unifikacja (RBNo31 30px 700 center no-uppercase no-letter-spacing)
 * v4.9.27: fix — category headings (Komora/Powietrze/Elektronika/Bezpieczeństwo) są w osobnych
 * <section class="section--tech-category-heading"> bez id. Używam klasy bezpośrednio na H2.
 */
/* v4.9.28 — section--tech-category-heading: transparent background + white heading
 * Usuwa alabaster białe tło, H2 staje się osobną etykietą (widoczna na body/dark)
 */
body.page-template-product-burner-page .section--tech-category-heading,
body.page-template-templatesproduct-burner-page-php .section--tech-category-heading {
    background: transparent !important;
    background-color: transparent !important;
    border-top: 0 !important;       /* usuwa theme red border-top */
    border-bottom: 0 !important;
}

/* v4.9.31 — zmniejszony padding sekcji related-tech (80 → 40) dla mniejszych odstępów pionowych */
body.page-template-product-burner-page .section--related-tech,
body.page-template-templatesproduct-burner-page-php .section--related-tech {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

/* v4.9.34 — wyrównanie wysokości 2 kolumn w related-tech-card.
 * Problem: content ma border+bg (stretch height=267), media ma bg ale wrapper natural (240).
 * Fix: media wrapper = align-self: stretch (pełna wysokość karty), image centered w środku.
 */
body.page-template-product-burner-page .related-tech-card,
body.page-template-templatesproduct-burner-page-php .related-tech-card {
    align-items: stretch !important;
}
body.page-template-product-burner-page .related-tech-card__media,
body.page-template-templatesproduct-burner-page-php .related-tech-card__media {
    display: flex !important;
    align-items: center;
    justify-content: center;
    align-self: stretch !important;
    height: auto !important;
    min-height: 100% !important;
}
body.page-template-product-burner-page .related-tech-card__media img,
body.page-template-templatesproduct-burner-page-php .related-tech-card__media img {
    max-width: 100%;
    max-height: 100%;
    height: auto;
    width: auto;
    object-fit: contain;
}

/* v4.9.36 — unifikacja tabel Specyfikacja + Wymiary na szablonie produktu.
 * Cel: spójna hierarchia label/value w obu tabelach.
 *   - TH (labels/headers): mniejsze (15px), uppercase, gray subtle
 *   - TD (values): 18px dominujące, ciemne
 *   - Spec: left align (długie values typu "pellet drzewny A1 6-8mm")
 *   - Wymiary: center align (krótkie wartości liczbowe)
 *   - H3 .dim-heading: 22px (mniejszy niż H2 30px — przywrócona hierarchia)
 */
body.page-template-product-burner-page .pellasx-spec-table th,
body.page-template-product-burner-page .pellasx-dim-table th,
body.page-template-templatesproduct-burner-page-php .pellasx-spec-table th,
body.page-template-templatesproduct-burner-page-php .pellasx-dim-table th {
    font-family: 'Roboto', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: #555 !important;
    line-height: 1.4 !important;
}
body.page-template-product-burner-page .pellasx-spec-table td,
body.page-template-product-burner-page .pellasx-dim-table td,
body.page-template-templatesproduct-burner-page-php .pellasx-spec-table td,
body.page-template-templatesproduct-burner-page-php .pellasx-dim-table td {
    font-family: 'Roboto', sans-serif !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    color: #111 !important;
    line-height: 1.4 !important;
}
/* Spec: left align (długie values) */
body.page-template-product-burner-page .pellasx-spec-table th,
body.page-template-product-burner-page .pellasx-spec-table td,
body.page-template-templatesproduct-burner-page-php .pellasx-spec-table th,
body.page-template-templatesproduct-burner-page-php .pellasx-spec-table td {
    text-align: left !important;
}
/* Wymiary: center align (krótkie wartości liczbowe) */
body.page-template-product-burner-page .pellasx-dim-table th,
body.page-template-product-burner-page .pellasx-dim-table td,
body.page-template-templatesproduct-burner-page-php .pellasx-dim-table th,
body.page-template-templatesproduct-burner-page-php .pellasx-dim-table td {
    text-align: center !important;
}
/* v4.9.38 — Sekcja #pliki (download links) — zmniejszenie za dużej czcionki (~19.6px → 16/13px).
 * .file__name: 16px weight 500 (prominent but not huge)
 * .file__size: 13px gray subtle
 */
body.page-template-product-burner-page #pliki .file__name,
body.page-template-templatesproduct-burner-page-php #pliki .file__name {
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
}
body.page-template-product-burner-page #pliki .file__size,
body.page-template-templatesproduct-burner-page-php #pliki .file__size {
    font-size: 13px !important;
    font-weight: 400 !important;
    color: #777 !important;
    line-height: 1.4 !important;
}

/* H3 .dim-heading ("Wymiary palnika E70 [mm]") — mniejszy niż H2 dla hierarchii
 * Selektor zawiera #wymiary aby wygrał nad wcześniejszym "#wymiary h3" (specificity bump)
 */
body.page-template-product-burner-page #wymiary .dim-heading,
body.page-template-product-burner-page #wymiary h3.dim-heading,
body.page-template-templatesproduct-burner-page-php #wymiary .dim-heading,
body.page-template-templatesproduct-burner-page-php #wymiary h3.dim-heading {
    font-family: 'RBNo31', sans-serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.3 !important;
    margin-top: 1.5rem !important;
    margin-bottom: 1rem !important;
}
body.page-template-product-burner-page .tech-category-heading__title,
body.page-template-templatesproduct-burner-page-php .tech-category-heading__title {
    color: #ffffff !important;   /* biały — body ma dark bg (#0a0a0a) */
}

body.page-template-product-burner-page .tech-category-heading__title,
body.page-template-templatesproduct-burner-page-php .tech-category-heading__title,
body.page-template-product-burner-page #specyfikacja h2,
body.page-template-product-burner-page #specyfikacja h3,
body.page-template-product-burner-page #wymiary h2,
body.page-template-product-burner-page #wymiary h3,
body.page-template-product-burner-page #zestaw h2,
body.page-template-product-burner-page #zestaw h3,
body.page-template-product-burner-page #pliki h2,
body.page-template-product-burner-page #pliki h3,
body.page-template-templatesproduct-burner-page-php #specyfikacja h2,
body.page-template-templatesproduct-burner-page-php #specyfikacja h3,
body.page-template-templatesproduct-burner-page-php #wymiary h2,
body.page-template-templatesproduct-burner-page-php #wymiary h3,
body.page-template-templatesproduct-burner-page-php #zestaw h2,
body.page-template-templatesproduct-burner-page-php #zestaw h3,
body.page-template-templatesproduct-burner-page-php #pliki h2,
body.page-template-templatesproduct-burner-page-php #pliki h3 {
    font-family: 'RBNo31', sans-serif !important;
    font-size: 30px !important;
    font-weight: 700 !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    line-height: 1.25 !important;
}

/* v4.9.23 — Badge .novelty GLOBAL (desktop + mobile, wszystkie strony).
 * Zmiana z theme default yellow na brand red solid + white text.
 */
.novelty {
    background: #e31e24 !important;
    color: #ffffff !important;
    padding: 5px 12px 6px !important;
    border-radius: 5px;
    font-weight: 600 !important;
    letter-spacing: 0.5px;
    /* font-size: theme default fluid 14.94–18px */
}
