/* =============================================================================
   ULFUR SIDEBAR - WooCommerce Pages
   Uses Astra global CSS variables - no hardcoded fonts/sizes/colors.
   ============================================================================= */

/* ---------------------------------------------------------------------------
   Variables (layout-only)
   --------------------------------------------------------------------------- */
:root {
    --ulfur-sb-width: 240px;
    --ulfur-sb-collapsed-width: 56px;
    --ulfur-sb-radius: 12px;
    --ulfur-sb-transition: 0.25s cubic-bezier(.4, 0, .2, 1);
    --ulfur-sb-header-height: 80px;
}

/* Header must sit above the sidebar (z-index:100) so sidebar slides under it */
.site-header {
    position: relative;
    z-index: 101;
}
.astra-shop-summary-wrap {
    margin-top: auto !important;
}


/* ---------------------------------------------------------------------------
   Sidebar container
   --------------------------------------------------------------------------- */
.ulfur-sidebar {
    display: flex;
    flex-direction: column;
    width: var(--ulfur-sb-width);
    min-width: var(--ulfur-sb-width);
    background: var(--ast-global-color-6);
    color: var(--ast-global-color-3);
    padding: 20px 16px;
    border-radius: var(--ulfur-sb-radius);
    transition: width var(--ulfur-sb-transition),
        min-width var(--ulfur-sb-transition),
        padding var(--ulfur-sb-transition);
    overflow: hidden;
    z-index: 100;
    box-sizing: border-box;
}

/* -- Fixed mode (product always, archive per customizer) ------------ */
.ulfur-sidebar--fixed {
    position: fixed;
    left: 0;
    top: var(--ulfur-sb-header-height);
    margin: 0;
    height: auto;
    max-height: calc(100vh - var(--ulfur-sb-header-height) - 40px);
    border-radius: 0 var(--ulfur-sb-radius) var(--ulfur-sb-radius) 0;
    box-shadow: 4px 0 24px rgba(0, 0, 0, .35);
    overflow-y: auto;
}

/* -- Inline / sticky mode (archive when customizer unchecked) ------- */
.ulfur-sidebar--inline {
    flex-shrink: 0;
    position: sticky;
    top: var(--ulfur-sb-header-height);
    max-height: calc(100vh - var(--ulfur-sb-header-height) - 20px);
    overflow-y: auto;
    align-self: flex-start;
}

/* ---------------------------------------------------------------------------
   Collapsed state
   --------------------------------------------------------------------------- */
.ulfur-sidebar--collapsed {
    width: var(--ulfur-sb-collapsed-width);
    min-width: var(--ulfur-sb-collapsed-width);
    padding: 16px 8px;
}

/* Hide text labels when collapsed */
.ulfur-sidebar--collapsed .ulfur-sidebar__username,
.ulfur-sidebar--collapsed .ulfur-sidebar__login-text,
.ulfur-sidebar--collapsed .ulfur-sidebar__cat-name,
.ulfur-sidebar--collapsed .ulfur-sidebar__account-text,
.ulfur-sidebar--collapsed .ulfur-sidebar__toggle-text {
    display: none;
}

/* Collapsed logo -> show favicon, hide full logo */
.ulfur-sidebar__logo-img.ulfur-sidebar__logo-favicon {
    display: none;
}

.ulfur-sidebar--collapsed .ulfur-sidebar__logo-full {
    display: none;
}

.ulfur-sidebar--collapsed .ulfur-sidebar__logo-favicon {
    display: block;
    max-width: 34px;
}

.ulfur-sidebar--collapsed .ulfur-sidebar__logo {
    padding-bottom: 8px;
}

/* Collapsed avatar -> smaller */
.ulfur-sidebar--collapsed .ulfur-sidebar__avatar {
    width: 36px;
    height: 36px;
}

.ulfur-sidebar--collapsed .ulfur-sidebar__user {
    padding: 4px 0 8px;
}

/* Collapsed links -> center icon only */
.ulfur-sidebar--collapsed .ulfur-sidebar__cat-link,
.ulfur-sidebar--collapsed .ulfur-sidebar__account-link {
    justify-content: center;
    padding: 10px 0;
    gap: 0;
}

.ulfur-sidebar--collapsed .ulfur-sidebar__logout-btn {
    padding: 10px 0;
    gap: 0;
    justify-content: center;
}

/* Collapsed toggle -> center, flip the arrow */
.ulfur-sidebar--collapsed .ulfur-sidebar__toggle {
    justify-content: center;
    padding: 10px 0;
    gap: 0;
}

.ulfur-sidebar--collapsed .ulfur-sidebar__toggle-icon svg {
    transform: rotate(180deg);
}

/* ---------------------------------------------------------------------------
   Logo
   --------------------------------------------------------------------------- */
.ulfur-sidebar__logo {
    text-align: center;
    padding-bottom: 8px;
    flex-shrink: 0;
}

.ulfur-sidebar__logo a {
    display: block;
}

.ulfur-sidebar__logo-img {
    height: auto;
    margin: 0 auto;
    display: block;
    transition: max-width var(--ulfur-sb-transition);
}

.ulfur-sidebar__logo-full {
    max-width: 160px;
    max-height: 60px;
    object-fit: contain;
}

.ulfur-sidebar__logo-text {
    color: var(--ast-global-color-3);
    font-weight: 700;
    text-decoration: none;
}

/* ---------------------------------------------------------------------------
   Divider
   --------------------------------------------------------------------------- */
.ulfur-sidebar__divider {
    border: none;
    border-top: 1px solid var(--ast-global-color-7);
    margin: 10px 0;
    flex-shrink: 0;
}

/* Force dividers visible in collapsed state (override any stale cached rules).
   WYJATEK: divider --nav (przed zintegrowanym menu) ma na desktopie zostac
   ukryty razem z menu - inaczej duplikuje sie w zwinietym sidebarze. */
.ulfur-sidebar.ulfur-sidebar--collapsed .ulfur-sidebar__divider:not(.ulfur-sidebar__divider--nav) {
    display: block;
    margin: 6px 0;
}

/* ---------------------------------------------------------------------------
   User section
   --------------------------------------------------------------------------- */
.ulfur-sidebar__user {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 8px 0 12px;
    flex-shrink: 0;
}

.ulfur-sidebar__avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: width var(--ulfur-sb-transition), height var(--ulfur-sb-transition);
}

.ulfur-sidebar__avatar--guest {
    background: var(--ast-global-color-1);
    padding: 10px;
}

/* SVG inside guest avatar */
.ulfur-sidebar__avatar--guest svg {
    width: 100%;
    height: 100%;
}

.ulfur-sidebar__avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.ulfur-sidebar__username {
    color: var(--ast-global-color-3);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.ulfur-sidebar__username {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}
.products li,
.ulfur-carousel__track>li {
    a.button {
        color: #252525 !important;

    }
}

.ulfur-sidebar__login-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: var(--ast-global-color-3);
    transition: color var(--ulfur-sb-transition);
}

.ulfur-sidebar__login-link:hover {
    color: var(--ast-global-color-0);
}

.ulfur-sidebar__login-text {
    white-space: nowrap;
}

/* ---------------------------------------------------------------------------
   SVG icon sizing - override hardcoded width/height from SVG files
   All sidebar icons use a uniform 24x24 size.
   --------------------------------------------------------------------------- */
.ulfur-sidebar__cat-icon svg,
.ulfur-sidebar__account-icon svg {
    width: 24px;
    height: 24px;
    display: block;
}

/* Toggle icon slightly bigger */
.ulfur-sidebar__toggle-icon svg {
    width: 28px;
    height: 28px;
    display: block;
}

/* Resize-Sidebar.svg has hardcoded stroke="#252525" and fill="#FCFCFC"
   which is invisible on dark bg. Override to use theme colors. */
.ulfur-sidebar__toggle-icon svg path {
    stroke: var(--ast-global-color-3);
}

.ulfur-sidebar__toggle-icon svg path[fill="#FCFCFC"] {
    fill: var(--ast-global-color-6);
}

/* Logout icon - inline SVG from assets/svg */
.ulfur-sidebar__logout-btn .ulfur-sidebar__account-icon svg {
    width: 20px;
    height: 20px;
    display: block;
}

.ulfur-sidebar__logout-btn .ulfur-sidebar__account-icon svg path {
    fill: #ffffff;
    stroke: #ffffff;
}

/* ---------------------------------------------------------------------------
   Category navigation
   --------------------------------------------------------------------------- */
.ulfur-sidebar__nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
}

.ulfur-sidebar__cat-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ulfur-sidebar__cat-item {
    margin: 0;
    padding: 0;
}

.ulfur-sidebar__cat-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 8px;
    border-radius: 8px;
    color: var(--ast-global-color-3);
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--ulfur-sb-transition),
        color var(--ulfur-sb-transition);
}

.ulfur-sidebar__cat-link:hover {
    background: var(--ast-global-color-6);
    color: var(--ast-global-color-0);
}

.ulfur-sidebar__cat-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ulfur-sidebar__cat-icon img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.ulfur-sidebar__cat-name {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---------------------------------------------------------------------------
   Account section (logged in)
   --------------------------------------------------------------------------- */
.ulfur-sidebar__account {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ulfur-sidebar__account-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 8px;
    border-radius: 8px;
    color: var(--ast-global-color-3);
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--ulfur-sb-transition),
        color var(--ulfur-sb-transition);
}

.ulfur-sidebar__account-link:hover {
    background: var(--ast-global-color-6);
    color: var(--ast-global-color-0);
}

.ulfur-sidebar__account-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* -- Logout button ---------------------------------------------------- */
.ulfur-sidebar__logout-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--ast-global-color-1);
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
    transition: opacity var(--ulfur-sb-transition);
    margin-top: 6px;
}

.ulfur-sidebar__logout-btn:hover {
    opacity: 0.85;
    color: #ffffff;
}

.ulfur-sidebar__logout-btn .ulfur-sidebar__account-icon {
    width: 20px;
    height: 20px;
}

.ulfur-sidebar__logout-btn .ulfur-sidebar__account-icon svg {
    width: 20px;
    height: 20px;
    color: #ffffff;
}

/* ---------------------------------------------------------------------------
   Toggle button
   --------------------------------------------------------------------------- */
.ulfur-sidebar__toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 8px;
    margin-top: auto;
    border: none;
    background: none;
    color: var(--ast-global-color-3);
    cursor: pointer;
    border-radius: 8px;
    transition: background var(--ulfur-sb-transition),
        color var(--ulfur-sb-transition);
    white-space: nowrap;
    flex-shrink: 0;
    font-family: inherit;
    font-size: inherit;
}

.ulfur-sidebar__toggle:hover {
    background: var(--ast-global-color-6);
    color: var(--ast-global-color-0);
}

.ulfur-sidebar__toggle-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ulfur-sidebar__toggle-icon svg {
    transition: transform var(--ulfur-sb-transition);
}

/* ---------------------------------------------------------------------------
   Astra layout override: CSS Grid on .ast-container
   Row 1: archive header (breadcrumbs + title) - full width
   Row 2: sidebar (left col) | #primary with filters + products (right col)
   --------------------------------------------------------------------------- */
body.woocommerce #content.site-content > .ast-container,
body.post-type-archive-product #content.site-content > .ast-container {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr;
    gap: 0 20px;
    align-items: start;
}

/* Kill Astra clearfix pseudo-elements - they break grid */
body.woocommerce #content.site-content > .ast-container::before,
body.woocommerce #content.site-content > .ast-container::after,
body.post-type-archive-product #content.site-content > .ast-container::before,
body.post-type-archive-product #content.site-content > .ast-container::after {
    display: none !important;
}

/* Archive header (breadcrumbs + title): full width, row 1 */
body.woocommerce #content.site-content > .ast-container > .ulfur-archive-header,
body.post-type-archive-product #content.site-content > .ast-container > .ulfur-archive-header {
    grid-column: 1 / -1;
    grid-row: 1;
}

/* Sidebar: left column, row 2 (only in inline mode) */
body.ulfur-sidebar-inline #content.site-content > .ast-container > #ulfur-sidebar {
    grid-column: 1;
    grid-row: 2;
}

/* #primary (filters + products): right column, row 2
   When sidebar is inline, it's in col 2.
   When sidebar is fixed, there's no sidebar in the grid - primary fills the space. */
body.ulfur-sidebar-inline #content.site-content > .ast-container > #primary {
    grid-column: 2;
    grid-row: 2;
    float: none;
    width: auto;
    min-width: 0;
    margin-top: 0;
}

/* When sidebar is fixed it is position:fixed and lives outside the grid.
   We give it position:absolute so it doesn't occupy a grid cell, but we
   do NOT hide it - the element itself is already position:fixed via its
   own class. We just need the grid to ignore it.                         */
body.ulfur-sidebar-fixed #content.site-content > .ast-container {
    grid-template-columns: 1fr; /* sidebar is not a grid child */
}

body.ulfur-sidebar-fixed #content.site-content > .ast-container > #primary {
    grid-column: 1 / -1;
    grid-row: 2;
    float: none;
    width: auto;
    min-width: 0;
    margin-top: 0;
}

/* Smooth push animation for sidebar margin */
#content .ast-container {
    transition: margin-left var(--ulfur-sb-transition);
}

/* ---------------------------------------------------------------------------
   Scrollbar styling (thin, dark)
   --------------------------------------------------------------------------- */
.ulfur-sidebar::-webkit-scrollbar {
    width: 4px;
}

.ulfur-sidebar::-webkit-scrollbar-track {
    background: transparent;
}

.ulfur-sidebar::-webkit-scrollbar-thumb {
    background: var(--ast-global-color-7);
    border-radius: 4px;
}

/* =============================================================================
   PRODUCT PAGE - Single Product Styles
   ============================================================================= */

/* Hide default WooCommerce in-stock text — stock toasts handle low-stock
   feedback. Out-of-stock stays visible, in the accent colour. */
.product .stock,
.product .ast-stock-detail {
    &:not(.out-of-stock) {
        display: none;
    }
}
.out-of-stock {
    color: var(--ast-global-color-0) !important;
}

/* ---------------------------------------------------------------------------
   WooCommerce session notices — hide inline rendering immediately.
   toast.js processes these at DOMContentLoaded: valid ones become toasts,
   stock-exceeded notices are suppressed. The CSS prevents a brief flash of
   raw WC notice markup before JS can set display:none on each element.
   --------------------------------------------------------------------------- */
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info {
    display: none;
}

/* ---------------------------------------------------------------------------
   Breadcrumb - simple, muted path
   --------------------------------------------------------------------------- */
/* Hide Astra / WooCommerce category link sprawl above title + duplicate meta */
.single-product .ast-single-product-catagory,
.single-product .ast-single-product-category,
.single-product .entry-summary > .posted_in,
.single-product .entry-summary > span.posted_in,
.single-product div.product > .product_meta:not(.ulfur-product-meta),
.single-product .entry-summary .product_meta:not(.ulfur-product-meta) {
    display: none !important;
}

.single-product nav.woocommerce-breadcrumb {
    font-size: 0.8rem;
    color: var(--ast-global-color-3);
    opacity: 0.6;
    margin-bottom: 8px;
    padding: 0;
}

.single-product nav.woocommerce-breadcrumb a {
    color: var(--ast-global-color-3);
    text-decoration: none;
    transition: color 0.2s;
}

.single-product nav.woocommerce-breadcrumb a:hover {
    color: var(--ast-global-color-0);
    opacity: 1;
}

/* ---------------------------------------------------------------------------
   Product Title
   --------------------------------------------------------------------------- */
.single-product .product_title.entry-title {
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 0;
    color: var(--ast-global-color-0);
}

/* ---------------------------------------------------------------------------
   Product Subtitle (Podtytul)
   --------------------------------------------------------------------------- */
.single-product .ulfur-product-subtitle {
    font-size: 1rem;
    font-weight: 400;
    color: var(--ast-global-color-3);
    opacity: 1;            /* Nr 63: bylo szare przez opacity 0.7 */
    margin: 4px 0 0;
    line-height: 1.4;
}

/* ---------------------------------------------------------------------------
   Price - large, accent colored
   --------------------------------------------------------------------------- */
.single-product p.price,
.single-product span.price {
    font-size: 1.8rem !important;
    font-weight: 700;
    color: var(--ast-global-color-0) !important;
    margin-top: 35px;
    margin-bottom: 16px;
    display: block;
}

.single-product p.price del {
    opacity: 0.5;
    font-size: 1.2rem;
    color: var(--ast-global-color-3) !important;
}

.single-product p.price ins {
    text-decoration: none;
    color: var(--ast-global-color-0);
}

/* ---------------------------------------------------------------------------
   Add to Cart - styled button + quantity
   --------------------------------------------------------------------------- */
.single-product form.cart {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    margin-top: 8px;
}

.single-product form.cart .quantity {
    display: flex;
    align-items: center;
}

.single-product form.cart .quantity .qty {
    width: 60px;
    padding: 10px 8px;
    border: 1px solid var(--ast-global-color-7);
    border-radius: 8px;
    background: var(--ast-global-color-5);
    color: var(--ast-global-color-3);
    text-align: center;
    font-size: 0.95rem;
    font-family: inherit;
    -moz-appearance: textfield;
}

.single-product form.cart .quantity .qty::-webkit-inner-spin-button,
.single-product form.cart .quantity .qty::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

.single-product form.cart button.single_add_to_cart_button {
    padding: 10px 28px;
    background: var(--ast-global-color-0) !important;
    border-radius: 8px;
    color: #252525 !important;
    font-size: 0.95rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    text-transform: none;
    letter-spacing: 0;
    height:40px;
    white-space: nowrap;
}


/* ---------------------------------------------------------------------------
   Product Meta - SKU + Categories
   --------------------------------------------------------------------------- */
.single-product .product_meta {
    font-size: 0.85rem;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--ast-global-color-7);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.single-product .product_meta > span {
    display: block;
}

.single-product .product_meta a {
    color: var(--ast-global-color-0);
    text-decoration: none;
    transition: opacity 0.2s;
}

.single-product .product_meta a:hover {
    opacity: 0.8;
}

/* ---------------------------------------------------------------------------
   Product Gallery - thumbnails row below
   --------------------------------------------------------------------------- */
.single-product .woocommerce-product-gallery {
    margin-bottom: 24px;
}

.single-product .woocommerce-product-gallery .flex-viewport {
    border-radius: 12px;
    overflow: hidden;
    background: var(--ast-global-color-5);
}

.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding: 0;
    list-style: none;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid transparent;
    transition: border-color 0.2s;
    cursor: pointer;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li:hover,
.single-product .woocommerce-product-gallery .flex-control-thumbs li .flex-active {
    border-color: var(--ast-global-color-0);
}

/* Gallery lightbox trigger */
.single-product .woocommerce-product-gallery__trigger {
    width: 36px;
    height: 36px;
    background: rgba(0, 0, 0, 0.6) !important;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ---------------------------------------------------------------------------
   Product Sections - stacked layout (all panels visible, nav = anchor links)
   --------------------------------------------------------------------------- */

/* Smooth push for sidebar */
#content {
    transition: padding-left var(--ulfur-sb-transition, 0.25s cubic-bezier(.4, 0, .2, 1));
}

.single-product .woocommerce-tabs {
    margin-top: 40px;
}

/* -- Nav bar - acts as anchor links, not actual tabs -------------- */
.single-product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
    border-bottom: 2px solid var(--ast-global-color-7);
    background: transparent;
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--ast-global-color-5, #1a1a1a);
    padding-top: 8px;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after {
    display: none;
}

.single-product .woocommerce-tabs ul.tabs li {
    padding: 0;
    margin: 0;
    border: none;
    background: transparent !important;
    border-radius: 0;
    position: relative;
}

.single-product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 12px 24px;
    color: var(--ast-global-color-3);
    opacity: 0.6;
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    transition: color 0.2s, opacity 0.2s;
    white-space: nowrap;
    background: transparent;
}

.single-product .woocommerce-tabs ul.tabs li a:hover {
    opacity: 1;
    color: var(--ast-global-color-0);
}

.single-product .woocommerce-tabs ul.tabs li.active {
    border-bottom: 2px solid var(--ast-global-color-0);
    margin-bottom: -2px;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
    opacity: 1;
    color: var(--ast-global-color-0);
    font-weight: 600;
}

/* -- Mobile (<=768px): stack the tabs as a plain left-aligned list. Only the
   flow changes from a row to a column - the existing text styling (bold active
   item, top/bottom divider lines) is kept. Sticky positioning and the active
   underline are dropped: neither reads correctly in a vertical list. -- */
@media (max-width: 768px) {
    .single-product .woocommerce-tabs ul.tabs {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        position: static;
    }

    .single-product .woocommerce-tabs ul.tabs li.active {
        border-bottom: none;
        margin-bottom: 0;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        padding: 8px 0;
        text-align: left;
        white-space: normal;
    }
}

/* -- ALL panels visible (stacked) - override WC's hide behaviour -- */
.single-product .woocommerce-Tabs-panel {
    display: block !important;
    padding: 0 0 48px;
    margin-bottom: 0;
    background: transparent;
}

.single-product .woocommerce-Tabs-panel h2 {
    margin-bottom: 20px;
    color: var(--ast-global-color-3);
}

/* Additional info table */
.single-product .shop_attributes {
    border-collapse: collapse;
    width: 100%;
}

.single-product .shop_attributes th,
.single-product .shop_attributes td {
    padding: 10px 16px;
    border-bottom: 1px solid var(--ast-global-color-7);
    font-size: 0.9rem;
}

.single-product .shop_attributes th {
    font-weight: 600;
    color: var(--ast-global-color-3);
    text-align: left;
    width: 180px;
    background: rgba(255, 255, 255, 0.03);
}

.single-product .shop_attributes td {
    color: var(--ast-global-color-3);
    opacity: 0.85;
}

/* ---------------------------------------------------------------------------
   Related Products - carousel style
   --------------------------------------------------------------------------- */
.single-product section.related.products {
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--ast-global-color-7);
}

.single-product section.related.products > h2 {
    margin-bottom: 20px;
}

.single-product section.related.products ul.products {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 4px 0;
}

.single-product section.related.products ul.products::-webkit-scrollbar {
    display: none;
}

.single-product section.related.products ul.products li.product {
    flex: 0 0 calc(25% - 12px);
    min-width: 180px;
    scroll-snap-align: start;
    margin: 0 !important;
}

/* Mobile (<=768px): show one full card + a peek of the next, matching the
   card-peek treatment used elsewhere (front-page carousels, archive sliders). */
@media (max-width: 768px) {
    .single-product section.related.products ul.products li.product {
        flex: 0 0 62%;
        min-width: 0;
    }
}

/* ---------------------------------------------------------------------------
   Product card styling (shared for related products)
   --------------------------------------------------------------------------- */
.single-product section.related.products .product .woocommerce-loop-product__link {
    text-decoration: none;
}

.single-product section.related.products .product img {
    border-radius: 8px;
    transition: transform 0.2s;
}

.single-product section.related.products .product:hover img {
    transform: scale(1.03);
}

.single-product section.related.products .product .woocommerce-loop-category__title,
.single-product section.related.products .product .woocommerce-loop-product__title {
    font-size: 0.9rem;
    margin-top: 8px;
}

.single-product section.related.products .product .price {
    font-size: 0.85rem !important;
}

/* Add to cart button on cards */
.single-product section.related.products .product .button {
    padding: 8px 16px;
    border: 2px solid var(--ast-global-color-0);
    border-radius: 6px;
    background: transparent;
    color: var(--ast-global-color-0);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    text-transform: none;
    margin-top: 8px;
    display: inline-block;
}

.single-product section.related.products .product .button:hover {
    background: var(--ast-global-color-0);
    color: #000;
}

/* ---------------------------------------------------------------------------
   Reviews section
   --------------------------------------------------------------------------- */
.single-product #reviews .comment-reply-title {
    font-size: 1.2rem;
    margin-bottom: 16px;
}

.single-product #reviews .commentlist {
    list-style: none;
    padding: 0;
}

.single-product #reviews .commentlist .comment {
    padding: 16px 0;
    border-bottom: 1px solid var(--ast-global-color-7);
}

.single-product #reviews .star-rating {
    color: var(--ast-global-color-0);
}

/* ---------------------------------------------------------------------------
   Star Rating (single product)
   --------------------------------------------------------------------------- */
.single-product .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.single-product .woocommerce-product-rating .star-rating {
    color: var(--ast-global-color-0);
    font-size: 0.9rem;
    line-height: 1;          /* Nr 64: wyrownanie gwiazdek z tekstem */
    margin: 0;
}
.single-product .woocommerce-product-rating .woocommerce-review-link {
    line-height: 1;
}

.single-product .woocommerce-product-rating .woocommerce-review-link {
    color: var(--ast-global-color-3);
    opacity: 0.6;
    font-size: 0.85rem;
    text-decoration: none;
}

.single-product .woocommerce-product-rating .woocommerce-review-link:hover {
    opacity: 1;
    color: var(--ast-global-color-0);
}

/* ---------------------------------------------------------------------------
   Product codes (SKU / EAN) - small muted text below rating
   --------------------------------------------------------------------------- */
.single-product .ulfur-product-codes {
    font-size: 0.75rem;
    color: var(--ast-global-color-3);
    opacity: 1;
    margin: 4px 0 0;
    padding-bottom: 35px;
    border-bottom: 1px solid var(--ast-global-color-7);
    line-height: 1.4;
}

.single-product .ulfur-product-codes__val {
    color: var(--ast-global-color-0);
    opacity: 1;
}

/* ---------------------------------------------------------------------------
   Attributes - Stacked label: value pairs
   --------------------------------------------------------------------------- */
.single-product .ulfur-product-attrs {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 35px;
    margin-bottom: 0;
}

.single-product .ulfur-product-attr {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 0.9rem;
    color: var(--ast-global-color-3);
    background: transparent;
    border: none;
    padding: 0;
}

.single-product .ulfur-product-attr__label {
    font-weight: 700;
    opacity: 1;
}

.single-product .ulfur-product-attr__value {
    font-weight: 400;
    opacity: 0.9;
}

/* ---------------------------------------------------------------------------
   "Przeczytaj opis produktu" - anchor link + short description
   --------------------------------------------------------------------------- */
.single-product .ulfur-desc-toggle {
    margin-top: 35px;
    margin-bottom: 0;
    padding-bottom: 35px;
    border-bottom: 1px solid var(--ast-global-color-7);
}

.single-product .ulfur-desc-toggle__short {
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--ast-global-color-3);
    opacity: 0.85;
    margin-bottom: 12px;
}

.single-product .ulfur-desc-toggle__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    color: var(--ast-global-color-3);
    font-size: 0.9rem;
    font-weight: 400;
    cursor: pointer;
    transition: color 0.2s;
    font-family: inherit;
    text-decoration: none;
}

.single-product .ulfur-desc-toggle__btn:hover {
    color: var(--ast-global-color-0);
}

.single-product .ulfur-desc-toggle__arrow {
    font-size: 0.65rem;
    transition: transform 0.25s ease;
}

/* ---------------------------------------------------------------------------
   Related products inside tab - no extra border/margin on inner section
   --------------------------------------------------------------------------- */
.single-product .woocommerce-Tabs-panel section.related.products {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
/* =============================================================================
   REASSURANCE CARDS - trust badges below add-to-cart
   ============================================================================= */

.ulfur-reassurance {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 20px;
}

.ulfur-reassurance__card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: var(--ulfur-rc-border-r, 6px);
    border: var(--ulfur-rc-border-w, 1px) solid var(--ulfur-rc-border-clr, rgba(255, 255, 255, 0.08));
    background: var(--ulfur-rc-bg, rgba(255, 255, 255, 0.05));
}

.ulfur-reassurance__icon {
    flex-shrink: 0;
    width: var(--ulfur-rc-icon-circle, 44px);
    height: var(--ulfur-rc-icon-circle, 44px);
    border-radius: var(--ulfur-rc-icon-r, 50%);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ulfur-rc-icon-bg, #d4943a);
    color: var(--ulfur-rc-icon-clr, #ffffff);
}

.ulfur-reassurance__icon .dashicons {
    font-size: var(--ulfur-rc-icon-size, 20px);
    width: var(--ulfur-rc-icon-size, 20px);
    height: var(--ulfur-rc-icon-size, 20px);
    line-height: 1;
}

.ulfur-reassurance__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ulfur-reassurance__title {
    font-weight: 600;
    font-size: var(--ulfur-rc-title-size, 14px);
    color: var(--ulfur-rc-title-clr, rgba(255, 255, 255, 0.9));
}

.ulfur-reassurance__subtitle {
    font-size: var(--ulfur-rc-sub-size, 12px);
    color: var(--ulfur-rc-sub-clr, rgba(255, 255, 255, 0.5));
}

@media (max-width: 600px) {
    .ulfur-reassurance {
        grid-template-columns: 1fr;
    }
}

/* =============================================================================
   CUSTOM REVIEWS SECTION - Pixel-matched to Figma
   ============================================================================= */

/* -- Summary: 3-column layout --------------------------------------- */
.ulfur-reviews__summary {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 40px;
    align-items: center;
    margin-bottom: 32px;
}

/* Col 1: Average rating */
.ulfur-reviews__avg {
    text-align: center;
    min-width: 100px;
}

.ulfur-reviews__score {
    line-height: 1;
    margin-bottom: 8px;
}

.ulfur-reviews__score-big {
    font-size: 3rem;
    font-weight: 700;
    color: #d4943a;
}

.ulfur-reviews__score-max {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.5);
    font-weight: 400;
}

.ulfur-reviews__stars {
    font-size: 1.2rem;
    margin-bottom: 6px;
    letter-spacing: 2px;
}

.ulfur-reviews__count {
    font-size: 0.78rem;
    color: #3bb8a5;
}

/* Stars - context-based colors */
.ulfur-star--filled.ulfur-star--summary {
    color: #3bb8a5;
}

.ulfur-star--half.ulfur-star--summary {
    color: #3bb8a5;
    opacity: 0.6;
}

.ulfur-star--filled.ulfur-star--card {
    color: #d4943a;
}

.ulfur-star--half.ulfur-star--card {
    color: #d4943a;
    opacity: 0.6;
}

.ulfur-star--empty {
    color: rgba(255, 255, 255, 0.25);
}

/* Col 2: Bar graph */
.ulfur-reviews__graph {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.ulfur-reviews__bar-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ulfur-reviews__bar-label {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.5);
    min-width: 10px;
    text-align: right;
}

.ulfur-reviews__bar-track {
    flex: 1;
    height: 16px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 3px;
    overflow: hidden;
}

.ulfur-reviews__bar-fill {
    height: 100%;
    border-radius: 3px;
    min-width: 0;
    transition: width 0.6s ease;
}

/* Col 3: CTA */
.ulfur-reviews__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px 24px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 4px;
    gap: 14px;
}

.ulfur-reviews__cta-text {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
    line-height: 1.5;
}

.ulfur-reviews__add-btn {
    display: inline-block;
    padding: 8px 22px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 4px;
    background: transparent;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.82rem;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
    font-family: inherit;
}

.ulfur-reviews__add-btn:hover {
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

/* -- Review cards - NO background, thin border only ----------------- */
.ulfur-reviews__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ulfur-reviews__card {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 20px;
    padding: 16px 20px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 4px;
    background: transparent;
}

.ulfur-reviews__card-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ulfur-reviews__card-author {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.85rem;
}

.ulfur-reviews__card-date {
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.4);
}

.ulfur-reviews__card-stars {
    font-size: 0.8rem;
    letter-spacing: 1px;
    margin-top: 4px;
}

.ulfur-reviews__card-text {
    font-size: 0.82rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.7);
}

.ulfur-reviews__empty {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.5);
    padding: 24px 0;
}

/* -- Pagination — matches blog .page-numbers style ------------------- */
.ulfur-reviews__pagination {
    display: flex;
    gap: 0;
    justify-content: center;
    margin-top: 32px;
}

.ulfur-reviews__page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    margin: 0 4px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    background: transparent;
    color: var(--ast-global-color-3);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: border-color 0.2s, background 0.2s, color 0.2s;
}

.ulfur-reviews__page-btn:hover {
    border-color: var(--ast-global-color-0);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ast-global-color-0);
}

.ulfur-reviews__page-btn.is-active {
    background: var(--ast-global-color-0);
    border-color: var(--ast-global-color-0);
    color: #252525;
    font-weight: 700;
}

/* -- Review form MODAL ------------------------------------------- */
.ulfur-reviews__modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.ulfur-reviews__modal-overlay.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.ulfur-reviews__modal {
    position: relative;
    width: 100%;
    max-width: 540px;
    max-height: 90vh;
    overflow-y: auto;
    background: #1e1e1e;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    padding: 36px;
    transform: scale(0.95) translateY(15px);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}

.ulfur-reviews__modal-overlay.is-active .ulfur-reviews__modal {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.ulfur-reviews__modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: none;
    border: none;
    color: var(--ast-global-color-3);
    font-size: 1.8rem;
    cursor: pointer;
    line-height: 1;
    opacity: 0.6;
    transition: opacity 0.2s;
}

.ulfur-reviews__modal-close:hover {
    opacity: 1;
}

.ulfur-reviews__form-title {
    font-size: 1.1rem;
    margin-bottom: 20px;
    color: var(--ast-global-color-3);
}

/* Star rating selector */
.ulfur-reviews__rating-select {
    margin-bottom: 16px;
}

.ulfur-reviews__rating-select label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.85rem;
    color: var(--ast-global-color-3);
}

.ulfur-reviews__stars-select {
    display: flex;
    gap: 6px;
}

.ulfur-reviews__star-btn {
    font-size: 1.6rem;
    color: rgba(255, 255, 255, 0.2);
    cursor: pointer;
    transition: color 0.15s, transform 0.15s;
    user-select: none;
}

.ulfur-reviews__star-btn:hover,
.ulfur-reviews__star-btn.is-hovered {
    color: #f0c040;
    transform: scale(1.15);
}

.ulfur-reviews__star-btn.is-selected {
    color: #f0c040;
}

/* Modal form fields */
.ulfur-reviews__modal label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.85rem;
    color: var(--ast-global-color-3);
}

.ulfur-reviews__modal textarea,
.ulfur-reviews__modal input[type="text"],
.ulfur-reviews__modal input[type="email"] {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--ast-global-color-3);
    font-family: inherit;
    font-size: 0.9rem;
    box-sizing: border-box;
}

.ulfur-reviews__modal textarea:focus,
.ulfur-reviews__modal input:focus {
    outline: none;
    border-color: var(--ast-global-color-0);
}

/* Przycisk „Wyślij" opinii = ten sam wygląd co .wpcf7-submit: zwykły przycisk
   motywu (baza z Astry + wspólny hover z global.css, który łapie go przez klasę
   .button). Nie nadajemy własnego tła/paddingu — dzięki temu jest identyczny jak
   przycisk formularza CF7. Ma jednak id=submit, więc Astra dokłada stan
   :focus/:active zmieniający rozmiar (kurczenie po kliknięciu) — zerujemy tylko
   te zmiany, całą resztę zostawiając motywowi. */
.ulfur-reviews__modal #submit.ulfur-reviews__submit-btn,
.ulfur-reviews__modal #submit.ulfur-reviews__submit-btn:hover,
.ulfur-reviews__modal #submit.ulfur-reviews__submit-btn:focus,
.ulfur-reviews__modal #submit.ulfur-reviews__submit-btn:active,
.ulfur-reviews__modal #submit.ulfur-reviews__submit-btn:disabled {
    margin-top: 12px;
    transform: none !important;
    box-shadow: none !important;
    outline: none !important;
}
.ulfur-reviews__modal #submit.ulfur-reviews__submit-btn:disabled {
    opacity: 0.7;
    cursor: default;
}

.ulfur-reviews__login {
    font-size: 0.9rem;
    color: var(--ast-global-color-3);
}

.ulfur-reviews__login a {
    color: var(--ast-global-color-0);
}

/* -- Responsive: stack on mobile ------------------------------------ */
@media (max-width: 768px) {
    .ulfur-reviews__summary {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .ulfur-reviews__graph {
        max-width: 100%;
    }

    .ulfur-reviews__card {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .ulfur-reviews__modal {
        padding: 24px;
        max-width: 100%;
    }
}

/* Product image zoom background (WooCommerce) */
.zoomImg {
    background-color: var(--ast-global-color-4) !important;
}

/* =============================================================================
   MOBILE SIDEBAR - Modal Drawer (<= 1100px), slides in from the RIGHT.
   Opened by the Astra header menu toggle (see shop.js). The sidebar is
   rendered site-wide so it is the single mobile main menu.
   ============================================================================= */

/* Integrated WP menu - only relevant on mobile (desktop uses the header menu).
   Jego dzielnik (--nav) musi znikac/pokazywac sie RAZEM z menu, inaczej na PC
   zostaje osierocona, zduplikowana linia. */
.ulfur-sidebar__menu,
.ulfur-sidebar__divider--nav {
    display: none;
}

/* Backdrop overlay */
.ulfur-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 999;
    opacity: 0;
    transition: opacity 0.3s;
}

body.ulfur-sidebar-modal-open .ulfur-sidebar-overlay {
    display: block;
    opacity: 1;
}

/* Lock body scroll when the drawer is open */
body.ulfur-sidebar-modal-open {
    overflow: hidden;
}

/* Desktop: the site-wide sidebar must only appear on shop pages
   (those get the ulfur-sidebar body classes). Hide it elsewhere. */
@media (min-width: 1101px) {
    body:not(.ulfur-sidebar-visible):not(.ulfur-sidebar-inline) #ulfur-sidebar {
        display: none;
    }
}

@media (max-width: 1100px) {

    /* Off-canvas drawer on the RIGHT */
    .ulfur-sidebar,
    .ulfur-sidebar--fixed,
    .ulfur-sidebar--inline {
        display: flex;
        position: fixed;
        top: 0;
        right: 0;
        left: auto;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        width: min(86vw, 360px);
        min-width: 0;
        z-index: 1000;
        transform: translateX(100%);
        transition: transform 0.3s cubic-bezier(.4, 0, .2, 1);
        border-radius: 0;
        box-shadow: none;
        overflow-y: auto;
    }

    /* Modal open state */
    .ulfur-sidebar--mobile-open {
        transform: translateX(0);
        box-shadow: -8px 0 32px rgba(0, 0, 0, 0.5);
    }

    /* The offscreen drawer must not create horizontal scroll / shift the page */
    html,
    body {
        overflow-x: hidden;
    }

    /* Show the integrated menu only on mobile */
    .ulfur-sidebar__menu {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }
    .ulfur-sidebar__divider--nav {
        display: block;
    }

    /* No content push on mobile */
    #content {
        padding-left: 0 !important;
    }

    /* Astra's own off-canvas menu is replaced by the sidebar drawer */
    #ast-mobile-popup {
        display: none !important;
    }
}

/* =============================================================================
   ADD-TO-CART MODAL
   ============================================================================= */

.ulfur-cart-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.ulfur-cart-modal.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.ulfur-cart-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
}

.ulfur-cart-modal__dialog {
    position: relative;
    width: 90%;
    max-width: 660px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    transform: scale(0.95) translateY(15px);
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}

.ulfur-cart-modal.is-active .ulfur-cart-modal__dialog {
    transform: scale(1) translateY(0);
    opacity: 1;
}

/* Header */
.ulfur-cart-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid #e8e8e8;
}

.ulfur-cart-modal__title {
    font-size: 17px;
    font-weight: 700;
    color: #1a1a1a;
}

.ulfur-cart-modal__close {
    background: none;
    border: none;
    font-size: 24px;
    color: #999;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
    transition: color 0.15s;
}

.ulfur-cart-modal__close:hover {
    color: #333;
}

/* Body - product info row */
.ulfur-cart-modal__body {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 24px;
}

.ulfur-cart-modal__image {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
}

.ulfur-cart-modal__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 6px;
}

.ulfur-cart-modal__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ulfur-cart-modal__name {
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
}

.ulfur-cart-modal__sku {
    font-size: 13px;
    color: #888;
}

/* Prices - right side */
.ulfur-cart-modal__prices {
    flex-shrink: 0;
    text-align: right;
    display: grid;
    grid-template-columns: auto auto;
    gap: 2px 8px;
    align-items: baseline;
}

.ulfur-cart-modal__price-brutto {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
}

.ulfur-cart-modal__price-netto {
    font-size: 14px;
    color: #888;
}

.ulfur-cart-modal__price-label {
    font-size: 12px;
    color: #aaa;
}

/* Ilosc + cena calkowita (gdy dodano > 1 szt.) */
.ulfur-cart-modal__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 12px 20px 0;
    padding-top: 12px;
    border-top: 1px solid #eee;
    font-size: 14px;
    color: #1a1a1a;
}
.ulfur-cart-modal__summary strong {
    font-weight: 700;
}

/* Footer */
.ulfur-cart-modal__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-top: 1px solid #e8e8e8;
    background: #fafafa;
}

.ulfur-cart-modal__back {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #555;
    text-decoration: none;
    transition: color 0.15s;
}

.ulfur-cart-modal__back span {
    font-size: 20px;
    line-height: 1;
}

.ulfur-cart-modal__back:hover {
    color: #1a1a1a;
}

/* Mobile */
@media (max-width: 500px) {
    .ulfur-cart-modal__body {
        flex-wrap: wrap;
        gap: 16px;
    }
    .ulfur-cart-modal__prices {
        width: 100%;
        text-align: left;
        grid-template-columns: auto auto 1fr;
    }
}

/* =============================================================================
   SELECT2 - Global dark theme (applies to checkout + account address forms)
   ============================================================================= */

/* Selection input (the closed "Polska" field) */
.select2-container--default .select2-selection--single {
    background-color: #252525 !important;
    border: 1px solid #979797 !important;
    border-radius: 8px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #FCFCFC !important;
    line-height: 40px !important;
    padding: 0 14px !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 38px !important;
    right: 10px !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #FCFCFC transparent transparent transparent !important;
}

/* Open state - arrow flips */
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #FCFCFC transparent !important;
}

/* Dropdown panel */
.select2-container--default .select2-dropdown {
    background-color: #252525 !important;
    border: 1px solid #979797 !important;
    border-radius: 8px !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5) !important;
}

/* Search field inside dropdown */
.select2-container--default .select2-search--dropdown .select2-search__field {
    background: #1e1e1e !important;
    color: #FCFCFC !important;
    border: 1px solid #979797 !important;
    border-radius: 6px !important;
    padding: 8px 12px !important;
    outline: none !important;
    box-shadow: none !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: #FCFCFC !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field::placeholder {
    color: rgba(252, 252, 252, 0.4) !important;
}

/* Results list */
.select2-results,
.select2-results__options {
    background: #252525 !important;
}

.select2-container--default .select2-results__option {
    background: #252525 !important;
    color: #FCFCFC !important;
    padding: 9px 14px !important;
    font-size: 14px !important;
    border-radius: 4px !important;
    margin: 1px 4px !important;
    transition: background 0.1s !important;
}

/* Hover highlight */
.select2-container--default .select2-results__option--highlighted,
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #FCFCFC !important;
}

/* Selected item */
.select2-container--default .select2-results__option[aria-selected="true"] {
    background: rgba(255, 255, 255, 0.05) !important;
    color: #FCFCFC !important;
}

/* =============================================================================
   CUSTOM SELECT DROPDOWN - global (checkout + account address edit)
   ============================================================================= */

/* Hide residual Select2 containers once JS replaces them */
.select2-container--default { display: none !important; }

/* Re-show Select2 on elements NOT processed by our JS yet (avoid flash) */
select[data-ulfur-custom] + .select2-container--default { display: none !important; }

/* Trigger button - same as .ulfur-addr-dropdown__btn in checkout.css */
.ulfur-addr-dropdown__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 8px;
    padding: 12px 16px;
    border: 1px solid #979797 !important;
    border-radius: 8px;
    background: transparent !important;
    color: #FCFCFC;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    text-align: left;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
}

.ulfur-addr-dropdown__btn:hover,
.ulfur-addr-dropdown__btn:focus,
.ulfur-addr-dropdown__btn:active,
.ulfur-addr-dropdown__btn[aria-expanded="true"] {
    border: 1px solid #979797 !important;
    background: rgba(255, 255, 255, 0.04) !important;
    outline: none !important;
    box-shadow: none !important;
}

.ulfur-addr-dropdown__label { flex: 1; }

.ulfur-addr-dropdown__chevron {
    flex-shrink: 0;
    transition: transform 0.2s;
}

.ulfur-addr-dropdown__btn[aria-expanded="true"] .ulfur-addr-dropdown__chevron {
    transform: rotate(180deg);
}

/* Dropdown panel */
.ulfur-addr-custom-dropdown { position: relative; }

.ulfur-addr-dropdown__panel {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: #252525;
    border: 1px solid #979797;
    border-radius: 8px;
    padding: 8px;
    z-index: 9999;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}

.ulfur-addr-dropdown__panel.is-open { display: block; }

/* Search input */
.ulfur-custom-select__search {
    width: 100%;
    box-sizing: border-box;
    background: #1e1e1e !important;
    border: 1px solid #979797 !important;
    border-radius: 6px;
    color: #FCFCFC !important;
    padding: 7px 10px;
    font-size: 13px;
    font-family: inherit;
    outline: none;
}

.ulfur-custom-select__search::placeholder { color: rgba(252,252,252,0.4); }
.ulfur-custom-select__search:focus { border-color: #FCFCFC !important; }

/* Scrollable options list */
.ulfur-custom-select__options {
    max-height: 220px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #555 transparent;
}

.ulfur-custom-select__options::-webkit-scrollbar { width: 4px; }
.ulfur-custom-select__options::-webkit-scrollbar-thumb { background: #555; border-radius: 4px; }

/* Option row */
.ulfur-addr-dropdown__option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 8px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s;
}

.ulfur-addr-dropdown__option:hover { background: rgba(255, 255, 255, 0.06); }

.ulfur-addr-dropdown__option-label {
    font-size: 14px;
    color: #FCFCFC;
    flex: 1;
}

.ulfur-addr-dropdown__check {
    flex-shrink: 0;
    opacity: 0;
    transition: opacity 0.15s, transform 0.15s;
    transform: scale(0.8);
}

.ulfur-addr-dropdown__option.is-selected .ulfur-addr-dropdown__check {
    opacity: 1;
    transform: scale(1);
}

/* =========================================================================
   WooCommerce BlockUI override - branded dark overlay + yellow spinner
   ========================================================================= */
.blockUI.blockOverlay {
    background: rgba(18, 18, 18, 0.65) !important;
    border-radius: 12px;
}
.blockUI.blockOverlay::before {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 30px;
    margin-top:  -15px;
    margin-left: -15px;
    border: 3px solid rgba(255, 255, 255, 0.12);
    border-top-color: #F5A623;
    border-radius: 50%;
    animation: ulfurBlockSpin 0.7s linear infinite;
    background: transparent !important;
    box-shadow: none !important;
}
@keyframes ulfurBlockSpin {
    to { transform: rotate(360deg); }
}

/* =============================================================================
   ZINTEGROWANE "SUPERIOR" CSS - WooCommerce (karta produktu, single, sidebar,
   ilosc, mini-koszyk). Sekcja nadrzedna na koncu pliku.
   ============================================================================= */

/* -- Karta produktu (siatka sklepu + karuzele) - baza ----------------------- */
.products li,
.ulfur-carousel__track > li {
    box-shadow: 2px 2px 4px 0px #00000040 !important;
    border: 1px solid #C3C3C3 !important;
    padding: 16px !important;
    border-radius: 8px;
}
.products li h2,
.ulfur-carousel__track > li h2 {
    font-size: 16px !important;
    font-weight: 700 !important;
    margin-bottom: 8px !important;
}
.products li bdi,
.ulfur-carousel__track > li bdi {
    font-size: 16px !important;
    font-weight: 400 !important;
}
.products li bdi bdi,
.products li bdi span,
.ulfur-carousel__track > li bdi bdi,
.ulfur-carousel__track > li bdi span {
    font-size: 16px !important;
    font-weight: 400 !important;
}
.products li *,
.ulfur-carousel__track > li * {
    text-align: center;
}
.products li a.button,
.ulfur-carousel__track > li a.button {
    background: var(--ast-global-color-0) !important;
    color: #252525 !important;
    margin-bottom: 0 !important;
    width: 100%;
}
.astra-shop-summary-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.ast-on-card-button > .ahfb-svg-iconset {
    display: none !important;
}

/* -- Karuzela: kafelek = kolumna, przycisk docisniety do dolu (rowne wysokosci),
      ocena ukryta. --------------------------------------------------------- */
.ulfur-carousel .review-rating {
    display: none !important;
}
.ulfur-carousel .product {
    display: flex;
    flex-direction: column;
}
.ulfur-carousel .woocommerce-loop-product__link {
    margin-bottom: 8px !important;
}
.ulfur-carousel .add_to_cart_button {
    margin-top: auto !important;
}
.ulfur-carousel__track .price {
    margin-bottom: 8px !important;
}

/* -- Pojedynczy produkt - tytul / podtytul / cena / rating ------------------ */
.single-product .product_title.entry-title {
    font-size: 32px;
}
.ulfur-product-subtitle {
    margin: 4px 0 4px !important;
}
.product-type-simple .summary .price {
    margin: 35px 0 !important;
}
.single-product form.cart {
    gap: 0 !important;
}
.single-product .ast-breadcrumbs-wrapper {
    margin-top: 60px !important;
}
.single-product .woocommerce-product-rating {
    display: flex;
}
.woocommerce-js .woocommerce-product-rating::after,
.woocommerce-js .woocommerce-product-rating::before {
    display: none !important;
}
.review-rating:before {
    display: none !important;
}
.ulfur-review-card {
    padding: 12px !important;
}

/* -- Pojedynczy produkt - zakladki ------------------------------------------ */
#tab-additional_information,
#tab-title-additional_information {
    display: none !important;
}
#tab-title-description.active a {
    font-weight: 700 !important;
}
.woocommerce-js div.product .woocommerce-tabs {
    margin-top: 35px !important;
    padding-top: 35px !important;
}
.woocommerce-tabs img {
    border-radius: 8px;
}
.woocommerce-tabs ul.tabs {
    border-top: 1px solid rgb(255, 255, 255) !important;
    border-bottom: 1px solid rgb(255, 255, 255) !important;
}
.woocommerce-Tabs-panel {
    border-color: #FFF !important;
}
.tabs {
    border: none !important;
    margin: 0 0 62px !important;
    padding: 20px 0 !important;
}
.tabs:before,
.tabs:after {
    background: #FFF !important;
}
.tabs:before {
    display: none !important;
}
.tabs li:before {
    display: none;
}
.tabs a {
    color: #FFF !important;
    opacity: 1 !important;
    font-weight: 400 !important;
}
.tabs li {
    margin: 0 !important;
    padding: 0 30px !important;
}
#content #post-9 > div.entry-content.clear > div > nav > ul > li.is-active > a {
    color: #252525 !important;
}
.single-product section.related.products .product .button {
    color: #252525 !important;
}

/* -- "Pills" (warianty / gramatura) na single ------------------------------- */
#ulfur-pills {
    height: fit-content;
}
.ulfur-pill {
    background: #515151 !important;
}
.ulfur-pill button {
    background: #FFF;
    border-radius: 6px;
    color: #000;
    font-size: 32px;
    font-weight: 400 !important;
}
.ulfur-pill button:hover {
    color: #000 !important;
}

/* -- Ilosc (quantity) ------------------------------------------------------- */
.quantity input {
    width: 40px !important;
    background: transparent !important;
    border: none !important;
}
.quantity a {
    font-size: 22px !important;
    height: 40px !important;
    width: 32px !important;
    border: 1px solid #fff !important;
    border-radius: 8px;
}
html body #content .quantity a {
    border: 1px solid #fff !important;
}
/* Hover +/- -> zolty border (produkt + koszyk) */
.quantity a:hover,
html body #content .quantity a:hover {
    border-color: var(--ast-global-color-0) !important;
    color: var(--ast-global-color-0) !important;
}
.dgwt-wcas-pd-addtc-form .buttons_added {
    margin: 0 !important;
}
.dgwt-wcas-pd-addtc-form #plus_qty-0 {
    margin-right: 0 !important;
}
.dgwt-wcas-pd-addtc-form .button {
    margin: auto !important;
}

/* -- Sidebar sklepu --------------------------------------------------------- */
.ulfur-sidebar__toggle {
    margin-top: 16px;
}
/* Wszystkie teksty w sidebarze: 14px */
.ulfur-sidebar__cat-name,
.ulfur-sidebar__account-text,
.ulfur-sidebar__username,
.ulfur-sidebar__login-text,
.ulfur-sidebar__toggle-text,
.ulfur-sidebar__menu-item .ulfur-sidebar__cat-name {
    font-size: 14px !important;
}
#ulfur-sidebar a:focus,
#ulfur-sidebar button:focus {
    background: transparent !important;
    border: none !important;
    outline: none;
}

/* -- Mini-koszyk / przyciski akcji ------------------------------------------ */
.woocommerce-mini-cart__buttons .button {
    background: var(--ast-global-color-0) !important;
    color: #252525 !important;
}
#ast-scroll-top,
.ulfur-addr-edit-actions__save,
.ulfur-order-sidebar__cta {
    color: #252525 !important;
}
#content #ulfur-stock-toggle {
    display: none !important;
}

/* -- Opis produktu - 2 kolumny (tekst lewo / foto prawo), bez Gutenberga.
   Foto z metaboxa "Zdjecie do opisu". Sam uklad siatki - bez stylowania foto. -- */
.ulfur-product-desc--has-image {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 60px !important;
    align-items: center;
}
.ulfur-product-desc__text > *:first-child {
    margin-top: 0;
}
@media (max-width: 768px) {
    .ulfur-product-desc--has-image {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

/* Mini-koszyk (drawer) - pierwszy przycisk + przycisk kuponu = akcent niebieski */
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons.buttons > a:nth-child(1),
.ulfur-order-sidebar__coupon-btn {
    background-color: var(--ast-global-color-1) !important;
    color: var(--ast-global-color-2) !important;
}

/* =============================================================================
   PODSUMOWANIE PRODUKTU - typografia wg Figmy
   (tytul, ocena, kody, atrybuty, cena - tylko font/rozmiar/kolor)
   ============================================================================= */
.single-product .product_title.entry-title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    line-height: 32px !important;
    color: var(--ast-global-color-0) !important;
}
.single-product .ulfur-product-subtitle {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    color: #FCFCFC !important;
}

/* Ocena: kolejnosc gwiazdki->liczba, gwiazdki BIALE 14px, "(X opinii)" 12px biale */
.single-product .woocommerce-product-rating {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px !important;
}
.single-product .woocommerce-product-rating .review-rating,
.single-product .woocommerce-product-rating .star-rating {
    order: 0 !important;
}
.single-product .woocommerce-product-rating .woocommerce-review-link {
    order: 1 !important;
}
html body .single-product .woocommerce-product-rating .star-rating,
html body .single-product .woocommerce-product-rating .star-rating::before,
html body .single-product .woocommerce-product-rating .star-rating span,
html body .single-product .woocommerce-product-rating .star-rating span::before {
    color: #FCFCFC !important;
}
.single-product .woocommerce-product-rating .star-rating {
    font-size: 16px !important;
    line-height: 1 !important;
}
.single-product .woocommerce-product-rating .woocommerce-review-link {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: #FCFCFC !important;
    opacity: 1 !important;
}

/* Kody producenta / EAN: 10px, etykieta #E9E8EB, wartosc zolta */
.single-product .ulfur-product-codes,
.single-product .ulfur-product-codes__item {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 10px !important;
    font-weight: 400 !important;
    color: #E9E8EB !important;
}
.single-product .ulfur-product-codes__val {
    color: var(--ast-global-color-0) !important;
    font-size: 10px !important;
    font-weight: 400 !important;
}

/* Atrybuty (Dlugosc/Szerokosc/Waga): 14px, etykieta 700, wartosc 400 */
.single-product .ulfur-product-attr__label {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #FCFCFC !important;
    opacity: 1 !important;
}
.single-product .ulfur-product-attr__value {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #FCFCFC !important;
    opacity: 1 !important;
}

/* Cena: 24px Montserrat 700 zolta - TYLKO na p.price, NIE na .woocommerce-Price-amount,
   bo to siedzi tez w <del> (stara cena promocyjna) i psuloby jej wyglad.
   Style del/ins (male, przekreslone, przygaszone) zostaja nietkniete. */
.single-product div.product p.price,
.single-product .summary p.price {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 24px !important;
    color: var(--ast-global-color-0) !important;
}

/* =============================================================================
   OPINIE (reviews) - dopasowanie do Figmy
   ============================================================================= */
/* Wynik 4,0/5 - zloty */
.ulfur-reviews__score-big {
    font-size: 48px !important;
    font-weight: 700 !important;
    color: #F9B721 !important;
    line-height: 1 !important;
}
.ulfur-reviews__score-max {
    font-size: 24px !important;
    font-weight: 600 !important;
    color: #F9B721 !important;
}
/* Gwiazdki podsumowania + licznik - niebieskie (#227C9D) */
.ulfur-reviews__count {
    color: #227C9D !important;
    font-size: 12px !important;
}
.ulfur-star--filled.ulfur-star--summary,
.ulfur-star--half.ulfur-star--summary,
.ulfur-reviews__stars .ulfur-star--empty {
    color: #227C9D !important;
}
/* Gwiazdki w kartach opinii - biale */
.ulfur-star--filled.ulfur-star--card,
.ulfur-star--half.ulfur-star--card,
.ulfur-reviews__card-stars .ulfur-star--empty {
    color: #FCFCFC !important;
}

/* Połówka gwiazdki = REALNE pół (lewa część pełna, prawa wygaszona), zamiast
   przygaszonej pełnej gwiazdki (opacity:0.6). Malujemy glif ★ twardym
   gradientem 50/50 i przycinamy go do kształtu litery. */
.ulfur-star--half.ulfur-star--summary,
.ulfur-star--half.ulfur-star--card {
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    opacity: 1 !important;
}
.ulfur-star--half.ulfur-star--summary {
    background-image: linear-gradient(90deg, #227C9D var(--ulfur-fill, 50%), rgba(34, 124, 157, 0.30) var(--ulfur-fill, 50%));
}
.ulfur-star--half.ulfur-star--card {
    background-image: linear-gradient(90deg, #FCFCFC var(--ulfur-fill, 50%), rgba(252, 252, 252, 0.30) var(--ulfur-fill, 50%));
}
/* Paski rozkladu ocen - jasny tor, wys. 14px, radius 8px */
.ulfur-reviews__bar-track {
    background: #E9E8EB !important;
    height: 14px !important;
    border-radius: 8px !important;
}
.ulfur-reviews__bar-fill {
    border-radius: 8px !important;
}
.ulfur-reviews__bar-label {
    color: #FCFCFC !important;
    font-size: 12px !important;
}
/* CTA "Posiadasz ten produkt?" - uklad poziomy, ramka #828282 */
.ulfur-reviews__cta {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: 22px !important;
    padding: 44px !important;
    border: 1px solid color-mix(in srgb, var(--ast-global-color-3) 50%, transparent) !important;
}
.ulfur-reviews__cta-text {
    color: #FCFCFC !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
}
/* Przycisk "dodaj opinie" - secondary (obrys #227C9D, bialy tekst) */
.ulfur-reviews__add-btn {
    background: transparent !important;
    border: 1px solid #227C9D !important;
    color: #FCFCFC !important;
    font-size: 14px !important;
    padding: 12px 24px !important;
    border-radius: 6px !important;
    white-space: nowrap;
}
.ulfur-reviews__add-btn:hover {
    background: #227C9D !important;
    color: #FCFCFC !important;
    border-color: #227C9D !important;
}
/* Karty opinii + wszystkie ramki w opiniach - jednolity obrys */
.ulfur-reviews__card,
.ulfur-reviews__modal {
    border: 1px solid color-mix(in srgb, var(--ast-global-color-3) 50%, transparent) !important;
}
.ulfur-reviews__card-author {
    color: #FCFCFC !important;
}
.ulfur-reviews__card-date {
    color: #E9E8EB !important;
}
.ulfur-reviews__card-text {
    color: #FCFCFC !important;
}

/* Gwiazdki oceny produktu - BIALE (wypelnione I puste). Maks. specyficznosc,
   by pobic dynamiczny CSS Astry / inne warstwy kolorujace gwiazdki na zloto. */
html body.single-product #content .woocommerce-product-rating .star-rating,
html body.single-product #content .woocommerce-product-rating .star-rating::before,
html body.single-product #content .woocommerce-product-rating .star-rating span::before {
    color: #FCFCFC !important;
}

/* =============================================================================
   PODSUMOWANIE PRODUKTU - rowne odstepy wg Figmy
   Klaster tytulu: tytul->podtytul 16, podtytul->ocena 16, ocena->kody 6.
   Bloki: 34px (dividery = border-bottom kodow i desc-toggle, 34px po obu stronach).
   ============================================================================= */
.single-product .summary .ulfur-product-subtitle {
    margin: 0 0 16px !important;
}
.single-product .summary .woocommerce-product-rating {
    margin: 0 0 6px !important;
}
.single-product .summary .ulfur-product-codes {
    margin: 0 !important;
    padding-bottom: 34px !important;
}
.single-product .summary .ulfur-product-attrs {
    margin-top: 34px !important;
    margin-bottom: 0 !important;
}
.single-product .summary .ulfur-desc-toggle {
    margin-top: 34px !important;
    margin-bottom: 0 !important;
    padding-bottom: 34px !important;
}
.single-product .summary p.price {
    margin: 34px 0 !important;
}

/* .star-rating MUSI miec overflow:hidden - WC tym chowa tekst dla czytnikow.
   letter-spacing rozsuwa gwiazdki; szerokosc 6.4em jest dobrana tak, by 5.
   gwiazdka sie miescila i nie odslaniac ukrytego tekstu oceny. */
.single-product .woocommerce-product-rating .star-rating {
    overflow: hidden !important;
    letter-spacing: 3px !important;
    width: 6.4em !important;
}
