/*
 Theme Name:   Shoptimizer Child - eklucze.pl
 Theme URI:    https://eklucze.pl
 Description:  Child theme dla Shoptimizer - customizacje eklucze.pl
 Author:       Smart Cloud sp. z o.o.
 Author URI:   https://eklucze.pl
 Template:     shoptimizer
 Version:      2.0.1
 Text Domain:  shoptimizer-child
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

/* ==========================================================================
   Design Tokens
   ========================================================================== */
:root {
    --ek-blue:         #0078D4;
    --ek-blue-dark:    #0F1B2D;
    --ek-blue-light:   #E1F0FF;
    --ek-blue-50:      #F0F7FF;
    --ek-green:        #10B981;
    --ek-green-dark:   #059669;
    --ek-green-light:  #ECFDF5;
    --ek-orange:       #0EA5E9;
    --ek-orange-light: #F0F9FF;
    --ek-purple:       #7c3aed;
    --ek-purple-light: #f5f3ff;
    --ek-red:          #dc2626;

    --ek-gray-50:      #f8fafc;
    --ek-gray-100:     #f1f5f9;
    --ek-gray-200:     #e2e8f0;
    --ek-gray-300:     #cbd5e1;
    --ek-gray-400:     #94a3b8;
    --ek-gray-500:     #64748b;
    --ek-gray-600:     #475569;
    --ek-gray-700:     #334155;
    --ek-gray-800:     #1e293b;
    --ek-gray-900:     #0F1B2D;

    --ek-radius-sm:    6px;
    --ek-radius:       10px;
    --ek-radius-lg:    16px;
    --ek-radius-xl:    20px;

    --ek-shadow-sm:    0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --ek-shadow:       0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -1px rgba(0,0,0,0.04);
    --ek-shadow-lg:    0 10px 25px -5px rgba(0,0,0,0.08), 0 4px 10px -5px rgba(0,0,0,0.04);
    --ek-shadow-xl:    0 20px 40px -10px rgba(0,0,0,0.1);

    --ek-font:         'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ==========================================================================
   Global Resets & Typography for Homepage
   ========================================================================== */
.eklucze-homepage {
    font-family: var(--ek-font);
    color: var(--ek-gray-800);
    line-height: 1.6;
    overflow-x: hidden;
}
.eklucze-homepage *,
.eklucze-homepage *::before,
.eklucze-homepage *::after {
    box-sizing: border-box;
}

/* ==========================================================================
   Section Headers
   ========================================================================== */
.ek-section-header {
    text-align: center;
    margin-bottom: 48px;
}
.ek-section-header h2 {
    font-size: 2rem;
    font-weight: 800;
    color: var(--ek-gray-900);
    margin: 0 0 8px;
    letter-spacing: -0.02em;
}
.ek-section-header p {
    font-size: 1.1rem;
    color: var(--ek-gray-500);
    margin: 0;
}
.ek-section-header--light h2 {
    color: #fff;
}
.ek-section-header--light p {
    color: rgba(255,255,255,0.8);
}

.ek-section-cta {
    text-align: center;
    margin-top: 36px;
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.ek-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 28px;
    border-radius: var(--ek-radius);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.25s ease;
    cursor: pointer;
    border: 2px solid transparent;
    line-height: 1.4;
}
.ek-btn--primary {
    background: var(--ek-green);
    color: #fff;
    border-color: var(--ek-green);
    box-shadow: 0 4px 14px rgba(16,185,129,0.35);
}
.ek-btn--primary:hover {
    background: var(--ek-green-dark);
    border-color: var(--ek-green-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(16,185,129,0.4);
    color: #fff;
}
.ek-btn--outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,0.5);
}
.ek-btn--outline:hover {
    background: rgba(255,255,255,0.1);
    border-color: #fff;
    color: #fff;
}
.ek-btn--outline-dark {
    background: transparent;
    color: var(--ek-blue);
    border-color: var(--ek-blue);
}
.ek-btn--outline-dark:hover {
    background: var(--ek-blue);
    color: #fff;
}
.ek-btn--white {
    background: #fff;
    color: var(--ek-blue);
    border-color: #fff;
}
.ek-btn--white:hover {
    background: var(--ek-blue-light);
    border-color: var(--ek-blue-light);
    color: var(--ek-blue-dark);
}
.ek-btn--outline-white {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,0.4);
}
.ek-btn--outline-white:hover {
    background: rgba(255,255,255,0.15);
    border-color: #fff;
    color: #fff;
}
.ek-btn--cart {
    background: var(--ek-green);
    color: #fff;
    border-color: var(--ek-green);
    width: 100%;
    font-size: 14px;
    padding: 10px 20px;
}
.ek-btn--cart:hover {
    background: var(--ek-green-dark);
    border-color: var(--ek-green-dark);
    color: #fff;
}

/* ==========================================================================
   HERO Section
   ========================================================================== */
.ek-hero {
    background: linear-gradient(135deg, #0F1B2D 0%, #0078D4 50%, #0EA5E9 100%);
    padding: 80px 0 60px;
    position: relative;
    overflow: hidden;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}
.ek-hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(14,165,233,0.25) 0%, transparent 70%);
    pointer-events: none;
}
.ek-hero::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: -10%;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(16,185,129,0.15) 0%, transparent 70%);
    pointer-events: none;
}
.ek-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    position: relative;
    z-index: 2;
}
.ek-hero__badge {
    display: inline-block;
    background: rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.9);
    padding: 6px 16px;
    border-radius: 50px;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 20px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.1);
}
.ek-hero__title {
    font-size: 3.2rem;
    font-weight: 900;
    color: #fff;
    line-height: 1.1;
    margin: 0 0 20px;
    letter-spacing: -0.03em;
}
.ek-hero__title span {
    background: linear-gradient(135deg, #38BDF8, #10B981);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.ek-hero__subtitle {
    font-size: 1.15rem;
    color: rgba(255,255,255,0.85);
    line-height: 1.7;
    margin: 0 0 30px;
    max-width: 480px;
}
.ek-hero__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 40px;
}
.ek-hero__stats {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 20px 24px;
    background: rgba(255,255,255,0.08);
    border-radius: var(--ek-radius-lg);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.1);
    max-width: fit-content;
}
.ek-hero__stat {
    text-align: center;
}
.ek-hero__stat strong {
    display: block;
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.2;
}
.ek-hero__stat span {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.7);
    font-weight: 500;
}
.ek-hero__stat-divider {
    width: 1px;
    height: 36px;
    background: rgba(255,255,255,0.2);
}

/* Hero visual - floating cards */
.ek-hero__visual {
    position: relative;
    height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ek-hero__card {
    position: absolute;
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: var(--ek-radius-lg);
    padding: 24px 28px;
    display: flex;
    align-items: center;
    gap: 16px;
    transition: transform 0.3s ease;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}
.ek-hero__card:hover {
    transform: scale(1.05);
}
.ek-hero__card-icon {
    font-size: 2.2rem;
}
.ek-hero__card-text {
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
}
.ek-hero__card--1 {
    top: 20px;
    right: 10%;
    animation: ek-float 6s ease-in-out infinite;
}
.ek-hero__card--2 {
    top: 50%;
    left: 5%;
    transform: translateY(-50%);
    animation: ek-float 6s ease-in-out infinite 1s;
}
.ek-hero__card--3 {
    bottom: 20px;
    right: 20%;
    animation: ek-float 6s ease-in-out infinite 2s;
}
@keyframes ek-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}
.ek-hero__card--2 {
    animation: ek-float2 6s ease-in-out infinite 1s;
}
@keyframes ek-float2 {
    0%, 100% { transform: translateY(-50%); }
    50% { transform: translateY(calc(-50% - 12px)); }
}

/* ==========================================================================
   TRUST BAR
   ========================================================================== */
.ek-trust-bar {
    background: #fff;
    padding: 0;
    border-bottom: 1px solid var(--ek-gray-200);
    position: relative;
    z-index: 3;
    margin-top: -30px;
}
.ek-trust-bar .col-full {
    max-width: 1100px;
}
.ek-trust-bar__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border-radius: var(--ek-radius-lg);
    box-shadow: var(--ek-shadow-xl);
    overflow: hidden;
}
.ek-trust-bar__item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 24px 20px;
    position: relative;
}
.ek-trust-bar__item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 20%;
    height: 60%;
    width: 1px;
    background: var(--ek-gray-200);
}
.ek-trust-bar__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--ek-radius);
    background: var(--ek-blue-light);
    color: var(--ek-blue);
    display: flex;
    align-items: center;
    justify-content: center;
}
.ek-trust-bar__text strong {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--ek-gray-800);
    line-height: 1.3;
}
.ek-trust-bar__text span {
    font-size: 12.5px;
    color: var(--ek-gray-500);
}

/* ==========================================================================
   CATEGORIES
   ========================================================================== */
.ek-categories {
    padding: 80px 0 60px;
    background: var(--ek-gray-50);
}
.ek-categories__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
    gap: 16px;
}
.ek-categories__card {
    background: #fff;
    border: 1px solid var(--ek-gray-200);
    border-radius: var(--ek-radius-lg);
    padding: 28px 20px;
    text-align: center;
    text-decoration: none;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.ek-categories__card:hover {
    border-color: var(--ek-blue);
    box-shadow: var(--ek-shadow-lg);
    transform: translateY(-4px);
    background: #fff;
}
.ek-categories__icon {
    font-size: 2.4rem;
    margin-bottom: 12px;
    line-height: 1;
}
.ek-categories__card h3 {
    font-size: 15px;
    font-weight: 700;
    color: var(--ek-gray-800);
    margin: 0 0 4px;
}
.ek-categories__card p {
    font-size: 12.5px;
    color: var(--ek-gray-500);
    margin: 0;
}
.ek-categories__count {
    display: inline-block;
    margin-top: 10px;
    padding: 3px 10px;
    background: var(--ek-blue-50);
    color: var(--ek-blue);
    border-radius: 50px;
    font-size: 11px;
    font-weight: 600;
}

/* ==========================================================================
   PRODUCT CARDS (Shared)
   ========================================================================== */
.ek-products__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.ek-product-card {
    background: #fff;
    border: 1px solid var(--ek-gray-200);
    border-radius: var(--ek-radius-lg);
    overflow: hidden;
    transition: all 0.3s ease;
    position: relative;
    display: flex;
    flex-direction: column;
}
.ek-product-card:hover {
    box-shadow: var(--ek-shadow-lg);
    transform: translateY(-4px);
    border-color: var(--ek-gray-300);
}
.ek-product-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    padding: 4px 12px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.ek-product-card__badge--hot {
    background: #fef2f2;
    color: var(--ek-red);
}
.ek-product-card__badge--popular {
    background: #F0F9FF;
    color: #0369A1;
}
.ek-product-card__link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.ek-product-card__image {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--ek-gray-50);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.ek-product-card__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.3s ease;
}
.ek-product-card:hover .ek-product-card__image img {
    transform: scale(1.05);
}
.ek-product-card__info {
    padding: 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.ek-product-card__title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ek-gray-800);
    margin: 0 0 8px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ek-product-card__meta {
    margin-bottom: 10px;
}
.ek-product-card__delivery {
    font-size: 12px;
    color: var(--ek-orange);
    font-weight: 600;
}
.ek-product-card__price {
    margin-top: auto;
    font-size: 20px;
    font-weight: 800;
    color: var(--ek-blue);
}
.ek-product-card__price del {
    font-size: 14px;
    font-weight: 500;
    color: var(--ek-gray-400);
}
.ek-product-card__price ins {
    text-decoration: none;
}
.ek-product-card__action {
    padding: 0 16px 16px;
}

/* ==========================================================================
   BESTSELLERS Section
   ========================================================================== */
.ek-bestsellers {
    padding: 70px 0;
    background: #fff;
}

/* ==========================================================================
   PROCESS Section
   ========================================================================== */
.ek-process {
    padding: 80px 0;
    background: linear-gradient(135deg, #0F1B2D 0%, #0078D4 100%);
    position: relative;
}
.ek-process__grid {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
}
.ek-process__step {
    text-align: center;
    padding: 0 24px;
    flex: 1;
    max-width: 240px;
    position: relative;
}
.ek-process__number {
    width: 36px;
    height: 36px;
    background: linear-gradient(135deg, #0EA5E9, #0284C7);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 16px;
    margin: 0 auto 16px;
    box-shadow: 0 4px 12px rgba(14,165,233,0.4);
}
.ek-process__icon {
    width: 64px;
    height: 64px;
    background: rgba(255,255,255,0.12);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: #fff;
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.15);
}
.ek-process__step h3 {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 8px;
}
.ek-process__step p {
    font-size: 13.5px;
    color: rgba(255,255,255,0.75);
    line-height: 1.6;
    margin: 0;
}
.ek-process__connector {
    width: 40px;
    height: 2px;
    background: rgba(255,255,255,0.25);
    margin-top: 80px;
    flex-shrink: 0;
}

/* ==========================================================================
   FEATURED CATEGORY Sections
   ========================================================================== */
.ek-featured-cat {
    padding: 60px 0;
    background: var(--ek-gray-50);
}
.ek-featured-cat:nth-child(even) {
    background: #fff;
}
.ek-featured-cat__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}
.ek-featured-cat__header h2 {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--ek-gray-900);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.ek-featured-cat__icon {
    font-size: 1.6rem;
}
.ek-featured-cat__more {
    font-size: 14px;
    font-weight: 600;
    color: var(--ek-blue);
    text-decoration: none;
    transition: color 0.2s;
}
.ek-featured-cat__more:hover {
    color: var(--ek-blue-dark);
}

/* ==========================================================================
   WHY CHOOSE US
   ========================================================================== */
.ek-why {
    padding: 80px 0;
    background: #fff;
}
.ek-why__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.ek-why__card {
    padding: 32px 24px;
    border-radius: var(--ek-radius-lg);
    border: 1px solid var(--ek-gray-200);
    transition: all 0.3s ease;
    background: #fff;
}
.ek-why__card:hover {
    box-shadow: var(--ek-shadow-lg);
    transform: translateY(-4px);
    border-color: var(--ek-gray-300);
}
.ek-why__icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: var(--ek-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}
.ek-why__icon-wrap--blue   { background: var(--ek-blue-light); color: var(--ek-blue); }
.ek-why__icon-wrap--green  { background: var(--ek-green-light); color: var(--ek-green); }
.ek-why__icon-wrap--orange { background: var(--ek-orange-light); color: var(--ek-orange); }
.ek-why__icon-wrap--purple { background: var(--ek-purple-light); color: var(--ek-purple); }
.ek-why__card h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--ek-gray-800);
    margin: 0 0 8px;
}
.ek-why__card p {
    font-size: 14px;
    color: var(--ek-gray-500);
    line-height: 1.7;
    margin: 0;
}

/* ==========================================================================
   BLOG Section
   ========================================================================== */
.ek-blog {
    padding: 70px 0;
    background: var(--ek-gray-50);
}
.ek-blog__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.ek-blog__card {
    background: #fff;
    border-radius: var(--ek-radius-lg);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
    border: 1px solid var(--ek-gray-200);
    display: flex;
    flex-direction: column;
}
.ek-blog__card:hover {
    box-shadow: var(--ek-shadow-lg);
    transform: translateY(-4px);
}
.ek-blog__image {
    aspect-ratio: 16/9;
    overflow: hidden;
}
.ek-blog__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.ek-blog__card:hover .ek-blog__image img {
    transform: scale(1.05);
}
.ek-blog__content {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.ek-blog__date {
    font-size: 12px;
    color: var(--ek-gray-400);
    font-weight: 500;
    margin-bottom: 8px;
    display: block;
}
.ek-blog__content h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--ek-gray-800);
    margin: 0 0 8px;
    line-height: 1.4;
}
.ek-blog__content p {
    font-size: 14px;
    color: var(--ek-gray-500);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}
.ek-blog__read-more {
    display: inline-block;
    margin-top: 12px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ek-blue);
}

/* ==========================================================================
   CTA Section
   ========================================================================== */
.ek-cta {
    padding: 80px 0;
    background: linear-gradient(135deg, #0F1B2D 0%, #0078D4 50%, #0EA5E9 100%);
}
.ek-cta__inner {
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
}
.ek-cta__inner h2 {
    font-size: 2rem;
    font-weight: 800;
    color: #fff;
    margin: 0 0 12px;
}
.ek-cta__inner p {
    font-size: 1.05rem;
    color: rgba(255,255,255,0.8);
    line-height: 1.7;
    margin: 0 0 32px;
}
.ek-cta__actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
    .ek-hero__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .ek-hero__visual {
        height: 200px;
    }
    .ek-hero__title {
        font-size: 2.5rem;
    }
    .ek-products__grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .ek-why__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .ek-hero {
        padding: 50px 0 40px;
    }
    .ek-hero__title {
        font-size: 2rem;
    }
    .ek-hero__subtitle {
        font-size: 1rem;
    }
    .ek-hero__visual {
        display: none;
    }
    .ek-hero__stats {
        gap: 16px;
        padding: 16px 18px;
    }
    .ek-hero__stat strong {
        font-size: 1.2rem;
    }

    .ek-trust-bar {
        margin-top: -20px;
    }
    .ek-trust-bar__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .ek-trust-bar__item:not(:last-child)::after {
        display: none;
    }
    .ek-trust-bar__item {
        padding: 18px 16px;
    }

    .ek-categories {
        padding: 50px 0 40px;
    }
    .ek-categories__grid {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
        gap: 12px;
    }
    .ek-categories__card {
        padding: 20px 12px;
    }
    .ek-categories__icon {
        font-size: 2rem;
    }

    .ek-products__grid,
    .ek-products__grid--4 {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }

    .ek-section-header {
        margin-bottom: 32px;
    }
    .ek-section-header h2 {
        font-size: 1.6rem;
    }
    .ek-section-header p {
        font-size: 0.95rem;
    }

    .ek-process__grid {
        flex-direction: column;
        align-items: center;
        gap: 24px;
    }
    .ek-process__connector {
        width: 2px;
        height: 24px;
        margin: 0;
    }
    .ek-process__step {
        max-width: 300px;
    }

    .ek-why__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ek-blog__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ek-featured-cat__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .ek-cta__inner h2 {
        font-size: 1.6rem;
    }
    .ek-cta__actions {
        flex-direction: column;
        align-items: center;
    }
}

@media (max-width: 480px) {
    .ek-hero__title {
        font-size: 1.7rem;
    }
    .ek-hero__actions {
        flex-direction: column;
    }
    .ek-hero__actions .ek-btn {
        width: 100%;
    }
    .ek-hero__stats {
        flex-direction: column;
        gap: 12px;
    }
    .ek-hero__stat-divider {
        width: 40px;
        height: 1px;
    }

    .ek-trust-bar__grid {
        grid-template-columns: 1fr;
    }

    .ek-categories__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================================================
   EXISTING CHILD THEME STYLES (preserved)
   ========================================================================== */

/* --- Lepsze przyciski CTA na stronie produktu --- */
.single-product .single_add_to_cart_button,
.shoptimizer-sticky-add-to-cart .button {
    background: linear-gradient(135deg, #10B981 0%, #059669 100%) !important;
    border: none !important;
    border-radius: var(--ek-radius) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    padding: 14px 32px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: 0 4px 15px rgba(16,185,129,0.3) !important;
    transition: all 0.3s ease !important;
}
.single-product .single_add_to_cart_button:hover,
.shoptimizer-sticky-add-to-cart .button:hover {
    background: linear-gradient(135deg, #059669 0%, #047857 100%) !important;
    box-shadow: 0 6px 20px rgba(16,185,129,0.4) !important;
    transform: translateY(-1px) !important;
}

/* --- Trust badges pod przyciskiem --- */
.eklucze-product-trust {
    margin-top: 15px;
    padding: 14px 18px;
    background: var(--ek-green-light);
    border: 1px solid #D1FAE5;
    border-radius: var(--ek-radius);
    font-size: 13px;
    line-height: 1.8;
}
.eklucze-product-trust .trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #065F46;
}
.eklucze-product-trust .trust-item .check {
    color: var(--ek-green);
    font-weight: bold;
}

/* --- Karty produktów w sklepie --- */
ul.products li.product {
    border-radius: var(--ek-radius-lg) !important;
    overflow: hidden;
    transition: all 0.3s ease !important;
    border: 1px solid var(--ek-gray-200) !important;
}
ul.products li.product:hover {
    box-shadow: var(--ek-shadow-lg) !important;
    transform: translateY(-3px);
    border-color: var(--ek-gray-300) !important;
}
ul.products li.product .price {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--ek-blue) !important;
}
ul.products li.product .button {
    border-radius: var(--ek-radius-sm) !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
}

/* --- Badge Natychmiastowa dostawa --- */
.eklucze-badge-instant {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--ek-orange-light);
    color: var(--ek-orange);
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 8px;
}

/* --- Mobile product CTA --- */
@media (max-width: 767px) {
    .single-product .single_add_to_cart_button {
        width: 100% !important;
        font-size: 15px !important;
        padding: 12px 20px !important;
    }
}

/* --- Blog section (fallback for non-homepage) --- */
.eklucze-blog-section {
    padding: 50px 0;
    background: var(--ek-gray-50);
}
.eklucze-blog-section h2 {
    text-align: center;
    font-size: 28px;
    margin-bottom: 30px;
    color: var(--ek-gray-900);
}

/* --- Disclaimer Microsoft footer --- */
.eklucze-disclaimer {
    font-size: 10px;
    color: var(--ek-gray-400);
    text-align: center;
    padding: 8px 20px;
    border-top: 1px solid var(--ek-gray-200);
    margin-top: 0;
    background: var(--ek-gray-900);
}

/* ==========================================================================
   Topbar - Pro Style
   ========================================================================== */
.col-full.topbar-wrapper {
    background: linear-gradient(135deg, var(--ek-blue) 0%, var(--ek-blue-dark) 100%) !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    box-shadow: 0 2px 8px rgba(15, 27, 45, 0.2);
}
.top-bar {
    font-size: 13px !important;
    font-weight: 500;
    letter-spacing: 0.2px;
}
.top-bar a {
    color: #ffffff !important;
    text-decoration: none !important;
}
.top-bar a:hover {
    color: var(--ek-blue-light) !important;
    opacity: 1 !important;
}
.top-bar,
.top-bar .textwidget,
.top-bar .textwidget p,
.top-bar .widget_nav_menu ul li a {
    color: #d4e4f7 !important;
}

/* ==========================================================================
   Social Proof & Urgency
   ========================================================================== */
.eklucze-sales-counter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 10px;
}
.eklucze-sales-counter.normal  { background: var(--ek-blue-50); color: var(--ek-blue); }
.eklucze-sales-counter.popular { background: var(--ek-orange-light); color: var(--ek-orange); }
.eklucze-sales-counter.hot     { background: #fef2f2; color: var(--ek-red); }

.eklucze-last-sold {
    font-size: 12px;
    color: var(--ek-green);
    font-weight: 500;
    margin-bottom: 8px;
}

.eklucze-badge-popular {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #F0F9FF;
    color: #0369A1;
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 6px;
}
.eklucze-badge-popular.hot {
    background: #fef2f2;
    color: var(--ek-red);
}

.eklucze-stock-urgency {
    background: #F0F9FF;
    border: 1px solid #7DD3FC;
    color: #0369A1;
    padding: 8px 14px;
    border-radius: var(--ek-radius-sm);
    font-size: 13px;
    font-weight: 600;
    margin: 10px 0;
    animation: pulse-urgency 2s ease-in-out infinite;
}
@keyframes pulse-urgency {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.8; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer-widgets {
    background: var(--ek-gray-900) !important;
    color: var(--ek-gray-400) !important;
    padding: 50px 0 30px !important;
}
.footer-widgets .widget-title,
.footer-widgets h4 {
    color: var(--ek-gray-200) !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    margin-bottom: 20px !important;
    position: relative;
    padding-bottom: 12px !important;
}
.footer-widgets .widget-title::after,
.footer-widgets h4::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 2px;
    background: var(--ek-blue);
}
.footer-widgets a {
    color: var(--ek-gray-400) !important;
    transition: color 0.2s !important;
}
.footer-widgets a:hover {
    color: #ffffff !important;
}
.footer-widgets li {
    padding: 4px 0 !important;
    border: none !important;
}
.footer-widgets p {
    color: var(--ek-gray-400) !important;
    line-height: 1.7 !important;
}
.site-info {
    background: rgba(0,0,0,0.3) !important;
    color: var(--ek-gray-500) !important;
    font-size: 13px !important;
    padding: 15px 0 !important;
    border-top: 1px solid var(--ek-gray-800) !important;
}
.site-info a {
    color: var(--ek-gray-400) !important;
}

/* ==========================================================================
   FAQ Section (Product Pages)
   ========================================================================== */
.eklucze-faq-section {
    margin: 40px 0;
    padding: 30px;
    background: var(--ek-gray-50);
    border-radius: var(--ek-radius-lg);
}
.eklucze-faq-section h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--ek-gray-900);
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--ek-gray-200);
}
.faq-item {
    margin-bottom: 16px;
    background: #ffffff;
    border-radius: var(--ek-radius);
    overflow: hidden;
    border: 1px solid var(--ek-gray-200);
}
.faq-question {
    padding: 16px 20px;
    font-weight: 600;
    font-size: 15px;
    color: var(--ek-gray-800);
    background: #ffffff;
    cursor: default;
    position: relative;
    padding-left: 40px;
}
.faq-question::before {
    content: "Q";
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    background: var(--ek-blue);
    color: #fff;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.faq-answer {
    padding: 0 20px 16px 40px;
    font-size: 14px;
    color: var(--ek-gray-600);
    line-height: 1.6;
}

/* EOF */

/* === Wyrównanie wysokości kart produktów === */
ul.products {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
}
ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
}
ul.products li.product .woocommerce-loop-product__link {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
ul.products li.product .button {
    margin-top: auto !important;
}

/* Logo - powiększenie */
.custom-logo-link img,
body.wp-custom-logo .site-header .custom-logo-link img {
    height: 50px !important;
}
@media (max-width: 768px) {
    .custom-logo-link img,
    body.wp-custom-logo .site-header .custom-logo-link img {
        height: 34px !important;
    }
}

/* Homepage - ukryj H1 wizualnie (SEO zachowane) */
.page-template-template-homepage .entry-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Koszyk - delikatne wyroznienie */
.shoptimizer-cart a.cart-contents {
    position: relative;
    transition: transform 0.2s ease;
}
.shoptimizer-cart a.cart-contents:hover {
    transform: scale(1.1);
}
.shoptimizer-cart a.cart-contents .count {
    background-color: var(--ek-blue) !important;
    color: #fff !important;
    font-weight: 600;
    min-width: 20px;
    height: 20px;
    line-height: 20px;
    border-radius: 50%;
    text-align: center;
    font-size: 11px;
    box-shadow: 0 2px 4px rgba(0, 120, 212, 0.3);
}

/* Blog - tytuły postów */
.blog .entry-title a,
.archive .entry-title a {
    color: var(--ek-blue-dark);
    text-decoration: none;
    transition: color 0.2s ease;
    font-weight: 700;
}
.blog .entry-title a:hover,
.archive .entry-title a:hover {
    color: var(--ek-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Blog - single post H1 */
.single-post .entry-title {
    color: var(--ek-blue-dark);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 0.5em;
    padding-bottom: 0.4em;
    border-bottom: 3px solid var(--ek-blue);
}

/* === FIX: Sticky add-to-cart bar positioning === */
.shoptimizer-sticky-add-to-cart {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 999 !important;
    width: 100% !important;
    transform: translateY(100%);
    transition: transform 0.3s ease;
}
.shoptimizer-sticky-add-to-cart.active {
    transform: translateY(0);
}

/* === FIX: Product summary layout cleanup === */
.single-product div.product .entry-summary {
    overflow: hidden;
}

/* === FIX: Trust badges overflow fix === */
.eklucze-product-trust {
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    display: block !important;
    margin-top: 15px !important;
}

/* === FIX: Sticky bar - hide duplicate on desktop, only show when scrolled === */
.shoptimizer-sticky-add-to-cart {
    display: none !important;
}

/* === FIX: entry-summary no overflow === */
.single-product div.product .entry-summary .cart {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* === FIX v3: Hide CommerceKit sticky duplicate cart === */
.commercekit_sticky-atc {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    transform: translateY(100%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.commercekit_sticky-atc.active {
    transform: translateY(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Trust badges stay inside summary */
.entry-summary .eklucze-product-trust {
    position: relative !important;
    float: none !important;
}
/* ==========================================================================
   EKLUCZE V3 ENTERPRISE PATCH — 2026-04-25
   Smart Cloud sp. z o.o. — Enterprise design polish
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. CONTAINER CENTERING FIX (the biggest visual issue)
   Shoptimizer ships .col-full at max-width:100% — symmetry was broken.
   -------------------------------------------------------------------------- */
.col-full {
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 24px !important;
	padding-right: 24px !important;
	box-sizing: border-box;
}
@media (max-width: 768px) {
	.col-full {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

/* --------------------------------------------------------------------------
   2. LUCIDE ICON BASE — ensures proper inline alignment
   -------------------------------------------------------------------------- */
.eklucze-ico {
	display: inline-block;
	vertical-align: middle;
	flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   3. TRUST BADGES (PDP) — refresh with icon+text alignment
   -------------------------------------------------------------------------- */
.eklucze-product-trust {
	margin-top: 16px;
	padding: 16px 18px;
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-left: 1px solid #e2e8f0;
	border-radius: var(--ek-radius, 10px);
	clear: both;
	width: 100%;
	box-sizing: border-box;
}
.eklucze-product-trust .trust-item {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #1e293b;
	font-size: 13.5px;
	line-height: 1.5;
	padding: 4px 0;
}
.eklucze-product-trust .trust-item .eklucze-ico {
	color: var(--ek-blue, #0078D4);
	width: 16px;
	height: 16px;
}
.eklucze-product-trust .trust-item:last-child {
	color: var(--ek-blue-dark, #0F1B2D);
	font-weight: 600;
	margin-top: 4px;
	padding-top: 8px;
	border-top: 1px solid #E2E8F0;
}

/* --------------------------------------------------------------------------
   4. INSTANT DELIVERY BADGE on shop loop
   -------------------------------------------------------------------------- */
.eklucze-badge-instant {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: #EFF6FF;
	color: #1E40AF;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 11.5px;
	font-weight: 600;
	margin-bottom: 8px;
	letter-spacing: 0.01em;
}
.eklucze-badge-instant .eklucze-ico {
	width: 12px;
	height: 12px;
}

/* --------------------------------------------------------------------------
   5. SALES COUNTER, LAST SOLD, STOCK URGENCY — PDP signals
   -------------------------------------------------------------------------- */
.eklucze-sales-counter {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border-radius: 4px;
	font-size: 12.5px;
	font-weight: 600;
	margin-bottom: 10px;
	letter-spacing: 0.01em;
}
.eklucze-sales-counter.normal  { background: #F1F5F9; color: #1E293B; }
.eklucze-sales-counter.popular { background: #FEF3C7; color: #92400E; }
.eklucze-sales-counter.hot     { background: #FEE2E2; color: #991B1B; }

.eklucze-last-sold {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	color: #059669;
	font-weight: 500;
	margin-bottom: 8px;
}

.eklucze-stock-urgency {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #FEF3C7;
	border: 1px solid #FDE68A;
	color: #92400E;
	padding: 8px 14px;
	border-radius: 4px;
	font-size: 13px;
	font-weight: 600;
	margin: 12px 0;
}

.eklucze-badge-popular {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: #FEF3C7;
	color: #92400E;
	padding: 3px 10px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 700;
	margin-bottom: 6px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.eklucze-badge-popular.hot {
	background: #FEE2E2;
	color: #991B1B;
}

/* --------------------------------------------------------------------------
   6. MICROSOFT DISCLAIMER BAR — replaces old inline-style version
   -------------------------------------------------------------------------- */
.eklucze-disclaimer-bar {
	background: #0a0f1c;
	color: #94a3b8;
	padding: 18px 0;
	border-top: 1px solid #1e293b;
	font-size: 11.5px;
	line-height: 1.7;
}
.eklucze-disclaimer-bar .eklucze-disclaimer-text,
.eklucze-disclaimer-bar .eklucze-disclaimer-meta {
	margin: 0 auto;
	max-width: 1080px;
	text-align: center;
}
.eklucze-disclaimer-bar .eklucze-disclaimer-meta {
	margin-top: 8px;
	font-size: 11px;
	color: #64748b;
	letter-spacing: 0.01em;
}
.eklucze-disclaimer-bar strong {
	color: #cbd5e1;
	font-weight: 600;
}
.eklucze-disclaimer-bar sup {
	font-size: 0.65em;
	color: #64748b;
}
/* hide the old .eklucze-disclaimer if any leftover renders */
body > .eklucze-disclaimer { display: none !important; }

/* --------------------------------------------------------------------------
   7. MOBILE STICKY ADD-TO-CART BAR (PDP)
   Visible only when the inline add-to-cart is scrolled out of view.
   -------------------------------------------------------------------------- */
.eklucze-mobile-sticky-atc {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 998;
	background: #ffffff;
	border-top: 1px solid #E2E8F0;
	box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.08);
	padding: 10px 16px;
	display: none;
	align-items: center;
	gap: 12px;
	transform: translateY(100%);
	transition: transform 0.25s ease;
}
.eklucze-mobile-sticky-atc[aria-hidden="false"] {
	transform: translateY(0);
}
.eklucze-mobile-sticky-atc .msab-price {
	flex: 1;
	font-size: 16px;
	font-weight: 700;
	color: var(--ek-blue-dark, #0F1B2D);
	line-height: 1.2;
}
.eklucze-mobile-sticky-atc .msab-price del {
	color: #94a3b8;
	font-size: 12px;
	font-weight: 500;
	margin-right: 4px;
}
.eklucze-mobile-sticky-atc .msab-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--ek-blue-dark, #0F1B2D);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 12px 20px;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	letter-spacing: 0.01em;
	transition: background 0.2s ease;
	white-space: nowrap;
}
.eklucze-mobile-sticky-atc .msab-button:hover,
.eklucze-mobile-sticky-atc .msab-button:focus {
	background: var(--ek-blue, #0078D4);
	color: #fff;
}
@media (max-width: 768px) {
	.eklucze-mobile-sticky-atc {
		display: flex;
	}
	body.single-product {
		padding-bottom: 70px; /* avoid content hidden behind sticky bar */
	}
}

/* --------------------------------------------------------------------------
   8. ENTERPRISE BUTTONS — replace emerald gradient with solid slate
   The current emerald-green gradient looks "consumer e-commerce".
   Slate-900 + blue accent on hover = enterprise tool feel.
   -------------------------------------------------------------------------- */
.single-product .single_add_to_cart_button,
.shoptimizer-sticky-add-to-cart .button,
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
	background: #0F1B2D !important;
	background-image: none !important;
	border: 1px solid #0F1B2D !important;
	border-radius: 6px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	letter-spacing: 0.01em !important;
	text-transform: none !important;
	box-shadow: 0 1px 2px rgba(15, 27, 45, 0.1) !important;
	transition: all 0.2s ease !important;
	color: #ffffff !important;
}
.single-product .single_add_to_cart_button {
	padding: 14px 28px !important;
	font-size: 15px !important;
}
.single-product .single_add_to_cart_button:hover,
.shoptimizer-sticky-add-to-cart .button:hover,
.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .button:hover {
	background: #0078D4 !important;
	border-color: #0078D4 !important;
	box-shadow: 0 4px 12px rgba(0, 120, 212, 0.25) !important;
	transform: none !important;
	color: #fff !important;
}

/* --------------------------------------------------------------------------
   9. TYPOGRAPHY POLISH — enterprise heading weights + tracking
   -------------------------------------------------------------------------- */
.entry-title,
.product_title,
h1.product_title,
.single-post .entry-title,
.page-title {
	font-weight: 800 !important;
	letter-spacing: -0.02em !important;
	line-height: 1.15 !important;
	color: #0F1B2D !important;
}
h2 {
	font-weight: 700 !important;
	letter-spacing: -0.015em !important;
}

/* --------------------------------------------------------------------------
   10. STONOWANIE TOPBAR (overrides current vivid blue gradient)
   Enterprise topbar = neutral, not loud.
   -------------------------------------------------------------------------- */
.col-full.topbar-wrapper,
.topbar-wrapper {
	background: #0F1B2D !important;
	background-image: none !important;
	box-shadow: none !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}
.top-bar {
	font-size: 12.5px !important;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: #cbd5e1 !important;
}
.top-bar .textwidget,
.top-bar .textwidget p,
.top-bar .widget_text,
.top-bar .widget_nav_menu ul li a,
.top-bar a {
	color: #cbd5e1 !important;
}
.top-bar a:hover,
.top-bar .widget_nav_menu ul li a:hover {
	color: #ffffff !important;
	opacity: 1 !important;
}

/* --------------------------------------------------------------------------
   11. KILL OLD DEAD STYLES — disabled sticky duplicate
   Remove the /* === FIX: Sticky bar - hide duplicate on desktop === */
   leftover that disables our new mobile sticky.
   -------------------------------------------------------------------------- */
.shoptimizer-sticky-add-to-cart {
	display: none !important;
}
/* CommerceKit sticky kept hidden (we control sticky via eklucze-mobile-sticky-atc) */
.commercekit_sticky-atc {
	display: none !important;
}

/* --------------------------------------------------------------------------
   12. ELEMENTOR HOMEPAGE — neutralize emoji size + color
   Until we deep-clean Elementor data, force emojis (where they remain) to
   inherit color so they don't clash with enterprise palette.
   -------------------------------------------------------------------------- */
.elementor-widget-html .feature-emoji,
.elementor-widget-html .trust-icon,
.elementor-widget-html .trust-badge {
	font-size: 1em !important;
	filter: grayscale(0.4);
}

/* EOF V3 ENTERPRISE PATCH */

/* === V3 PATCH HOTFIX 20260426 — sticky bar transform specificity === */
.eklucze-mobile-sticky-atc[aria-hidden="false"] {
	transform: translateY(0) !important;
}
.eklucze-mobile-sticky-atc[aria-hidden="true"] {
	transform: translateY(100%) !important;
}

/* ==========================================================================
   EKLUCZE V4 SNOWFLAKE ENTERPRISE PATCH 2026-04-26
   Reference: snowflake.com - navy hero + MS blue CTA + heavy 900 H1
   ========================================================================== */

:root {
	--ek-navy-deep:    #0a0e27;
	--ek-navy-mid:     #1a2842;
	--ek-blue-strong:  #005A9E;
	--ek-blue-glow:    rgba(0, 120, 212, 0.18);
	--ek-snow-shadow:  0 4px 24px rgba(15, 27, 45, 0.08);
	--ek-snow-shadow-lg: 0 12px 40px rgba(15, 27, 45, 0.12);
}

.single-product .single_add_to_cart_button,
.shoptimizer-sticky-add-to-cart .button,
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
	background: var(--ek-blue, #0078D4) !important;
	background-image: none !important;
	border: 1px solid var(--ek-blue, #0078D4) !important;
	color: #ffffff !important;
	box-shadow: 0 1px 2px rgba(0, 120, 212, 0.18) !important;
}
.single-product .single_add_to_cart_button:hover,
.shoptimizer-sticky-add-to-cart .button:hover,
.woocommerce ul.products li.product .button:hover,
.woocommerce-page ul.products li.product .button:hover {
	background: var(--ek-blue-strong, #005A9E) !important;
	border-color: var(--ek-blue-strong, #005A9E) !important;
	box-shadow: 0 6px 20px var(--ek-blue-glow) !important;
	color: #fff !important;
}
.eklucze-mobile-sticky-atc .msab-button {
	background: var(--ek-blue, #0078D4) !important;
	border-color: var(--ek-blue, #0078D4) !important;
}
.eklucze-mobile-sticky-atc .msab-button:hover {
	background: var(--ek-blue-strong, #005A9E) !important;
	border-color: var(--ek-blue-strong, #005A9E) !important;
}

.entry-title,
.product_title,
h1.product_title,
.single-post .entry-title,
.page-title,
.elementor h1,
.elementor h2 {
	font-weight: 900 !important;
	letter-spacing: -0.04em !important;
	line-height: 1.05 !important;
}
h2 { letter-spacing: -0.03em !important; }
h3 { letter-spacing: -0.02em !important; font-weight: 700 !important; }

.topbar-wrapper,
.col-full.topbar-wrapper {
	background: var(--ek-navy-deep, #0a0e27) !important;
	background-image: none !important;
	box-shadow: none !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}
.top-bar { font-size: 12.5px !important; color: #94a3b8 !important; letter-spacing: 0.01em; }
.top-bar .ek-topbar {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 18px;
	padding: 6px 0;
	margin: 0;
	width: 100%;
}
.top-bar .ek-topbar > span { display: inline-flex; align-items: center; color: #cbd5e1; }
.top-bar .ek-topbar strong { color: #ffffff !important; font-weight: 600; letter-spacing: 0; }
.top-bar .ek-topbar-divider { color: #475569 !important; user-select: none; }

.header-1 {
	background: var(--ek-blue, #0078D4) !important;
	color: #ffffff !important;
	padding: 10px 0 !important;
	text-align: center;
	font-size: 13px;
	letter-spacing: 0.01em;
}
.header-1 .textwidget,
.header-1 .textwidget p,
.header-1 strong { color: #ffffff !important; }

.elementor .proces-container,
[class*="proces-container"] {
	background: linear-gradient(135deg, var(--ek-navy-deep, #0a0e27) 0%, var(--ek-navy, #0F1B2D) 100%) !important;
	border-radius: 12px;
}
.elementor .step-number,
.proces-container .step-number {
	background: var(--ek-blue, #0078D4) !important;
	background-image: none !important;
	box-shadow: 0 4px 14px rgba(0, 120, 212, 0.4) !important;
}
.elementor .step-icon,
.proces-container .step-icon {
	background: linear-gradient(135deg, var(--ek-blue, #0078D4) 0%, var(--ek-blue-strong, #005A9E) 100%) !important;
	box-shadow: 0 4px 12px rgba(0, 120, 212, 0.25) !important;
}
.elementor .trust-badge,
.proces-container .trust-badge {
	background: rgba(255, 255, 255, 0.08) !important;
	color: #cbd5e1 !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.elementor .ek-card.ek-windows,
.ek-categories .ek-card.ek-windows {
	background: linear-gradient(135deg, var(--ek-navy, #0F1B2D) 0%, var(--ek-blue, #0078D4) 100%) !important;
}
.elementor .ek-card.ek-office,
.ek-categories .ek-card.ek-office {
	background: linear-gradient(135deg, var(--ek-navy, #0F1B2D) 0%, var(--ek-blue-strong, #005A9E) 100%) !important;
}
.elementor .ek-card.ek-server,
.ek-categories .ek-card.ek-server {
	background: linear-gradient(135deg, var(--ek-navy, #0F1B2D) 0%, #1E40AF 100%) !important;
}

.elementor .why-us-section,
[class*="why-us-section"] { background: #f8fafc !important; }
.elementor .feature-card-1 .feature-title,
.elementor .feature-card-2 .feature-title,
.elementor .feature-card-3 .feature-title,
.elementor .feature-card-4 .feature-title,
.why-us-section .feature-title { color: var(--ek-navy, #0F1B2D) !important; }

.elementor .trust-bar,
[class*="trust-bar"]:not(.ek-trust-bar) {
	background: #f8fafc !important;
	border-top: 1px solid #e2e8f0 !important;
}
.elementor .trust-icon,
.trust-bar .trust-icon { display: none !important; }
.elementor .trust-bar strong,
.trust-bar strong { color: var(--ek-navy, #0F1B2D) !important; }

ul.products li.product {
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}
ul.products li.product:hover {
	transform: translateY(-2px) !important;
	box-shadow: var(--ek-snow-shadow-lg) !important;
	border-color: var(--ek-blue, #0078D4) !important;
}

@media (min-width: 992px) {
	body.single-product div.product {
		display: grid !important;
		grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr) !important;
		gap: 40px !important;
		align-items: flex-start !important;
	}
	body.single-product div.product .woocommerce-product-gallery {
		float: none !important;
		width: 100% !important;
		grid-column: 1;
	}
	body.single-product div.product .summary.entry-summary {
		position: sticky !important;
		top: 24px !important;
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
		grid-column: 2;
		max-height: calc(100vh - 48px);
		overflow-y: auto;
		padding: 0 !important;
	}
	body.single-product div.product .woocommerce-tabs,
	body.single-product div.product .related,
	body.single-product div.product .upsells,
	body.single-product div.product .eklucze-faq-section,
	body.single-product div.product > .clear {
		grid-column: 1 / -1 !important;
		width: 100% !important;
		margin-top: 32px !important;
	}
}

.woocommerce-tabs .wc-tabs {
	display: flex !important;
	gap: 0 !important;
	margin: 0 0 24px !important;
	padding: 0 !important;
	border-bottom: 1px solid #e2e8f0 !important;
	list-style: none !important;
}
.woocommerce-tabs .wc-tabs li {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
}
.woocommerce-tabs .wc-tabs li a {
	display: block;
	padding: 14px 22px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: #64748b !important;
	border-bottom: 2px solid transparent !important;
	margin-bottom: -1px !important;
	letter-spacing: 0.01em;
	text-decoration: none !important;
	transition: all 0.15s ease;
}
.woocommerce-tabs .wc-tabs li a:hover { color: var(--ek-navy, #0F1B2D) !important; }
.woocommerce-tabs .wc-tabs li.active a {
	color: var(--ek-blue, #0078D4) !important;
	border-bottom-color: var(--ek-blue, #0078D4) !important;
}
.woocommerce-tabs .panel { padding: 0 !important; margin: 0 !important; }

.eklucze-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	will-change: opacity, transform;
}
.eklucze-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.eklucze-reveal { opacity: 1; transform: none; transition: none; }
}

.elementor-section { padding-top: 60px; padding-bottom: 60px; }
@media (max-width: 768px) {
	.elementor-section { padding-top: 40px; padding-bottom: 40px; }
}

ul.products li.product .price,
ul.products li.product .price ins,
ul.products li.product .price ins .amount,
ul.products li.product .price > .amount {
	color: var(--ek-blue, #0078D4) !important;
	font-weight: 800 !important;
	font-size: 18px !important;
}
.single-product .price,
.single-product .price ins .amount {
	color: var(--ek-navy, #0F1B2D) !important;
	font-weight: 900 !important;
}

/* EOF V4 SNOWFLAKE */


/* === V4 HOTFIX 20260426 — gallery width specificity + summary minwidth === */
body.single-product div.product div.woocommerce-product-gallery,
.single-product .woocommerce-product-gallery,
.single-product div.product .woocommerce-product-gallery.images {
	width: 100% !important;
	float: none !important;
	max-width: 100% !important;
	min-width: 0 !important;
}
@media (min-width: 992px) {
	body.single-product div.product {
		grid-template-columns: minmax(0, 1.4fr) minmax(380px, 0.6fr) !important;
	}
	body.single-product div.product .summary.entry-summary {
		min-width: 380px !important;
	}
	body.single-product div.product .woocommerce-product-gallery {
		grid-column: 1 !important;
	}
}

/* CTA wrap fix - cart button can break to 2 lines if narrow column */
.single-product .single_add_to_cart_button {
	white-space: normal !important;
	min-height: 48px !important;
	line-height: 1.2 !important;
}

/* === EOF V4 HOTFIX === */

/* ============================================================
 * eklucze.pl — Global Trust Block (V4 Snowflake) — added 2026-04-27
 * Renderowany przez eklucze_render_trust_block() w functions.php
 * @link policy_seo_protect_existing_content.md
 * ============================================================ */
.ek-trust-block {
	margin: 48px 0 32px;
	padding: 40px;
	background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	color: #1e293b;
	line-height: 1.6;
}
.ek-trust-block .ek-trust-heading {
	font-size: 28px;
	font-weight: 900;
	letter-spacing: -0.03em;
	color: #0a0e27;
	margin: 0 0 16px;
	line-height: 1.2;
}
.ek-trust-block .ek-trust-subheading {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #0a0e27;
	margin: 32px 0 16px;
	line-height: 1.3;
}
.ek-trust-block .ek-trust-lead {
	font-size: 16px;
	margin: 0 0 20px;
	color: #334155;
}
.ek-trust-block .ek-trust-lead strong {
	color: #0078D4;
	font-weight: 700;
}
.ek-trust-block .ek-trust-bullets,
.ek-trust-block .ek-trust-steps {
	margin: 0 0 8px;
	padding: 0 0 0 24px;
}
.ek-trust-block .ek-trust-bullets li,
.ek-trust-block .ek-trust-steps li {
	margin: 0 0 10px;
	padding-left: 4px;
	color: #334155;
}
.ek-trust-block .ek-trust-bullets li strong,
.ek-trust-block .ek-trust-steps li strong {
	color: #0a0e27;
	font-weight: 700;
}
.ek-trust-block .ek-trust-guarantee {
	margin: 28px 0 0;
	padding: 18px 22px;
	background: #ffffff;
	border-left: 1px solid #e2e8f0;
	border-radius: 6px;
	font-size: 16px;
	color: #1e293b;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ek-trust-block .ek-trust-guarantee strong {
	color: #0078D4;
	font-weight: 700;
}

/* Mobile */
@media (max-width: 767px) {
	.ek-trust-block {
		margin: 32px 0 24px;
		padding: 28px 20px;
		border-radius: 8px;
	}
	.ek-trust-block .ek-trust-heading {
		font-size: 22px;
	}
	.ek-trust-block .ek-trust-subheading {
		font-size: 18px;
		margin-top: 24px;
	}
	.ek-trust-block .ek-trust-lead,
	.ek-trust-block .ek-trust-guarantee {
		font-size: 15px;
	}
}

/* ============================================================
 * REGRESJA FIX (2026-04-29): CTA button overlap on price
 * Problem: Klucz w 5 min badge zwiekszyl naturalna wysokosc card,
 * ale .products li.product ma fixed-ish height = button absolute
 * bottom:0 nakłada się na price.
 * Fix: min-height + padding-bottom + safe button position.
 * ============================================================ */
.woocommerce ul.products li.product,
.products li.product {
	min-height: 490px !important;
	padding-bottom: 64px !important; /* miejsce dla button absolute */
}

.woocommerce ul.products li.product .button.add_to_cart_button,
.products li.product .button.add_to_cart_button {
	bottom: 16px !important; /* padding od dolu karty */
	left: 16px !important;
	right: 16px !important;
	width: auto !important;
}

/* Mobile: mniej padding bottom (mniejsze CTA zajmuja mniej miejsca) */
@media (max-width: 767px) {
	.woocommerce ul.products li.product,
	.products li.product {
		min-height: 460px !important;
		padding-bottom: 56px !important;
	}
}

/* ============================================================
 * SPÓJNOŚĆ V4 (2026-04-30): Shoptimizer .product-widget
 * → harmonizacja ze stylem .ek-trust-block (Snowflake)
 * "jedno takie drugie takie" → oba teraz wyglądają spójnie
 * ============================================================ */
.summary .product-widget {
	margin: 24px 0 0 !important;
	padding: 24px !important;
	background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%) !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	color: #1e293b !important;
}
/* zielone checki (default Shoptimizer) → niebieski Snowflake */
.summary .product-widget svg,
.summary .product-widget i,
.summary .product-widget .check-icon,
.summary .product-widget [class*="check"],
.summary .product-widget [class*="tick"] {
	color: #0078D4 !important;
	fill: #0078D4 !important;
}
.summary .product-widget li,
.summary .product-widget p {
	font-size: 15px !important;
	color: #334155 !important;
	margin-bottom: 8px !important;
}
.summary .product-widget strong {
	color: #0a0e27 !important;
	font-weight: 700 !important;
}
/* Płatności logos: szare placeholder, niebieski hover */
.summary .product-widget .payment-icons,
.summary .product-widget [class*="payment"] {
	margin-top: 16px !important;
	padding-top: 16px !important;
	border-top: 1px solid #e2e8f0 !important;
}

/* ============================================================
 * FOOTER 3 sekcje (PRODUKTY/INFORMACJE/POMOC) — zmniejszony spacing
 * ============================================================ */
.site-footer .widget,
footer .widget_text {
	line-height: 1.5 !important;
}
.site-footer .widget p,
footer .widget_text p,
.site-footer .widget div,
footer .widget_text > div > div {
	margin-bottom: 6px !important;
	padding: 0 !important;
}
.site-footer .widget a,
footer .widget_text a {
	display: inline-block !important;
	padding: 4px 0 !important;
	margin: 0 !important;
	line-height: 1.4 !important;
}

/* ============================================================
 * COLOR-CONTRAST FIX: .why-us-subtitle + .feature-description
 * Lighthouse a11y audit: kontrast za niski (slate-400)
 * Fix: slate-600 (#475569) - AA compliant
 * ============================================================ */
.why-us-subtitle,
.feature-description,
.feature-text,
.feature-desc {
	color: #475569 !important;
}

/* ============================================================
 * HIDE Sticky ATC duplicate (V4 fix 2026-04-30)
 * Shoptimizer commercekit renderuje 2 forms cart w .summary
 * (origin + sticky) - sticky NIE ma JS aktywacji = duplikuje summary
 * Hide do czasu rozwiazania (JS init lub plugin config)
 * ============================================================ */
.summary form.cart.commercekit_sticky-atc:not(.commercekit_sticky-atc-origin) {
	display: none !important;
}

/* Stronger override - LiteSpeed UCSS prune issue */
body .summary form.cart.commercekit_sticky-atc:not(.commercekit_sticky-atc-origin),
body div.summary form.cart.commercekit_sticky-atc:not(.commercekit_sticky-atc-origin) {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ============================================
   eklucze.pl — Tech Dark Subtle Redesign v1
   Data: 2026-04-11
   Spec: docs/superpowers/specs/2026-04-11-eklucze-redesign-design.md
   ============================================ */

/* === DESIGN TOKENS === */
:root {
  /* Dark palette */
  --ek-dark-900: #060d1b;
  --ek-dark-800: #0b1120;
  --ek-dark-700: #0f172a;
  --ek-dark-600: #1e293b;
  --ek-dark-500: #132847;

  /* Accent blues */
  --ek-cyan: #38bdf8;
  --ek-blue-700: #0369a1;
  --ek-blue-600: #2563eb;
  --ek-blue-500: #3b82f6;
  --ek-blue-100: #f0f9ff;

  /* Neutrals */
  --ek-white: #ffffff;
  --ek-gray-50: #f8fafc;
  --ek-gray-100: #f1f5f9;
  --ek-gray-200: #e2e8f0;
  --ek-gray-400: #94a3b8;
  --ek-gray-500: #64748b;
  --ek-gray-600: #475569;

  /* Category gradients */
  --ek-cat-windows-from: #0f172a;
  --ek-cat-windows-to: #1e3a5f;
  --ek-cat-windows-icon: #38bdf8;
  --ek-cat-office-from: #9a3412;
  --ek-cat-office-to: #c2410c;
  --ek-cat-office-icon: #fed7aa;
  --ek-cat-server-from: #065f46;
  --ek-cat-server-to: #047857;
  --ek-cat-server-icon: #6ee7b7;
  --ek-cat-visio-from: #4c1d95;
  --ek-cat-visio-to: #6d28d9;
  --ek-cat-visio-icon: #c4b5fd;

  /* Shadows */
  --ek-shadow-sm: 0 1px 2px rgba(0,0,0,0.03);
  --ek-shadow-md: 0 1px 3px rgba(0,0,0,0.04);
  --ek-shadow-hover: 0 8px 24px rgba(59,130,246,0.1);
  --ek-shadow-blog-hover: 0 8px 24px rgba(0,0,0,0.06);
  --ek-shadow-cta: 0 4px 14px rgba(37,99,235,0.35);

  /* Radius */
  --ek-radius-card: 14px;
  --ek-radius-btn: 8px;
  --ek-radius-pill: 20px;
  --ek-radius-tag: 6px;
  --ek-radius-icon: 10px;
}

/* === BASE TYPOGRAPHY === */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 15px;
  color: var(--ek-dark-700);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.elementor-widget-text-editor,
.elementor-widget-heading .elementor-heading-title {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* === BUTTON BASE === */
.ek-btn-primary {
  background: linear-gradient(135deg, var(--ek-blue-500), var(--ek-blue-600));
  color: var(--ek-white);
  padding: 12px 28px;
  border-radius: var(--ek-radius-btn);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  display: inline-block;
  box-shadow: var(--ek-shadow-cta);
  transition: transform 0.2s, box-shadow 0.2s;
  border: none;
  cursor: pointer;
}
.ek-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(37,99,235,0.45);
  color: var(--ek-white);
}

.ek-btn-secondary {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  color: #e2e8f0;
  padding: 12px 28px;
  border-radius: var(--ek-radius-btn);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
  transition: background 0.2s;
}
.ek-btn-secondary:hover {
  background: rgba(255,255,255,0.1);
  color: #e2e8f0;
}

.ek-btn-cart {
  background: linear-gradient(135deg, var(--ek-blue-500), var(--ek-blue-600));
  color: var(--ek-white);
  padding: 8px 18px;
  border-radius: var(--ek-radius-btn);
  font-size: 11px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: transform 0.15s;
}
.ek-btn-cart:hover {
  transform: scale(1.04);
}

/* === SECTION HELPERS === */
.ek-section-light { background: var(--ek-gray-50); padding: 48px; }
.ek-section-white { background: var(--ek-white); padding: 48px; }
.ek-section-title {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--ek-blue-500);
  font-weight: 700;
  margin-bottom: 6px;
}
.ek-section-heading {
  font-size: 26px;
  font-weight: 800;
  color: var(--ek-dark-700);
  letter-spacing: -0.5px;
  margin-bottom: 6px;
}
.ek-section-desc {
  font-size: 14px;
  color: var(--ek-gray-600);
  margin-bottom: 32px;
}

/* === TOPBAR === */
.topbar-wrapper,
.col-full.topbar-wrapper {
  background: var(--ek-dark-900) !important;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.topbar-wrapper .ek-topbar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  padding: 8px 0;
  font-size: 11px;
  color: var(--ek-gray-500);
  max-width: 1140px;
  margin: 0 auto;
}
.topbar-wrapper .ek-topbar strong {
  color: var(--ek-gray-400);
}
.topbar-wrapper .ek-topbar span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

@media (max-width: 767px) {
  .topbar-wrapper .ek-topbar {
    flex-direction: column;
    gap: 4px;
    padding: 6px 0;
    font-size: 10px;
  }
}

/* === HEADER === */
.site-header,
.col-full.header-wrapper,
header#masthead {
  background: var(--ek-dark-800) !important;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.site-header .site-title a,
.site-header .custom-logo-link img + .site-title a {
  color: var(--ek-white) !important;
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -1px;
}

.site-header .main-navigation ul li a,
.site-header .main-navigation .menu > li > a {
  color: var(--ek-gray-400) !important;
  font-size: 13px;
  font-weight: 500;
  transition: color 0.2s;
}
.site-header .main-navigation ul li a:hover,
.site-header .main-navigation .menu > li:hover > a {
  color: var(--ek-white) !important;
}

.site-header .main-navigation ul.sub-menu {
  background: var(--ek-dark-800) !important;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
}
.site-header .main-navigation ul.sub-menu li a {
  color: var(--ek-gray-400) !important;
}
.site-header .main-navigation ul.sub-menu li a:hover {
  color: var(--ek-white) !important;
  background: rgba(255,255,255,0.04) !important;
}

.site-header .site-search .search-field,
.site-header .dgwt-wcas-search-input {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 8px;
  color: var(--ek-gray-400) !important;
  font-size: 12px;
}
.site-header .dgwt-wcas-search-input::placeholder {
  color: var(--ek-gray-500) !important;
}

.site-header .shoptimizer-cart .count,
.site-header .cart-contents .count {
  background: var(--ek-blue-500) !important;
  color: var(--ek-white) !important;
  font-size: 9px;
  font-weight: 700;
}
.site-header .shoptimizer-cart .amount,
.site-header .cart-contents {
  color: var(--ek-gray-400) !important;
}
.site-header .site-header-cart svg,
.site-header .site-header-cart i {
  color: var(--ek-gray-400) !important;
  fill: var(--ek-gray-400) !important;
}

.site-header.is-sticky {
  background: rgba(11,17,32,0.95) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: background 0.3s ease, backdrop-filter 0.3s ease;
}

@media (max-width: 767px) {
  .site-header .menu-toggle,
  .site-header .handheld-navigation {
    color: var(--ek-white) !important;
  }
}

/* === HERO === */
.ek-hero {
  background: linear-gradient(160deg, var(--ek-dark-800) 0%, #0f1d35 40%, var(--ek-dark-500) 100%);
  padding: 64px 48px 56px;
  position: relative;
  overflow: hidden;
}
.ek-hero::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -60px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(56,189,248,0.08) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.ek-hero::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: 30%;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(59,130,246,0.06) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.ek-hero-content {
  position: relative;
  z-index: 1;
  max-width: 560px;
}

.ek-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(56,189,248,0.1);
  border: 1px solid rgba(56,189,248,0.2);
  border-radius: var(--ek-radius-pill);
  padding: 5px 14px;
  margin-bottom: 20px;
  font-size: 11px;
  color: var(--ek-cyan);
  font-weight: 600;
}

.ek-hero h1 {
  font-size: 38px;
  font-weight: 900;
  color: var(--ek-gray-50);
  line-height: 1.15;
  letter-spacing: -1.5px;
  margin-bottom: 14px;
}
.ek-hero h1 em {
  font-style: normal;
  color: var(--ek-cyan);
}

.ek-hero p {
  font-size: 15px;
  color: var(--ek-gray-400);
  line-height: 1.6;
  margin-bottom: 28px;
  max-width: 480px;
}

.ek-hero-buttons {
  display: flex;
  gap: 12px;
}

.ek-hero-stats {
  display: flex;
  gap: 32px;
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.ek-hero-stat-value {
  font-size: 22px;
  font-weight: 800;
  color: var(--ek-cyan);
}
.ek-hero-stat-label {
  font-size: 11px;
  color: var(--ek-gray-500);
  margin-top: 2px;
}

@media (max-width: 1024px) {
  .ek-hero { padding: 48px 32px 40px; }
  .ek-hero h1 { font-size: 30px; }
}
@media (max-width: 767px) {
  .ek-hero { padding: 32px 20px 28px; }
  .ek-hero h1 { font-size: 26px; letter-spacing: -1px; }
  .ek-hero-buttons { flex-direction: column; }
  .ek-hero-stats { flex-direction: column; gap: 16px; }
}

/* === TRUST BAR === */
.ek-trust-bar {
  background: var(--ek-white);
  padding: 20px 48px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  border-bottom: 1px solid var(--ek-gray-200);
  max-width: 1140px;
  margin: 0 auto;
}
.ek-trust-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--ek-gray-600);
  font-weight: 500;
}
.ek-trust-item strong {
  color: var(--ek-dark-700);
}
.ek-trust-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--ek-radius-icon);
  background: var(--ek-blue-100);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}

@media (max-width: 1024px) {
  .ek-trust-bar { grid-template-columns: repeat(2, 1fr); padding: 16px 32px; }
}
@media (max-width: 767px) {
  .ek-trust-bar { grid-template-columns: 1fr; padding: 16px 20px; gap: 10px; }
}

/* === PRODUCT CARDS (Outlined + Badges) === */
ul.products li.product,
.woocommerce ul.products li.product {
  background: var(--ek-white) !important;
  border-radius: var(--ek-radius-card) !important;
  padding: 20px !important;
  border: 2px solid var(--ek-gray-200) !important;
  position: relative;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-shadow: none !important;
}
ul.products li.product:hover,
.woocommerce ul.products li.product:hover {
  border-color: var(--ek-blue-500) !important;
  box-shadow: var(--ek-shadow-hover) !important;
}

ul.products li.product .ek-product-badge {
  position: absolute;
  top: 0;
  right: 0;
  background: var(--ek-dark-700);
  color: var(--ek-cyan);
  font-size: 9px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 0 0 0 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  z-index: 2;
}

ul.products li.product .attachment-woocommerce_thumbnail,
ul.products li.product .woocommerce-loop-product__link img {
  border-radius: 12px;
  object-fit: contain;
}

ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--ek-dark-700) !important;
  margin-bottom: 4px !important;
}

ul.products li.product .cg-product-excerpt {
  font-size: 11px;
  color: var(--ek-gray-400);
  margin-bottom: 10px;
}

ul.products li.product .price,
.woocommerce ul.products li.product .price {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--ek-dark-700) !important;
}
ul.products li.product .price del {
  font-size: 13px;
  color: var(--ek-gray-400);
  font-weight: 500;
}
ul.products li.product .price ins {
  font-weight: 800;
  color: var(--ek-dark-700);
  text-decoration: none;
}

ul.products li.product .button,
ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .add_to_cart_button {
  background: linear-gradient(135deg, var(--ek-blue-500), var(--ek-blue-600)) !important;
  color: var(--ek-white) !important;
  padding: 8px 18px !important;
  border-radius: var(--ek-radius-btn) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  border: none !important;
  transition: transform 0.15s !important;
}
ul.products li.product .button:hover,
ul.products li.product .add_to_cart_button:hover {
  transform: scale(1.04);
}

.ek-product-tag {
  background: var(--ek-blue-100);
  color: var(--ek-blue-700);
  font-size: 9px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: var(--ek-radius-tag);
  display: inline-block;
  margin-right: 4px;
  margin-bottom: 4px;
}

.woocommerce .columns-4 ul.products,
ul.products.columns-4 {
  gap: 16px;
}

.ek-bestsellers {
  background: var(--ek-gray-50);
  padding: 48px;
}

@media (max-width: 1024px) {
  .woocommerce ul.products[class*="columns-"] li.product {
    width: calc(50% - 8px) !important;
  }
  .ek-bestsellers { padding: 32px; }
}
@media (max-width: 767px) {
  .woocommerce ul.products[class*="columns-"] li.product {
    width: 100% !important;
  }
  .ek-bestsellers { padding: 20px; }
}

/* === STEPS ("Jak to dziala") === */
.ek-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.ek-step-card {
  background: var(--ek-white);
  border-radius: var(--ek-radius-card);
  padding: 24px;
  border: 1px solid var(--ek-gray-200);
  text-align: center;
}
.ek-step-number {
  width: 36px;
  height: 36px;
  border-radius: var(--ek-radius-icon);
  background: linear-gradient(135deg, var(--ek-dark-700), var(--ek-dark-600));
  color: var(--ek-cyan);
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}
.ek-step-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ek-dark-700);
  margin-bottom: 4px;
}
.ek-step-desc {
  font-size: 11px;
  color: var(--ek-gray-400);
  line-height: 1.5;
}

@media (max-width: 1024px) {
  .ek-steps-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .ek-steps-grid { grid-template-columns: 1fr; }
}

/* === WHY US === */
.ek-why-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.ek-why-card {
  background: rgba(59,130,246,0.04);
  border: 1px solid rgba(59,130,246,0.08);
  border-radius: var(--ek-radius-card);
  padding: 24px;
}
.ek-why-icon {
  font-size: 24px;
  margin-bottom: 10px;
}
.ek-why-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ek-dark-700);
  margin-bottom: 4px;
}
.ek-why-desc {
  font-size: 12px;
  color: var(--ek-gray-500);
  line-height: 1.5;
}

@media (max-width: 1024px) {
  .ek-why-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .ek-why-grid { grid-template-columns: 1fr; }
}

/* === BLOG CARDS === */
.ek-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.ek-blog-card {
  background: var(--ek-white);
  border-radius: var(--ek-radius-card);
  overflow: hidden;
  border: 1px solid var(--ek-gray-200);
  transition: box-shadow 0.2s;
}
.ek-blog-card:hover {
  box-shadow: var(--ek-shadow-blog-hover);
}
.ek-blog-thumb {
  height: 120px;
  background: linear-gradient(135deg, var(--ek-dark-700), var(--ek-dark-500));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ek-cyan);
  font-size: 32px;
}
.ek-blog-body {
  padding: 18px;
}
.ek-blog-cat {
  font-size: 10px;
  color: var(--ek-blue-500);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 6px;
}
.ek-blog-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ek-dark-700);
  margin-bottom: 6px;
  line-height: 1.3;
}
.ek-blog-excerpt {
  font-size: 11px;
  color: var(--ek-gray-400);
  line-height: 1.5;
}

.shoptimizer-blog .type-post,
.hentry.type-post {
  border-radius: var(--ek-radius-card) !important;
  overflow: hidden;
  border: 1px solid var(--ek-gray-200);
  transition: box-shadow 0.2s;
}
.shoptimizer-blog .type-post:hover,
.hentry.type-post:hover {
  box-shadow: var(--ek-shadow-blog-hover);
}

@media (max-width: 1024px) {
  .ek-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .ek-blog-grid { grid-template-columns: 1fr; }
}

/* === CTA SECTION === */
.ek-cta {
  background: linear-gradient(135deg, var(--ek-dark-800), var(--ek-dark-500));
  padding: 48px;
  text-align: center;
}
.ek-cta h2 {
  font-size: 28px;
  font-weight: 800;
  color: var(--ek-gray-50);
  margin-bottom: 10px;
  letter-spacing: -0.5px;
}
.ek-cta p {
  font-size: 14px;
  color: var(--ek-gray-400);
  margin-bottom: 24px;
}

@media (max-width: 767px) {
  .ek-cta { padding: 32px 20px; }
  .ek-cta h2 { font-size: 22px; }
}

/* === FOOTER === */
.site-footer,
footer.site-footer {
  background: var(--ek-dark-900) !important;
  color: var(--ek-gray-500) !important;
}
.site-footer .widget-area {
  background: var(--ek-dark-900) !important;
}

.ek-footer {
  padding: 36px 48px 20px;
  max-width: 1140px;
  margin: 0 auto;
}
.ek-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 32px;
  margin-bottom: 24px;
}
.ek-footer-brand .ek-footer-logo {
  font-size: 22px;
  font-weight: 800;
  color: var(--ek-gray-50);
  letter-spacing: -1px;
  margin-bottom: 10px;
}
.ek-footer-brand .ek-footer-logo span {
  color: var(--ek-cyan);
}
.ek-footer-brand p {
  font-size: 11px;
  color: var(--ek-gray-600);
  line-height: 1.6;
}
.ek-footer-col h4 {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--ek-gray-500);
  margin-bottom: 12px;
  font-weight: 700;
}
.ek-footer-col a {
  display: block;
  font-size: 12px;
  color: var(--ek-gray-400);
  text-decoration: none;
  margin-bottom: 6px;
  transition: color 0.2s;
}
.ek-footer-col a:hover {
  color: var(--ek-gray-50);
}
.ek-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 16px;
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: var(--ek-gray-600);
}
.ek-footer-disclaimer {
  margin-top: 8px;
  font-size: 10px;
  color: var(--ek-gray-600);
}

@media (max-width: 1024px) {
  .ek-footer-grid { grid-template-columns: 1fr 1fr; }
  .ek-footer { padding: 24px 32px 16px; }
}
@media (max-width: 767px) {
  .ek-footer-grid { grid-template-columns: 1fr; gap: 20px; }
  .ek-footer { padding: 20px 20px 16px; }
  .ek-footer-bottom { flex-direction: column; gap: 6px; }
}

/* === PRESERVED FUNCTIONAL RULES (from original CSS) === */

.entry-header { display: none !important; }

.single-product .woocommerce-product-gallery__image img {
    max-height: 450px !important;
    object-fit: contain !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    display: block !important;
}

.woocommerce-product-attributes {
    border: 2px solid #e5e7eb !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    margin: 30px 0 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05) !important;
}
.woocommerce-product-attributes-item {
    display: flex !important;
    border-bottom: 1px solid #e5e7eb !important;
    transition: background 0.2s ease !important;
}
.woocommerce-product-attributes-item:last-child {
    border-bottom: none !important;
}
.woocommerce-product-attributes-item:hover {
    background: #f9fafb !important;
}
.woocommerce-product-attributes-item__label {
    background: #f3f4f6 !important;
    font-weight: 600 !important;
    color: #374151 !important;
    padding: 16px 20px !important;
    width: 35% !important;
    font-size: 15px !important;
}
.woocommerce-product-attributes-item__value {
    padding: 16px 20px !important;
    color: #1f2937 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
}
.woocommerce-product-attributes-item__value p { margin: 0 !important; }

@media (max-width: 768px) {
    .woocommerce-product-attributes-item { flex-direction: column !important; }
    .woocommerce-product-attributes-item__label,
    .woocommerce-product-attributes-item__value {
        width: 100% !important;
        display: block !important;
        padding: 12px 16px !important;
    }
    .woocommerce-product-attributes-item__label {
        border-bottom: 1px solid #e5e7eb !important;
    }
}

/* === SHOPTIMIZER FOOTER OVERRIDE === */
footer.site-footer .col-full {
  display: block !important;
  max-width: 100% !important;
  padding: 0 !important;
}
footer.site-footer {
  padding: 0 !important;
}
footer.site-footer .widget:empty,
footer.site-footer .widget .textwidget:empty {
  display: none !important;
}
footer.site-footer .widget {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hide Shoptimizer copyright area (content moved to ek-footer-bottom) */
.site-footer + .site-info,
.site-info,
.footer-copyright .col-full {
  display: none !important;
}

/* === SHOPTIMIZER TOPBAR OVERRIDE === */
.col-full.topbar-container {
  max-width: 100% !important;
  padding: 0 !important;
}
.topbar-container .widget {
  width: 100% !important;
}

.ek-trust-icon {
  color: var(--ek-blue-600);
}
.ek-trust-icon svg {
  width: 20px;
  height: 20px;
  display: block;
}

.ek-why-section {
  max-width: 1140px;
  margin: 56px auto;
  padding: 0 20px;
}
.ek-why-head {
  text-align: center;
  margin-bottom: 32px;
}
.ek-why-head h2 {
  font-size: 28px;
  font-weight: 800;
  color: var(--ek-dark-700);
  letter-spacing: -0.5px;
  margin: 0 0 8px;
}
.ek-why-head p {
  font-size: 14px;
  color: var(--ek-gray-500);
  margin: 0;
}

.ek-why-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--ek-radius-icon);
  background: linear-gradient(135deg, rgba(59,130,246,0.10), rgba(56,189,248,0.06));
  border: 1px solid rgba(59,130,246,0.12);
  color: var(--ek-blue-600);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.ek-why-icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

.ek-why-card {
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.ek-why-card:hover {
  transform: translateY(-2px);
  border-color: rgba(59,130,246,0.25);
  box-shadow: var(--ek-shadow-hover);
}

.ek-blog-section {
  max-width: 1140px;
  margin: 56px auto;
  padding: 0 20px;
}
.ek-blog-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 16px;
  flex-wrap: wrap;
}
.ek-blog-head h2 {
  font-size: 28px;
  font-weight: 800;
  color: var(--ek-dark-700);
  letter-spacing: -0.5px;
  margin: 0;
}
.ek-blog-head-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--ek-blue-600);
  text-decoration: none;
  white-space: nowrap;
}
.ek-blog-head-link:hover {
  color: var(--ek-blue-700);
  text-decoration: underline;
}

.ek-blog-card {
  text-decoration: none;
  color: inherit;
  display: block;
}
.ek-blog-card:hover .ek-blog-title {
  color: var(--ek-blue-600);
}

.ek-blog-thumb svg {
  width: 48px;
  height: 48px;
  display: block;
  color: var(--ek-cyan);
}

@media (max-width: 767px) {
  .ek-why-section,
  .ek-blog-section {
    margin: 40px auto;
  }
  .ek-why-head h2,
  .ek-blog-head h2 {
    font-size: 22px;
  }
}

/* ============================================
   eklucze.pl — CSS Fixes z audytu 2026-05-01
   Data: 2026-05-02
   Doklej na KONIEC obecnego CSS w Customizerze
   (WP Admin > Wygląd > Dostosuj > Dodatkowy CSS)
   ============================================ */

/* ─────────────────────────────────────────
   FIX #4 (KRYT): Tab "Opis" — width: 0 → 87 700px wysokości
   Root cause: parent flex bez min-width: 0
   Klasy potwierdzone z prod: .woocommerce-tabs.wc-tabs-wrapper,
   .woocommerce-Tabs-panel--description / --additional_information /
   --ek_trust / --reviews
   ───────────────────────────────────────── */
.woocommerce-tabs.wc-tabs-wrapper,
.woocommerce-tabs .woocommerce-Tabs-panel,
.woocommerce-Tabs-panel--description,
.woocommerce-Tabs-panel--additional_information,
.woocommerce-Tabs-panel--ek_trust,
.woocommerce-Tabs-panel--reviews {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.woocommerce-Tabs-panel.panel.entry-content {
  overflow-wrap: break-word;
  word-break: normal;
}

.woocommerce-Tabs-panel p,
.woocommerce-Tabs-panel h2,
.woocommerce-Tabs-panel h3,
.woocommerce-Tabs-panel h4,
.woocommerce-Tabs-panel li,
.woocommerce-Tabs-panel ul,
.woocommerce-Tabs-panel ol,
.woocommerce-Tabs-panel table {
  width: auto;
  max-width: 100%;
  min-width: 0;
}

/* ─────────────────────────────────────────
   FIX #16 (ŚR): Galeria produktu width: 0
   Same root cause co #4
   ───────────────────────────────────────── */
.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image {
  min-width: 0;
  width: 100%;
}

.woocommerce-product-gallery img {
  max-width: 100%;
  height: auto;
}

/* ─────────────────────────────────────────
   FIX #7 (WYS): Sticky add-to-cart bar — width: 5px
   Force pełną szerokość + content centrowany
   ───────────────────────────────────────── */
.commercekit-sticky-add-to-cart,
.commercekit-sticky-atc {
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  min-width: 0;
  z-index: 999;
}

.commercekit-sticky-add-to-cart__content,
.commercekit-sticky-atc__inner,
.commercekit-sticky-add-to-cart > * {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  min-width: 0;
  box-sizing: border-box;
  padding: 0 20px;
}

/* ─────────────────────────────────────────
   FIX #3 (KRYT): 4x duplikat "Dodaj do koszyka"
   ROOT CAUSE: Shoptimizer + CommerceKit + child theme generują:
   1. <form class="cart"> (standard WC)
   2. .commercekit-pdp-before-form (panel CTA przed formą)
   3. .commercekit-sticky-add-to-cart (desktop sticky)
   4. .eklucze-mobile-sticky-atc (mobile sticky child theme)
   Body ma klasy `sticky-m sticky-d` = oba sticky aktywne na desktop.
   FIX: na desktop pokaż TYLKO desktop sticky, na mobile TYLKO mobile sticky.
   Ukryj before-form duplikat (cena+CTA są już w .summary).
   ───────────────────────────────────────── */

/* Desktop ≥768px: tylko desktop sticky, mobile sticky off */
@media (min-width: 768px) {
  .single-product .eklucze-mobile-sticky-atc {
    display: none !important;
  }
}

/* Mobile <768px: tylko mobile sticky, desktop sticky off */
@media (max-width: 767px) {
  .single-product .commercekit-sticky-add-to-cart {
    display: none !important;
  }
}

/* Ukryj duplikat panelu CTA przed formą (cena + button są już w .summary) */
.single-product .commercekit-pdp-before-form,
.single-product .commercekit-pdp-before-form_wrapper {
  display: none !important;
}

/* Bezpiecznik: jeśli kiedyś zostaną zduplikowane same sticky bary */
.single-product .commercekit-sticky-add-to-cart ~ .commercekit-sticky-add-to-cart {
  display: none !important;
}

/* Ukryj zduplikowane formularze cart poza .summary */
.single-product .woocommerce-tabs form.cart,
.single-product .entry-content form.cart {
  display: none !important;
}

/* ─────────────────────────────────────────
   FIX #14 (ŚR): Karty kategorii width: 2px
   Grid musi mieć szerokość, dzieci min-width: 0
   ───────────────────────────────────────── */
.ek-categories {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.ek-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  width: 100%;
}

.ek-card {
  min-width: 0;
  width: 100%;
}

@media (max-width: 768px) {
  .ek-grid {
    grid-template-columns: 1fr;
  }
}

/* ─────────────────────────────────────────
   FIX #6 (WYS): Niespójne wysokości kart produktów
   ───────────────────────────────────────── */
ul.products > li.product {
  display: flex;
  flex-direction: column;
}

ul.products > li.product .woocommerce-loop-product__link {
  flex: 1;
  display: flex;
  flex-direction: column;
}

ul.products > li.product img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
  width: 100%;
  height: auto;
}

ul.products > li.product .button,
ul.products > li.product .add_to_cart_button {
  margin-top: auto;
}

/* ─────────────────────────────────────────
   FIX #9 (WYS): Cena za mała + CTA na liście
   ───────────────────────────────────────── */
.summary .price,
.summary .price .woocommerce-Price-amount {
  font-size: 28px !important;
  font-weight: 900;
  line-height: 1.2;
}

.summary del .woocommerce-Price-amount {
  font-size: 18px !important;
  font-weight: 400;
}

ul.products .add_to_cart_button,
ul.products .button.product_type_simple {
  font-size: 14px !important;
  padding: 12px 24px !important;
  font-weight: 600;
}

/* ─────────────────────────────────────────
   FIX #8 (WYS): z-index hierarchy
   ───────────────────────────────────────── */
.site-header,
header.site-header {
  z-index: 1000;
}

.commercekit-sticky-add-to-cart {
  z-index: 999;
}

/* Cookie banner ma być nad wszystkim */
.cmplz-cookiebanner,
#cmplz-cookiebanner-container {
  z-index: 1001;
}

/* ─────────────────────────────────────────
   FIX #15 (ŚR): Trust badges niespójne wymiary
   ───────────────────────────────────────── */
.trust-badge,
.ek-trust-badge {
  min-width: 120px;
  min-height: 90px;
  text-align: center;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  box-sizing: border-box;
}

/* ─────────────────────────────────────────
   FIX #17 (NISKI): Breadcrumb za mały font
   ───────────────────────────────────────── */
.woocommerce-breadcrumb,
.breadcrumb,
nav.breadcrumb {
  font-size: 14px !important;
  color: #475569;
}

/* ─────────────────────────────────────────
   FIX #20 (NISKI): "Opinie 0" → social proof
   ───────────────────────────────────────── */
.woocommerce-tabs li.reviews_tab a::after {
  content: "" !important;
}

/* ─────────────────────────────────────────
   FIX #2 (KRYT): {title} placeholder w cookie banner
   3 linki: cookie-statement, privacy-statement, impressum
   z pustym data-relative_url — Complianz nie wygenerował
   dokumentów. CSS quick fix: ukryj te konkretne linki
   dopóki nie naprawisz w panelu Complianz.
   DOCELOWO: Complianz → Documents → wygeneruj/podlinkuj dokumenty
   ───────────────────────────────────────── */
.cmplz-documents .cmplz-link[data-relative_url=""],
.cmplz-cookiebanner .cmplz-documents li:has(a[data-relative_url=""]) {
  display: none !important;
}

/* Fallback dla starszych przeglądarek bez :has() */
.cmplz-cookiebanner .cmplz-documents.cmplz-empty {
  display: none !important;
}

/* ─────────────────────────────────────────
   FIX #1 (KRYT): Cookie banner — angielski tekst statistics
   CSS może tylko ukryć angielski span, ale POPRAWNY fix
   to Complianz → Cookie Banner → Purposes → tłumaczenie.
   Quick fix: ukryj angielski opis (zostaje PL "Analizujemy ruch...")
   ───────────────────────────────────────── */
.cmplz-description-statistics:lang(pl),
html[lang^="pl"] .cmplz-description-statistics {
  display: none !important;
}

/* ─────────────────────────────────────────
   FIX bonus: stylizacja desktop sticky bar dla pełnego UX
   (uzupełnienie FIX #7 — używa potwierdzonych klas z prod)
   ───────────────────────────────────────── */
.commercekit-sticky-add-to-cart__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 24px;
}

.commercekit-sticky-add-to-cart__content-price {
  font-size: 22px;
  font-weight: 800;
  color: var(--ek-dark-700, #0f172a);
  flex: 0 0 auto;
}

.commercekit-sticky-add-to-cart__content-button .button,
.commercekit-sticky-add-to-cart__content-button .single_add_to_cart_button {
  padding: 12px 28px;
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
}

/* Mobile sticky bar — child theme custom */
.eklucze-mobile-sticky-atc {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 999;
  background: #fff;
  box-shadow: 0 -2px 12px rgba(0,0,0,0.08);
  padding: 10px 16px;
  box-sizing: border-box;
}

/* ─────────────────────────────────────────
   FIX bonus: msab-button (Mass Simple Add to Cart Button)
   Czasem renderuje cenę w tabeli — ujednolicony styling
   ───────────────────────────────────────── */
.msab-button.add_to_cart_button {
  font-size: 14px !important;
  padding: 10px 20px !important;
  font-weight: 600;
}

/* ─────────────────────────────────────────
   FIX #10 (WYS): "Request a Call Back" — fallback CSS gdy nie da się ręcznie
   Jeśli element ma data-attribute lub klasę z "callback" — ukryj.
   PRIORYTET: zmienić tekst ręcznie w Customizerze/Elementorze
   ───────────────────────────────────────── */
.commercekit-callback-link[href="#"],
.product-callback-cta:not([href^="tel:"]):not([href^="mailto:"]) {
  /* Element bez podpiętej akcji — ukryj. Nie ukrywamy aktywnych callbacków */
  /* display: none !important; — odkomentuj dopiero po weryfikacji */
}

/* ============================================
   KONIEC FIX PACK 2026-05-02
   ============================================ */

.call-back-feature,
button[data-trigger="callBack"],
.shoptimizer-modal[data-shoptimizermodal-id="callBack"] {
  display: none !important;
}

.commercekit-atc-tab .count,
.reviews_tab a .count,
#tab-title-reviews .count,
.woocommerce-tabs .tabs li a .count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  background: var(--ek-blue-500, #3b82f6);
  border-radius: 9px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}

.commercekit-atc-tab .count:empty,
.reviews_tab a .count:empty {
  display: none;
}

ul.products li.product .ek-product-card-inner,
ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
}

ul.products li.product .button,
ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .add_to_cart_button,
ul.products li.product .added_to_cart {
  font-size: 14px !important;
  font-weight: 700 !important;
  padding: 14px 22px !important;
  width: 100% !important;
  display: block !important;
  text-align: center !important;
  margin-top: 16px !important;
  margin-bottom: 0 !important;
  border-radius: var(--ek-radius-btn, 8px) !important;
  box-sizing: border-box !important;
  letter-spacing: 0.2px;
}

ul.products li.product .price {
  margin-bottom: 8px !important;
}

ul.products li.product {
  padding-bottom: 24px !important;
}

.contact-page .elementor-widget-wrap,
.page-template-contact .entry-content,
.kontakt-section {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  align-items: start;
}

.contact-page h2,
.contact-page h3,
.kontakt-section h2,
.kontakt-section h3 {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  line-height: 1.2;
}

.contact-page h2 + p,
.contact-page h3 + p {
  margin-top: 0;
  margin-bottom: 8px;
}

.contact-page a[href^="mailto:"],
.contact-page a[href^="tel:"] {
  font-size: 18px;
  font-weight: 700;
  color: var(--ek-blue-600, #2563eb);
  text-decoration: none;
  display: inline-block;
  margin-bottom: 6px;
}

.contact-buttons,
.contact-page .elementor-button-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.contact-buttons a,
.contact-page .elementor-button {
  display: inline-block;
  padding: 12px 22px;
  border-radius: var(--ek-radius-btn, 8px);
  font-weight: 600;
  text-decoration: none;
}

.contact-buttons a:first-child {
  background: linear-gradient(135deg, var(--ek-blue-500, #3b82f6), var(--ek-blue-600, #2563eb));
  color: #fff;
}

.contact-buttons a:not(:first-child) {
  background: rgba(59,130,246,0.08);
  color: var(--ek-blue-600, #2563eb);
  border: 1px solid rgba(59,130,246,0.18);
}

.contact-page .dane-firmy,
.contact-page .firma-info {
  grid-column: 1 / -1;
  padding-top: 24px;
  margin-top: 24px;
  border-top: 1px solid var(--ek-gray-200, #e2e8f0);
}

@media (max-width: 767px) {
  .contact-page .elementor-widget-wrap,
  .page-template-contact .entry-content,
  .kontakt-section {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.single-product div.product .images,
.single-product div.product .woocommerce-product-gallery {
  width: 44% !important;
  max-width: 480px;
}

.single-product div.product .summary {
  width: 52% !important;
}

.single-product div.product .woocommerce-product-gallery__image img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
}

@media (max-width: 1023px) {
  .single-product div.product .images,
  .single-product div.product .woocommerce-product-gallery,
  .single-product div.product .summary {
    width: 100% !important;
    max-width: 100%;
  }
}

.woocommerce ul.products.columns-4,
ul.products.columns-4 {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px;
  list-style: none;
  padding: 0 !important;
  margin: 0 !important;
}
.woocommerce ul.products.columns-4 li.product,
ul.products.columns-4 li.product {
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  box-sizing: border-box;
}
@media (max-width: 1199px) {
  .woocommerce ul.products.columns-4,
  ul.products.columns-4 {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .woocommerce ul.products.columns-4 li.product,
  ul.products.columns-4 li.product { width: auto !important; }
}
@media (max-width: 900px) {
  .woocommerce ul.products.columns-4,
  ul.products.columns-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .woocommerce ul.products.columns-4 li.product,
  ul.products.columns-4 li.product { width: auto !important; }
}
@media (max-width: 480px) {
  .woocommerce ul.products.columns-4,
  ul.products.columns-4 {
    grid-template-columns: 1fr !important;
  }
  .woocommerce ul.products.columns-4 li.product,
  ul.products.columns-4 li.product { width: auto !important; }
}

body.home .woocommerce ul.products.columns-4,
body.page-template .woocommerce ul.products.columns-4,
body .woocommerce-page ul.products.columns-4,
ul.products.columns-4,
ul.products[class*=columns-] {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
body.home ul.products.columns-4 li.product,
ul.products[class*=columns-] li.product {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 20px !important;
  float: none !important;
  clear: none !important;
}
@media (max-width: 1199px) {
  ul.products[class*=columns-],
  ul.products.columns-4 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 900px) {
  ul.products[class*=columns-],
  ul.products.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 480px) {
  ul.products[class*=columns-],
  ul.products.columns-4 { grid-template-columns: 1fr !important; }
}

.elementor-widget-html .why-us-section,
.elementor-widget-html .proces-container,
.elementor-widget-html .why-us {
  padding: 32px 20px !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
}
.elementor-widget-html .why-us-section h2,
.elementor-widget-html .why-us h2 {
  font-size: 24px !important;
  margin-bottom: 8px !important;
  padding-bottom: 0 !important;
}
.elementor-widget-html .why-us-section .why-us-grid,
.elementor-widget-html .why-us-grid {
  padding-top: 16px !important;
  gap: 20px !important;
}

.ek-footer,
footer.site-footer,
.shoptimizer-footer {
  padding: 32px 20px 24px !important;
}
footer.site-footer .widget-area,
.shoptimizer-footer .widget-area,
footer .ek-footer-grid {
  gap: 24px !important;
  padding: 0 !important;
}
footer .ek-footer-grid h4,
footer .widget-title {
  margin-bottom: 10px !important;
  font-size: 13px !important;
}

.page-id-1002 .entry-content,
.page-template-page-pomoc .entry-content,
body[class*=pomoc] .entry-content {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 20px;
}
.entry-content h2,
.entry-content h3 {
  margin-top: 32px !important;
  margin-bottom: 12px !important;
  line-height: 1.2 !important;
}
.entry-content h2:first-of-type,
.entry-content h3:first-of-type {
  margin-top: 0 !important;
}
.entry-content > p {
  margin-bottom: 10px;
}
.entry-content a[href^='mailto:'],
.entry-content a[href^='tel:'] {
  display: inline-block;
  font-size: 16px;
  font-weight: 700;
  color: var(--ek-blue-600, #2563eb);
  text-decoration: none;
  margin: 4px 0 2px;
}
.entry-content a[href^='mailto:']:hover,
.entry-content a[href^='tel:']:hover {
  text-decoration: underline;
}

html, body {
  overflow-x: clip;
}

html body.woocommerce ul.products li.product .button.add_to_cart_button,
html body.woocommerce-page ul.products li.product .button.add_to_cart_button,
html body ul.products li.product a.button.add_to_cart_button {
  position: relative !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  width: calc(100% - 32px) !important;
  max-width: calc(100% - 32px) !important;
  margin: 12px 16px !important;
  display: block !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

html body.single-product div.product form.cart {
  margin-bottom: 24px !important;
}
html body.single-product .summary.entry-summary > .eklucze-product-trust,
html body.single-product .summary.entry-summary form.cart + .eklucze-product-trust {
  margin-top: 24px !important;
}
