/**
 * Troovo Shops - Base Styles
 * Dark theme is handled by unified /assets/css/theme.css
 * Shop-specific variables below map to the unified troovo theme system
 */

/* Map shop variables to unified troovo theme variables */
:root {
    --shop-accent: var(--troovo-accent, #059669);
    --shop-accent-hover: var(--troovo-accent-hover, #047857);
    --shop-bg: var(--troovo-bg, #f5f5f5);
    --shop-bg-secondary: var(--troovo-bg-secondary, #ffffff);
    --shop-bg-input: var(--troovo-bg-input, #ffffff);
    --shop-text: var(--troovo-text, #1a1a1a);
    --shop-text-muted: var(--troovo-text-muted, #595959);
    --shop-border: var(--troovo-border, #e0e0e0);
}

/* ========================================
   Dropdown styling (from main site style.css)
   ======================================== */
.dropdown-menu,.list-group-item,.modal-content{border-color:var(--troovo-border)}
.dropdown-menu,.modal-content{box-shadow:0 12px 28px rgba(0,0,0,.12);border-radius:var(--bs-border-radius-lg)}
.dropdown-item{padding:.5rem .9rem}
.dropdown-item:focus,.dropdown-item:hover{color:var(--troovo-accent);background-color:var(--troovo-bg-hover)}
.dropdown-item.active,.dropdown-item:active{color:var(--troovo-accent);background-color:var(--troovo-bg-hover)}

/* .bg-swiss is in theme.css */

.btn-swiss {
    background-color: var(--shop-accent);
    border-color: var(--shop-accent);
    color: #fff !important;
}

.btn-swiss:hover,
.btn-swiss:focus {
    background-color: var(--shop-accent-hover);
    border-color: var(--shop-accent-hover);
    color: #fff !important;
}

.btn-outline-swiss {
    background-color: transparent;
    border-color: var(--shop-accent);
    color: var(--shop-accent);
}

.btn-outline-swiss:hover,
.btn-outline-swiss:focus {
    background-color: var(--shop-accent);
    border-color: var(--shop-accent);
    color: #fff !important;
}

/* Force btn-swiss to never be transparent or inherit dark colors */
/* Override Bootstrap's internal CSS variables too */
.btn-swiss,
.btn.btn-swiss,
button.btn-swiss,
button[type="submit"].btn-swiss {
    --bs-btn-bg: var(--shop-accent);
    --bs-btn-border-color: var(--shop-accent);
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: var(--shop-accent-hover);
    --bs-btn-hover-border-color: var(--shop-accent-hover);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-active-bg: var(--shop-accent-hover);
    --bs-btn-active-border-color: var(--shop-accent-hover);
    --bs-btn-active-color: #ffffff;
    --bs-btn-disabled-bg: var(--shop-accent);
    --bs-btn-disabled-border-color: var(--shop-accent);
    --bs-btn-disabled-color: #ffffff;
    background-color: var(--shop-accent) !important;
    border-color: var(--shop-accent) !important;
    color: #ffffff !important;
}

/* .text-swiss is in theme.css */

/* Shop page container */
.shop-page {
    background-color: var(--shop-bg);
    min-height: 100vh;
}

/* Shop header/banner */
.shop-banner {
    width: 100%;
    aspect-ratio: 3 / 1;
    object-fit: cover;
    object-position: center;
    max-height: 300px;
}

/* Banner placeholder removed - no empty space when no banner */

.shop-header {
    padding: 1.5rem 0 2rem;
    border-bottom: 1px solid var(--shop-border);
    background-color: var(--shop-bg-secondary);
}

.shop-header.has-banner {
    padding-top: 1rem;
}

.shop-logo {
    width: 120px;
    height: 120px;
    border-radius: 14px;
    object-fit: cover;
    border: 4px solid var(--shop-bg);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    background-color: var(--shop-bg);
}

/* Logo overlaps banner when banner exists */
.shop-header.has-banner .shop-logo {
    margin-top: -40px;
}

.shop-name {
    color: var(--troovo-text-heading);
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.shop-description {
    color: var(--shop-text-muted);
    line-height: 1.5;
    max-width: 700px;
}

.shop-social-links a {
    color: var(--shop-text-muted);
    font-size: 1.25rem;
    margin-right: 1rem;
    transition: color 0.2s;
}

.shop-social-links a:hover {
    color: var(--shop-accent);
}

/* Shop item cards */
.shop-item-card {
    background-color: var(--shop-bg);
    border: 1px solid var(--shop-border);
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
}

.shop-item-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.shop-item-image {
    aspect-ratio: 1;
    object-fit: cover;
    width: 100%;
}

.shop-item-body {
    padding: 1rem;
}

.shop-item-title {
    color: var(--shop-text);
    font-weight: 600;
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.85em;
    line-height: 1.425;
}

.shop-item-price {
    color: var(--troovo-price);
    font-weight: 700;
    font-size: 1.1rem;
}

.shop-item-stock {
    font-size: 0.85rem;
    color: var(--shop-text-muted);
}

.shop-item-stock.out-of-stock {
    color: #dc3545;
}

/* Buy now button */
.btn-shop-buy {
    background-color: var(--shop-accent);
    border-color: var(--shop-accent);
    color: #fff;
    font-weight: 600;
}

.btn-shop-buy:hover {
    background-color: var(--shop-accent-hover);
    border-color: var(--shop-accent-hover);
    color: #fff;
}

.btn-shop-buy:disabled {
    background-color: var(--shop-text-muted);
    border-color: var(--shop-text-muted);
}

/* Shop category pills */
.shop-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.shop-category-pill {
    padding: 0.5rem 1rem;
    border-radius: 50px;
    background-color: var(--shop-bg-secondary);
    color: var(--shop-text);
    text-decoration: none;
    font-size: 0.9rem;
    border: 1px solid var(--shop-border);
    transition: all 0.2s;
}

.shop-category-pill:hover,
.shop-category-pill.active {
    background-color: var(--shop-accent);
    color: #fff;
    border-color: var(--shop-accent);
}

/* Landing page styles */
.shops-landing-hero {
    background: linear-gradient(135deg, #825ebb 0%, #8cdfd4 100%);
    color: #fff;
    padding: 2rem 0;
    text-align: center;
}

.shops-landing-hero h1 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.shops-landing-hero .lead {
    font-size: 1.25rem;
    opacity: 0.9;
    margin-bottom: 2rem;
}

.shops-benefit-card {
    padding: 2rem;
    text-align: center;
    height: 100%;
    background-color: var(--shop-bg-secondary);
    border-radius: 12px;
}

.shops-benefit-icon {
    font-size: 2.5rem;
    color: var(--troovo-text-muted);
    margin-bottom: 1rem;
}

/* Semantic colors for benefit icons */
.shops-benefit-icon .fa-google,
.shops-benefit-icon .fa-search,
.shops-benefit-icon .fa-chart-line {
    color: #3b82f6; /* blue - visibility/analytics */
}

.shops-benefit-icon .fa-shield-alt,
.shops-benefit-icon .fa-lock,
.shops-benefit-icon .fa-check-circle {
    color: #10b981; /* green - security/trust */
}

.shops-benefit-icon .fa-credit-card,
.shops-benefit-icon .fa-money-bill,
.shops-benefit-icon .fa-file-invoice {
    color: #8b5cf6; /* purple - payments/invoicing */
}

.shops-benefit-icon .fa-mobile-alt,
.shops-benefit-icon .fa-link,
.shops-benefit-icon .fa-globe {
    color: #06b6d4; /* cyan - mobile/web */
}

.shops-benefit-icon .fa-heart,
.shops-benefit-icon .fa-hand-holding-heart {
    color: #ec4899; /* pink - charity */
}

.shops-benefit-title {
    font-weight: 600;
    font-size: 1.1rem;
    margin-bottom: 0.75rem;
    color: var(--shop-text);
}

.shops-benefit-desc {
    color: var(--shop-text-muted);
    font-size: 0.95rem;
}

/* Trust badges */
.trust-badge {
    padding: 0.5rem 1.5rem;
}

.trust-score {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}

.trust-label {
    font-size: 0.8rem;
}

.shops-cta-section {
    background-color: var(--shop-bg-secondary);
    padding: 3rem 0;
    text-align: center;
}

/* Directory/Browse styles */
.shop-directory-card {
    background-color: var(--shop-bg);
    border: 1px solid var(--shop-border);
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.shop-directory-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.shop-directory-logo-wrap {
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--shop-bg-secondary, #f8f9fa);
}

.shop-directory-logo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.shop-directory-body {
    padding: 1.5rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    text-align: center;
}

.shop-directory-name {
    font-weight: 600;
    font-size: 1.15rem;
    text-align: center;
    margin-bottom: 0.25rem;
    color: var(--shop-text);
}

.shop-directory-badges {
    min-height: 1.5em;
    text-align: center;
    margin-bottom: 0.5rem;
}

.shop-directory-desc {
    text-align: center;
    margin-bottom: 2rem;
    min-height: 8.4em;
    line-height: 1.4;
    font-size: 0.9rem;
    display: -webkit-box;
    -webkit-line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.shop-directory-count {
    color: var(--shop-text-muted);
    font-size: 0.9rem;
}

.shop-directory-meta {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid var(--shop-border);
    display: flex;
    justify-content: center;
    gap: 1rem;
    align-items: center;
}

/* Touch target sizing now in theme.css */

.shop-category-pill {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

/* Footer Links styles are in theme.css */

/* Responsive adjustments */
@media (max-width: 768px) {
    .shop-logo {
        width: 90px;
        height: 90px;
    }

    .shop-header.has-banner .shop-logo {
        margin-top: -30px;
    }

    .shops-landing-hero h1 {
        font-size: 2rem;
    }

    .shop-banner {
        max-height: 150px;
    }

    .shop-header {
        padding: 1.5rem 0;
    }
}

/* Dark theme is now handled by unified /assets/css/theme.css */

/* Comparison Table styles are in theme.css */

/* ========================================
   Category Sidebar (Hierarchical Navigation)
   ======================================== */
.shop-category-sidebar {
    background-color: var(--shop-bg-secondary);
    border: 1px solid var(--shop-border);
    border-radius: var(--bs-border-radius-lg);
    padding: 1rem;
    position: sticky;
    top: 1rem;
}

.shop-category-sidebar .sidebar-title {
    font-weight: 600;
    color: var(--shop-text);
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--shop-border);
}

.sidebar-category-link {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    color: var(--shop-text);
    text-decoration: none;
    border-radius: var(--bs-border-radius);
    transition: background-color 0.2s, color 0.2s;
    margin-bottom: 0.25rem;
}

.sidebar-category-link:hover {
    background-color: var(--troovo-bg-hover, rgba(0,0,0,0.04));
    color: var(--shop-accent);
}

.sidebar-category-link.active {
    background-color: var(--shop-accent);
    color: #fff;
}

.sidebar-category-link.active .badge {
    background-color: rgba(255,255,255,0.2) !important;
    color: #fff !important;
}

.sidebar-category-link.active i {
    color: #fff !important;
}

.sidebar-category {
    margin-left: 0;
}

.sidebar-subcategory {
    margin-left: 1.25rem;
    border-left: 2px solid var(--shop-border);
    padding-left: 0.5rem;
}

.sidebar-subcategory .sidebar-subcategory {
    margin-left: 1rem;
}

.sidebar-children {
    margin-top: 0.25rem;
}

/* Mobile: Collapsible sidebar */
@media (max-width: 991.98px) {
    .shop-category-sidebar {
        position: static;
        margin-bottom: 1rem;
    }
}

/* ========================================
   Breadcrumbs (Shop Category Navigation)
   ======================================== */
.breadcrumb {
    background-color: transparent;
    padding: 0;
    margin-bottom: 0;
}

.breadcrumb-item a {
    color: var(--shop-text-muted);
    text-decoration: none;
}

.breadcrumb-item a:hover {
    color: var(--shop-accent);
}

.breadcrumb-item.active {
    color: var(--shop-text);
}

/* ========================================
   Dashboard Category Tree
   ======================================== */
.category-tree {
    background: var(--shop-bg-secondary);
}

.category-item {
    transition: background-color 0.2s;
}

.category-row:hover {
    background-color: var(--troovo-bg-hover, rgba(0,0,0,0.02));
}

.category-actions {
    opacity: 0.5;
    transition: opacity 0.2s;
}

.category-row:hover .category-actions {
    opacity: 1;
}

.category-children {
    border-left: 2px solid var(--shop-border);
    margin-left: 1rem;
}

.toggle-children i {
    transition: transform 0.2s;
}

.toggle-children.collapsed i {
    transform: rotate(-90deg);
}

/* ========================================
   Image Lightbox
   ======================================== */
.image-lightbox {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.92);
    z-index: 1060;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s, visibility 0.2s;
}

.image-lightbox.active {
    opacity: 1;
    visibility: visible;
}

.image-lightbox img {
    max-width: 95%;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.4);
}

.image-lightbox .lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    color: #fff;
    font-size: 2.5rem;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s;
    line-height: 1;
}

.image-lightbox .lightbox-close:hover {
    opacity: 1;
}

.image-lightbox .lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: #fff;
    font-size: 2.5rem;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s;
    padding: 1rem;
}

.image-lightbox .lightbox-nav:hover {
    opacity: 1;
}

.image-lightbox .lightbox-prev {
    left: 1rem;
}

.image-lightbox .lightbox-next {
    right: 1rem;
}

.image-lightbox .lightbox-counter {
    position: absolute;
    bottom: 1.5rem;
    color: #fff;
    font-size: 0.9rem;
    opacity: 0.8;
}

/* Make carousel images look clickable */
.carousel-item img,
.product-thumbnail {
    cursor: zoom-in;
}
