/* =============================================================================
   PSM Elementor Widgets Styles
   ============================================================================= */

/* =============================================================================
   Simple Visual Field Styles - Inline Progress Bars
   ============================================================================= */

.psm-simple-visual-field {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 8px 0 !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    min-height: 40px !important;
    position: relative !important;
    z-index: 1 !important;
}

.psm-simple-visual-field:hover {
    z-index: 999998 !important;
}

.psm-simple-numeric {
    flex-shrink: 0 !important;
    min-width: 80px !important;
    display: flex !important;
    align-items: baseline !important;
    gap: 4px !important;
}

.psm-simple-value {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #2c3e50 !important;
    line-height: 1.2 !important;
}

.psm-simple-unit {
    font-size: 12px !important;
    color: #7f8c8d !important;
    font-weight: 500 !important;
}

.psm-simple-progress {
    flex: 1 !important;
    min-width: 120px !important;
    position: relative !important;
    z-index: 1 !important;
}

.psm-simple-progress:hover {
    z-index: 999999 !important;
}

.psm-simple-progress-bar {
    background: #ecf0f1 !important;
    height: 10px !important;
    border-radius: 5px !important;
    overflow: visible !important;
    position: relative !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    margin-bottom: 4px !important;
    cursor: help !important;
    transition: all 0.3s ease !important;
}

.psm-simple-progress-bar:hover {
    transform: scale(1.02) !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

/* Custom Professional Tooltip */
.psm-tooltip-container {
    position: relative !important;
    z-index: 10 !important;
}

.psm-tooltip-container:hover {
    z-index: 999999 !important;
    position: relative !important;
}

.psm-custom-tooltip {
    position: absolute !important;
    bottom: calc(100% + 8px) !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%) !important;
    color: white !important;
    padding: 8px 12px !important;
    border-radius: 6px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 999999 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    backdrop-filter: blur(4px) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    pointer-events: none !important;
}

.psm-custom-tooltip::after {
    content: '' !important;
    position: absolute !important;
    top: 100% !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    border: 5px solid transparent !important;
    border-top-color: #2c3e50 !important;
}

.psm-tooltip-container:hover .psm-custom-tooltip {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(-3px) !important;
}

/* Tooltip Animation Variants */
@keyframes tooltipFadeIn {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(5px) scale(0.9);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(-3px) scale(1);
    }
}

.psm-tooltip-container:hover .psm-custom-tooltip {
    animation: tooltipFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}

/* RTL Tooltip Support */
.rtl .psm-custom-tooltip {
    direction: rtl !important;
    font-family: 'IRANSans', 'Vazir', 'Tahoma', sans-serif !important;
}

/* Tooltip Positioning Variants */
.psm-custom-tooltip.psm-tooltip-right {
    left: auto !important;
    right: 0 !important;
    transform: translateX(0) !important;
}

.psm-custom-tooltip.psm-tooltip-right::after {
    left: auto !important;
    right: 10px !important;
    transform: translateX(0) !important;
}

.psm-custom-tooltip.psm-tooltip-left {
    left: 0 !important;
    right: auto !important;
    transform: translateX(0) !important;
}

.psm-custom-tooltip.psm-tooltip-left::after {
    left: 10px !important;
    right: auto !important;
    transform: translateX(0) !important;
}

/* Active State */
.psm-tooltip-container.psm-tooltip-active .psm-simple-progress-fill {
    animation-play-state: paused !important;
    filter: brightness(1.1) !important;
}

/* Touch Support for Mobile */
.psm-custom-tooltip.psm-tooltip-touch-active {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(-3px) !important;
}

/* Enhanced Visual Effects */
.psm-tooltip-container:hover {
    z-index: 999999 !important;
    position: relative !important;
}

.psm-custom-tooltip {
    background: linear-gradient(135deg, #2c3e50 0%, #34495e 50%, #2c3e50 100%) !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
    letter-spacing: 0.5px !important;
    z-index: 999999 !important;
}

/* Level-specific tooltip colors */
.psm-tooltip-container[data-tooltip*="زیاد"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="High"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="عالي"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="Высокий"] .psm-custom-tooltip {
    background: linear-gradient(135deg, #27ae60 0%, #2ecc71 100%) !important;
}

.psm-tooltip-container[data-tooltip*="متوسط"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="Medium"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="Средний"] .psm-custom-tooltip {
    background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%) !important;
}

.psm-tooltip-container[data-tooltip*="کم"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="Low"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="منخفض"] .psm-custom-tooltip,
.psm-tooltip-container[data-tooltip*="Низкий"] .psm-custom-tooltip {
    background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%) !important;
}

/* Elementor Specific Overrides */
.elementor-widget-psm-product-specs-table .psm-tooltip-container {
    z-index: 999999 !important;
}

.elementor-widget-psm-product-specs-table .psm-custom-tooltip {
    z-index: 999999 !important;
    position: fixed !important;
}

.elementor-section .psm-tooltip-container:hover {
    z-index: 999999 !important;
}

/* Force tooltip above everything */
.psm-custom-tooltip {
    position: fixed !important;
    z-index: 999999 !important;
}

.psm-tooltip-container:hover .psm-custom-tooltip {
    position: fixed !important;
    z-index: 999999 !important;
}

/* Tooltip below variation */
.psm-custom-tooltip.psm-tooltip-below {
    bottom: auto !important;
    top: calc(100% + 8px) !important;
}

.psm-custom-tooltip.psm-tooltip-below::after {
    top: -6px !important;
    bottom: auto !important;
    border-top-color: transparent !important;
    border-bottom-color: #2c3e50 !important;
}

/* High priority z-index rules */
.psm-tooltip-container,
.psm-tooltip-container *,
.psm-custom-tooltip {
    z-index: 999999 !important;
}

.psm-simple-progress-fill {
    height: 100% !important;
    border-radius: 5px !important;
    transition: width 1.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
    overflow: hidden !important;
}

.psm-simple-progress-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.15) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.15) 50%,
        rgba(255, 255, 255, 0.15) 75%,
        transparent 75%
    );
    background-size: 20px 20px;
    animation: psm-progress-shine 2s linear infinite;
}

@keyframes psm-progress-shine {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* RTL Support */
.rtl .psm-simple-visual-field {
    direction: rtl !important;
}

.rtl .psm-simple-numeric {
    flex-direction: row-reverse !important;
}

.rtl .psm-simple-unit {
    margin-right: 0 !important;
    margin-left: 4px !important;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .psm-simple-visual-field {
        gap: 8px !important;
        min-height: 35px !important;
    }
    
    .psm-simple-numeric {
        min-width: 70px !important;
    }
    
    .psm-simple-value {
        font-size: 14px !important;
    }
    
    .psm-simple-unit {
        font-size: 11px !important;
    }
    
    .psm-simple-progress-bar {
        height: 8px !important;
    }
    
    .psm-simple-level {
        font-size: 9px !important;
    }
}

/* =============================================================================
   Archive Toolbar Styles - WooCommerce-like Interface
   ============================================================================= */

/* =============================================================================
   Archive Toolbar - Clean & Minimal Design
   ============================================================================= */

.psm-archive-toolbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 16px 20px;
    margin-bottom: 24px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.psm-toolbar-controls {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
}

.psm-toolbar-control {
    display: flex;
    align-items: center;
}

/* Search Control */
.psm-search-control {
    flex: 1;
    max-width: 300px;
    margin-right: auto;
    order: -1;
}

/* Sort Dropdown - Minimal Style */
.psm-sort-control select {
    appearance: none;
    background: #f9fafb;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    padding: 8px 32px 8px 12px;
    font-size: 14px;
    color: #374151;
    cursor: pointer;
    transition: all 0.2s ease;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8.5L2.5 5h7z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
}

.psm-sort-control select:hover {
    border-color: #9ca3af;
    background-color: #ffffff;
}

.psm-sort-control select:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* View Toggle - Minimal Buttons */
.psm-view-toggle-wrapper {
    display: flex;
    gap: 4px;
    background: #f9fafb;
    padding: 4px;
    border-radius: 6px;
}

.psm-view-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px;
    height: 36px;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.2s ease;
}

.psm-view-toggle:hover {
    background: #e5e7eb;
    color: #374151;
}

.psm-view-toggle.active {
    background: #ffffff;
    color: #111827;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.psm-view-toggle i {
    font-size: 16px;
}

.psm-view-toggle svg {
    display: block !important;
    width: 16px !important;
    height: 16px !important;
    fill: currentColor !important;
}

.psm-search-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.psm-search-icon {
    position: absolute !important;
    left: 18px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #6b7280 !important;
    font-size: 15px !important;
    pointer-events: none !important;
    z-index: 2 !important;
}

.psm-search-input {
    width: 100% !important;
    padding: 11px 50px 11px 48px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    color: #111827 !important;
    background: #ffffff !important;
    transition: all 0.2s ease !important;
    line-height: 1.5 !important;
}

.psm-search-input:focus {
    outline: none;
    border-color: #9ca3af;
    box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.1);
}

.psm-search-input::placeholder {
    color: #9ca3af;
}

.psm-search-input:disabled {
    background: #f3f4f6;
    cursor: not-allowed;
    opacity: 0.6;
}

.psm-search-clear {
    position: absolute !important;
    right: 14px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: none !important;
    border: none !important;
    color: #6b7280 !important;
    cursor: pointer !important;
    padding: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: color 0.2s ease !important;
    z-index: 2 !important;
    min-width: 28px !important;
    min-height: 28px !important;
}

.psm-search-clear:hover {
    color: #374151;
}

.psm-search-clear i {
    font-size: 12px;
}

/* Product card search animation */
.psm-product-card {
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.psm-product-card[style*="display: none"] {
    opacity: 0;
    transform: scale(0.95);
}

/* Responsive */
@media (max-width: 768px) {
    .psm-archive-toolbar {
        padding: 12px 16px;
    }
    
    .psm-toolbar-controls {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
        gap: 8px;
    }
    
    .psm-search-control {
        flex: 1 1 100%;
        max-width: 100%;
        margin-right: 0;
        margin-bottom: 8px;
    }
    
    .psm-sort-control select {
        font-size: 13px;
        padding: 6px 28px 6px 10px;
    }
}

/* Grid Gap Zero Support */
.psm-product-grid[style*="gap: 0"] {
    gap: 0 !important;
    grid-gap: 0 !important;
}

/* Toolbar Loading State */
.psm-product-grid.psm-loading {
    opacity: 0.6;
    pointer-events: none;
    position: relative;
}

.psm-product-grid.psm-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #007cba;
    border-radius: 50%;
    animation: psm-loading-spin 1s linear infinite;
    transform: translate(-50%, -50%);
    z-index: 10;
}

@keyframes psm-loading-spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* View Toggle Styles */
/* List View Layout */
.psm-view-list .psm-product-grid {
    display: block;
}

.psm-view-list .psm-product-card {
    display: flex;
    align-items: stretch;
    text-align: left;
    margin-bottom: 20px;
    border-radius: 12px;
    overflow: hidden;
}

.psm-view-list .psm-card-media {
    flex: 0 0 300px;
    margin-left: 0;
    aspect-ratio: auto;
    height: auto;
    min-height: 240px;
}

.psm-view-list .psm-card-media .psm-card-image {
    height: 100%;
}

.psm-view-list .psm-card-media .psm-card-image img {
    height: 100%;
    object-fit: cover;
}

.psm-view-list .psm-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 20px 24px;
    gap: 12px;
}

.psm-view-list .psm-product-title {
    font-size: 20px;
    margin-bottom: 8px;
}

/* Show excerpt ONLY in list view */
.psm-view-list .psm-card-excerpt-row {
    display: block !important;
    opacity: 1;
    visibility: visible;
}

.psm-view-list .psm-product-excerpt {
    display: block !important;
    color: #6b7280;
    font-size: 14px;
    line-height: 1.6;
    margin: 8px 0;
}

/* Hide excerpt in grid view */
.psm-view-grid .psm-card-excerpt-row,
.psm-product-grid:not(.psm-view-list) .psm-card-excerpt-row {
    display: none !important;
}

.psm-view-grid .psm-product-excerpt,
.psm-product-grid:not(.psm-view-list) .psm-product-excerpt {
    display: none !important;
}

.psm-view-list .psm-product-metas {
    margin-top: 4px;
}

.psm-view-list .psm-card-actions {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 12px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* RTL Support for List View */
[dir="rtl"] .psm-view-list .psm-product-card {
    flex-direction: row-reverse;
}

[dir="rtl"] .psm-view-list .psm-card-media {
    margin-left: 0;
    margin-right: 0;
}

/* Mobile List View */
@media (max-width: 768px) {
    .psm-view-list .psm-product-card {
        flex-direction: column;
    }
    
    .psm-view-list .psm-card-media {
        flex: none;
        width: 100%;
        min-height: 200px;
    }
    
    .psm-view-list .psm-card-body {
        padding: 16px;
    }
}

/* Buttons Styling - Make them look similar */
.psm-card-actions button,
.psm-card-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
    border: 1px solid #e0e0e0;
    background: #fff;
    color: #333;
}

.psm-card-actions button:hover,
.psm-card-actions a:hover {
    border-color: #2271b1;
    color: #2271b1;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Compare button base styles - lighter specificity for Elementor override */
.spc-comparison-button,
.psm-add-compare {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    white-space: nowrap;
    /* Default fallback styles - will be overridden by Elementor */
    padding: 10px 18px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fff;
    color: #333;
    font-size: 14px;
    font-weight: 500;
}

.spc-comparison-button:hover,
.psm-add-compare:hover {
    border-color: #d63638;
    color: #d63638;
}

.psm-card-actions .spc-btn-icon,
.psm-card-actions svg {
    width: 16px;
    height: 16px;
    margin-left: 6px;
    transition: all 0.3s ease;
}

/* Taxonomy Info Inline Style - One Line */
.psm-taxonomy-info {
    font-size: 14px;
    color: #666;
    margin: 8px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 6px;
}

.psm-taxonomy-info .psm-taxonomy-label {
    font-weight: 600;
    color: #333;
}

.psm-taxonomy-info .psm-terms-list {
    font-weight: 400;
    color: #666;
}

/* Product Meta Styles (Category, Finish, Color) */
.psm-product-metas {
    margin: 10px 0;
}

.psm-product-meta {
    font-size: 13px;
    line-height: 1.6;
    margin: 4px 0;
    color: #000;
}

.psm-product-meta .psm-meta-label {
    font-weight: 400;
    color: #000;
    margin-left: 2px;
}

.psm-product-meta .psm-meta-value {
    font-weight: 700;
    color: #000;
}

/* RTL Support for Product Meta */
[dir="rtl"] .psm-product-meta .psm-meta-label {
    margin-left: 0;
    margin-right: 2px;
}

/* =============================================================================
   Widget Style Presets - Complete Layout Variations
   ============================================================================= */

/* Default Grid Style */
.psm-widget-style-default .psm-product-grid {
    display: grid;
    gap: 20px;
    padding: 20px 0;
}

/* Masonry Layout */
.psm-widget-style-masonry .psm-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-auto-rows: masonry;
    gap: 15px;
    padding: 25px 0;
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    border-radius: 20px;
    position: relative;
}

.psm-widget-style-masonry .psm-product-card {
    break-inside: avoid;
    margin-bottom: 15px;
    border-radius: 15px;
    box-shadow: 0 8px 32px rgba(31, 38, 135, 0.15);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.18);
}

/* Magazine Style */
.psm-widget-style-magazine {
    background: #f8f9fa;
    padding: 40px 20px;
    border-radius: 0;
}

.psm-widget-style-magazine .psm-product-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.psm-widget-style-magazine .psm-product-card:first-child {
    grid-row: 1 / 3;
    grid-column: 1;
    min-height: 400px;
}

.psm-widget-style-magazine .psm-product-card {
    background: #fff;
    border: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    transition: all 0.4s ease;
    position: relative;
    overflow: hidden;
}

.psm-widget-style-magazine .psm-product-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    transition: all 0.6s ease;
    z-index: 2;
}

.psm-widget-style-magazine .psm-product-card:hover::before {
    left: 100%;
}

/* Carousel Slider */
.psm-widget-style-carousel {
    position: relative;
    overflow: hidden;
    background: linear-gradient(45deg, #667eea 0%, #764ba2 100%);
    border-radius: 25px;
    padding: 30px;
}

.psm-widget-style-carousel .psm-product-grid {
    display: flex;
    animation: psm-carousel-slide 20s infinite linear;
    gap: 25px;
}

.psm-widget-style-carousel .psm-product-card {
    min-width: 320px;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 20px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}

@keyframes psm-carousel-slide {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Timeline View */
.psm-widget-style-timeline {
    position: relative;
    padding: 40px 20px;
    background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
}

.psm-widget-style-timeline .psm-product-grid {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 800px;
    margin: 0 auto;
}

.psm-widget-style-timeline .psm-product-grid::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(to bottom, #ff6b6b, #4ecdc4, #45b7d1);
    border-radius: 2px;
    transform: translateX(-50%);
}

.psm-widget-style-timeline .psm-product-card {
    position: relative;
    width: 45%;
    background: #fff;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border: 2px solid #fff;
}

.psm-widget-style-timeline .psm-product-card:nth-child(odd) {
    align-self: flex-start;
    margin-right: auto;
}

.psm-widget-style-timeline .psm-product-card:nth-child(even) {
    align-self: flex-end;
    margin-left: auto;
}

.psm-widget-style-timeline .psm-product-card::before {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    background: #4ecdc4;
    border-radius: 50%;
    border: 4px solid #fff;
    box-shadow: 0 0 0 4px #4ecdc4;
    top: 30px;
}

.psm-widget-style-timeline .psm-product-card:nth-child(odd)::before {
    right: -50px;
}

.psm-widget-style-timeline .psm-product-card:nth-child(even)::before {
    left: -50px;
}

/* Hero Section */
.psm-widget-style-hero {
    position: relative;
    min-height: 80vh;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.psm-widget-style-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');
    opacity: 0.3;
}

.psm-widget-style-hero .psm-product-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
}

.psm-widget-style-hero .psm-product-card {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 25px;
    transform: scale(0.9);
    transition: all 0.5s ease;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.psm-widget-style-hero .psm-product-card:hover {
    transform: scale(1.05) translateY(-10px);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
}

/* Modern Cards */
.psm-widget-style-cards {
    padding: 50px 20px;
    background: radial-gradient(ellipse at center, #ff7e5f 0%, #feb47b 100%);
    position: relative;
}

.psm-widget-style-cards .psm-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    perspective: 1000px;
}

.psm-widget-style-cards .psm-product-card {
    background: linear-gradient(145deg, #ffffff, #f0f0f0);
    border-radius: 20px;
    border: none;
    box-shadow: 20px 20px 60px #d9d9d9, -20px -20px 60px #ffffff;
    transform: rotateY(0deg);
    transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transform-style: preserve-3d;
}

.psm-widget-style-cards .psm-product-card:hover {
    transform: rotateY(10deg) rotateX(5deg) translateZ(50px);
    box-shadow: 30px 30px 80px #d9d9d9, -30px -30px 80px #ffffff;
}

/* Mosaic Gallery */
.psm-widget-style-mosaic {
    padding: 30px;
    background: #2c3e50;
    border-radius: 0;
}

.psm-widget-style-mosaic .psm-product-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 150px;
    gap: 15px;
}

.psm-widget-style-mosaic .psm-product-card {
    background: #34495e;
    border-radius: 10px;
    border: 2px solid #3498db;
    position: relative;
    overflow: hidden;
    transition: all 0.4s ease;
}

.psm-widget-style-mosaic .psm-product-card:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.psm-widget-style-mosaic .psm-product-card:nth-child(2) { grid-column: span 1; grid-row: span 1; }
.psm-widget-style-mosaic .psm-product-card:nth-child(3) { grid-column: span 1; grid-row: span 1; }
.psm-widget-style-mosaic .psm-product-card:nth-child(4) { grid-column: span 2; grid-row: span 1; }
.psm-widget-style-mosaic .psm-product-card:nth-child(5) { grid-column: span 1; grid-row: span 2; }
.psm-widget-style-mosaic .psm-product-card:nth-child(6) { grid-column: span 1; grid-row: span 1; }

.psm-widget-style-mosaic .psm-product-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, #3498db, #9b59b6);
    opacity: 0;
    transition: all 0.4s ease;
}

.psm-widget-style-mosaic .psm-product-card:hover::before {
    opacity: 0.8;
}

.psm-widget-style-mosaic .psm-product-card:hover {
    transform: scale(1.05);
    border-color: #e74c3c;
    z-index: 10;
}

/* Split Screen */
.psm-widget-style-split {
    display: flex;
    min-height: 70vh;
    background: #000;
}

.psm-widget-style-split .psm-product-grid {
    display: flex;
    width: 100%;
}

.psm-widget-style-split .psm-product-card {
    flex: 1;
    background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
    margin: 0;
    border-radius: 0;
    border-right: 2px solid #fff;
    position: relative;
    transition: all 0.5s ease;
    overflow: hidden;
}

.psm-widget-style-split .psm-product-card:last-child {
    border-right: none;
}

.psm-widget-style-split .psm-product-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    transition: all 0.5s ease;
}

.psm-widget-style-split .psm-product-card:hover {
    flex: 2;
}

.psm-widget-style-split .psm-product-card:hover::before {
    background: rgba(0, 0, 0, 0.2);
}

/* Creative Layout */
.psm-widget-style-creative {
    padding: 60px 30px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
    position: relative;
    overflow: hidden;
}

.psm-widget-style-creative::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: repeating-conic-gradient(from 0deg at 50% 50%, transparent 0deg, rgba(255,255,255,0.1) 30deg, transparent 60deg);
    animation: psm-creative-rotate 30s linear infinite;
}

@keyframes psm-creative-rotate {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.psm-widget-style-creative .psm-product-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
    position: relative;
    z-index: 2;
}

.psm-widget-style-creative .psm-product-card {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 30px;
    transform: rotate(-5deg);
    transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    position: relative;
}

.psm-widget-style-creative .psm-product-card:nth-child(even) {
    transform: rotate(5deg);
}

.psm-widget-style-creative .psm-product-card:hover {
    transform: rotate(0deg) scale(1.1) translateY(-20px);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.4);
    border-color: rgba(255, 255, 255, 0.6);
}

.psm-widget-style-creative .psm-product-card::after {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4);
    border-radius: 32px;
    z-index: -1;
    opacity: 0;
    transition: all 0.6s ease;
}

.psm-widget-style-creative .psm-product-card:hover::after {
    opacity: 1;
}

/* Product Taxonomy Filter Widget - Card Styles */
.psm-product-grid {
    display: grid;
    gap: 24px;
    padding: 20px 0;
}

/* Product Card - Modern Minimal Design - Base Styles */
.psm-product-card {
    background: #fff;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    border: 1px solid rgba(0, 0, 0, 0.04);
}

/* Default border-radius if not set by Elementor */
.psm-product-card:not([style*="border-radius"]) {
    border-radius: 16px;
}

.psm-product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border-color: rgba(0, 0, 0, 0.08);
}

/* Card Media - Image Container */
.psm-card-media {
    position: relative;
    overflow: hidden;
    background: transparent;
    flex-shrink: 0;
    line-height: 0;
}

/* Default aspect ratio if not set by Elementor */
.psm-card-media:not([style*="aspect-ratio"]) {
    aspect-ratio: 4/3;
}

/* Rating Overlay on Image (Top Left) */
.psm-card-rating-overlay {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 10 !important;
    display: inline-block !important;
}

.psm-card-rating-overlay .psm-quality-rating {
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
    padding: 5px 8px !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    backdrop-filter: blur(12px) saturate(180%) contrast(120%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(180%) contrast(120%) !important;
    border: 1px solid rgba(255, 255, 255, 0) !important;
    box-shadow: 0 4px 12px rgba(58, 58, 58, 0.15), 
                inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
    color: #fbbf24 !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5), 
                 0 0 8px rgba(0, 0, 0, 0.3) !important;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.25)) !important;
}

.psm-card-rating-overlay .psm-quality-rating i {
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.6)) !important;
}

.psm-quality-rating {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    color: #f59e0b !important;
}

.psm-quality-rating i {
    font-size: 14px !important;
    color: #f59e0b !important;
}

.psm-card-rating-overlay .psm-quality-rating i {
    font-size: 10px !important;
    color: #f59e0b !important;
}

.psm-card-image {
    display: block !important;
    position: relative;
    width: 100%;
    height: 100% !important;
    overflow: hidden;
    line-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.psm-card-image img {
    display: block !important;
    width: 100%;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
    margin: 0 !important;
    padding: 0 !important;
}

/* When contain is used */
.psm-card-image img[style*="object-fit: contain"],
.psm-card-image img[style*="object-fit:contain"] {
    object-fit: contain !important;
    object-position: center top !important;
}

/* Hover Image Effect */
.psm-card-image-main,
.psm-card-image-hover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.psm-card-image-main {
    position: relative;
    opacity: 1;
    z-index: 1;
}

.psm-card-image-hover {
    opacity: 0;
    z-index: 2;
}

.psm-product-card:hover .psm-card-image-main {
    opacity: 0;
}

.psm-product-card:hover .psm-card-image-hover {
    opacity: 1;
}

.psm-product-card:hover .psm-card-image img {
    transform: scale(1.05);
}

/* Taxonomy Icons Overlay - Bottom Right */
.psm-card-taxonomy-icons {
    position: absolute;
    bottom: 12px;
    right: 12px;
    display: flex;
    gap: 8px;
    z-index: 10;
}

.psm-taxonomy-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 25px;
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
    cursor: help;
    border: none;
}

.psm-taxonomy-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    border: none;
}

.psm-taxonomy-icon:hover {
    background: rgba(255, 255, 255, 1);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Card Body - Content Area - Default styles */
.psm-card-body:not([style*="padding"]) {
    padding: 16px;
}

.psm-product-title {
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.4;
    transition: color 0.3s ease;
    overflow: hidden;
    display: block;
    position: relative;
}

/* Default font size and margin if not set by Elementor */
.psm-product-title:not([style*="font-size"]) {
    font-size: 16px;
}

.psm-product-title:not([style*="margin"]) {
    margin: 0 0 8px 0;
    height: 22px;
}

.psm-product-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
    display: inline-block;
    white-space: nowrap;
}

/* Normal state - show with ellipsis */
.psm-product-title:not(:hover) a {
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* Hover state - animate full text */
.psm-product-title:hover a {
    color: #2271b1;
    animation: marquee-scroll 10s linear infinite;
    max-width: none;
}

/* Marquee animation - scroll from right to left */
@keyframes marquee-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-100% + 220px));
    }
}

.psm-product-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.psm-product-title a:hover {
    color: #2271b1;
}

/* Product Metas Container */
.psm-product-metas {
    margin: 0 0 8px 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    align-items: flex-start;
}

.psm-product-meta {
    font-size: 13px;
    line-height: 1.4;
    margin: 0;
    color: #666;
    display: block;
    text-align: left;
    width: 100%;
}

.psm-product-meta .psm-meta-label {
    font-weight: 500;
    color: #999;
}

.psm-product-meta .psm-meta-value {
    font-weight: 600;
    color: #1a1a1a;
}

/* Taxonomy Info */
.psm-taxonomy-info {
    font-size: 13px;
    color: #000;
    margin: 4px 0;
    line-height: 1.6;
    display: block;
}

.psm-taxonomy-info .psm-taxonomy-label {
    font-weight: 400;
    color: #000;
    margin-left: 2px;
}

.psm-taxonomy-info .psm-terms-list {
    font-weight: 700;
    color: #000;
}

/* Product Excerpt */
.psm-product-excerpt {
    font-size: 13px;
    color: #666;
    line-height: 1.6;
    margin: 12px 0 0 0;
}

/* Quality Grade/Rating */
.psm-quality-grade {
    margin: 12px 0 0 0;
}

/* Card Actions - Buttons */
.psm-card-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: flex-start;
}

/* Default spacing if not controlled by Elementor */
.psm-card-actions:not([style*="margin"]):not([style*="padding"]) {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.psm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    border: none;
    gap: 6px;
    flex: 1;
}

.psm-btn-primary {
    background: #1a1a1a;
    color: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.psm-btn-primary:hover {
    background: #000;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transform: translateY(-1px);
}

.psm-btn-icon {
    width: 16px;
    height: 16px;
    transition: transform 0.3s ease;
}

.psm-btn:hover .psm-btn-icon {
    transform: translateX(2px);
}

/* Comparison Button Override */
.psm-card-actions .spc-comparison-button,
.psm-card-actions .psm-add-compare {
    background: #f5f5f5;
    color: #1a1a1a;
    border: 1px solid rgba(0, 0, 0, 0.06);
    flex: 1;
    padding: 12px 20px;
    border-radius: 10px;
    font-weight: 500;
}

.psm-card-actions .spc-comparison-button:hover,
.psm-card-actions .psm-add-compare:hover {
    background: #e8e8e8;
    border-color: rgba(0, 0, 0, 0.1);
    color: #1a1a1a;
    transform: translateY(-1px);
}

/* RTL Support */
[dir="rtl"] .psm-product-meta .psm-meta-label {
    margin-left: 0;
    margin-right: 2px;
}

[dir="rtl"] .psm-btn:hover .psm-btn-icon {
    transform: translateX(-3px);
}

/* Responsive Design */
@media (max-width: 768px) {
    .psm-product-card {
        border-radius: 10px;
    }
    
    .psm-card-body {
        padding: 16px;
    }
    
    .psm-product-title {
        font-size: 15px;
    }
    
    .psm-product-meta {
        font-size: 12px;
    }
    
    .psm-card-actions {
        flex-direction: column;
        gap: 8px;
    }
    
    .psm-btn {
        width: 100%;
    }
}

/* Card Preset Styles */

/* Default Style */
.psm-card-preset-default .psm-product-card {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Minimal Style */
.psm-card-preset-minimal .psm-product-card {
    background: #fff;
    border: none;
    border-radius: 0;
    box-shadow: none;
    border-bottom: 1px solid #f0f0f0;
}

.psm-card-preset-minimal .psm-product-card:hover {
    transform: none;
    box-shadow: 0 2px 15px rgba(0,0,0,0.08);
}

/* Modern Style */
.psm-card-preset-modern .psm-product-card {
    background: #fff;
    border: none;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    overflow: hidden;
}

.psm-card-preset-modern .psm-product-image {
    border-radius: 0;
}

.psm-card-preset-modern .psm-read-more {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 25px;
    padding: 10px 20px;
}

/* Elegant Style */
.psm-card-preset-elegant .psm-product-card {
    background: #fafafa;
    border: 2px solid #e8e8e8;
    border-radius: 12px;
    box-shadow: 0 6px 25px rgba(0,0,0,0.06);
    position: relative;
}

.psm-card-preset-elegant .psm-product-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff6b6b, #4ecdc4, #45b7d1);
    border-radius: 12px 12px 0 0;
}

.psm-card-preset-elegant .psm-product-title {
    color: #2c3e50;
    font-weight: 500;
}

/* Premium Style */
.psm-card-preset-premium .psm-product-card {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border: none;
    border-radius: 20px;
    color: #fff;
    position: relative;
    overflow: hidden;
}

.psm-card-preset-premium .psm-product-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
    z-index: 1;
}

.psm-card-preset-premium .psm-product-content {
    position: relative;
    z-index: 2;
}

.psm-card-preset-premium .psm-product-title,
.psm-card-preset-premium .psm-taxonomy-info,
.psm-card-preset-premium .psm-product-description {
    color: #fff;
}

.psm-card-preset-premium .psm-read-more {
    background: rgba(255,255,255,0.2);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.3);
}

/* Creative Style */
.psm-card-preset-creative .psm-product-card {
    background: #fff;
    border: none;
    border-radius: 25px 5px 25px 5px;
    box-shadow: 0 8px 30px rgba(255,107,107,0.15);
    position: relative;
    overflow: hidden;
}

.psm-card-preset-creative .psm-product-image {
    clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
}

.psm-card-preset-creative .psm-product-title {
    color: #ff6b6b;
    font-weight: 700;
}

/* Classic Style */
.psm-card-preset-classic .psm-product-card {
    background: #fff;
    border: 3px solid #8b4513;
    border-radius: 0;
    box-shadow: 5px 5px 0 #d2b48c;
    position: relative;
}

.psm-card-preset-classic .psm-product-title {
    color: #8b4513;
    font-family: serif;
    font-weight: 600;
}

.psm-card-preset-classic .psm-read-more {
    background: #8b4513;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 12px;
}

/* Luxury Style */
.psm-card-preset-luxury .psm-product-card {
    background: linear-gradient(145deg, #1e1e1e, #2d2d2d);
    border: 1px solid #444;
    border-radius: 15px;
    color: #fff;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
    position: relative;
}

.psm-card-preset-luxury .psm-product-card::after {
    content: '';
    position: absolute;
    top: 1px;
    left: 1px;
    right: 1px;
    bottom: 1px;
    border: 1px solid #d4af37;
    border-radius: 14px;
    pointer-events: none;
}

.psm-card-preset-luxury .psm-product-title,
.psm-card-preset-luxury .psm-taxonomy-info,
.psm-card-preset-luxury .psm-product-description {
    color: #fff;
}

.psm-card-preset-luxury .psm-product-title {
    color: #d4af37;
    font-weight: 300;
    font-size: 20px;
}

.psm-card-preset-luxury .psm-read-more {
    background: linear-gradient(45deg, #d4af37, #ffd700);
    color: #000;
    font-weight: 600;
}

/* Simple Style */
.psm-card-preset-simple .psm-product-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: none;
    transition: border-color 0.3s ease;
}

.psm-card-preset-simple .psm-product-card:hover {
    border-color: #007cba;
    transform: none;
    box-shadow: 0 2px 10px rgba(0,124,186,0.1);
}

.psm-card-preset-simple .psm-read-more {
    background: transparent;
    color: #007cba;
    border: 1px solid #007cba;
    border-radius: 3px;
}

.psm-card-preset-simple .psm-read-more:hover {
    background: #007cba;
    color: #fff;
}

/* Professional Style */
.psm-card-preset-professional .psm-product-card {
    background: #fff;
    border: 1px solid #e1e5e9;
    border-radius: 8px;
    box-shadow: 0 3px 15px rgba(0,0,0,0.08);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.psm-card-preset-professional .psm-product-card:hover {
    border-color: #007cba;
    box-shadow: 0 8px 25px rgba(0,124,186,0.15);
}

.psm-card-preset-professional .psm-product-title {
    color: #2c3e50;
    font-weight: 600;
    font-size: 16px;
}

.psm-card-preset-professional .psm-taxonomy-info {
    color: #7f8c8d;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.psm-card-preset-professional .psm-read-more {
    background: #34495e;
    color: #fff;
    border-radius: 6px;
    padding: 12px 20px;
    font-weight: 500;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1px;
}

/* Taxonomy Info Styles */

/* Inline Style (Default) */
.psm-taxonomy-style-inline .psm-taxonomy-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
}

/* Badge Style */
.psm-taxonomy-style-badge .psm-taxonomy-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #007cba;
    color: #fff;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    border: 1px solid #007cba;
}

/* Underline Style */
.psm-taxonomy-style-underline .psm-taxonomy-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    border-bottom: 2px solid #007cba;
    padding: 0 0 2px 0;
    font-weight: 500;
}

/* Bordered Style */
.psm-taxonomy-style-bordered .psm-taxonomy-info {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1px solid #007cba;
    color: #007cba;
    padding: 6px 12px;
    border-radius: 4px;
    font-weight: 500;
}

/* Filled Background Style */
.psm-taxonomy-style-filled .psm-taxonomy-info {
    display: inline-block;
    background: #fff;
    border: 1px solid #f0f0f0;
    padding: 8px 16px;
    border-radius: 8px;
    color: #000;
    font-weight: 400;
}

.psm-taxonomy-style-filled .psm-taxonomy-info .psm-taxonomy-label {
    font-weight: 400;
    color: #000;
}

.psm-taxonomy-style-filled .psm-taxonomy-info .psm-terms-list {
    font-weight: 700;
    color: #000;
}

/* Responsive Design for Widget Presets */
@media (max-width: 1024px) {
    /* Magazine responsive */
    .psm-widget-style-magazine .psm-product-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto;
    }
    
    .psm-widget-style-magazine .psm-product-card:first-child {
        grid-row: 1;
        grid-column: 1 / 3;
        min-height: 250px;
    }
    
    /* Timeline responsive */
    .psm-widget-style-timeline .psm-product-card {
        width: 80%;
    }
    
    .psm-widget-style-timeline .psm-product-card:nth-child(odd),
    .psm-widget-style-timeline .psm-product-card:nth-child(even) {
        align-self: center;
        margin: 0 auto;
    }
    
    .psm-widget-style-timeline .psm-product-grid::before {
        left: 20px;
    }
    
    .psm-widget-style-timeline .psm-product-card::before {
        left: -50px !important;
        right: auto !important;
    }
    
    /* Mosaic responsive */
    .psm-widget-style-mosaic .psm-product-grid {
        grid-template-columns: repeat(4, 1fr);
    }
    
    .psm-widget-style-mosaic .psm-product-card:nth-child(1) { grid-column: span 2; }
    .psm-widget-style-mosaic .psm-product-card:nth-child(4) { grid-column: span 2; }
    .psm-widget-style-mosaic .psm-product-card:nth-child(5) { grid-row: span 1; }
    
    /* Split screen responsive */
    .psm-widget-style-split {
        flex-direction: column;
        min-height: auto;
    }
    
    .psm-widget-style-split .psm-product-grid {
        flex-direction: column;
    }
    
    .psm-widget-style-split .psm-product-card {
        border-right: none;
        border-bottom: 2px solid #fff;
        min-height: 200px;
    }
    
    .psm-widget-style-split .psm-product-card:last-child {
        border-bottom: none;
    }
}

@media (max-width: 768px) {
    /* General responsive adjustments */
    .psm-widget-style-masonry .psm-product-grid,
    .psm-widget-style-cards .psm-product-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    /* Magazine mobile */
    .psm-widget-style-magazine .psm-product-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .psm-widget-style-magazine .psm-product-card:first-child {
        grid-row: auto;
        grid-column: 1;
        min-height: 200px;
    }
    
    /* Carousel mobile */
    .psm-widget-style-carousel .psm-product-card {
        min-width: 280px;
    }
    
    /* Timeline mobile */
    .psm-widget-style-timeline {
        padding: 20px 10px;
    }
    
    .psm-widget-style-timeline .psm-product-card {
        width: 90%;
    }
    
    .psm-widget-style-timeline .psm-product-grid::before {
        left: 15px;
    }
    
    /* Hero mobile */
    .psm-widget-style-hero {
        min-height: 60vh;
        padding: 20px;
    }
    
    .psm-widget-style-hero .psm-product-grid {
        flex-direction: column;
        gap: 20px;
    }
    
    /* Mosaic mobile */
    .psm-widget-style-mosaic .psm-product-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 120px;
    }
    
    .psm-widget-style-mosaic .psm-product-card:nth-child(n) {
        grid-column: span 1;
        grid-row: span 1;
    }
    
    .psm-widget-style-mosaic .psm-product-card:nth-child(odd) {
        grid-column: span 2;
    }
    
    /* Creative mobile */
    .psm-widget-style-creative {
        padding: 30px 15px;
    }
    
    .psm-widget-style-creative .psm-product-grid {
        gap: 20px;
    }
    
    .psm-widget-style-creative .psm-product-card {
        transform: rotate(0deg) !important;
        width: 100%;
        max-width: 300px;
    }
    
    /* Basic responsive for product cards */
    .psm-product-grid {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 15px;
        padding: 15px 0;
    }
    
    .psm-product-content {
        padding: 15px;
    }
    
    .psm-product-title {
        font-size: 16px;
    }
    
    .psm-taxonomy-info {
        font-size: 13px;
    }
    
    .psm-product-description {
        font-size: 13px;
    }
    
    .psm-read-more {
        padding: 6px 12px;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    /* Extra small devices */
    .psm-widget-style-masonry,
    .psm-widget-style-magazine,
    .psm-widget-style-cards,
    .psm-widget-style-creative {
        padding: 20px 10px;
    }
    
    .psm-widget-style-timeline .psm-product-card {
        width: 95%;
    }
    
    .psm-widget-style-timeline .psm-product-grid::before {
        left: 10px;
    }
    
    .psm-widget-style-hero {
        min-height: 50vh;
    }
    
    .psm-widget-style-mosaic .psm-product-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 150px;
    }
    
    .psm-widget-style-mosaic .psm-product-card:nth-child(n) {
        grid-column: span 1;
        grid-row: span 1;
    }
    
    .psm-widget-style-carousel .psm-product-card {
        min-width: 250px;
    }
    
    /* Basic mobile responsive */
    .psm-product-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    
    .psm-product-image {
        height: 180px;
    }
    
    .psm-product-content {
        padding: 12px;
    }
}

/* Animation Preferences */
@media (prefers-reduced-motion: reduce) {
    .psm-widget-style-carousel .psm-product-grid,
    .psm-widget-style-creative::before {
        animation: none;
    }
    
    .psm-widget-style-creative .psm-product-card,
    .psm-widget-style-cards .psm-product-card,
    .psm-widget-style-hero .psm-product-card {
        transform: none !important;
        transition: none;
    }
}

/* High Contrast Mode */
@media (prefers-contrast: high) {
    .psm-widget-style-masonry .psm-product-card,
    .psm-widget-style-cards .psm-product-card,
    .psm-widget-style-creative .psm-product-card {
        border: 2px solid #000;
        background: #fff !important;
    }
    
    .psm-widget-style-timeline .psm-product-grid::before {
        background: #000 !important;
    }
    
    .psm-widget-style-mosaic .psm-product-card {
        border-color: #fff !important;
    }
}

/* Legacy Product Grid Widget */
.psm-product-item {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.psm-product-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.psm-product-image {
    position: relative;
    overflow: hidden;
}

.psm-product-image img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: transform 0.3s ease;
    background: #f8f9fa;
}

.psm-product-image img:not([src]),
.psm-product-image img[src=""] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    position: relative;
}

.psm-product-image img:not([src]):before,
.psm-product-image img[src=""]:before {
    content: "📷";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 3em;
    color: white;
    opacity: 0.7;
}

.psm-product-item:hover .psm-product-image img {
    transform: scale(1.1);
}

.psm-product-content {
    padding: 20px;
}

.psm-product-categories {
    margin-bottom: 10px;
}

.psm-product-category {
    display: inline-block;
    background: transparent;
    color: #000;
    padding: 0;
    border-radius: 0;
    font-size: 13px;
    margin-right: 0;
    margin-bottom: 0;
    text-decoration: none;
}

.psm-product-title {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
}

.psm-product-title a {
    color: #2c3e50;
    text-decoration: none;
    transition: color 0.3s ease;
}

.psm-product-title a:hover {
    color: #3498db;
}

.psm-product-excerpt {
    color: #666;
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 15px;
}

.psm-product-button-wrap {
    margin-top: 15px;
}

.psm-product-button {
    display: inline-block;
    background: #3498db;
    color: #fff;
    padding: 10px 20px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.psm-product-button:hover {
    background: #2980b9;
    color: #fff;
    text-decoration: none;
    transform: translateY(-2px);
}

.psm-no-products {
    text-align: center;
    padding: 40px 20px;
    color: #666;
    font-size: 16px;
    background: #f8f9fa;
    border-radius: 8px;
}

/* Product Carousel Widget */
.psm-product-carousel-wrapper {
    position: relative;
}

.psm-product-carousel {
    position: relative;
}

.psm-carousel-item {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    margin: 0 10px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.psm-carousel-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.psm-carousel-image {
    position: relative;
    overflow: hidden;
}

.psm-carousel-image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.psm-carousel-item:hover .psm-carousel-image img {
    transform: scale(1.05);
}

.psm-carousel-content {
    padding: 15px;
}

.psm-carousel-categories {
    margin-bottom: 8px;
}

.psm-carousel-category {
    display: inline-block;
    background: #e74c3c;
    color: #fff;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 11px;
    margin-right: 5px;
}

.psm-carousel-title {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

.psm-carousel-title a {
    color: #2c3e50;
    text-decoration: none;
    transition: color 0.3s ease;
}

.psm-carousel-title a:hover {
    color: #3498db;
}

.psm-carousel-excerpt {
    color: #666;
    font-size: 13px;
    line-height: 1.5;
}

/* Slick carousel overrides */
.psm-product-carousel .slick-dots {
    bottom: -40px;
}

.psm-product-carousel .slick-dots li button:before {
    color: #3498db;
    font-size: 12px;
}

.psm-product-carousel .slick-dots li.slick-active button:before {
    color: #2980b9;
}

.psm-product-carousel .slick-prev,
.psm-product-carousel .slick-next {
    width: 40px;
    height: 40px;
    background: #3498db;
    border-radius: 50%;
    z-index: 10;
}

.psm-product-carousel .slick-prev:hover,
.psm-product-carousel .slick-next:hover {
    background: #2980b9;
}

.psm-product-carousel .slick-prev:before,
.psm-product-carousel .slick-next:before {
    color: #fff;
    font-size: 18px;
}

.psm-product-carousel .slick-prev {
    left: -50px;
}

.psm-product-carousel .slick-next {
    right: -50px;
}

/* Single Product Widget */
.psm-single-product {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.psm-single-product:hover {
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
    transform: translateY(-2px);
}

/* Default layout */
.psm-single-product.psm-layout-default {
    display: flex;
    flex-direction: column;
}

.psm-single-product.psm-layout-default .psm-single-product-image {
    width: 100%;
}

.psm-single-product.psm-layout-default .psm-single-product-image img {
    width: 100%;
    height: 300px;
    object-fit: cover;
}

/* Compact layout */
.psm-single-product.psm-layout-compact {
    display: flex;
    align-items: center;
}

.psm-single-product.psm-layout-compact .psm-single-product-image {
    flex: 0 0 120px;
    margin-right: 20px;
}

.psm-single-product.psm-layout-compact .psm-single-product-image img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 8px;
}

.psm-single-product.psm-layout-compact .psm-single-product-content {
    flex: 1;
}

/* Detailed layout */
.psm-single-product.psm-layout-detailed {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.psm-single-product.psm-layout-detailed .psm-single-product-image img {
    width: 100%;
    height: 400px;
    object-fit: cover;
}

.psm-single-product-content {
    padding: 20px;
}

.psm-single-product-categories {
    margin-bottom: 15px;
}

.psm-category-badge {
    display: inline-block;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    padding: 6px 15px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    margin-right: 8px;
    margin-bottom: 5px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.psm-single-product-title {
    margin: 0 0 15px 0;
    font-size: 24px;
    font-weight: 700;
    color: #2c3e50;
    line-height: 1.3;
}

.psm-single-product-excerpt {
    color: #666;
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 20px;
}

.psm-single-product-specs {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 20px;
}

.psm-spec-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #e9ecef;
}

.psm-spec-item:last-child {
    border-bottom: none;
}

.psm-spec-label {
    font-weight: 600;
    color: #2c3e50;
    font-size: 14px;
}

.psm-spec-value {
    color: #666;
    font-size: 14px;
    text-align: right;
}

.psm-single-product-button {
    margin-top: 20px;
}

.psm-button {
    display: inline-block;
    background: linear-gradient(135deg, #3498db 0%, #2980b9 100%);
    color: #fff;
    padding: 12px 30px;
    border-radius: 25px;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.psm-button:hover {
    background: linear-gradient(135deg, #2980b9 0%, #1f6391 100%);
    color: #fff;
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(52, 152, 219, 0.4);
}

.psm-notice {
    background: #fff3cd;
    border: 1px solid #ffeaa7;
    color: #856404;
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    font-size: 14px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .psm-product-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .psm-product-content {
        padding: 15px;
    }
    
    .psm-carousel-content {
        padding: 12px;
    }
    
    .psm-single-product.psm-layout-compact {
        flex-direction: column;
    }
    
    .psm-single-product.psm-layout-compact .psm-single-product-image {
        margin-right: 0;
        margin-bottom: 15px;
        flex: none;
    }
    
    .psm-single-product.psm-layout-detailed {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .psm-single-product-content {
        padding: 15px;
    }
    
    .psm-single-product-title {
        font-size: 20px;
    }
    
    .psm-product-carousel .slick-prev {
        left: 10px;
    }
    
    .psm-product-carousel .slick-next {
        right: 10px;
    }
}

@media (max-width: 480px) {
    .psm-product-image img {
        height: 200px;
    }
    
    .psm-carousel-image img {
        height: 160px;
    }
    
    .psm-single-product.psm-layout-detailed .psm-single-product-image img {
        height: 250px;
    }
    
    .psm-spec-item {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }
    
    .psm-spec-value {
        text-align: left;
        margin-top: 5px;
    }
}

/* Dark theme support */
@media (prefers-color-scheme: dark) {
    .psm-product-item,
    .psm-carousel-item,
    .psm-single-product {
        background: #2c3e50;
        color: #ecf0f1;
    }
    
    .psm-product-title a,
    .psm-carousel-title a,
    .psm-single-product-title {
        color: #ecf0f1;
    }
    
    .psm-product-excerpt,
    .psm-carousel-excerpt,
    .psm-single-product-excerpt {
        color: #bdc3c7;
    }
    
    .psm-single-product-specs {
        background: #34495e;
    }
    
    .psm-spec-item {
        border-bottom-color: #4a5f7a;
    }
    
    .psm-spec-label {
        color: #ecf0f1;
    }
    
    .psm-spec-value {
        color: #bdc3c7;
    }
}

/* Print styles */
@media print {
    .psm-product-item,
    .psm-carousel-item,
    .psm-single-product {
        break-inside: avoid;
        page-break-inside: avoid;
    }
    
    .psm-product-button,
    .psm-button {
        display: none;
    }
}

/* High contrast mode */
@media (prefers-contrast: high) {
    .psm-product-item,
    .psm-carousel-item,
    .psm-single-product {
        border: 2px solid #000;
    }
    
    .psm-product-button,
    .psm-button {
        border: 2px solid #000;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .psm-product-item,
    .psm-carousel-item,
    .psm-single-product,
    .psm-product-button,
    .psm-button,
    .psm-product-image img,
    .psm-carousel-image img {
        transition: none;
    }
    
    .psm-product-item:hover,
    .psm-carousel-item:hover,
    .psm-single-product:hover {
        transform: none;
    }
}

/* =============================================================================
   PSM Product Gallery Carousel Widget Styles
   ============================================================================= */

/* Gallery Carousel Container */
.elementor-widget-psm-product-gallery-carousel .psm-gallery-carousel-container {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

/* Main Carousel Styles */
.elementor-widget-psm-product-gallery-carousel .psm-main-carousel {
    position: relative;
    overflow: hidden;
    background: #f8f9fa;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.elementor-widget-psm-product-gallery-carousel .psm-main-carousel .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background: transparent;
}

.elementor-widget-psm-product-gallery-carousel .psm-image-container {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.elementor-widget-psm-product-gallery-carousel .psm-image-container img {
    max-width: 100%;
   
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform 0.3s ease;
    border-radius: inherit;
    display: block;
}

.elementor-widget-psm-product-gallery-carousel .psm-image-container:hover img {
    transform: scale(1.02);
}

/* Navigation Arrows */
.elementor-widget-psm-product-gallery-carousel .psm-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
    border: none;
    outline: none;
    user-select: none;
    font-family: inherit;
}

.elementor-widget-psm-product-gallery-carousel .psm-arrow:hover {
    transform: translateY(-50%) scale(1.1);
}

.elementor-widget-psm-product-gallery-carousel .psm-arrow:active {
    transform: translateY(-50%) scale(0.95);
}

.elementor-widget-psm-product-gallery-carousel .psm-arrow-prev {
    left: 20px;
}

.elementor-widget-psm-product-gallery-carousel .psm-arrow-next {
    right: 20px;
}

.elementor-widget-psm-product-gallery-carousel .psm-arrow i {
    display: block;
    line-height: 1;
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "Font Awesome 5 Pro", "FontAwesome", sans-serif;
    font-weight: 900;
}

/* Fallback for missing FontAwesome */
.elementor-widget-psm-product-gallery-carousel .psm-arrow .fa-chevron-left::before {
    content: "‹";
}

.elementor-widget-psm-product-gallery-carousel .psm-arrow .fa-chevron-right::before {
    content: "›";
}

.elementor-widget-psm-product-gallery-carousel .psm-lightbox-zoom .fa-search-plus::before {
    content: "🔍";
}

/* Pagination Dots */
.elementor-widget-psm-product-gallery-carousel .psm-pagination {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    z-index: 10;
}

.elementor-widget-psm-product-gallery-carousel .psm-pagination .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    background: rgba(255, 255, 255, 0.5);
    border: 2px solid rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    opacity: 1;
    cursor: pointer;
    transition: all 0.3s ease;
}

.elementor-widget-psm-product-gallery-carousel .psm-pagination .swiper-pagination-bullet-active {
    background: #fff;
    border-color: #007bff;
    transform: scale(1.2);
}

/* Thumbnail Carousel */
.elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel-container {
    position: relative;
    margin-top: 20px;
}

.elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel {
    position: relative;
    overflow: hidden;
}

.elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide {
    cursor: pointer;
    overflow: hidden;
    transition: all 0.3s ease;
    border-radius: 6px;
    border: 2px solid transparent;
    background: #f8f9fa;
}

.elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide:hover {
    transform: scale(1.05);
    border-color: rgba(0, 0, 0, 0.3);
    box-shadow: 0 2px 8px rgba(107, 107, 107, 0.2);
}

.elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide-thumb-active {
    border-color: #444444;
    box-shadow: 0 2px 8px rgba(162, 162, 162, 0.3);
    opacity: 1 !important;
    transform: scale(1.05);
}

.elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
    border-radius: inherit;
}

.elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide:hover img {
    transform: scale(1.02);
}

/* Lightbox Icon */
.elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon {
    position: absolute;
    top: 15px;
    right: 15px;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 20;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon:active {
    transform: scale(0.95);
}

.elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon i {
    display: block;
    line-height: 1;
}

/* Image Zoom Effects */
.elementor-widget-psm-product-gallery-carousel .psm-main-carousel.zoom-enabled .psm-image-container img {
    cursor: zoom-in;
    transition: transform 0.2s ease;
}

.elementor-widget-psm-product-gallery-carousel .psm-main-carousel.zoom-enabled .psm-image-container:hover img {
    transform-origin: center center;
}

/* Gallery Empty State */
.elementor-widget-psm-product-gallery-carousel .psm-gallery-empty {
    text-align: center;
    padding: 60px 20px;
    color: #666;
    font-size: 16px;
    font-style: italic;
    background: #f8f9fa;
    border: 2px dashed #dee2e6;
    border-radius: 8px;
    position: relative;
}

.elementor-widget-psm-product-gallery-carousel .psm-gallery-empty::before {
    content: "📷";
    display: block;
    font-size: 3em;
    margin-bottom: 15px;
    opacity: 0.5;
}

/* Loading State */
.elementor-widget-psm-product-gallery-carousel .psm-gallery-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    background: #f8f9fa;
    border-radius: 8px;
    color: #666;
    font-size: 16px;
    position: relative;
}

.elementor-widget-psm-product-gallery-carousel .psm-gallery-loading::before {
    content: '';
    width: 40px;
    height: 40px;
    border: 4px solid #e9ecef;
    border-top-color: #007bff;
    border-radius: 50%;
    animation: psm-gallery-loading 1s linear infinite;
    margin-right: 15px;
}

@keyframes psm-gallery-loading {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Swiper Overrides */
.elementor-widget-psm-product-gallery-carousel .swiper-button-disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.elementor-widget-psm-product-gallery-carousel .swiper-button-lock {
    display: none;
}

/* RTL Support */
[dir="rtl"] .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon {
    right: auto;
    left: 15px;
}

[dir="rtl"] .elementor-widget-psm-product-gallery-carousel .psm-arrow-prev {
    left: auto;
    right: 20px;
}

[dir="rtl"] .elementor-widget-psm-product-gallery-carousel .psm-arrow-next {
    right: auto;
    left: 20px;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-prev,
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-next {
        width: 35px;
        height: 35px;
        font-size: 14px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon {
        top: 10px;
        right: 10px;
        width: 35px;
        height: 35px;
        font-size: 16px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel-container {
        margin-top: 15px;
    }
}

@media (max-width: 768px) {
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-prev,
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-next {
        width: 30px;
        height: 30px;
        font-size: 12px;
        left: 10px;
        right: 10px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-prev {
        left: 10px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-next {
        right: 10px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon {
        width: 30px;
        height: 30px;
        font-size: 14px;
        top: 8px;
        right: 8px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel-container {
        margin-top: 12px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-pagination {
        bottom: 15px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-pagination .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
    }
}

@media (max-width: 480px) {
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-prev,
    .elementor-widget-psm-product-gallery-carousel .psm-arrow-next {
        display: none !important;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-main-carousel {
        border-radius: 6px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide {
        border-radius: 4px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-gallery-empty {
        padding: 40px 15px;
        font-size: 14px;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-gallery-empty::before {
        font-size: 2.5em;
        margin-bottom: 10px;
    }
}

/* Touch Device Optimizations */
@media (hover: none) and (pointer: coarse) {
    .elementor-widget-psm-product-gallery-carousel .psm-image-container:hover img,
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide:hover,
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide:hover img {
        transform: none;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-arrow:hover,
    .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon:hover {
        transform: none;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide:hover {
        border-color: transparent;
        box-shadow: none;
    }
}

/* High Contrast Mode */
@media (prefers-contrast: high) {
    .elementor-widget-psm-product-gallery-carousel .psm-main-carousel {
        border: 2px solid #000;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-arrow {
        border: 2px solid #000;
        background: #fff !important;
        color: #000 !important;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon {
        border: 2px solid #000;
        background: #fff !important;
        color: #000 !important;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide {
        border: 2px solid #000;
    }
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
    .elementor-widget-psm-product-gallery-carousel .swiper-slide,
    .elementor-widget-psm-product-gallery-carousel .psm-image-container img,
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide,
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide img,
    .elementor-widget-psm-product-gallery-carousel .psm-arrow,
    .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon,
    .elementor-widget-psm-product-gallery-carousel .psm-pagination .swiper-pagination-bullet {
        transition: none;
        animation: none;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-image-container:hover img,
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide:hover,
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel .swiper-slide:hover img,
    .elementor-widget-psm-product-gallery-carousel .psm-arrow:hover,
    .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon:hover {
        transform: none;
    }
}

/* Print Styles */
@media print {
    .elementor-widget-psm-product-gallery-carousel .psm-arrow,
    .elementor-widget-psm-product-gallery-carousel .psm-lightbox-icon,
    .elementor-widget-psm-product-gallery-carousel .psm-pagination,
    .elementor-widget-psm-product-gallery-carousel .psm-thumbnail-carousel-container {
        display: none !important;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-main-carousel {
        box-shadow: none;
        border: 1px solid #000;
    }
    
    .elementor-widget-psm-product-gallery-carousel .psm-image-container img {
        max-height: 400px;
    }
}

/* =============================================================================
   PSM Shortcode Widgets Styles
   ============================================================================= */

/* Product Fields Widget */
.elementor-widget-psm-product-fields .psm-product-fields {
    font-family: inherit;
}

.elementor-widget-psm-product-fields .psm-product-fields.psm-layout-grid {
    display: grid;
    grid-template-columns: repeat(var(--columns, 2), 1fr);
    gap: var(--gap, 15px);
}

.elementor-widget-psm-product-fields .psm-product-fields.psm-layout-cards .psm-field-item {
    background: var(--card-background, #fff);
    border: var(--card-border, 1px solid #e0e0e0);
    border-radius: var(--card-border-radius, 8px);
    padding: var(--card-padding, 15px);
    text-align: center;
    transition: all 0.3s ease;
}

.elementor-widget-psm-product-fields .psm-product-fields.psm-layout-cards .psm-field-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.elementor-widget-psm-product-fields .psm-field-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-left: 8px;
}

.elementor-widget-psm-product-fields .psm-field-label {
    font-weight: 600;
    color: #495057;
    margin-bottom: 5px;
}

.elementor-widget-psm-product-fields .psm-field-value {
    color: #212529;
    font-weight: 500;
}

/* Single Field Widget */
.elementor-widget-psm-single-field .psm-single-field {
    font-family: inherit;
}

.elementor-widget-psm-single-field .psm-single-field .psm-field-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    vertical-align: middle;
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-default {
    background: var(--container-background, transparent);
    padding: var(--container-padding, 8px 0);
    border-radius: var(--container-border-radius, 0);
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-inline {
    display: inline-block;
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-badge {
    display: inline-block;
    background: var(--container-background, linear-gradient(135deg, #007bff, #0056b3));
    color: white;
    padding: var(--container-padding, 6px 12px);
    border-radius: var(--container-border-radius, 20px);
    font-size: 0.9em;
    font-weight: 500;
    box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2);
    transition: all 0.3s ease;
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-badge:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 123, 255, 0.3);
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-card {
    background: var(--container-background, white);
    border: var(--container-border, 1px solid #e0e0e0);
    border-radius: var(--container-border-radius, 8px);
    padding: var(--container-padding, 16px);
    text-align: center;
    min-width: 120px;
    display: inline-block;
    vertical-align: top;
    transition: all 0.3s ease;
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-card .psm-field-icon {
    display: block;
    width: 32px;
    height: 32px;
    margin: 0 auto 8px;
    background: #f8f9fa;
    border-radius: 50%;
    padding: 6px;
}

.elementor-widget-psm-single-field .psm-single-field.psm-field-highlight {
    background: var(--container-background, linear-gradient(90deg, #fff3cd 0%, transparent 100%));
    border-right: var(--container-border, 4px solid #ffc107);
    padding: var(--container-padding, 10px 16px);
    border-radius: var(--container-border-radius, 4px 0 0 4px);
}

/* Taxonomy Terms Widget */
.elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms,
.elementor-widget-psm-taxonomy-terms .psm-terms-wrapper {
    font-family: inherit;
    /* CSS Variables support */
    --grid-gap: 15px;
    --card-width: 200px;
    --card-height: auto;
    --card-min-height: 120px;
    --card-padding: 16px;
    --card-border-radius: 8px;
    --card-background: #fff;
    --card-border-color: #e0e0e0;
    --card-border-width: 1px;
    --card-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    --card-transform-hover: translateY(-2px);
    --card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.15);
    --card-transition: all 0.3s ease;
    --term-name-color: inherit;
    --term-name-font-size: inherit;
    --term-name-font-weight: 600;
    --term-count-color: rgba(0, 0, 0, 0.6);
    --term-count-font-size: 0.85em;
    --term-count-background: transparent;
    --term-count-padding: 0;
    --term-count-border-radius: 0;
    --icon-size: 24px;
    --icon-color: inherit;
    --icon-spacing: 8px;
    --icon-background: transparent;
    --icon-border-radius: 0;
    --icon-padding: 0;
}

.elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-default {
    display: flex;
    flex-wrap: wrap;
    gap: var(--grid-gap);
}

.elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-grid,
.elementor-widget-psm-taxonomy-terms .psm-terms-grid,
.elementor-widget-psm-taxonomy-terms .psm-taxonomy-cards .psm-terms-grid,
.elementor-widget-psm-taxonomy-terms .psm-flex-grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--grid-gap);
    justify-content: flex-start;
    align-items: stretch;
}

.elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-list {
    display: flex;
    flex-direction: column;
    gap: var(--grid-gap);
}

.elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--grid-gap);
}

.elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-cards,
.elementor-widget-psm-taxonomy-terms .psm-taxonomy-cards {
    display: flex;
    flex-wrap: wrap;
    gap: var(--grid-gap);
    justify-content: flex-start;
    align-items: stretch;
}

/* Grid item containers */
.elementor-widget-psm-taxonomy-terms .psm-grid-item {
    display: contents; /* این کلاس فقط wrapper هست، نباید layout تأثیر بذاره */
}

/* Support for different responsive grids */
@media (max-width: 768px) {
    .elementor-widget-psm-taxonomy-terms .psm-terms-wrapper,
    .elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms {
        --card-width: 100%;
    }
    
    .elementor-widget-psm-taxonomy-terms .psm-term-item,
    .elementor-widget-psm-taxonomy-terms .psm-term-card {
        width: 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .elementor-widget-psm-taxonomy-terms .psm-terms-wrapper,
    .elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms {
        --card-width: calc(50% - var(--grid-gap, 15px) / 2);
    }
    
    .elementor-widget-psm-taxonomy-terms .psm-term-item,
    .elementor-widget-psm-taxonomy-terms .psm-term-card {
        width: calc(50% - var(--grid-gap, 15px) / 2);
        flex: 0 0 calc(50% - var(--grid-gap, 15px) / 2);
        max-width: calc(50% - var(--grid-gap, 15px) / 2);
    }
}

@media (min-width: 1025px) {
    .elementor-widget-psm-taxonomy-terms .psm-term-item,
    .elementor-widget-psm-taxonomy-terms .psm-term-card {
        width: var(--card-width);
        flex: 0 0 var(--card-width);
        max-width: var(--card-width);
    }
}

.elementor-widget-psm-taxonomy-terms .psm-term-item,
.elementor-widget-psm-taxonomy-terms .psm-term-card {
    transition: var(--card-transition);
    text-decoration: none;
    color: inherit;
    width: var(--card-width);
    height: var(--card-height);
    min-height: var(--card-min-height);
    background: var(--card-background);
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-border-radius);
    padding: var(--card-padding);
    box-shadow: var(--card-shadow);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex: 0 0 auto; /* اجازه بده کارت‌ها اندازه طبیعی‌شون رو داشته باشن */
    box-sizing: border-box;
}

.elementor-widget-psm-taxonomy-terms .psm-term-item:hover,
.elementor-widget-psm-taxonomy-terms .psm-term-card:hover {
    color: inherit;
    text-decoration: none;
    transform: var(--card-transform-hover);
    box-shadow: var(--card-shadow-hover);
    border-color: var(--card-border-color-hover, var(--card-border-color));
    background: var(--card-background-hover, var(--card-background));
}

.elementor-widget-psm-taxonomy-terms .psm-style-default .psm-term-item {
    background: #f8f9fa;
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid #e9ecef;
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    min-height: auto;
}

.elementor-widget-psm-taxonomy-terms .psm-style-grid .psm-term-item,
.elementor-widget-psm-taxonomy-terms .psm-style-cards .psm-term-item,
.elementor-widget-psm-taxonomy-terms .psm-term-card {
    background: var(--card-background);
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-border-radius);
    padding: var(--card-padding);
    text-align: center;
    box-shadow: var(--card-shadow);
    min-height: var(--card-min-height);
}

.elementor-widget-psm-taxonomy-terms .psm-style-grid .psm-term-item:hover,
.elementor-widget-psm-taxonomy-terms .psm-style-cards .psm-term-item:hover,
.elementor-widget-psm-taxonomy-terms .psm-term-card:hover {
    transform: var(--card-transform-hover);
    box-shadow: var(--card-shadow-hover);
}

.elementor-widget-psm-taxonomy-terms .psm-style-list .psm-term-item {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: auto;
    height: auto;
    min-height: auto;
}

.elementor-widget-psm-taxonomy-terms .psm-style-badges .psm-term-item {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.9em;
    font-weight: 500;
    box-shadow: 0 2px 4px rgba(102, 126, 234, 0.3);
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    min-height: auto;
}

.elementor-widget-psm-taxonomy-terms .psm-style-badges .psm-term-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(102, 126, 234, 0.4);
}

.elementor-widget-psm-taxonomy-terms .psm-term-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: var(--icon-spacing);
    width: var(--icon-size);
    height: var(--icon-size);
    font-size: var(--icon-size);
    color: var(--icon-color);
    background: var(--icon-background);
    border-radius: var(--icon-border-radius);
    padding: var(--icon-padding);
}

.elementor-widget-psm-taxonomy-terms .psm-term-icon img,
.elementor-widget-psm-taxonomy-terms .psm-term-icon-img {
    width: var(--icon-size);
    height: var(--icon-size);
    object-fit: contain;
}

.elementor-widget-psm-taxonomy-terms .psm-style-grid .psm-term-icon,
.elementor-widget-psm-taxonomy-terms .psm-style-cards .psm-term-icon {
    font-size: var(--icon-size);
    margin: 0 0 var(--icon-spacing) 0;
}

.elementor-widget-psm-taxonomy-terms .psm-term-name,
.elementor-widget-psm-taxonomy-terms .psm-term-title {
    font-weight: var(--term-name-font-weight);
    color: var(--term-name-color);
    font-size: var(--term-name-font-size);
    line-height: var(--term-name-line-height, 1.4);
    letter-spacing: var(--term-name-letter-spacing, normal);
    text-transform: var(--term-name-text-transform, none);
    margin: 0;
}

/* Support for both old and new class structures */
.elementor-widget-psm-taxonomy-terms .psm-term-item:hover .psm-term-name,
.elementor-widget-psm-taxonomy-terms .psm-term-item:hover .psm-term-title,
.elementor-widget-psm-taxonomy-terms .psm-term-card:hover .psm-term-name,
.elementor-widget-psm-taxonomy-terms .psm-term-card:hover .psm-term-title {
    color: var(--term-name-color-hover, var(--term-name-color));
}

.elementor-widget-psm-taxonomy-terms .psm-term-count {
    font-size: var(--term-count-font-size);
    color: var(--term-count-color);
    font-weight: var(--term-count-font-weight, normal);
    margin-right: var(--icon-spacing);
    background: var(--term-count-background);
    padding: var(--term-count-padding);
    border-radius: var(--term-count-border-radius);
    margin-top: 4px;
    display: inline-block;
}

.elementor-widget-psm-taxonomy-terms .psm-style-grid .psm-term-count,
.elementor-widget-psm-taxonomy-terms .psm-style-cards .psm-term-count {
    display: block;
    margin-top: 4px;
    color: #718096;
}

.elementor-widget-psm-taxonomy-terms .psm-style-badges .psm-term-count {
    background: rgba(255, 255, 255, 0.2);
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 0.75em;
    margin-right: 4px;
}

/* RTL Support */
[dir="rtl"] .elementor-widget-psm-product-fields .psm-field-icon,
[dir="rtl"] .elementor-widget-psm-single-field .psm-field-icon,
[dir="rtl"] .elementor-widget-psm-taxonomy-terms .psm-term-icon {
    margin-left: 0;
    margin-right: 8px;
}

[dir="rtl"] .elementor-widget-psm-single-field .psm-single-field.psm-field-highlight {
    border-right: none;
    border-left: 4px solid #ffc107;
    border-radius: 0 4px 4px 0;
    background: linear-gradient(270deg, #fff3cd 0%, transparent 100%);
}

[dir="rtl"] .elementor-widget-psm-taxonomy-terms .psm-term-count {
    margin-right: 0;
    margin-left: 8px;
}

[dir="rtl"] .elementor-widget-psm-taxonomy-terms .psm-style-badges .psm-term-count {
    margin-right: 0;
    margin-left: 4px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .elementor-widget-psm-product-fields .psm-product-fields.psm-layout-grid {
        grid-template-columns: repeat(min(var(--columns, 2), 2), 1fr);
    }
    
    .elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-grid,
    .elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-cards {
        grid-template-columns: repeat(min(var(--columns, 3), 2), 1fr);
    }
}

@media (max-width: 480px) {
    .elementor-widget-psm-product-fields .psm-product-fields.psm-layout-grid,
    .elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-grid,
    .elementor-widget-psm-taxonomy-terms .psm-taxonomy-terms.psm-style-cards {
        grid-template-columns: 1fr;
    }
    
    .elementor-widget-psm-single-field .psm-single-field.psm-field-card {
        min-width: 100px;
        padding: 12px;
    }
}

/* =============================================================================
   PSM Button Widget Styles
   ============================================================================= */

/* Button Base Styles */
.elementor-widget-psm-button .psm-button-wrapper {
    display: block;
}

.elementor-widget-psm-button .psm-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: top;
    background-color: #007bff;
    color: #fff;
    fill: #fff;
    text-decoration: none;
    text-align: center;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    font-family: inherit;
    line-height: 1;
    outline: none;
    border-radius: 4px;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 500;
}

.elementor-widget-psm-button .psm-button:hover,
.elementor-widget-psm-button .psm-button:focus {
    color: #fff;
    text-decoration: none;
    background-color: #0056b3;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 123, 255, 0.4);
}

.elementor-widget-psm-button .psm-button:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);
}

/* Button Sizes */
.elementor-widget-psm-button .psm-button.psm-size-xs {
    font-size: 11px;
    padding: 6px 12px;
    line-height: 1.2;
}

.elementor-widget-psm-button .psm-button.psm-size-sm {
    font-size: 12px;
    padding: 8px 16px;
    line-height: 1.3;
}

.elementor-widget-psm-button .psm-button.psm-size-md {
    font-size: 14px;
    padding: 12px 24px;
    line-height: 1.4;
}

.elementor-widget-psm-button .psm-button.psm-size-lg {
    font-size: 16px;
    padding: 16px 32px;
    line-height: 1.5;
}

.elementor-widget-psm-button .psm-button.psm-size-xl {
    font-size: 18px;
    padding: 20px 40px;
    line-height: 1.6;
}

/* Button Text and Icon */
.elementor-widget-psm-button .psm-button-text {
    flex-grow: 0;
    display: inline-block;
    font-weight: inherit;
}

.elementor-widget-psm-button .psm-button-icon {
    order: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.elementor-widget-psm-button .psm-button-icon.psm-button-icon-before {
    order: 0;
}

.elementor-widget-psm-button .psm-button-icon.psm-button-icon-after {
    order: 2;
}

.elementor-widget-psm-button .psm-button-icon svg {
    width: 1em;
    height: 1em;
    position: relative;
    display: block;
}

/* Button Alignments */
.elementor-widget-psm-button.elementor-align-center {
    text-align: center;
}

.elementor-widget-psm-button.elementor-align-left {
    text-align: left;
}

.elementor-widget-psm-button.elementor-align-right {
    text-align: right;
}

.elementor-widget-psm-button.elementor-align-justify .psm-button {
    width: 100%;
    text-align: center;
}

/* Mobile Responsive Alignments */
@media (max-width: 767px) {
    .elementor-widget-psm-button.elementor-mobile-align-center {
        text-align: center;
    }

    .elementor-widget-psm-button.elementor-mobile-align-left {
        text-align: left;
    }

    .elementor-widget-psm-button.elementor-mobile-align-right {
        text-align: right;
    }

    .elementor-widget-psm-button.elementor-mobile-align-justify .psm-button {
        width: 100%;
    }
}

/* Tablet Responsive Alignments */
@media (max-width: 1024px) and (min-width: 768px) {
    .elementor-widget-psm-button.elementor-tablet-align-center {
        text-align: center;
    }

    .elementor-widget-psm-button.elementor-tablet-align-left {
        text-align: left;
    }

    .elementor-widget-psm-button.elementor-tablet-align-right {
        text-align: right;
    }

    .elementor-widget-psm-button.elementor-tablet-align-justify .psm-button {
        width: 100%;
    }
}

/* Button Hover Effects */
.elementor-widget-psm-button .psm-button.elementor-animation-grow:hover {
    transform: scale(1.05);
}

.elementor-widget-psm-button .psm-button.elementor-animation-shrink:hover {
    transform: scale(0.95);
}

.elementor-widget-psm-button .psm-button.elementor-animation-pulse:hover {
    animation: psm-pulse 0.6s ease-out;
}

.elementor-widget-psm-button .psm-button.elementor-animation-bounce-in:hover {
    animation: psm-bounceIn 0.6s ease-out;
}

.elementor-widget-psm-button .psm-button.elementor-animation-wobble-horizontal:hover {
    animation: psm-wobbleHorizontal 0.8s ease-out;
}

/* Custom Animations */
@keyframes psm-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

@keyframes psm-bounceIn {
    0% { transform: scale(0.8); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

@keyframes psm-wobbleHorizontal {
    16.65% { transform: translateX(-8px); }
    33.3% { transform: translateX(6px); }
    49.95% { transform: translateX(-4px); }
    66.6% { transform: translateX(2px); }
    83.25% { transform: translateX(-1px); }
    100% { transform: translateX(0); }
}

/* Button States */
.elementor-widget-psm-button .psm-button:disabled,
.elementor-widget-psm-button .psm-button[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.elementor-widget-psm-button .psm-button:disabled:hover,
.elementor-widget-psm-button .psm-button[disabled]:hover {
    background-color: inherit;
    color: inherit;
    transform: none;
    box-shadow: none;
}

/* RTL Support */
[dir="rtl"] .elementor-widget-psm-button .psm-button-icon.psm-button-icon-before {
    order: 2;
}

[dir="rtl"] .elementor-widget-psm-button .psm-button-icon.psm-button-icon-after {
    order: 0;
}

/* Focus States for Accessibility */
.elementor-widget-psm-button .psm-button:focus {
    outline: 2px solid rgba(0, 123, 255, 0.5);
    outline-offset: 2px;
}

/* Loading State */
.elementor-widget-psm-button .psm-button.psm-button-loading {
    color: transparent !important;
    pointer-events: none;
    position: relative;
}

.elementor-widget-psm-button .psm-button.psm-button-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -10px;
    margin-left: -10px;
    width: 20px;
    height: 20px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: psm-button-loading 1s linear infinite;
}

@keyframes psm-button-loading {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Button Group Support */
.psm-button-group {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
}

.psm-button-group .elementor-widget-psm-button {
    flex: 0 0 auto;
}

/* Print Styles */
@media print {
    .elementor-widget-psm-button .psm-button {
        background: none !important;
        color: #000 !important;
        border: 1px solid #000 !important;
        box-shadow: none !important;
        text-decoration: underline;
    }
}

/* =============================================================================
   PSM Terms List Widgets Styles - Complete Customization System
   ============================================================================= */

/* Terms Wrapper - Full Control Variables */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper {
    width: 100%;
    position: relative;
    
    /* Card Dimension Controls */
    --psm-card-width: var(--card-width, auto);
    --psm-card-height: var(--card-height, auto);
    --psm-card-min-height: var(--card-min-height, 120px);
    --psm-card-max-width: var(--card-max-width, none);
    --psm-card-aspect-ratio: var(--card-aspect-ratio, auto);
    
    /* Card Spacing Controls */
    --psm-card-padding: var(--card-padding, 20px);
    --psm-card-margin: var(--card-margin, 0);
    --psm-grid-gap: var(--grid-gap, 15px);
    --psm-grid-row-gap: var(--grid-row-gap, var(--grid-gap, 15px));
    --psm-grid-column-gap: var(--grid-column-gap, var(--grid-gap, 15px));
    
    /* Card Background & Border Controls */
    --psm-card-background: var(--card-background, #ffffff);
    --psm-card-background-hover: var(--card-background-hover, #ffffff);
    --psm-card-border-width: var(--card-border-width, 1px);
    --psm-card-border-style: var(--card-border-style, solid);
    --psm-card-border-color: var(--card-border-color, #e1e5e9);
    --psm-card-border-color-hover: var(--card-border-color-hover, #575757);
    --psm-card-border-radius: var(--card-border-radius, 12px);
    
    /* Card Shadow & Effects Controls */
    --psm-card-shadow: var(--card-shadow, 0 2px 10px rgba(0, 0, 0, 0.05));
    --psm-card-shadow-hover: var(--card-shadow-hover, 0 6px 20px rgba(0, 0, 0, 0.1));
    --psm-card-transition: var(--card-transition, all 0.3s ease);
    --psm-card-transform-hover: var(--card-transform-hover, translateY(-3px));
    --psm-card-opacity: var(--card-opacity, 1);
    --psm-card-opacity-hover: var(--card-opacity-hover, 1);
    
    /* Typography Controls */
    --psm-title-font-size: var(--title-font-size, 1.2em);
    --psm-title-font-weight: var(--title-font-weight, 600);
    --psm-title-line-height: var(--title-line-height, 1.4);
    --psm-title-color: var(--title-color, #333);
    --psm-title-margin-bottom: var(--title-margin-bottom, 20px);
    --psm-title-text-align: var(--title-text-align, center);
    --psm-title-text-transform: var(--title-text-transform, none);
    --psm-title-letter-spacing: var(--title-letter-spacing, normal);
    
    /* Term Name Typography */
    --psm-term-name-font-size: var(--term-name-font-size, 14px);
    --psm-term-name-font-weight: var(--term-name-font-weight, 600);
    --psm-term-name-line-height: var(--term-name-line-height, 1.4);
    --psm-term-name-color: var(--term-name-color, #333);
    --psm-term-name-color-hover: var(--term-name-color-hover, #575757);
    --psm-term-name-text-transform: var(--term-name-text-transform, none);
    --psm-term-name-letter-spacing: var(--term-name-letter-spacing, normal);
    
    /* Term Count Typography */
    --psm-term-count-font-size: var(--term-count-font-size, 12px);
    --psm-term-count-font-weight: var(--term-count-font-weight, 400);
    --psm-term-count-color: var(--term-count-color, #666);
    --psm-term-count-background: var(--term-count-background, transparent);
    --psm-term-count-padding: var(--term-count-padding, 2px 6px);
    --psm-term-count-border-radius: var(--term-count-border-radius, 10px);
    --psm-term-count-margin: var(--term-count-margin, 5px 0 0 0);
    
    /* Icon Controls */
    --psm-icon-size: var(--icon-size, 24px);
    --psm-icon-color: var(--icon-color, #575757);
    --psm-icon-color-hover: var(--icon-color-hover, #005a87);
    --psm-icon-margin: var(--icon-margin, 0 0 10px 0);
    --psm-icon-background: var(--icon-background, transparent);
    --psm-icon-border-radius: var(--icon-border-radius, 50%);
    --psm-icon-padding: var(--icon-padding, 0);
    --psm-icon-shadow: var(--icon-shadow, none);
    
    /* Layout Controls */
    --psm-grid-columns: var(--grid-columns, 3);
    --psm-grid-align-items: var(--grid-align-items, stretch);
    --psm-grid-justify-items: var(--grid-justify-items, stretch);
    --psm-term-text-align: var(--term-text-align, center);
    --psm-term-justify-content: var(--term-justify-content, center);
    --psm-term-align-items: var(--term-align-items, center);
    --psm-term-flex-direction: var(--term-flex-direction, column);
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-title {
    font-size: var(--psm-title-font-size);
    font-weight: var(--psm-title-font-weight);
    line-height: var(--psm-title-line-height);
    color: var(--psm-title-color);
    margin-bottom: var(--psm-title-margin-bottom);
    text-align: var(--psm-title-text-align);
    text-transform: var(--psm-title-text-transform);
    letter-spacing: var(--psm-title-letter-spacing);
    transition: var(--psm-card-transition);
}

/* Terms Grid - Enhanced Layout System */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-grid {
    display: grid;
    grid-template-columns: repeat(var(--psm-grid-columns), 1fr);
    gap: var(--psm-grid-row-gap) var(--psm-grid-column-gap);
    margin: 0;
    padding: 0;
    list-style: none;
    align-items: var(--psm-grid-align-items);
    justify-items: var(--psm-grid-justify-items);
}

/* Term Item - Complete Customization */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item {
    /* Layout & Positioning */
    display: flex;
    align-items: var(--psm-term-align-items);
    justify-content: var(--psm-term-justify-content);
    flex-direction: var(--psm-term-flex-direction);
    text-align: var(--psm-term-text-align);
    
    /* Dimensions */
    width: var(--psm-card-width);
    height: var(--psm-card-height);
    min-height: var(--psm-card-min-height);
    max-width: var(--psm-card-max-width);
    aspect-ratio: var(--psm-card-aspect-ratio);
    
    /* Spacing */
    padding: var(--psm-card-padding);
    margin: var(--psm-card-margin);
    
    /* Background & Border */
    background: var(--psm-card-background);
    border: var(--psm-card-border-width) var(--psm-card-border-style) var(--psm-card-border-color);
    border-radius: var(--psm-card-border-radius);
    
    /* Effects */
    box-shadow: var(--psm-card-shadow);
    opacity: var(--psm-card-opacity);
    transition: var(--psm-card-transition);
    
    /* Reset */
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:hover {
    background: var(--psm-card-background-hover);
    border-color: var(--psm-card-border-color-hover);
    box-shadow: var(--psm-card-shadow-hover);
    opacity: var(--psm-card-opacity-hover);
    transform: var(--psm-card-transform-hover);
    text-decoration: none;
    color: inherit;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:active {
    transform: scale(0.98);
}

/* Term Icon - Full Control */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-icon {
    font-size: var(--psm-icon-size);
    color: var(--psm-icon-color);
    background: var(--psm-icon-background);
    border-radius: var(--psm-icon-border-radius);
    padding: var(--psm-icon-padding);
    margin: var(--psm-icon-margin);
    box-shadow: var(--psm-icon-shadow);
    transition: var(--psm-card-transition);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:hover .psm-term-icon {
    color: var(--psm-icon-color-hover);
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-icon img {
    width: var(--psm-icon-size);
    height: var(--psm-icon-size);
    object-fit: cover;
    border-radius: inherit;
}

/* Term Name - Typography Control */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-name {
    font-size: var(--psm-term-name-font-size);
    font-weight: var(--psm-term-name-font-weight);
    line-height: var(--psm-term-name-line-height);
    color: var(--psm-term-name-color);
    text-transform: var(--psm-term-name-text-transform);
    letter-spacing: var(--psm-term-name-letter-spacing);
    transition: var(--psm-card-transition);
    margin: 0;
    word-wrap: break-word;
    hyphens: auto;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:hover .psm-term-name {
    color: var(--psm-term-name-color-hover);
}

/* Term Count - Enhanced Styling */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-count {
    font-size: var(--psm-term-count-font-size);
    font-weight: var(--psm-term-count-font-weight);
    color: var(--psm-term-count-color);
    background: var(--psm-term-count-background);
    padding: var(--psm-term-count-padding);
    border-radius: var(--psm-term-count-border-radius);
    margin: var(--psm-term-count-margin);
    transition: var(--psm-card-transition);
    display: inline-block;
    white-space: nowrap;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:hover .psm-term-count {
    color: var(--psm-term-count-color);
    background: var(--psm-term-count-background);
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:active {
    transform: translateY(0);
}

/* Specific Widget Customization - Enhanced with Variables */

/* Stone Color Terms */
.elementor-widget-psm-stone-color-terms .psm-terms-wrapper {
    --card-background: linear-gradient(135deg, #fff8f0 0%, #ffeedc 100%);
    --card-border-color: #ff9800;
    --card-border-color-hover: #f57c00;
    --term-name-color: #ef6c00;
    --term-name-color-hover: #e65100;
    --icon-color: #ff9800;
    --icon-color-hover: #f57c00;
}

/* Surface Finish Terms */
.elementor-widget-psm-surface-finish-terms .psm-terms-wrapper {
    --card-background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);
    --card-border-color: #9c27b0;
    --card-border-color-hover: #7b1fa2;
    --term-name-color: #8e24aa;
    --term-name-color-hover: #6a1b9a;
    --icon-color: #9c27b0;
    --icon-color-hover: #7b1fa2;
}

/* Usage Type Terms */
.elementor-widget-psm-usage-type-terms .psm-terms-wrapper {
    --card-background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%);
    --card-border-color: #4caf50;
    --card-border-color-hover: #388e3c;
    --term-name-color: #43a047;
    --term-name-color-hover: #2e7d32;
    --icon-color: #4caf50;
    --icon-color-hover: #388e3c;
}

/* Product Category Terms */
.elementor-widget-psm-product-category-terms .psm-terms-wrapper {
    --card-background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    --card-border-color: #2196f3;
    --card-border-color-hover: #1976d2;
    --term-name-color: #1e88e5;
    --term-name-color-hover: #1565c0;
    --icon-color: #2196f3;
    --icon-color-hover: #1976d2;
}

/* Edge Profile Terms */
.elementor-widget-psm-edge-profile-terms .psm-terms-wrapper {
    --card-background: linear-gradient(135deg, #fff3e0 0%, #ffcc02 100%);
    --card-border-color: #ff9800;
    --card-border-color-hover: #f57c00;
    --term-name-color: #ef6c00;
    --term-name-color-hover: #e65100;
    --icon-color: #ff9800;
    --icon-color-hover: #f57c00;
}

/* Packaging Type Terms */
.elementor-widget-psm-packaging-type-terms .psm-terms-wrapper {
    --card-background: linear-gradient(135deg, #f1f8e9 0%, #dcedc8 100%);
    --card-border-color: #8bc34a;
    --card-border-color-hover: #689f38;
    --term-name-color: #7cb342;
    --term-name-color-hover: #558b2f;
    --icon-color: #8bc34a;
    --icon-color-hover: #689f38;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 2px;
}

/* Term Name */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-name {
    flex: 1;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.4;
    margin: 0 8px;
}

/* Term Count */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-count {
    background: rgba(0, 123, 255, 0.1);
    color: #007bff;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    min-width: 20px;
    text-align: center;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:hover .psm-term-count {
    background: #007bff;
    color: white;
}

/* Specific Widget Styling */

/* Stone Color Terms */
.elementor-widget-psm-stone-color-terms .psm-term-item {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
}

.elementor-widget-psm-stone-color-terms .psm-term-item:hover {
    background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
    border-color: #dc3545;
}

.elementor-widget-psm-stone-color-terms .psm-term-count {
    background: rgba(220, 53, 69, 0.1);
    color: #dc3545;
}

.elementor-widget-psm-stone-color-terms .psm-term-item:hover .psm-term-count {
    background: #dc3545;
    color: white;
}

/* Surface Finish Terms */
.elementor-widget-psm-surface-finish-terms .psm-term-item {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
}

.elementor-widget-psm-surface-finish-terms .psm-term-item:hover {
    background: linear-gradient(135deg, #fff 0%, #e3f2fd 100%);
    border-color: #2196f3;
}

.elementor-widget-psm-surface-finish-terms .psm-term-count {
    background: rgba(33, 150, 243, 0.1);
    color: #2196f3;
}

.elementor-widget-psm-surface-finish-terms .psm-term-item:hover .psm-term-count {
    background: #2196f3;
    color: white;
}

/* Usage Type Terms */
.elementor-widget-psm-usage-type-terms .psm-term-item {
    background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);
}

.elementor-widget-psm-usage-type-terms .psm-term-item:hover {
    background: linear-gradient(135deg, #fff 0%, #f3e5f5 100%);
    border-color: #9c27b0;
}

.elementor-widget-psm-usage-type-terms .psm-term-count {
    background: rgba(156, 39, 176, 0.1);
    color: #9c27b0;
}

.elementor-widget-psm-usage-type-terms .psm-term-item:hover .psm-term-count {
    background: #9c27b0;
    color: white;
}

/* Product Category Terms */
.elementor-widget-psm-product-category-terms .psm-term-item {
    background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%);
}

.elementor-widget-psm-product-category-terms .psm-term-item:hover {
    background: linear-gradient(135deg, #fff 0%, #e8f5e8 100%);
    border-color: #4caf50;
}

.elementor-widget-psm-product-category-terms .psm-term-count {
    background: rgba(76, 175, 80, 0.1);
    color: #4caf50;
}

.elementor-widget-psm-product-category-terms .psm-term-item:hover .psm-term-count {
    background: #4caf50;
    color: white;
}

/* Edge Profile Terms */
.elementor-widget-psm-edge-profile-terms .psm-term-item {
    background: linear-gradient(135deg, #fff3e0 0%, #ffcc02 100%);
}

.elementor-widget-psm-edge-profile-terms .psm-term-item:hover {
    background: linear-gradient(135deg, #fff 0%, #fff3e0 100%);
    border-color: #ff9800;
}

.elementor-widget-psm-edge-profile-terms .psm-term-count {
    background: rgba(255, 152, 0, 0.1);
    color: #ff9800;
}

.elementor-widget-psm-edge-profile-terms .psm-term-item:hover .psm-term-count {
    background: #ff9800;
    color: white;
}

/* Packaging Type Terms */
.elementor-widget-psm-packaging-type-terms .psm-term-item {
    background: linear-gradient(135deg, #f1f8e9 0%, #dcedc8 100%);
}

.elementor-widget-psm-packaging-type-terms .psm-term-item:hover {
    background: linear-gradient(135deg, #fff 0%, #f1f8e9 100%);
    border-color: #8bc34a;
}

.elementor-widget-psm-packaging-type-terms .psm-term-count {
    background: rgba(139, 195, 74, 0.1);
    color: #8bc34a;
}

.elementor-widget-psm-packaging-type-terms .psm-term-item:hover .psm-term-count {
    background: #8bc34a;
    color: white;
}

/* RTL Support */
[dir="rtl"] .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-icon {
    margin-left: 0;
    margin-right: 8px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-grid {
        grid-template-columns: repeat(min(var(--columns, 3), 2), 1fr);
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item {
        padding: 12px 16px;
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-name {
        font-size: 13px;
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-icon {
        width: 20px;
        height: 20px;
    }
}

@media (max-width: 480px) {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item {
        padding: 10px 14px;
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-title {
        font-size: 1.1em;
        margin-bottom: 15px;
    }
}

/* Animation Effects */
@keyframes psm-term-pulse {
    0% { box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(0, 123, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(0, 123, 255, 0); }
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:focus {
    animation: psm-term-pulse 1.5s infinite;
    outline: none;
}

/* Loading State */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100px;
    font-style: italic;
    color: #666;
}

/* Error State */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-error {
    background: #f8d7da;
    color: #721c24;
    padding: 12px 16px;
    border: 1px solid #f5c6cb;
    border-radius: 4px;
    font-size: 14px;
}

/* =============================================================================
   PSM Breadcrumbs Widget Styles
   ============================================================================= */

/* Breadcrumbs Container */
.elementor-widget-psm-breadcrumbs .psm-breadcrumbs {
    font-family: inherit;
    padding: 12px 16px;
    background: #f8f9fa;
    border-radius: 6px;
    margin: 0;
}

.elementor-widget-psm-breadcrumbs .psm-breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Vertical Layout */
.elementor-widget-psm-breadcrumbs.psm-breadcrumb-layout-vertical .psm-breadcrumb-list {
    flex-direction: column;
    align-items: flex-start;
}

/* Breadcrumb Items */
.elementor-widget-psm-breadcrumbs .psm-breadcrumb-item {
    display: inline-flex;
    align-items: center;
    font-size: 14px;
    line-height: 1.4;
    color: #666;
    transition: color 0.3s ease;
}

.elementor-widget-psm-breadcrumbs .psm-breadcrumb-item a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.elementor-widget-psm-breadcrumbs .psm-breadcrumb-item a:hover {
    color: #007bff;
    text-decoration: underline;
}

.elementor-widget-psm-breadcrumbs .psm-breadcrumb-item.current {
    font-weight: 600;
    color: #333;
}

/* Breadcrumb Separator */
.elementor-widget-psm-breadcrumbs .psm-breadcrumb-separator {
    display: inline-block;
    color: #999;
    font-weight: normal;
    user-select: none;
    margin: 0 8px;
}

/* RTL Support */
[dir="rtl"] .elementor-widget-psm-breadcrumbs .psm-breadcrumb-list {
    direction: rtl;
}

[dir="rtl"] .elementor-widget-psm-breadcrumbs .psm-breadcrumb-item:not(:last-child) {
    margin-left: 0;
    margin-right: 8px;
}

[dir="rtl"] .elementor-widget-psm-breadcrumbs.psm-breadcrumb-layout-vertical .psm-breadcrumb-item:not(:last-child) {
    margin-right: 0;
    margin-bottom: 8px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .elementor-widget-psm-breadcrumbs .psm-breadcrumbs {
        padding: 8px 12px;
    }
    
    .elementor-widget-psm-breadcrumbs .psm-breadcrumb-item {
        font-size: 13px;
    }
    
    .elementor-widget-psm-breadcrumbs .psm-breadcrumb-separator {
        margin: 0 6px;
    }
}

@media (max-width: 480px) {
    .elementor-widget-psm-breadcrumbs .psm-breadcrumb-list {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .elementor-widget-psm-breadcrumbs .psm-breadcrumb-item:not(:last-child) {
        margin-left: 0;
        margin-bottom: 4px;
    }
    
    .elementor-widget-psm-breadcrumbs .psm-breadcrumb-separator {
        display: none;
    }
}

/* =============================
   Product Info Widget
   ============================= */
.psm-product-info {
    background: #ffffff;
    border: 1px solid #e1e5e9;
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.psm-product-info.psm-info-vertical {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.psm-product-info.psm-info-horizontal {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.psm-product-info.psm-info-grid {
    display: grid;
    gap: 15px;
}

.psm-product-info.psm-info-columns-1 {
    grid-template-columns: 1fr;
}

.psm-product-info.psm-info-columns-2 {
    grid-template-columns: repeat(2, 1fr);
}

.psm-product-info.psm-info-columns-3 {
    grid-template-columns: repeat(3, 1fr);
}

.psm-product-info.psm-info-columns-4 {
    grid-template-columns: repeat(4, 1fr);
}

.psm-info-item {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 15px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-height: 80px;
}

.psm-info-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    border-color: #575757;
    background: #ffffff;
}

.psm-info-item::before {
    content: '';
    position: absolute;
    background: linear-gradient(45deg, #575757, #005a87);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.psm-info-item[data-accent="left"]::before {
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
}

.psm-info-item[data-accent="right"]::before {
    top: 0;
    right: 0;
    width: 4px;
    height: 100%;
}

.psm-info-item[data-accent="top"]::before {
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.psm-info-item[data-accent="bottom"]::before {
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.psm-info-item[data-accent="none"]::before {
    display: none;
}

.psm-info-item:hover::before {
    opacity: 1;
}

.psm-info-icon {
    margin-right: 8px;
    color: #575757;
    font-size: 18px;
    flex-shrink: 0;
    transition: all 0.3s ease;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.psm-info-item:hover .psm-info-icon {
    transform: scale(1.1);
    color: #005a87;
}

.psm-info-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.psm-info-label {
    font-weight: 600;
    color: #495057;
    margin: 0;
    font-size: 14px;
    line-height: 1.3;
    transition: all 0.3s ease;
}

.psm-info-item:hover .psm-info-label {
    color: #212529;
}

.psm-info-value {
    font-weight: 500;
    color: #212529;
    font-size: 15px;
    line-height: 1.4;
    margin: 0;
    transition: all 0.3s ease;
    word-wrap: break-word;
}

.psm-info-item:hover .psm-info-value {
    color: #000000;
    font-weight: 600;
}

/* Horizontal layout specific */
.psm-info-horizontal .psm-info-item {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    min-height: 60px;
}

.psm-info-horizontal .psm-info-content {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 15px;
}

.psm-info-horizontal .psm-info-label {
    margin: 0;
    white-space: nowrap;
}

.psm-info-horizontal .psm-info-value {
    text-align: right;
    flex-shrink: 0;
}

/* Star Rating Display */
.psm-rating-display {
    display: flex;
    align-items: center;
    gap: 5px;
}

.psm-rating-star {
    font-size: 16px;
    color: #ddd;
    transition: color 0.2s ease;
}

.psm-rating-star.active {
    color: #ffc107;
}

.psm-rating-text {
    font-size: 12px;
    color: #666;
    margin-left: 5px;
    font-weight: 500;
}

.psm-info-item:hover .psm-rating-star.active {
    color: #ffb300;
}

.psm-info-item:hover .psm-rating-text {
    color: #444;
}

/* Responsive Design */
@media (max-width: 768px) {
    .psm-product-info,
    .psm-product-info.psm-info-vertical,
    .psm-product-info.psm-info-grid {
        grid-template-columns: 1fr !important;
        gap: 12px;
        padding: 20px;
    }
    
    .psm-info-item {
        padding: 12px;
        min-height: 70px;
    }
    
    .psm-info-icon {
        font-size: 16px;
        width: 18px;
        height: 18px;
    }
    
    .psm-info-label {
        font-size: 13px;
    }
    
    .psm-info-value {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .psm-product-info {
        padding: 15px;
        border-radius: 8px;
    }
    
    .psm-info-item {
        padding: 10px;
        gap: 10px;
        min-height: 60px;
    }
}

/* Animation effects */
@keyframes slideUpInfo {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.psm-info-item {
    animation: slideUpInfo 0.3s ease-out;
}

.psm-info-item:nth-child(1) { animation-delay: 0.1s; }
.psm-info-item:nth-child(2) { animation-delay: 0.2s; }
.psm-info-item:nth-child(3) { animation-delay: 0.3s; }
.psm-info-item:nth-child(4) { animation-delay: 0.4s; }
.psm-info-item:nth-child(5) { animation-delay: 0.5s; }
.psm-info-item:nth-child(6) { animation-delay: 0.6s; }

/* Star Rating Display */
.psm-rating-display {
    display: flex;
    align-items: center;
    gap: 5px;
}

.psm-rating-star {
    font-size: 16px;
    color: #ddd;
    transition: color 0.2s ease;
}

.psm-rating-star.active {
    color: #ffc107;
}

.psm-rating-text {
    font-size: 12px;
    color: #666;
    margin-left: 5px;
    font-weight: 500;
}

.psm-info-item:hover .psm-rating-star.active {
    color: #ffb300;
}

.psm-info-item:hover .psm-rating-text {
    color: #444;
}

/* =============================
   Product Specs Cards Widget (Multi Style)
   ============================= */

/* Widget Container */
.elementor-widget-psm-product-specs-table {
    width: 100%;
}

/* Base Cards Wrapper */
.psm-specs-cards-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    width: 100%;
}

/* Full Width Layout */
.psm-specs-cards-wrapper.psm-full-width {
    display: block;
    gap: 0;
    width: 100%;
}

.psm-specs-cards-wrapper.psm-full-width .psm-specs-card {
    width: 100%;
    max-width: none;
    min-width: auto;
}

/* Base Card Style */
.psm-specs-card {
    display: flex;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    border: 1px solid #e1e5e9;
}

.psm-specs-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

/* Card Sections */
.psm-card-property,
.psm-card-value,
.psm-card-standard {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    padding: 8px 12px;
    font-size: 14px;
    line-height: 1.3;
    min-height: 40px;
    font-weight: normal; /* Default normal weight for all */
}

.psm-card-property {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    color: #000;
    font-weight: bold !important; /* Force bold only for property column */
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    width: 25%;
    border-right: 1px solid #dee2e6;
}

.psm-card-value {
    background: #ffffff;
    color: #212529;
    font-weight: normal !important;
    font-size: 15px;
    width: 60%;
    border-right: 1px solid #dee2e6;
    text-align: center;
    place-content: center !important;
}

.psm-card-standard {
    background: linear-gradient(135deg, #f1f3f4 0%, #e8eaed 100%);
    color: #6c757d;
    font-weight: normal !important; /* Force normal weight */
    font-size: 12px;
    width: 15%;
}

/* Hide Vertical Borders */
.psm-specs-cards-wrapper.psm-hide-borders .psm-card-property,
.psm-specs-cards-wrapper.psm-hide-borders .psm-card-value {
    border-right: none;
}

.psm-specs-cards-wrapper.psm-hide-borders .psm-style-ultra_simple .psm-card-property,
.psm-specs-cards-wrapper.psm-hide-borders .psm-style-ultra_simple .psm-card-value {
    border-right: none;
}

/* =============================
   STYLE 1: Modern Cards (Default - uses base styles)
   ============================= */

/* =============================
   STYLE 2: Simple Cards
   ============================= */
.psm-style-simple .psm-specs-card {
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    border: 1px solid #ddd;
}

.psm-style-simple .psm-card-property {
    background: #f5f5f5;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
}

.psm-style-simple .psm-card-standard {
    background: #fafafa;
}

.psm-style-simple .psm-specs-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
}

/* =============================
   STYLE 3: Professional Cards
   ============================= */
.psm-style-professional .psm-specs-card {
    border-radius: 6px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    border: none;
    border-left: 4px solid #575757;
}

.psm-style-professional .psm-card-property {
    background: linear-gradient(135deg, #575757 0%, #005a87 100%);
    color: #ffffff;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.psm-style-professional .psm-card-value {
    background: #ffffff;
    color: #575757;
    font-weight: 700;
    font-size: 16px;
}

.psm-style-professional .psm-card-standard {
    background: linear-gradient(135deg, #e7f3ff 0%, #cce7ff 100%);
    color: #005a87;
    font-weight: 600;
}

.psm-style-professional .psm-specs-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0, 115, 170, 0.2);
}

/* =============================
   STYLE 4: Minimal Cards
   ============================= */
.psm-style-minimal .psm-specs-card {
    border-radius: 0;
    box-shadow: none;
    border: none;
    border-bottom: 2px solid #e9ecef;
    background: transparent;
}

.psm-style-minimal .psm-card-property {
    background: transparent;
    color: #6c757d;
    font-weight: 500;
    text-transform: none;
    font-size: 13px;
    border-right: 1px solid #e9ecef;
}

.psm-style-minimal .psm-card-value {
    background: transparent;
    color: #212529;
    font-weight: 600;
    font-size: 15px;
    border-right: 1px solid #e9ecef;
}

.psm-style-minimal .psm-card-standard {
    background: transparent;
    color: #6c757d;
    font-weight: 400;
    font-size: 12px;
}

.psm-style-minimal .psm-specs-card:hover {
    transform: none;
    border-bottom-color: #575757;
    background: rgba(0, 115, 170, 0.02);
}

/* =============================
   STYLE 5: Creative Cards
   ============================= */
.psm-style-creative .psm-specs-card {
    border-radius: 20px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    border: none;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #ffffff;
    position: relative;
    overflow: visible;
}

.psm-style-creative .psm-specs-card::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
    border-radius: 22px;
    z-index: -1;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.psm-style-creative .psm-specs-card:hover::before {
    opacity: 1;
}

.psm-style-creative .psm-card-property {
    background: rgba(255, 255, 255, 0.15);
    color: #ffffff;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 11px;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.psm-style-creative .psm-card-value {
    background: rgba(255, 255, 255, 0.25);
    color: #ffffff;
    font-weight: 800;
    font-size: 16px;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.psm-style-creative .psm-card-standard {
    background: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    font-size: 11px;
}

.psm-style-creative .psm-specs-card:hover {
    transform: translateY(-5px) rotate(1deg);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

/* =============================
   STYLE 6: Ultra Simple (Text Only)
   ============================= */
.psm-style-ultra_simple .psm-specs-cards-wrapper {
    display: block;
    gap: 0;
}

.psm-style-ultra_simple .psm-specs-card {
    display: flex;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    min-height: auto;
    margin: 0 0 10px 0;
    padding: 10px 0;
    border-bottom: 1px solid #E6E6E6;
    transition: none;
    width: 100%;
}

.psm-style-ultra_simple .psm-specs-card:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.psm-style-ultra_simple .psm-specs-card:first-child {
   
    font-weight: 600;
    color: #495057;
    border-bottom: 2px solid #dee2e6;
}

.psm-style-ultra_simple .psm-specs-card:hover {
    transform: none;
    box-shadow: none;
    background: rgba(0, 0, 0, 0.02);
}

.psm-style-ultra_simple .psm-card-property,
.psm-style-ultra_simple .psm-card-value,
.psm-style-ultra_simple .psm-card-standard {
    background: transparent;
    border: none;
    border-right: 1px solid #E6E6E6;
    padding: 8px 15px;
    color: #333333;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    text-transform: none;
    letter-spacing: normal;
    min-height: auto;
}

.psm-style-ultra_simple .psm-card-property {
    text-align: left;
    width: 35%;
}

.psm-style-ultra_simple .psm-card-value {
    text-align: left;
    width: 35%;
}

.psm-style-ultra_simple .psm-card-standard {
    text-align: right;
    width: 30%;
    border-right: none;
}

.psm-style-ultra_simple .psm-specs-card:first-child .psm-card-property,
.psm-style-ultra_simple .psm-specs-card:first-child .psm-card-value,
.psm-style-ultra_simple .psm-specs-card:first-child .psm-card-standard {
    font-weight: 600;
    color: #495057;
    background: transparent !important;
    background-image: none !important;
}

/* Card Header - No background for all styles */
.psm-specs-cards-wrapper .psm-specs-card:first-child .psm-card-property,
.psm-specs-cards-wrapper .psm-specs-card:first-child .psm-card-value,
.psm-specs-cards-wrapper .psm-specs-card:first-child .psm-card-standard {
    background: transparent !important;
    background-image: none !important;
    color: inherit !important;
}

/* Animation disabled for ultra simple */
.psm-style-ultra_simple .psm-specs-card {
    opacity: 1;
    animation: none;
}

/* Responsive for ultra simple */
@media (max-width: 768px) {
    .psm-style-ultra_simple .psm-card-property,
    .psm-style-ultra_simple .psm-card-value,
    .psm-style-ultra_simple .psm-card-standard {
        padding: 6px 10px;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .psm-style-ultra_simple .psm-specs-card {
        flex-direction: column;
        border-bottom: 2px solid #E6E6E6;
    }
    
    .psm-style-ultra_simple .psm-card-property,
    .psm-style-ultra_simple .psm-card-value,
    .psm-style-ultra_simple .psm-card-standard {
        width: 100% !important;
        border-right: none !important;
        border-bottom: 1px solid #E6E6E6;
        text-align: left;
        padding: 8px 15px;
    }
    
    .psm-style-ultra_simple .psm-card-standard {
        border-bottom: none;
    }
}

/* Row Style Variations for All Styles */
.psm-card-highlight {
    border-left-width: 5px;
    border-left-color: #575757;
}

.psm-card-accent {
    border-left-width: 5px;
    border-left-color: #d63638;
}

.psm-style-modern .psm-card-highlight .psm-card-property {
    background: linear-gradient(135deg, #e7f3ff 0%, #cce7ff 100%);
    color: #575757;
}

.psm-style-modern .psm-card-highlight .psm-card-value {
    color: #575757;
    font-weight: 700;
}

.psm-style-modern .psm-card-accent .psm-card-property {
    background: linear-gradient(135deg, #ffe6e6 0%, #ffcccc 100%);
    color: #d63638;
}

.psm-style-modern .psm-card-accent .psm-card-value {
    color: #d63638;
    font-weight: 700;
}

/* Star Rating in Cards */
.psm-card-star {
    font-size: 16px;
    color: #ddd;
    margin-right: 2px;
}

.psm-card-star.active {
    color: #ffc107;
}

/* =============================================================================
   PSM Table Format Styles for Product Specs
   ============================================================================= */

/* Table Base Styles */
.psm-specs-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    font-family: inherit;
}

.psm-specs-table th,
.psm-specs-table td {
    text-align: left;
    padding: 12px 15px;
    border: 1px solid #dee2e6;
    vertical-align: top;
}

.psm-specs-table th {
    background-color: #f8f9fa;
    font-weight: 600;
    color: #495057;
    text-align: left;
}

.psm-specs-table td {
    background-color: #ffffff;
    color: #333333;
    text-align: left;
}

.psm-specs-table tbody tr:nth-child(even) td {
    background-color: #f8f9fa;
}

.psm-specs-table tbody tr:hover td {
    background-color: #e9ecef;
}

/* Taxonomy Term Links */
.psm-term-link {
    color: #575757;
    text-decoration: none;
    transition: all 0.3s ease;
    border-radius: 3px;
    padding: 1px 3px;
}

.psm-term-link:hover {
    color: #005a87;
    background-color: rgba(0, 115, 170, 0.1);
    text-decoration: underline;
}

.psm-term-link:focus {
    outline: 2px solid #575757;
    outline-offset: 1px;
}

/* Taxonomy Links in Product Info Widget */
.psm-info-value .psm-term-link {
    display: inline-block;
    margin: 0 2px;
    font-weight: 500;
}

.psm-info-value .psm-term-link:first-child {
    margin-left: 0;
}

.psm-info-value .psm-term-link:last-child {
    margin-right: 0;
}

/* Taxonomy Links in Product Specs Cards */
.psm-card-value .psm-term-link,
.psm-card-property .psm-term-link,
.psm-card-standard .psm-term-link {
    color: inherit;
    font-weight: inherit;
}

.psm-card-value .psm-term-link:hover,
.psm-card-property .psm-term-link:hover,
.psm-card-standard .psm-term-link:hover {
    color: #575757;
    background-color: rgba(0, 115, 170, 0.1);
}

/* Style variations for different card styles */
.psm-style-professional .psm-card-value .psm-term-link {
    color: #575757;
    font-weight: 700;
}

.psm-style-professional .psm-card-value .psm-term-link:hover {
    color: #005a87;
    background-color: rgba(0, 115, 170, 0.2);
}

.psm-style-creative .psm-card-value .psm-term-link {
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.psm-style-creative .psm-card-value .psm-term-link:hover {
    background-color: rgba(255, 255, 255, 0.2);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.psm-style-ultra_simple .psm-card-value .psm-term-link {
    color: #333333;
}

.psm-style-ultra_simple .psm-card-value .psm-term-link:hover {
    color: #575757;
    background-color: rgba(0, 115, 170, 0.1);
}

/* Responsive Design */
@media (max-width: 768px) {
    .psm-specs-cards-wrapper {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .psm-specs-card {
        min-height: 70px;
    }
    
    .psm-card-property,
    .psm-card-value,
    .psm-card-standard {
        padding: 12px 10px;
        font-size: 13px;
    }
    
    .psm-card-property {
        font-size: 11px;
    }
    
    .psm-card-value {
        font-size: 14px;
    }
    
    .psm-card-standard {
        font-size: 11px;
    }
}

@media (max-width: 480px) {
    .psm-specs-cards-wrapper {
        gap: 12px;
    }
    
    .psm-specs-card {
        flex-direction: column;
        min-height: auto;
    }
    
    .psm-card-property,
    .psm-card-value,
    .psm-card-standard {
        width: 100% !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        padding: 12px 15px;
        text-align: center;
    }
    
    .psm-card-standard {
        border-bottom: none;
    }
    
    .psm-style-creative .psm-card-property,
    .psm-style-creative .psm-card-value,
    .psm-style-creative .psm-card-standard {
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }
}

/* Animation Effects */
@keyframes slideInCard {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.psm-specs-card {
    opacity: 0;
    animation: slideInCard 0.4s ease-out forwards;
}

.psm-specs-card:nth-child(1) { animation-delay: 0.1s; }
.psm-specs-card:nth-child(2) { animation-delay: 0.2s; }
.psm-specs-card:nth-child(3) { animation-delay: 0.3s; }
.psm-specs-card:nth-child(4) { animation-delay: 0.4s; }
.psm-specs-card:nth-child(5) { animation-delay: 0.5s; }
.psm-specs-card:nth-child(6) { animation-delay: 0.6s; }
.psm-specs-card:nth-child(7) { animation-delay: 0.7s; }
.psm-specs-card:nth-child(8) { animation-delay: 0.8s; }



/* Responsive Design */


@media (max-width: 480px) {
    .psm-info-columns-2,
    .psm-info-columns-3,
    .psm-info-columns-4 {
        grid-template-columns: 1fr;
    }
    
    .psm-product-info {
        padding: 20px 15px;
    }
}

/* Special Value Styling */
.psm-info-value.psm-highlight {
    background: linear-gradient(45deg, #575757, #005a87);
    color: white;
    padding: 8px 12px;
    border-radius: 20px;
    font-weight: 600;
}

.psm-info-value.psm-badge {
    background: #e9ecef;
    color: #495057;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Editor Notice */
.psm-editor-notice {
    background: #fff3cd;
    border: 1px solid #ffeaa7;
    color: #856404;
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    font-style: italic;
}

/* RTL Support for Product Info */
[dir="rtl"] .psm-info-icon {
    margin-right: 0;
    margin-left: 8px;
}

[dir="rtl"] .psm-info-horizontal .psm-info-value {
    text-align: left;
    margin-left: 0;
    margin-right: 15px;
}

/* Ensure FontAwesome icons display properly */
.fas, .fa-solid {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "Font Awesome 5 Pro", "FontAwesome", sans-serif !important;
    font-weight: 900 !important;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
}

/* Icon fallbacks with Unicode symbols */
.fa-chevron-left::before { content: "‹" !important; font-size: 1.2em; }
.fa-chevron-right::before { content: "›" !important; font-size: 1.2em; }
.fa-search-plus::before { content: "🔍" !important; }
.fa-gem::before { content: "💎" !important; }
.fa-palette::before { content: "🎨" !important; }
.fa-layer-group::before { content: "📚" !important; }
.fa-info-circle::before { content: "ℹ️" !important; }

/* Force icon display */
.psm-arrow i, 
.psm-lightbox-zoom i,
.psm-info-icon i {
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* =============================================================================
   Terms Widgets - Advanced Responsive & Customization System
   ============================================================================= */

/* Responsive Variables Override */
@media (max-width: 768px) {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper {
        --psm-grid-columns: var(--grid-columns-tablet, min(var(--grid-columns, 3), 2));
        --psm-card-padding: var(--card-padding-tablet, 15px);
        --psm-grid-gap: var(--grid-gap-tablet, 12px);
        --psm-title-font-size: var(--title-font-size-tablet, 1.1em);
        --psm-term-name-font-size: var(--term-name-font-size-tablet, 13px);
        --psm-term-count-font-size: var(--term-count-font-size-tablet, 11px);
        --psm-icon-size: var(--icon-size-tablet, 20px);
        --psm-card-min-height: var(--card-min-height-tablet, 100px);
    }
}

@media (max-width: 480px) {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper {
        --psm-grid-columns: var(--grid-columns-mobile, 1);
        --psm-card-padding: var(--card-padding-mobile, 12px);
        --psm-grid-gap: var(--grid-gap-mobile, 10px);
        --psm-title-font-size: var(--title-font-size-mobile, 1em);
        --psm-term-name-font-size: var(--term-name-font-size-mobile, 12px);
        --psm-term-count-font-size: var(--term-count-font-size-mobile, 10px);
        --psm-icon-size: var(--icon-size-mobile, 18px);
        --psm-card-min-height: var(--card-min-height-mobile, 80px);
        --psm-term-flex-direction: var(--term-flex-direction-mobile, var(--term-flex-direction, column));
    }
}

/* Advanced Layout Options */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-layout="masonry"] .psm-terms-grid {
    display: grid;
    grid-template-rows: masonry;
    align-items: start;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-layout="flex"] .psm-terms-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: var(--psm-grid-align-items);
    justify-content: var(--grid-justify-content, flex-start);
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-layout="flex"] .psm-term-item {
    flex: var(--card-flex, 0 1 auto);
    min-width: var(--card-min-width, 200px);
}

/* Animation Presets */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-animation="fade-in"] .psm-term-item {
    opacity: 0;
    animation: psmFadeIn 0.6s ease-out forwards;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-animation="slide-up"] .psm-term-item {
    opacity: 0;
    transform: translateY(30px);
    animation: psmSlideUp 0.6s ease-out forwards;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-animation="scale-in"] .psm-term-item {
    opacity: 0;
    transform: scale(0.8);
    animation: psmScaleIn 0.6s ease-out forwards;
}

/* Staggered Animation Delays */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:nth-child(1) { animation-delay: 0.1s; }
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:nth-child(2) { animation-delay: 0.2s; }
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:nth-child(3) { animation-delay: 0.3s; }
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:nth-child(4) { animation-delay: 0.4s; }
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:nth-child(5) { animation-delay: 0.5s; }
.elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:nth-child(6) { animation-delay: 0.6s; }

/* Animation Keyframes */
@keyframes psmFadeIn {
    to { opacity: 1; }
}

@keyframes psmSlideUp {
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

@keyframes psmScaleIn {
    to { 
        opacity: 1; 
        transform: scale(1); 
    }
}

/* Advanced Hover Effects */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-hover="glow"] .psm-term-item:hover {
    box-shadow: 0 0 20px rgba(var(--glow-color, 0, 115, 170), 0.5);
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-hover="rotate"] .psm-term-item:hover {
    transform: rotate(var(--hover-rotate, 3deg)) var(--psm-card-transform-hover);
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-hover="bounce"] .psm-term-item:hover {
    animation: psmBounce 0.6s ease;
}

@keyframes psmBounce {
    0%, 20%, 53%, 80%, 100% { transform: translate3d(0,0,0); }
    40%, 43% { transform: translate3d(0, -8px, 0); }
    70% { transform: translate3d(0, -4px, 0); }
    90% { transform: translate3d(0, -2px, 0); }
}

/* Advanced Border Effects */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-border="gradient"] .psm-term-item {
    border: none;
    background: linear-gradient(var(--psm-card-background), var(--psm-card-background)) padding-box,
                linear-gradient(var(--gradient-direction, 45deg), var(--gradient-start, #667eea), var(--gradient-end, #764ba2)) border-box;
    border: var(--psm-card-border-width) solid transparent;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-border="dashed"] .psm-term-item {
    border-style: dashed;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-border="dotted"] .psm-term-item {
    border-style: dotted;
}

/* Typography Enhancements */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-typography="uppercase"] .psm-term-name {
    text-transform: uppercase;
    letter-spacing: 1px;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-typography="italic"] .psm-term-name {
    font-style: italic;
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-typography="shadow"] .psm-term-name {
    text-shadow: var(--text-shadow, 2px 2px 4px rgba(0,0,0,0.3));
}

/* Icon Enhancements */
.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-icon-style="circle"] .psm-term-icon {
    background: var(--psm-icon-background);
    border-radius: 50%;
    padding: var(--psm-icon-padding);
    width: calc(var(--psm-icon-size) + var(--psm-icon-padding) * 2);
    height: calc(var(--psm-icon-size) + var(--psm-icon-padding) * 2);
}

.elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-icon-style="square"] .psm-term-icon {
    background: var(--psm-icon-background);
    border-radius: var(--icon-border-radius, 4px);
    padding: var(--psm-icon-padding);
    width: calc(var(--psm-icon-size) + var(--psm-icon-padding) * 2);
    height: calc(var(--psm-icon-size) + var(--psm-icon-padding) * 2);
}

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper {
        --psm-card-background: var(--card-background-dark, #2c3e50);
        --psm-card-border-color: var(--card-border-color-dark, #34495e);
        --psm-title-color: var(--title-color-dark, #ecf0f1);
        --psm-term-name-color: var(--term-name-color-dark, #ecf0f1);
        --psm-term-count-color: var(--term-count-color-dark, #bdc3c7);
    }
}

/* High Contrast Mode */
@media (prefers-contrast: high) {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item {
        border-width: 2px;
        border-color: #000 !important;
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-name {
        color: #000 !important;
        font-weight: 700 !important;
    }
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item {
        transition: none !important;
        animation: none !important;
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item:hover {
        transform: none !important;
    }
}

/* Print Styles */
@media print {
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-grid {
        display: block !important;
        columns: 2;
        column-gap: 20px;
    }
    
    .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-item {
        break-inside: avoid;
        page-break-inside: avoid;
        box-shadow: none !important;
        border: 1px solid #000 !important;
        background: white !important;
        margin-bottom: 10px;
    }
}

/* RTL (Right-to-Left) Enhancements */
[dir="rtl"] .elementor-widget[class*="psm-"][class*="-terms"] .psm-term-icon {
    margin-left: 0;
    margin-right: var(--psm-icon-margin);
}

[dir="rtl"] .elementor-widget[class*="psm-"][class*="-terms"] .psm-terms-wrapper[data-typography="shadow"] .psm-term-name {
    text-shadow: -2px 2px 4px rgba(0,0,0,0.3);
}

/* Custom Utility Classes for Advanced Users */
.psm-terms-no-hover .psm-term-item:hover {
    transform: none !important;
    box-shadow: var(--psm-card-shadow) !important;
}

.psm-terms-force-equal-height .psm-term-item {
    height: var(--force-height, 200px);
}

.psm-terms-masonry-layout {
    column-count: var(--masonry-columns, 3);
    column-gap: var(--psm-grid-gap);
}

.psm-terms-masonry-layout .psm-term-item {
    break-inside: avoid;
    margin-bottom: var(--psm-grid-gap);
}
/* =============================================================================
   PSM Taxonomy Cards Widget Styles
   ============================================================================= */

/* Main Container */
.elementor-widget-psm-taxonomy-cards .psm-taxonomy-cards-container {
    width: 100%;
}

/* Grid Layout */
.elementor-widget-psm-taxonomy-cards .psm-taxonomy-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    width: 100%;
}

/* Card Item */
.elementor-widget-psm-taxonomy-cards .psm-card-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    min-height: 180px;
    position: relative;
    overflow: hidden;
}

.elementor-widget-psm-taxonomy-cards .psm-card-item:hover {
    text-decoration: none;
    color: inherit;
}

/* Icon Styles */
.elementor-widget-psm-taxonomy-cards .psm-card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    width: 32px;
    height: 32px;
    margin-bottom: 15px;
    color: #007cba;
}

.elementor-widget-psm-taxonomy-cards .psm-card-icon img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

/* Title Styles */
.elementor-widget-psm-taxonomy-cards .psm-card-title {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
    color: inherit;
}

/* Count Styles */
.elementor-widget-psm-taxonomy-cards .psm-card-count {
    font-size: 14px;
    color: #666666;
    margin-top: 5px;
}

/* Description Styles */
.elementor-widget-psm-taxonomy-cards .psm-card-description {
    font-size: 14px;
    color: #888888;
    line-height: 1.5;
    margin-top: 10px;
}

/* Hover Animations */
.elementor-widget-psm-taxonomy-cards .psm-hover-lift .psm-card-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.elementor-widget-psm-taxonomy-cards .psm-hover-scale .psm-card-item:hover {
    transform: scale(1.05);
}

.elementor-widget-psm-taxonomy-cards .psm-hover-glow .psm-card-item:hover {
    box-shadow: 0 0 20px rgba(0, 124, 186, 0.3);
}

.elementor-widget-psm-taxonomy-cards .psm-hover-tilt .psm-card-item:hover {
    transform: perspective(1000px) rotateX(5deg) rotateY(5deg);
}

/* No Terms Message */
.elementor-widget-psm-taxonomy-cards .psm-no-terms {
    text-align: center;
    padding: 40px 20px;
    color: #666;
    font-size: 16px;
    background: #f8f9fa;
    border-radius: 8px;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .elementor-widget-psm-taxonomy-cards .psm-taxonomy-cards-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .elementor-widget-psm-taxonomy-cards .psm-taxonomy-cards-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .elementor-widget-psm-taxonomy-cards .psm-card-item {
        padding: 15px;
        min-height: 150px;
    }

    .elementor-widget-psm-taxonomy-cards .psm-card-icon {
        font-size: 28px;
        width: 28px;
        height: 28px;
        margin-bottom: 12px;
    }

    .elementor-widget-psm-taxonomy-cards .psm-card-title {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .elementor-widget-psm-taxonomy-cards .psm-card-item {
        padding: 12px;
        min-height: 120px;
    }

    .elementor-widget-psm-taxonomy-cards .psm-card-icon {
        font-size: 24px;
        width: 24px;
        height: 24px;
        margin-bottom: 10px;
    }

    .elementor-widget-psm-taxonomy-cards .psm-card-title {
        font-size: 14px;
        margin-bottom: 8px;
    }

    .elementor-widget-psm-taxonomy-cards .psm-card-count,
    .elementor-widget-psm-taxonomy-cards .psm-card-description {
        font-size: 12px;
    }
}

/* RTL Support */
[dir="rtl"] .elementor-widget-psm-taxonomy-cards .psm-card-icon {
    margin-left: 0;
    margin-right: 0;
}
/* =============================================================================
   Slip Rating Widget Styles
   ============================================================================= */

.psm-slip-rating-container {
    width: 100%;
}

.psm-slip-rating-grid {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(5, 1fr);
}

.psm-slip-rating-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    background: #52796F;
    border-radius: 8px;
    padding: 30px;
    min-height: 150px;
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.psm-slip-rating-item:hover {
    text-decoration: none;
}

.psm-slip-rating-code {
    font-size: 2.5em;
    font-weight: bold;
    color: #ffffff;
    margin-bottom: 10px;
    line-height: 1;
}

.psm-slip-rating-title {
    font-size: 0.9em;
    color: #ffffff;
    font-weight: 500;
    line-height: 1.2;
}

/* Hover animations for Slip Rating */
.psm-hover-lift .psm-slip-rating-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
}

.psm-hover-scale .psm-slip-rating-item:hover {
    transform: scale(1.05);
}

.psm-hover-glow .psm-slip-rating-item:hover {
    box-shadow: 0 0 20px rgba(82, 121, 111, 0.6);
}

.psm-hover-tilt .psm-slip-rating-item:hover {
    transform: perspective(1000px) rotateX(10deg) rotateY(10deg);
}

/* Responsive Slip Rating */
@media (max-width: 1024px) {
    .psm-slip-rating-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .psm-slip-rating-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .psm-slip-rating-item {
        padding: 20px;
        min-height: 120px;
    }

    .psm-slip-rating-code {
        font-size: 2em;
    }

    .psm-slip-rating-title {
        font-size: 0.8em;
    }
}

@media (max-width: 480px) {
    .psm-slip-rating-grid {
        grid-template-columns: 1fr;
    }
}

/* =============================================================================
   Colour Variation Widget Styles
   ============================================================================= */

.psm-colour-variation-container {
    width: 100%;
}

.psm-colour-variation-grid {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(5, 1fr);
}

.psm-colour-variation-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    background: #52796F;
    border-radius: 8px;
    padding: 30px;
    min-height: 150px;
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.psm-colour-variation-item:hover {
    text-decoration: none;
}

.psm-colour-variation-code {
    font-size: 2.5em;
    font-weight: bold;
    color: #ffffff;
    margin-bottom: 10px;
    line-height: 1;
}

.psm-colour-variation-title {
    font-size: 0.9em;
    color: #ffffff;
    font-weight: 500;
    line-height: 1.2;
}

/* Hover animations for Colour Variation */
.psm-hover-lift .psm-colour-variation-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
}

.psm-hover-scale .psm-colour-variation-item:hover {
    transform: scale(1.05);
}

.psm-hover-glow .psm-colour-variation-item:hover {
    box-shadow: 0 0 20px rgba(82, 121, 111, 0.6);
}

.psm-hover-tilt .psm-colour-variation-item:hover {
    transform: perspective(1000px) rotateX(10deg) rotateY(10deg);
}

/* Responsive Colour Variation */
@media (max-width: 1024px) {
    .psm-colour-variation-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .psm-colour-variation-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .psm-colour-variation-item {
        padding: 20px;
        min-height: 120px;
    }

    .psm-colour-variation-code {
        font-size: 2em;
    }

    .psm-colour-variation-title {
        font-size: 0.8em;
    }
}

/* Compare Button Specific Styles */
.spc-comparison-button i,
.psm-add-compare i {
    margin-right: 6px;
    font-size: inherit;
}



.spc-comparison-button.added {
    background: #28a745 !important;
    border-color: #28a745 !important;
    color: #fff !important;
}

.spc-comparison-button.added:hover {
    background: #218838 !important;
    border-color: #218838 !important;
}

/* Grid Gap Zero Support */
.psm-product-grid.psm-gap-zero {
    gap: 0 !important;
    grid-gap: 0 !important;
}

.psm-product-grid.psm-gap-zero .psm-product-card {
    margin: 0 !important;
}

@media (max-width: 480px) {
    .psm-colour-variation-grid {
        grid-template-columns: 1fr;
    }
}

/* ===================================
   VISUAL FIELDS STYLES
   =================================== */

/* Visual Field Container - Updated for better display */
.psm-visual-field-container {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 4px 0;
    border: 1px dashed #ccc; /* Debug border */
    padding: 8px;
    background: #f9f9f9;
}

.psm-numeric-value {
    display: flex;
    align-items: baseline;
    gap: 4px;
    font-weight: 600;
    color: #333;
    margin-bottom: 4px;
}

.psm-numeric-value .psm-value {
    font-size: 1.1em;
    color: #2c5aa0;
}

.psm-numeric-value .psm-unit {
    font-size: 0.85em;
    color: #666;
    opacity: 0.8;
}

/* Visual Field Container */
.psm-visual-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 4px 0;
    border: 1px solid #ff0000; /* Debug red border */
    padding: 4px;
    min-height: 30px;
}

/* Progress Bar Styles */
.psm-progress-container {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Progress Bar Container */
.psm-progress-container {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    margin: 2px 0;
}

.psm-progress-bar {
    flex: 1;
    height: 12px;
    background-color: #e0e0e0;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    width: 100%;
    min-width: 100px;
    border: 1px solid #ccc;
}

.psm-progress-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 1.5s ease-in-out;
    position: relative;
    display: block;
    min-width: 2px;
}

.psm-progress-info {
    display: flex;
    justify-content: center;
    align-items: center;
}

.psm-progress-percentage {
    font-size: 11px;
    font-weight: bold;
    color: #666;
}

/* Animate progress bars */
.psm-animate .psm-progress-fill {
    width: 0 !important;
    animation: psm-progress-animate 2s ease-out forwards;
}

@keyframes psm-progress-animate {
    to {
        width: var(--target-width) !important;
    }
}

.psm-progress-value {
    font-size: 12px;
    font-weight: 600;
    color: #333;
    min-width: 50px;
    text-align: right;
}

/* Gauge Styles - Enhanced for visibility with SVG */
.psm-gauge-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10px 0;
    width: 100%;
    min-height: 50px;
    position: relative;
}

.psm-gauge-svg {
    width: 80px;
    height: 80px;
    transform: rotate(-90deg);
}

.psm-gauge-fill {
    transition: stroke-dashoffset 1.5s ease-in-out;
}

.psm-gauge-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.psm-gauge-percentage {
    font-size: 12px;
    font-weight: bold;
    color: #333;
}

/* Old gauge styles - keep for compatibility */
.psm-gauge {
    width: 80px;
    height: 40px;
    position: relative;
    background: linear-gradient(
        180deg,
        #e0e0e0 0%,
        #e0e0e0 50%,
        transparent 50%
    );
    border-radius: 80px 80px 0 0;
    overflow: hidden;
    border: 2px solid #ddd;
}

.psm-gauge-fill {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: conic-gradient(
        from 180deg,
        #ff4444 0deg,
        #ffaa00 90deg,
        #00cc44 180deg,
        transparent 180deg
    );
    border-radius: 80px 80px 0 0;
    transform-origin: center bottom;
    transform: rotate(0deg);
    transition: transform 2s ease-out;
}

/* Animate gauges */
.psm-animate .psm-gauge-fill {
    transform: rotate(0deg) !important;
    animation: psm-gauge-animate 2.5s ease-out forwards;
}

@keyframes psm-gauge-animate {
    to {
        transform: var(--target-rotation) !important;
    }
}

.psm-gauge-center {
    position: absolute;
    bottom: -5px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 2;
}

.psm-gauge-value {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #333;
    line-height: 1;
}

.psm-gauge-unit {
    display: block;
    font-size: 10px;
    color: #666;
    line-height: 1;
    margin-top: 2px;
}

/* Level Indicators */
.psm-level-indicator {
    display: flex;
    justify-content: center;
    margin-top: 5px;
}

.psm-level {
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.psm-level.low {
    background-color: #ffebee;
    color: #c62828;
    border: 1px solid #ffcdd2;
}

.psm-level.medium {
    background-color: #fff8e1;
    color: #f57c00;
    border: 1px solid #ffcc02;
}

.psm-level.high {
    background-color: #e8f5e8;
    color: #2e7d32;
    border: 1px solid #4caf50;
}

/* Persian Level Indicators */
.psm-level.کم {
    background-color: #ffebee;
    color: #c62828;
    border: 1px solid #ffcdd2;
}

.psm-level.متوسط {
    background-color: #fff8e1;
    color: #f57c00;
    border: 1px solid #ffcc02;
}

.psm-level.زیاد {
    background-color: #e8f5e8;
    color: #2e7d32;
    border: 1px solid #4caf50;
}

/* Card Style Integration */
.psm-style-modern .psm-visual-field {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
    padding: 8px;
}

.psm-style-professional .psm-progress-fill {
    background: linear-gradient(90deg, #1565c0 0%, #1976d2 50%, #2196f3 100%);
}

.psm-style-professional .psm-gauge-fill {
    background: conic-gradient(
        from 180deg,
        #1565c0 0deg,
        #1976d2 90deg,
        #2196f3 180deg,
        transparent 180deg
    );
}

.psm-style-creative .psm-visual-field {
    background: rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    padding: 10px;
}

.psm-style-minimal .psm-progress-bar {
    height: 4px;
}

.psm-style-minimal .psm-gauge {
    width: 60px;
    height: 30px;
}

.psm-style-ultra_simple .psm-visual-field {
    gap: 4px;
}

.psm-style-ultra_simple .psm-progress-value {
    font-size: 11px;
}

/* Responsive Visual Fields */
@media (max-width: 768px) {
    .psm-gauge {
        width: 60px;
        height: 30px;
    }
    
    .psm-gauge-value {
        font-size: 12px;
    }
    
    .psm-gauge-unit {
        font-size: 9px;
    }
    
    .psm-progress-value {
        font-size: 11px;
        min-width: 40px;
    }
    
    .psm-level {
        font-size: 9px;
        padding: 2px 6px;
    }
}

@media (max-width: 480px) {
    .psm-progress-container {
        flex-direction: column;
        gap: 4px;
    }
    
    .psm-progress-value {
        text-align: center;
        min-width: auto;
    }
    
    .psm-gauge {
        width: 50px;
        height: 25px;
    }
}

/* =============================================================================
   Product Rating Widget Styles
   ============================================================================= */

/* Base Wrapper Styles */
.psm-rating-widget {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Stars Container */
.psm-rating-stars {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    line-height: 1;
}

.psm-rating-stars i {
    color: #fbbf24;
    font-size: 18px;
}

/* Label */
.psm-rating-label {
    font-size: 14px;
    font-weight: 500;
    color: #374151;
}

/* Empty State */
.psm-rating-empty {
    font-size: 14px;
    color: #9ca3af;
    font-style: italic;
}

/* Display Style: Inline (Default) */
.psm-rating-inline {
    display: inline-flex;
}

/* Display Style: Badge */
.psm-rating-badge {
    display: inline-flex;
    padding: 6px 12px;
    background: rgba(251, 191, 36, 0.1);
    border-radius: 20px;
    border: 1px solid rgba(251, 191, 36, 0.3);
}

.psm-rating-badge .psm-rating-stars {
    gap: 3px;
}

.psm-rating-badge .psm-rating-stars i {
    font-size: 14px;
}

.psm-rating-badge .psm-rating-label {
    font-size: 13px;
    font-weight: 600;
}

/* Display Style: Card */
.psm-rating-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.psm-rating-card .psm-rating-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #6b7280;
    font-weight: 600;
}

.psm-rating-card .psm-rating-stars {
    gap: 6px;
}

.psm-rating-card .psm-rating-stars i {
    font-size: 24px;
}

/* Display Style: Detailed */
.psm-rating-detailed {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.psm-rating-detailed .psm-rating-label {
    font-size: 15px;
    font-weight: 600;
}

.psm-rating-detailed .psm-rating-stars {
    gap: 5px;
}

.psm-rating-detailed .psm-rating-stars i {
    font-size: 20px;
}

/* Grade Colors (Optional Enhancement) */
.psm-rating-stars.psm-grade-1 i {
    color: #10b981; /* Green for Grade 1 */
}

.psm-rating-stars.psm-grade-2 i {
    color: #fbbf24; /* Yellow for Grade 2 */
}

.psm-rating-stars.psm-grade-3 i {
    color: #f59e0b; /* Orange for Grade 3 */
}

.psm-rating-stars.psm-grade-4 i {
    color: #ef4444; /* Red for Grade 4 */
}

.psm-rating-stars.psm-grade-economic i {
    color: #8b5cf6; /* Purple for Economic */
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .psm-rating-card {
        padding: 12px;
    }
    
    .psm-rating-card .psm-rating-stars i {
        font-size: 20px;
    }
}
