/* ============================================
   GLOBAL STYLES WITH CSS VARIABLES
   ============================================ */

:root {
    /* ===== EPULSE BRAND COLORS ===== */
    --epulse-color-primary: #007BFF;
    --epulse-color-secondary: #6c757d;
    --epulse-color-accent: #28a745;
    --epulse-color-warning: #ffc107;
    --epulse-color-danger: #dc3545;
    
    /* ===== TEXT COLORS ===== */
    --epulse-color-text-primary: #212529;
    --epulse-color-text-secondary: #495057;
    
    /* ===== BACKGROUND COLORS ===== */
    --epulse-color-background-light: #FFFFFF;
    --epulse-color-background-main: #f8f9fa;
    --epulse-color-border: #dee2e6;
    
    /* ===== TYPOGRAPHY ===== */
    --epulse-font-weight-bold: 700;
    --epulse-font-weight-normal: 400;
    
    /* ===== LAYOUT ===== */
    --epulse-border-radius-soft: 1.25rem; /* 20px converted: 20/16 = 1.25rem */
    --epulse-shadow-soft: 0 0.375rem 1.125rem rgba(0, 0, 0, 0.07); /* 6px 18px converted */
    --epulse-transition-fast: all 0.2s ease-in-out;
}

/* ============================================
   DARK MODE OVERRIDES
   ============================================ */

.darkmode {
    /* ===== EPULSE BRAND COLORS ===== */
    --epulse-color-primary: #4da3ff;
    --epulse-color-secondary: #868e96;
    --epulse-color-accent: #2ecc71;
    --epulse-color-warning: #f39c12;
    --epulse-color-danger: #e74c3c;
    
    /* ===== TEXT COLORS ===== */
    --epulse-color-text-primary: #e9ecef;
    --epulse-color-text-secondary: #adb5bd;
    
    /* ===== BACKGROUND COLORS ===== */
    --epulse-color-background-light: #1a1f26;
    --epulse-color-background-main: #0f1419;
    --epulse-color-border: #343a40;
    
    /* ===== SHADOWS ===== */
    --epulse-shadow-soft: 0 0.375rem 1.125rem rgba(0, 0, 0, 0.2);
}

/* ============================================
   BASE STYLES
   ============================================ */

/* FIXED: Changed from 60% to 100% for proper font sizing */
html {
    font-size: 100%;
}

body {
    font-size: 1rem; /* 16px = 1rem */
    line-height: 1.65;
    color: var(--epulse-color-text-primary);
    background-color: var(--epulse-color-background-main);
    margin: 0;
    padding: 0;
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Typographic Hierarchy */
h1, .epulse-page-title {
    font-size: clamp(1.75rem, 4vw, 2.25rem); /* 28px-36px converted: ÷16 */
    font-weight: var(--epulse-font-weight-bold);
    color: var(--epulse-color-primary);
    margin-bottom: 0.9375rem; /* 15px converted */
}

h2, .epulse-section-title {
    font-size: clamp(1.375rem, 3vw, 1.75rem); /* 22px-28px converted */
    font-weight: var(--epulse-font-weight-bold);
    margin-bottom: 1.25rem; /* 20px converted */
}

h3, .epulse-subsection-title, .product-card__name a {
    font-size: clamp(1.125rem, 2.5vw, 1.375rem); /* 18px-22px converted */
    font-weight: var(--epulse-font-weight-bold);
    color: var(--epulse-color-text-primary);
    margin-bottom: 0.625rem; /* 10px converted */
}

.product-card__name a { 
    font-size: 1.125rem; /* 18px = 1.125rem */
    transition: var(--epulse-transition-fast); 
}

.product-card__name a:hover { 
    color: var(--epulse-color-primary); 
}

a { 
    color: var(--epulse-color-primary); 
    text-decoration: none; 
    transition: var(--epulse-transition-fast); 
}

a:hover { 
    color: #0056b3; /* Darker blue for hover */
}

/* Main Layout Container */
.epulse-main-container {
    width: 92%;
    max-width: 1300px;
    margin: 1.25rem auto; /* 20px converted */
    padding: 0 0.625rem; /* 10px converted */
}

/* Pill-shaped Buttons */
.epulse-button, .product-card__action-button {
    display: inline-block;
    background-color: var(--epulse-color-primary);
    color: white;
    padding: 0.75rem 1.875rem; /* 12px 30px converted */
    border: none;
    border-radius: 3.125rem; /* 50px converted */
    font-size: 1rem; /* 16px = 1rem */
    font-weight: var(--epulse-font-weight-bold);
    text-align: center;
    cursor: pointer;
    transition: var(--epulse-transition-fast);
    box-shadow: 0 0.25rem 0.625rem rgba(0, 123, 255, 0.2); /* 4px 10px converted */
    text-transform: capitalize;
}

.epulse-button:hover, .product-card__action-button:hover {
    background-color: #0056b3; /* Darker blue */
    transform: translateY(-0.125rem); /* -2px converted */
    box-shadow: 0 0.375rem 0.75rem rgba(0, 123, 255, 0.3); /* 6px 12px converted */
}

.epulse-button--secondary {
    background-color: var(--epulse-color-secondary);
    box-shadow: 0 0.25rem 0.625rem rgba(108, 117, 125, 0.2); /* 4px 10px converted */
}

.epulse-button--secondary:hover {
    background-color: #5a6268; /* Darker gray */
    box-shadow: 0 0.375rem 0.75rem rgba(108, 117, 125, 0.3); /* 6px 12px converted */
}

.epulse-button--disabled, .product-card__action-button--disabled {
    background-color: #adb5bd;
    color: #6c757d;
    cursor: not-allowed;
    box-shadow: none;
}

.epulse-button--disabled:hover, .product-card__action-button--disabled:hover {
    transform: none;
    background-color: #adb5bd;
}

/* Page Header & Breadcrumbs */
.epulse-page-header-area {
    background-color: var(--epulse-color-background-light);
    padding: 1.25rem; /* 20px converted */
    margin-bottom: 1.5625rem; /* 25px converted */
    border-radius: var(--epulse-border-radius-soft);
    box-shadow: var(--epulse-shadow-soft);
}

.epulse-breadcrumb-nav { 
    font-size: 0.875rem; /* 14px = 0.875rem */
    color: var(--epulse-color-text-secondary); 
}

.epulse-breadcrumb-nav a { 
    color: var(--epulse-color-text-secondary); 
}

.epulse-breadcrumb-nav a:hover { 
    color: var(--epulse-color-primary); 
}

.epulse-breadcrumb-nav .epulse-breadcrumb-separator { 
    margin: 0 0.375rem; /* 6px converted */
}

/* Live Search Bar Styling */
.epulse-live-search-wrapper {
    margin-bottom: 1.875rem; /* 30px converted */
    background-color: var(--epulse-color-background-light);
    padding: 1.5625rem; /* 25px converted */
    border-radius: var(--epulse-border-radius-soft);
    box-shadow: var(--epulse-shadow-soft);
}

.epulse-live-search-form { 
    display: flex; 
    gap: 0.625rem; /* 10px converted */
}

.epulse-live-search-input {
    flex-grow: 1;
    padding: 0.875rem 1.375rem; /* 14px 22px converted */
    font-size: 1rem; /* 16px = 1rem */
    border: 1px solid var(--epulse-color-border);
    border-radius: 3.125rem; /* 50px converted */
    transition: var(--epulse-transition-fast);
    background-color: var(--epulse-color-background-light);
    color: var(--epulse-color-text-primary);
}

.epulse-live-search-input:focus {
    outline: none;
    border-color: var(--epulse-color-primary);
    box-shadow: 0 0 0 0.1875rem rgba(0, 123, 255, 0.15); /* 3px converted */
}

.epulse-search-feedback-display { 
    margin-top: 0.9375rem; /* 15px converted */
}

.search-feedback { 
    padding: 0.9375rem; /* 15px converted */
    border-radius: 0.625rem; /* 10px converted */
    text-align:center; 
    font-size: 1rem; /* 16px = 1rem */
}

.search-feedback--no-results { 
    background-color: rgba(255, 243, 205, 0.5); 
    color: #664d03; 
    border: 1px solid #ffecb5;
}

.search-feedback--error { 
    background-color: rgba(248, 215, 218, 0.5); 
    color: #58151c; 
    border: 1px solid #f1c0c7;
}

.search-feedback--prompt { 
    background-color: rgba(233, 236, 239, 0.5); 
    color: #343a40; 
    border: 1px solid #ced4da;
}

.search-feedback--loading { 
    font-style: italic; 
    color: var(--epulse-color-secondary); 
}

/* Shop Layout: Sidebar & Product Grid */
.epulse-shop-layout-container { 
    display: flex; 
    gap: 1.875rem; /* 30px converted */
    align-items: flex-start; 
}

.epulse-shop-sidebar {
    flex: 0 0 300px;
    background-color: var(--epulse-color-background-light);
    padding: 1.5625rem; /* 25px converted */
    border-radius: var(--epulse-border-radius-soft);
    box-shadow: var(--epulse-shadow-soft);
    position: sticky;
    top: 1.25rem; /* 20px converted */
}

.epulse-shop-product-main-area { 
    flex: 1; 
    min-width: 0;
}

/* Filter Panel Styling */
.epulse-filter-group { 
    margin-bottom: 1.875rem; /* 30px converted */
}

.epulse-filter-group__title {
    font-size: 1.125rem; /* 18px = 1.125rem */
    font-weight: var(--epulse-font-weight-bold);
    margin-bottom: 0.9375rem; /* 15px converted */
    padding-bottom: 0.5rem; /* 8px converted */
    border-bottom: 1px solid var(--epulse-color-border);
    color: var(--epulse-color-primary);
}

.epulse-filter-group__list { 
    list-style: none; 
    padding: 0; 
    margin: 0; 
}

.epulse-filter-group__item a, .epulse-filter-group__item label {
    display: block;
    padding: 0.625rem 0.9375rem; /* 10px 15px converted */
    color: var(--epulse-color-text-secondary);
    font-size: 0.9375rem; /* 15px = 0.9375rem */
    transition: var(--epulse-transition-fast);
    border-radius: 0.625rem; /* 10px converted */
    margin-bottom: 0.3125rem; /* 5px converted */
}

.epulse-filter-group__item a:hover, .epulse-filter-group__item label:hover {
    color: var(--epulse-color-primary);
    background-color: rgba(0, 123, 255, 0.05);
}

.epulse-filter-group__item a.epulse-filter-link--active {
    color: var(--epulse-color-primary);
    font-weight: var(--epulse-font-weight-bold);
    background-color: rgba(0, 123, 255, 0.1);
}

.epulse-filter-checkbox-label { 
    display: flex; 
    align-items: center; 
    cursor: pointer; 
}

.epulse-filter-checkbox { 
    margin-right: 0.625rem; /* 10px converted */
    transform: scale(1.2); 
    accent-color: var(--epulse-color-primary); 
}

.epulse-price-filter-form input[type="number"]{ 
    width: calc(50% - 0.9375rem); /* 15px converted */
    padding: 0.5rem 0.625rem; /* 8px 10px converted */
    border-radius: 0.625rem; /* 10px converted */
    border: 1px solid var(--epulse-color-border); 
    margin-right: 0.3125rem; /* 5px converted */
    background-color: var(--epulse-color-background-light);
    color: var(--epulse-color-text-primary);
}

.epulse-price-filter-form button { 
    padding: 0.5rem 0.9375rem; /* 8px 15px converted */
    font-size: 0.875rem; /* 14px = 0.875rem */
}

/* Product Controls: Sort Dropdown, Results Count */
.epulse-product-view-configurator {
    display: flex;
    justify-content: center !important;
    align-items: center;
    margin-bottom: 1.5625rem; /* 25px converted */
    background-color: var(--epulse-color-background-light);
    padding: 0.9375rem 1.25rem; /* 15px 20px converted */
    border-radius: var(--epulse-border-radius-soft);
    box-shadow: var(--epulse-shadow-soft);
}

.epulse-product-view-configurator__sort-control select {
    padding: 0.625rem 0.9375rem; /* 10px 15px converted */
    border-radius: 3.125rem; /* 50px converted */
    border: 1px solid var(--epulse-color-border);
    font-size: 0.9375rem; /* 15px = 0.9375rem */
    background-color: var(--epulse-color-background-light);
    color: var(--epulse-color-text-primary);
}

.epulse-product-view-configurator__results-summary { 
    font-size: 0.9375rem; /* 15px = 0.9375rem */
    color: var(--epulse-color-text-secondary); 
}

/* Product Grid & Card Styling */
.epulse-product-grid, #epulseLiveProductDisplay {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.product-card {
    background-color: var(--epulse-color-background-light);
    border-radius: var(--epulse-border-radius-soft);
    box-shadow: var(--epulse-shadow-soft);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    width: 300px !important;
    margin: 0.625rem; /* 10px converted */
}

.product-card:hover {
    transform: translateY(-0.375rem); /* -6px converted */
    box-shadow: 0 0.625rem 1.5625rem rgba(0, 0, 0, 0.1); /* 10px 25px converted */
}

.product-card__image {
    width: 100%;
    height: 15rem !important; /* 240px converted: 240/16 = 15rem */
    object-fit: fill;
    display: block;
    border-radius: 1.25rem; /* 20px converted */
}

.product-card__badge--discount {
    position: absolute;
    top: 0.9375rem; /* 15px converted */
    left: 0.9375rem; /* 15px converted */
    background-color: var(--epulse-color-accent);
    color: white;
    padding: 0.375rem 0.75rem; /* 6px 12px converted */
    font-size: 0.8125rem; /* 13px = 0.8125rem */
    font-weight: var(--epulse-font-weight-bold);
    border-radius: 3.125rem; /* 50px converted */
    z-index: 1;
}

.product-card__info { 
    padding: 1.25rem; /* 20px converted */
    flex-grow: 1; 
    display: flex; 
    flex-direction: column; 
}

.product-card__store-name {
    font-size: 0.8125rem; /* 13px = 0.8125rem */
    color: var(--epulse-color-text-secondary);
    margin-bottom: 0.625rem; /* 10px converted */
    display: block;
}

.product-card__stock-status {
    font-size: 0.875rem; /* 14px = 0.875rem */
    margin-bottom: 0.625rem; /* 10px converted */
    font-weight: 500;
}

.product-card__stock-status--low { 
    color: var(--epulse-color-warning); 
    font-weight: var(--epulse-font-weight-bold); 
}

.product-card__stock-status--out-of-stock { 
    color: var(--epulse-color-danger); 
    font-weight: var(--epulse-font-weight-bold); 
}

.product-card__price-details { 
    margin-top: auto;
    padding-top: 0.625rem; /* 10px converted */
    border-top: 1px solid rgba(240, 240, 240, 0.3);
}

.product-card__price--current {
    font-size: 1.25rem; /* 20px = 1.25rem */
    font-weight: var(--epulse-font-weight-bold);
    color: var(--epulse-color-primary);
    margin-right: 0.625rem; /* 10px converted */
}

.product-card__price--original {
    font-size: 0.9375rem; /* 15px = 0.9375rem */
    color: var(--epulse-color-text-secondary);
    text-decoration: line-through;
}

.product-card__action-button { 
    width: 100%; 
    margin-top: 0.9375rem; /* 15px converted */
}

/* Pagination Styling */
.epulse-pagination-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.875rem 0; /* 30px converted */
    margin-top: 1.875rem; /* 30px converted */
}

.epulse-pagination-controls__link, .epulse-pagination-controls__ellipsis {
    margin: 0 0.375rem; /* 6px converted */
    padding: 0.625rem 1.125rem; /* 10px 18px converted */
    border: 1px solid var(--epulse-color-border);
    color: var(--epulse-color-primary);
    border-radius: 0.625rem; /* 10px converted */
    transition: var(--epulse-transition-fast);
    font-size: 0.9375rem; /* 15px = 0.9375rem */
}

.epulse-pagination-controls__link:hover {
    background-color: var(--epulse-color-primary);
    color: white;
    border-color: var(--epulse-color-primary);
    transform: translateY(-0.0625rem); /* -1px converted */
}

.epulse-pagination-controls__link--active {
    background-color: var(--epulse-color-primary);
    color: white;
    border-color: var(--epulse-color-primary);
    font-weight: var(--epulse-font-weight-bold);
}

.epulse-pagination-controls__nav-arrow { 
    font-weight: var(--epulse-font-weight-bold); 
    font-size: 1.125rem; /* 18px = 1.125rem */
}

/* Recommended Products Carousel */
.epulse-recommended-products-zone {
    padding: 2.5rem 0; /* 40px converted */
    background-color: var(--epulse-color-background-light);
    margin-top: 2.5rem; /* 40px converted */
    border-radius: var(--epulse-border-radius-soft);
    box-shadow: var(--epulse-shadow-soft);
}

.epulse-recommended-products-zone .epulse-section-title { 
    text-align: center; 
    margin-bottom: 1.875rem; /* 30px converted */
}

.epulse-products-swiper-carousel .swiper-slide { 
    height: auto; 
    display: flex; 
}

.epulse-products-swiper-carousel .product-card { 
    margin-bottom: 0.625rem; /* 10px converted */
    width:100%; 
}

.swiper-button-next, .swiper-button-prev { 
    color: var(--epulse-color-primary); 
    transition: var(--epulse-transition-fast); 
}

.swiper-button-next:hover, .swiper-button-prev:hover { 
    color: #0056b3; 
    transform: scale(1.1); 
}

.swiper-button-next::after, .swiper-button-prev::after { 
    font-size: 1.75rem; /* 28px = 1.75rem */
}

/* Empty State Message Styling */
.epulse-empty-state-indicator {
    padding: 2.5rem 1.25rem; /* 40px 20px converted */
    text-align: center;
    background-color: var(--epulse-color-background-light);
    border-radius: var(--epulse-border-radius-soft);
    box-shadow: var(--epulse-shadow-soft);
    margin: 1.875rem 0; /* 30px converted */
    border: 1px dashed var(--epulse-color-border);
}

.epulse-empty-state-indicator p { 
    font-size: 1.125rem; /* 18px = 1.125rem */
    margin-bottom: 0.9375rem; /* 15px converted */
    color: var(--epulse-color-text-secondary); 
}

.epulse-empty-state-indicator .epulse-button { 
    margin-top: 0.625rem; /* 10px converted */
}

/* Utility class for visually hidden elements */
.epulse-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* Scroll Animations */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(1.875rem); /* 30px converted */
    transition: opacity 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275), 
                transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================
   RESPONSIVE ADJUSTMENTS
   ============================================ */

@media (max-width: 992px) {
    .epulse-shop-layout-container { 
        flex-direction: column; 
    }
    
    .epulse-shop-sidebar {
        flex: 0 0 auto;
        width: 100%;
        margin-bottom: 1.5625rem; /* 25px converted */
        position: static;
    }
    
    .epulse-product-grid, #epulseLiveProductDisplay { 
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); 
        gap: 1.25rem; /* 20px converted */
    }
    
    .product-card__image { 
        height: 13.75rem; /* 220px converted */
    }
}

@media (max-width: 768px) {
    h1, .epulse-page-title { 
        font-size: 1.625rem; /* 26px = 1.625rem */
    }
    
    h2, .epulse-section-title { 
        font-size: 1.25rem; /* 20px = 1.25rem */
    }
    
    .epulse-product-view-configurator { 
        flex-direction: column; 
        gap: 0.9375rem; /* 15px converted */
        align-items: stretch; 
    }
    
    .epulse-product-view-configurator__sort-control select { 
        width: 100%; 
    }
    
    .epulse-product-grid, #epulseLiveProductDisplay { 
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); 
        gap: 0.9375rem; /* 15px converted */
    }
    
    .product-card__image { 
        height: 12.5rem; /* 200px converted */
    }
    
    .product-card__info { 
        padding: 0.9375rem; /* 15px converted */
    }
    
    .product-card__price--current { 
        font-size: 1.125rem; /* 18px = 1.125rem */
    }
    
    .epulse-button, .product-card__action-button { 
        padding: 0.625rem 1.5625rem; /* 10px 25px converted */
        font-size: 0.9375rem; /* 15px = 0.9375rem */
    }
    
    .epulse-live-search-form { 
        flex-direction: column; 
    }
    
    .epulse-live-search-form .epulse-button { 
        width:100%; 
    }
    
    .epulse-pagination-controls__link, .epulse-pagination-controls__ellipsis { 
        padding: 0.5rem 0.75rem; /* 8px 12px converted */
        margin: 0 0.25rem; /* 4px converted */
        font-size: 0.875rem; /* 14px = 0.875rem */
    }
}

@media (max-width: 576px) {
    .epulse-product-grid, #epulseLiveProductDisplay { 
        grid-template-columns: 1fr; 
    }
    
    .product-card__name a { 
        font-size: 1.0625rem; /* 17px = 1.0625rem */
    }
    
    .epulse-page-header-area, 
    .epulse-live-search-wrapper, 
    .epulse-shop-sidebar, 
    .epulse-product-view-configurator { 
        padding: 0.9375rem; /* 15px converted */
    }
}