/* NexaStore Storefront — CSS v3 — RTL mobile fixes */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* RTL on Android Chrome behaves badly with overflow-x:clip — revert to hidden.
   To preserve position:sticky for the header (which `overflow-x:hidden` on html
   would break), we keep the rule on body only and ensure html stays default. */
html { width: 100%; overflow-x: hidden; }
body { width: 100%; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
/* When the off-canvas mobile menu is open, lock the page underneath so RTL
   transforms can't push content out of the viewport. */
body.menu-open { overflow: hidden; touch-action: none; }

:root {
    --primary: #E53935;
    --primary-hover: #C62828;
    --primary-light: #FFF0F0;
    --secondary: #1A1A2E;
    --accent: #FF6F00;
    --text: #212121;
    --text-muted: #757575;
    --text-light: #9E9E9E;
    --bg: #FFFFFF;
    --bg-gray: #F7F7F9;
    --border: #EEEEEE;
    --border-dark: #E0E0E0;
    /* Scheme tokens (Site Color Scheme engine feeds these on <body>) */
    --surface: #FFFFFF;
    --surface-2: #F2F2F5;
    --heading: #212121;
    --header-bg: #FFFFFF;
    --header-text: #212121;
    --footer-bg: #1A1A2E;
    --footer-text: #FFFFFF;
    --footer-text-dim: rgba(255,255,255,0.7);
    --success: #43A047;
    --warning: #FB8C00;
    --info: #4285F4;
    --radius: 8px;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
    --shadow: 0 2px 12px rgba(0,0,0,0.08);
    --shadow-lg: 0 8px 30px rgba(0,0,0,0.12);
    --transition: 0.25s ease;
    --header-h: 64px;
    --header-row-h: 64px;
}

body { font-family: 'Inter', 'Noto Kufi Arabic', -apple-system, sans-serif; background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.6; }
body[dir="rtl"] { font-family: 'Noto Kufi Arabic', 'Inter', sans-serif; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button { font-family: inherit; }

/* ── Announcement ──────────────────────────────────────── */
.announcement-bar { background: var(--primary); color: #fff; text-align: center; padding: 8px 16px; font-size: 12px; font-weight: 500; }
/* Moving (marquee) announcement bar — two copies of the text scroll seamlessly */
.announcement-bar.announcement-moving { overflow: hidden; padding-left: 0; padding-right: 0; white-space: nowrap; }
/* The track is built by JS into two identical halves, each wider than the
   viewport, so a copy always covers the whole bar (never empties). It scrolls
   exactly one half-width (translateX -50%) and loops seamlessly. Duration is
   set by JS from the width so the speed is constant and calm regardless of how
   long the message is. Until JS runs, --ann-duration keeps a sane default.
   The track is forced to LTR layout (predictable left origin) so the SAME
   gap-free keyframe works in RTL too; the Arabic text still renders RTL inside
   each unit, and physical padding-right keeps spacing uniform either way. */
.announcement-moving .announcement-track { direction: ltr; display: inline-flex; flex-wrap: nowrap; white-space: nowrap; will-change: transform; animation: announcementScroll var(--ann-duration, 22s) linear infinite; }
.announcement-moving .announcement-track .announcement-unit { flex: 0 0 auto; padding-right: 3rem; }
body[dir="rtl"] .announcement-moving .announcement-track .announcement-unit { direction: rtl; }
.announcement-moving:hover .announcement-track { animation-play-state: paused; }
@keyframes announcementScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* In an RTL bar the track is right-anchored (its right edge sits at the bar's
   right edge, extending left off-screen). Moving it left would expose the right
   side, so it must scroll right instead. The track keeps direction:ltr, so its
   two halves are still identical and the +50% loop is seamless and gap-free. */
body[dir="rtl"] .announcement-moving .announcement-track { animation-name: announcementScrollRtl; }
@keyframes announcementScrollRtl { from { transform: translateX(0); } to { transform: translateX(50%); } }
@media (prefers-reduced-motion: reduce) { .announcement-moving .announcement-track { animation: none; } }

/* ── Header ────────────────────────────────────────────── */
.store-header { background: var(--header-bg, #fff); position: fixed; top: 0; left: 0; right: 0; z-index: 100; transition: box-shadow 0.3s; margin: 0; padding: 0; border: none; display: flex; flex-direction: column; }
.store-header.scrolled { box-shadow: 0 2px 14px rgba(0,0,0,.08); border-bottom: 1px solid var(--border); }
/* Reserve space at top of body so content doesn't slip under fixed header.
   --header-h is set by JS once the header has rendered (see store.js). */
body { padding-top: var(--header-h, 64px); }

/* Header inner — 3-column: left | center | right */
.header-inner { max-width: 1280px; width: 100%; margin: 0 auto; padding: 0 20px; height: var(--header-row-h); display: flex; align-items: center; gap: 16px; }
.header-left { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.header-logo { flex-shrink: 0; }
.header-logo img { height: 36px; width: auto; }
.header-logo .logo-text { font-size: 22px; font-weight: 700; color: var(--header-text, var(--secondary)); white-space: nowrap; }
.header-search { display: flex; width: 100%; border: 2px solid var(--border-dark); border-radius: 25px; overflow: hidden; transition: border-color 0.2s; }
.header-search:focus-within { border-color: var(--primary); }
.header-search input { flex: 1; padding: 9px 18px; border: none; outline: none; font-size: 14px; font-family: inherit; min-width: 0; background: transparent; }
.header-search button { padding: 9px 16px; background: var(--primary); color: #fff; border: none; cursor: pointer; border-radius: 0 22px 22px 0; display: flex; align-items: center; }
body[dir="rtl"] .header-search button { border-radius: 22px 0 0 22px; }
.header-right { display: flex; align-items: center; gap: 16px; flex-shrink: 0; margin-left: auto; }
body[dir="rtl"] .header-right { margin-left: 0; margin-right: auto; }
.header-nav { display: flex; align-items: center; gap: 20px; }
.header-nav a { font-size: 13px; font-weight: 500; color: var(--header-nav-text, var(--header-text, var(--text))); transition: color var(--transition); white-space: nowrap; }
.header-nav a:hover, .header-nav a.active { color: var(--primary); }
.header-actions { display: flex; align-items: center; gap: 4px; }
.header-action-btn { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: var(--header-nav-text, var(--header-text, var(--text))); position: relative; transition: all var(--transition); }
.header-action-btn:hover { background: var(--bg-gray); color: var(--primary); }
.header-action-btn svg { width: 20px; height: 20px; }
.header-action-btn .badge-count { position: absolute; top: 2px; right: 2px; background: var(--primary); color: #fff; width: 16px; height: 16px; border-radius: 50%; font-size: 9px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
body[dir="rtl"] .header-action-btn .badge-count { right: auto; left: 2px; }
.header-lang { font-size: 12px; padding: 5px 12px; border: 1px solid var(--border-dark); border-radius: 20px; color: var(--text); font-weight: 500; transition: all var(--transition); white-space: nowrap; }
.header-lang:hover { border-color: var(--primary); color: var(--primary); }
.mobile-menu-btn { display: none; background: none; border: none; cursor: pointer; color: var(--header-nav-text, var(--header-text, var(--text))); padding: 6px; flex-shrink: 0; }
.mobile-menu-btn svg { width: 24px; height: 24px; }
.desktop-only { display: flex; }

/* ── Mobile Slide Menu (WoodMart style) ────────────────── */
.mobile-menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 200; opacity: 0; visibility: hidden; transition: all 0.3s; }
.mobile-menu-overlay.show { opacity: 1; visibility: visible; }
.mobile-slide-menu { position: fixed; top: 0; width: 300px; max-width: 85vw; height: 100vh; background: var(--surface, #fff); z-index: 201; overflow-y: auto; box-shadow: var(--shadow-lg); transition: transform 0.3s ease; left: 0; right: auto; transform: translateX(-100%); }
body[dir="rtl"] .mobile-slide-menu { left: auto; right: 0; transform: translateX(100%); }
.mobile-slide-menu.open { transform: translateX(0) !important; }

/* Sidebar search */
.mm-search { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.mm-search form { display: flex; flex: 1; border: 1px solid var(--border-dark); border-radius: 20px; overflow: hidden; }
.mm-search input { flex: 1; padding: 9px 14px; border: none; outline: none; font-size: 13px; font-family: inherit; min-width: 0; }
.mm-search button[type="submit"] { padding: 9px 12px; background: none; border: none; cursor: pointer; color: var(--text-muted); display: flex; align-items: center; }
.mm-close { background: none; border: none; cursor: pointer; color: var(--text-muted); padding: 4px; flex-shrink: 0; }

/* Tabs */
.mm-tabs { display: flex; border-bottom: 2px solid var(--border); }
.mm-tab { flex: 1; padding: 14px 12px; font-size: 12px; font-weight: 700; text-align: center; background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; font-family: inherit; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; transition: all 0.2s; }
.mm-tab.active { color: var(--text); border-bottom-color: var(--text); }

/* Panels */
.mobile-menu-panel { display: none; }
.mobile-menu-panel.active { display: block; }

/* Category links */
/* Mobile menu — categories with optional subcategory accordion */
.mm-cat-item { border-bottom: 1px solid var(--bg-gray); }
.mm-cat-row { display: flex; align-items: stretch; }
.mm-cat-link {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
    min-width: 0;
}
.mm-cat-link:hover, .mm-cat-link:focus { background: var(--bg-gray); color: var(--primary); }
.mm-cat-icon { font-size: 18px; flex-shrink: 0; }
.mm-cat-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }

.mm-cat-toggle {
    flex-shrink: 0;
    width: 48px;
    background: transparent;
    border: none;
    border-inline-start: 1px solid var(--bg-gray);
    cursor: pointer;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
}
.mm-cat-toggle:hover { background: var(--bg-gray); color: var(--primary); }
.mm-cat-toggle svg { transition: transform 0.25s ease; }
.mm-cat-item.expanded .mm-cat-toggle svg { transform: rotate(180deg); color: var(--primary); }

.mm-subcat-wrap {
    background: linear-gradient(to bottom, rgba(0,0,0,0.025), transparent);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}
.mm-cat-item.expanded .mm-subcat-wrap { max-height: 600px; }

.mm-subcat-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 20px 10px 38px;
    font-size: 13px;
    color: var(--text-muted);
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
}
[dir="rtl"] .mm-subcat-link { padding: 10px 38px 10px 20px; }
.mm-subcat-link:hover { color: var(--primary); background: var(--bg-gray); }
.mm-subcat-bullet {
    width: 5px; height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.4;
    flex-shrink: 0;
}

/* Menu links */
.mm-menu-link { display: block; padding: 14px 20px; font-size: 14px; font-weight: 500; color: var(--text); border-bottom: 1px solid var(--bg-gray); transition: background 0.15s; }
.mm-menu-link:hover { background: var(--bg-gray); color: var(--primary); }
.mm-divider { height: 1px; background: var(--border); margin: 4px 0; }

/* ── Shop Banner ───────────────────────────────────────── */
.shop-banner { background: var(--secondary); color: #fff; text-align: center; padding: 36px 20px 28px; margin-top: -6px; }
.shop-banner h1 { font-size: 28px; font-weight: 700; margin-bottom: 6px; }
/* Shop categories — native horizontal scroll strip (finger-drag + arrows) */
.shop-cat-carousel {
    position: relative;
    margin-top: 22px;
    padding: 0 56px;        /* room for prev/next arrows */
}
.shop-cat-strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding: 2px 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
    cursor: grab;
}
.shop-cat-strip::-webkit-scrollbar { display: none; }
.shop-cat-strip.dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; user-select: none; }
.shop-cat-strip a {
    flex: 0 0 auto;
    scroll-snap-align: start;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    color: rgba(255,255,255,0.85);
    font-size: 13px;
    font-weight: 500;
    padding: 8px 18px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.04);
    transition: background var(--transition), color var(--transition), border-color var(--transition);
    white-space: nowrap;
    text-decoration: none;
    line-height: 1.2;
}
.shop-cat-strip a:hover, .shop-cat-strip a.active {
    background: var(--surface, #fff);
    color: var(--secondary, #1a1d2e);
    border-color: #fff;
}
.shop-cat-strip a .count { font-size: 11px; opacity: 0.55; margin-inline-start: 4px; }
.shop-cat-strip a:hover .count, .shop-cat-strip a.active .count { opacity: 0.5; }

/* Prev / Next arrows */
.shop-cat-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 38px; height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.18);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
    backdrop-filter: blur(6px);
    z-index: 2;
}
.shop-cat-arrow:hover { background: #fff; color: var(--secondary, #1a1d2e); border-color: #fff; }
.shop-cat-arrow.prev { left: 6px; }
.shop-cat-arrow.next { right: 6px; }
[dir="rtl"] .shop-cat-arrow.prev { left: auto; right: 6px; }
[dir="rtl"] .shop-cat-arrow.next { right: auto; left: 6px; }
[dir="rtl"] .shop-cat-arrow svg { transform: scaleX(-1); }
.shop-cat-arrow:disabled { opacity: 0; pointer-events: none; }

@media (max-width: 768px) {
    .shop-cat-carousel { padding: 0 44px; margin-top: 16px; }
    .shop-cat-arrow { width: 32px; height: 32px; }
    .shop-cat-strip { gap: 6px; }
    .shop-cat-strip a { font-size: 12.5px; padding: 7px 14px; max-width: 70vw; }
}

/* Legacy fallback if JS doesn't initialize */
.shop-categories {
    display: flex;
    gap: 8px;
    margin-top: 18px;
    justify-content: center;
    flex-wrap: wrap;
    scrollbar-width: none;
}
.shop-categories::-webkit-scrollbar { display: none; }
.shop-categories a {
    color: rgba(255,255,255,0.78);
    font-size: 13px;
    font-weight: 500;
    padding: 7px 16px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.04);
    transition: all var(--transition);
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none;
}
.shop-categories a:hover, .shop-categories a.active {
    background: var(--surface, #fff);
    color: var(--secondary, #1a1d2e);
    border-color: #fff;
}
.shop-categories a .count { font-size: 11px; opacity: 0.6; margin-inline-start: 3px; }

.shop-container { max-width: 1280px; margin: 0 auto; padding: 24px 16px; display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 28px; }
/* The content column is a grid item; without min-width:0 it defaults to
   min-width:auto and a wide child (long product name, the sort <select>, a
   multi-image card) can push it past the viewport, collapsing the grid to a
   single visible column with the next peeking off-screen. Pin it to shrink. */
.shop-main { min-width: 0; }
.shop-sidebar { position: sticky; top: calc(var(--header-h) + 20px); align-self: start; }
.sidebar-widget { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.sidebar-widget:last-child { border-bottom: none; }
.sidebar-widget h4 { font-size: 13px; font-weight: 600; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.3px; }
.price-range { display: flex; gap: 8px; align-items: center; }
.price-range input { flex: 1; width: 100%; min-width: 0; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius); font-size: 13px; outline: none; font-family: inherit; }
.price-range input:focus { border-color: var(--primary); }
.filter-btn { width: 100%; padding: 9px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 13px; font-weight: 600; cursor: pointer; margin-top: 10px; }
.shop-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 10px; }
.shop-toolbar .results-count { font-size: 13px; color: var(--text-muted); }
.shop-toolbar select { padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius); font-size: 13px; font-family: inherit; background: var(--surface, #fff); outline: none; }

/* ── Product Grid ──────────────────────────────────────── */
.products-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

/* ── Product Card ──────────────────────────────────────── */
.product-card { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: all var(--transition); background: var(--surface, #fff); position: relative; display: flex; flex-direction: column; }
.product-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); border-color: transparent; }
.product-card .card-image { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--bg-gray); }
.product-card .card-image-slider { position: relative; width: 100%; height: 100%; }
.product-card .card-image-slider img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 16px; opacity: 0; transition: opacity 0.3s; }
.product-card .card-image-slider img.active { opacity: 1; position: relative; }
.product-card .card-slider-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,0.9); border: 1px solid var(--border); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; z-index: 2; opacity: 0; transition: opacity 0.2s; box-shadow: var(--shadow-sm); }
.product-card:hover .card-slider-btn { opacity: 1; }
.product-card .card-slider-btn.prev { left: 6px; }
.product-card .card-slider-btn.next { right: 6px; }
body[dir="rtl"] .product-card .card-slider-btn.prev { left: auto; right: 6px; }
body[dir="rtl"] .product-card .card-slider-btn.next { right: auto; left: 6px; }
.product-card .card-badges { position: absolute; top: 8px; left: 8px; display: flex; flex-direction: column; gap: 4px; z-index: 3; }
body[dir="rtl"] .product-card .card-badges { left: auto; right: 8px; }
.product-card .card-badge { padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; color: #fff; }
.card-badge.sale { background: var(--primary); }
.card-badge.sold-out { background: #333; }
.card-badge.new { background: var(--success); }
.product-card .card-actions { position: absolute; top: 8px; right: 8px; display: flex; flex-direction: column; gap: 6px; z-index: 3; }
body[dir="rtl"] .product-card .card-actions { right: auto; left: 8px; }
.product-card .card-actions button { width: 32px; height: 32px; border-radius: 50%; background: var(--surface, #fff); border: 1px solid var(--border); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all var(--transition); box-shadow: var(--shadow-sm); font-size: 14px; }
.product-card .card-actions button:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.product-card .card-body { padding: 14px; flex: 1; display: flex; flex-direction: column; }
.product-card .card-title { font-size: 14px; font-weight: 600; margin-bottom: 2px; line-height: 1.3; color: var(--text); display: block; }
.product-card .card-title:hover { color: var(--primary); }
.product-card .card-category { font-size: 12px; color: var(--text-light); margin-bottom: 6px; }
.product-card .card-rating { display: flex; align-items: center; gap: 2px; margin-bottom: 6px; }
.product-card .card-rating .stars { color: #FFC107; font-size: 13px; letter-spacing: -1px; }
.product-card .card-rating .stars-empty { color: #DDD; font-size: 13px; letter-spacing: -1px; }
.product-card .card-stock { display: flex; align-items: center; gap: 4px; font-size: 12px; margin-bottom: 8px; }
.product-card .card-stock.in-stock { color: var(--success); }
.product-card .card-stock.out-of-stock { color: var(--text-light); }
.product-card .card-price-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; flex-wrap: wrap; gap: 6px; }
.product-card .card-price .current { font-size: 16px; font-weight: 700; color: var(--primary); }
.product-card .card-price .original { font-size: 12px; color: var(--text-light); text-decoration: line-through; margin-inline-start: 6px; }
.product-card .card-color-swatches { display: flex; gap: 4px; align-items: center; }
.product-card .card-color-swatches .swatch { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--border); }
.product-card .card-options { display: flex; gap: 4px; margin-bottom: 10px; flex-wrap: wrap; }
.product-card .card-options .opt-btn { padding: 3px 8px; border: 1px solid var(--border); border-radius: 4px; font-size: 11px; color: var(--text-muted); background: none; }
.product-card .card-select-btn { display: block; width: 100%; padding: 10px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 13px; font-weight: 600; cursor: pointer; text-align: center; transition: all var(--transition); margin-top: auto; font-family: inherit; }
.product-card .card-select-btn:hover { filter: brightness(0.92); }
.product-card .card-sku { font-size: 11px; color: var(--text-light); margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--bg-gray); }

/* ── Product Page ──────────────────────────────────────── */
.product-page { max-width: 1280px; margin: 0 auto; padding: 24px 16px; }
.breadcrumbs { font-size: 12px; color: var(--text-light); margin-bottom: 20px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.breadcrumbs a { color: var(--text-muted); }
.breadcrumbs a:hover { color: var(--primary); }
.product-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-bottom: 40px; }
.product-info { min-width: 0; }
.product-gallery { position: sticky; top: calc(var(--header-h) + 20px); align-self: start; min-width: 0; }
.gallery-main { position: relative; aspect-ratio: 1; background: var(--bg-gray); border-radius: var(--radius); overflow: hidden; margin-bottom: 12px; touch-action: pan-y; cursor: grab; }
.gallery-main img { width: 100%; height: 100%; object-fit: contain; padding: 20px; cursor: zoom-in; transition: transform 0.3s; }
.gallery-main:hover img { transform: scale(1.1); }
.gallery-nav-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; background: var(--surface, #fff); border: 1px solid var(--border); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-sm); z-index: 2; }
.gallery-nav-btn:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.gallery-nav-btn.prev { left: 10px; }
.gallery-nav-btn.next { right: 10px; }
body[dir="rtl"] .gallery-nav-btn.prev { left: auto; right: 10px; }
body[dir="rtl"] .gallery-nav-btn.next { right: auto; left: 10px; }
.gallery-zoom-btn { position: absolute; bottom: 12px; left: 12px; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.9); border: 1px solid var(--border); cursor: pointer; display: flex; align-items: center; justify-content: center; }
body[dir="rtl"] .gallery-zoom-btn { left: auto; right: 12px; }
.gallery-thumbs { display: flex; gap: 8px; overflow-x: auto; }
.gallery-thumbs .thumb { position: relative; width: 70px; height: 70px; border: 2px solid var(--border); border-radius: var(--radius); overflow: hidden; cursor: pointer; flex-shrink: 0; background: var(--bg-gray); }
.gallery-thumbs .thumb.active { border-color: var(--primary); }
.gallery-thumbs .thumb img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.gallery-thumbs .thumb video { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumbs .thumb .thumb-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 24px; height: 24px; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; font-size: 9px; display: flex; align-items: center; justify-content: center; pointer-events: none; padding-left: 1px; }
.gallery-video { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: #000; z-index: 1; }
.gallery-video video { width: 100%; height: 100%; object-fit: contain; background: #000; }
.gallery-video iframe { width: 100%; aspect-ratio: 16/9; max-height: 100%; border: 0; display: block; }
.product-info h1 { font-size: 24px; font-weight: 700; line-height: 1.3; margin-bottom: 8px; }
.product-meta { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; }
.product-rating { display: flex; align-items: center; gap: 4px; }
.product-rating .stars { color: #FFC107; font-size: 14px; }
.product-rating .count { font-size: 12px; color: var(--text-muted); }
.product-sku { font-size: 12px; color: var(--text-light); }
.product-price-box { margin: 16px 0; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.product-price-box .price { font-size: 28px; font-weight: 700; color: var(--primary); }
.product-price-box .compare-price { font-size: 16px; color: var(--text-light); text-decoration: line-through; }
.product-price-box .discount-badge { background: var(--primary); color: #fff; padding: 3px 10px; border-radius: 4px; font-size: 12px; font-weight: 700; }
.product-option-group { margin-bottom: 16px; }
.product-option-group .option-label { font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.product-option-group .option-label span { color: var(--text-muted); font-weight: 400; }
.option-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
.option-buttons .opt-btn { padding: 8px 18px; border: 1px solid var(--border-dark); border-radius: var(--radius); font-size: 13px; font-weight: 500; background: var(--surface, #fff); cursor: pointer; transition: all var(--transition); }
.option-buttons .opt-btn:hover { border-color: var(--text); }
.option-buttons .opt-btn.selected { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }
.option-buttons .opt-btn .opt-price-adj { font-size: 11px; color: var(--text-muted); display: block; margin-top: 2px; }
.option-buttons .opt-btn.selected .opt-price-adj { color: var(--primary); }
.color-swatches { display: flex; gap: 8px; }
.color-swatches .swatch { width: 32px; height: 32px; border-radius: 50%; border: 3px solid transparent; cursor: pointer; transition: all var(--transition); box-shadow: inset 0 0 0 1px rgba(0,0,0,0.1); }
.color-swatches .swatch:hover { transform: scale(1.15); }
.color-swatches .swatch.selected { border-color: var(--primary); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--primary); }
.product-add-section { display: flex; gap: 10px; margin: 20px 0; align-items: center; flex-wrap: wrap; }
.qty-selector { display: flex; align-items: center; border: 1px solid var(--border-dark); border-radius: var(--radius); overflow: hidden; }
.qty-selector button { width: 40px; height: 44px; background: var(--bg-gray); border: none; cursor: pointer; font-size: 18px; color: var(--text); }
.qty-selector input { width: 50px; height: 44px; text-align: center; border: none; font-size: 15px; font-weight: 600; font-family: inherit; outline: none; }
.btn-add-cart { flex: 1; min-width: 120px; padding: 12px 20px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 15px; font-weight: 600; cursor: pointer; transition: all var(--transition); font-family: inherit; }
/* Matched CTA geometry — themes may recolour and retype these two buttons,
   but their BOX must stay identical or one ends up visibly taller. */
.btn-add-cart, .btn-buy-now {
    min-height: 52px; padding-block: 0; line-height: 1.2;
    display: inline-flex; align-items: center; justify-content: center;
    box-sizing: border-box; text-align: center;
}
.btn-add-cart:hover { background: var(--primary-hover); }
.btn-buy-now { padding: 12px 20px; background: var(--accent); color: #fff; border: none; border-radius: var(--radius); font-size: 15px; font-weight: 600; cursor: pointer; font-family: inherit; }
.product-actions-row { display: flex; gap: 16px; margin-bottom: 16px; font-size: 13px; flex-wrap: wrap; }
.product-actions-row a, .product-actions-row button { display: flex; align-items: center; gap: 5px; color: var(--text-muted); background: none; border: none; cursor: pointer; font-size: 13px; font-family: inherit; }
.product-actions-row a:hover, .product-actions-row button:hover { color: var(--primary); }
.watching-badge { display: flex; align-items: center; gap: 8px; padding: 10px 16px; background: var(--bg-gray); border-radius: var(--radius); font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }

/* ── Product Extra Features ────────────────────────────── */
.pef-section { margin-bottom: 16px; }
.pef-shipping { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.pef-shipping .pef-row { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.pef-shipping .pef-row:last-child { border-bottom: none; }
.pef-row .pef-icon { width: 36px; height: 36px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.pef-row .pef-icon img { width: 28px; height: 28px; object-fit: contain; }
.pef-row .pef-details { flex: 1; min-width: 0; }
.pef-row .pef-details strong { display: block; font-size: 13px; font-weight: 600; }
.pef-row .pef-details small { color: var(--text-light); font-size: 12px; }
.pef-row .pef-extra { font-size: 13px; color: var(--text-muted); white-space: nowrap; }
.pef-row .pef-price { font-weight: 600; color: var(--success); white-space: nowrap; font-size: 14px; }
.pef-guarantees { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-top: 12px; }
.pef-guarantees .pef-row { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.pef-guarantees .pef-row:last-child { border-bottom: none; }
.pef-guarantees .pef-price { color: var(--info); font-size: 13px; font-weight: 500; }

/* ── Product Tabs ──────────────────────────────────────── */
.product-tabs { border-top: 1px solid var(--border); padding-top: 30px; margin-top: 30px; }
.product-tabs .tabs-nav { display: flex; gap: 0; border-bottom: 2px solid var(--border); margin-bottom: 24px; overflow-x: auto; }
.product-tabs .tabs-nav button { padding: 12px 20px; font-size: 14px; font-weight: 600; color: var(--text-muted); background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; transition: all var(--transition); font-family: inherit; white-space: nowrap; }
.product-tabs .tabs-nav button:hover { color: var(--text); }
.product-tabs .tabs-nav button.active { color: var(--primary); border-bottom-color: var(--primary); }
.product-tabs .tab-panel { display: none; }
.product-tabs .tab-panel.active { display: block; animation: fadeIn 0.3s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.tab-description { font-size: 14px; line-height: 1.8; }
.reviews-summary { text-align: center; margin-bottom: 24px; }
.reviews-summary .big-rating { font-size: 48px; font-weight: 700; }
.reviews-summary .stars { color: #FFC107; font-size: 20px; margin: 4px 0; }
.related-section { margin-top: 40px; }
.related-section h2 { font-size: 20px; font-weight: 700; margin-bottom: 20px; }

/* Related products carousel — a horizontal snap-scroll shelf with arrow
   controls. Cards keep the store's product-card look; the track scrolls by
   drag/swipe on touch and by the arrows on desktop. Theme-variable based so
   it feels native on every template, and RTL-aware. */
.related-carousel { position: relative; }
.related-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding-bottom: 6px;
    scrollbar-width: thin;
}
.related-track::-webkit-scrollbar { height: 5px; }
.related-track::-webkit-scrollbar-track { background: transparent; }
.related-track::-webkit-scrollbar-thumb { background: var(--border-dark, #ccc); border-radius: 3px; }
.related-card {
    flex: 0 0 auto;
    width: calc(25% - 12px);
    min-width: 220px;
    scroll-snap-align: start;
}
.related-arrow {
    position: absolute;
    top: calc(50% - 20px);
    transform: translateY(-50%);
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e5e5e5);
    color: var(--text, #222);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    z-index: 3;
    box-shadow: var(--shadow-md, 0 4px 14px rgba(0,0,0,.12));
    transition: background .18s, color .18s, opacity .18s, transform .18s;
}
.related-arrow:hover { background: var(--primary, #E53935); color: #fff; border-color: var(--primary, #E53935); }
.related-arrow.prev { inset-inline-start: -8px; }
.related-arrow.next { inset-inline-end: -8px; }
.related-arrow[hidden] { display: none; }
/* Flip the chevrons under RTL so they point the right way */
body[dir="rtl"] .related-arrow svg { transform: scaleX(-1); }

/* ── Footer ────────────────────────────────────────────── */
.store-footer { background: var(--footer-bg, var(--secondary)); color: var(--footer-text-dim, rgba(255,255,255,0.8)); padding: 50px 16px 24px; margin-top: 60px; }
.footer-inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 30px; margin-bottom: 40px; }
.footer-col h4 { color: var(--footer-text, #fff); font-size: 14px; font-weight: 600; margin-bottom: 16px; text-transform: uppercase; letter-spacing: 0.5px; }
.footer-col p { font-size: 13px; line-height: 1.8; margin-bottom: 12px; }
.footer-col a { display: block; font-size: 13px; color: var(--footer-text-dim, rgba(255,255,255,0.6)); padding: 3px 0; }
.footer-col a:hover { color: var(--footer-text, #fff); }
/* Footer contact lines (phone, email) with proper SVG icons */
.footer-contact-line { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; font-size: 13px; }
body[dir="rtl"] .footer-contact-line { flex-direction: row-reverse; justify-content: flex-end; }
.footer-contact-icon { width: 14px; height: 14px; flex-shrink: 0; opacity: 0.65; }

/* Footer social row - circular brand icons */
.footer-social { display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; }
.footer-social .social-icon {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    display: inline-flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,0.7);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(4px);
}
.footer-social .social-icon svg { width: 16px; height: 16px; transition: transform 0.25s; }
.footer-social .social-icon:hover {
    background: var(--brand, var(--primary));
    border-color: var(--brand, var(--primary));
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.25);
}
.footer-social .social-icon:hover svg { transform: scale(1.1); }

/* WhatsApp floating action button - polished with pulse */
.whatsapp-float {
    position: fixed; bottom: 24px; right: 24px;
    z-index: 9990;
    display: flex; align-items: center;
    text-decoration: none;
}
body[dir="rtl"] .whatsapp-float { right: auto; left: 24px; flex-direction: row-reverse; }

/* Hover-reveal label */
.whatsapp-float-label {
    max-width: 0; overflow: hidden; white-space: nowrap;
    background: #fff; color: #075E54; font-weight: 800; font-size: 14px; line-height: 1;
    border-radius: 999px; box-shadow: 0 6px 18px rgba(0,0,0,0.16);
    opacity: 0; padding: 0; margin: 0;
    transition: max-width .35s cubic-bezier(.4,0,.2,1), opacity .25s, padding .35s, margin .35s;
}
.whatsapp-float:hover .whatsapp-float-label { max-width: 220px; opacity: 1; padding: 13px 18px; margin-inline-end: 10px; }
body[dir="rtl"] .whatsapp-float:hover .whatsapp-float-label { margin-inline-end: 0; margin-inline-start: 10px; }

/* Green circular button */
.whatsapp-float-ico {
    position: relative; flex-shrink: 0;
    width: 58px; height: 58px;
    background: #25D366; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; color: #fff;
    box-shadow:
        0 8px 20px rgba(37,211,102,0.4),
        0 2px 6px rgba(37,211,102,0.25),
        inset 0 -2px 0 rgba(0,0,0,0.06);
    transition: transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s;
    animation: waFloatIn .5s ease-out both;
}
.whatsapp-float:hover .whatsapp-float-ico {
    transform: scale(1.08) translateY(-2px);
    box-shadow: 0 12px 28px rgba(37,211,102,0.5), 0 4px 10px rgba(37,211,102,0.3);
}
.whatsapp-float:active .whatsapp-float-ico { transform: scale(0.96); }
.whatsapp-float-ico svg { width: 30px; height: 30px; position: relative; z-index: 2; }

/* Pulse ring */
.whatsapp-pulse {
    position: absolute; inset: 0; border-radius: 50%; background: #25D366;
    opacity: 0; z-index: 1;
    animation: waPulse 2.4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes waPulse {
    0% { transform: scale(1); opacity: 0.55; }
    70% { transform: scale(1.7); opacity: 0; }
    100% { transform: scale(1.7); opacity: 0; }
}
@keyframes waFloatIn {
    from { transform: scale(0) rotate(-30deg); opacity: 0; }
    to { transform: scale(1) rotate(0); opacity: 1; }
}
.footer-bottom { max-width: 1280px; margin: 0 auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.1); display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: rgba(255,255,255,0.4); flex-wrap: wrap; gap: 8px; }
.footer-newsletter-form { display: flex; gap: 6px; margin-top: 8px; }
.footer-newsletter-form input { flex: 1; min-width: 0; padding: 9px 12px; border: 1px solid rgba(255,255,255,0.2); border-radius: 6px; background: rgba(255,255,255,0.08); color: #fff; font-size: 13px; outline: none; font-family: inherit; }
.footer-newsletter-form button { padding: 9px 16px; background: var(--primary); color: #fff; border: none; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; white-space: nowrap; }

/* ── WhatsApp Float ────────────────────────────────────── */
.whatsapp-float-OLD-REMOVED { display: none; }

/* ── Mobile Bottom Nav ─────────────────────────────────── */
.mobile-bottom-nav { display: none; position: fixed; bottom: 0; left: 0; right: 0; background: var(--surface, #fff); border-top: 1px solid var(--border); z-index: 100; padding: 4px 0 env(safe-area-inset-bottom, 4px); }
.mobile-bottom-nav .nav-items { display: flex; justify-content: space-around; }
.mobile-bottom-nav .nav-item { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 10px; color: var(--text-muted); padding: 6px 8px; white-space: nowrap; }
.mobile-bottom-nav .nav-item.active { color: var(--primary); }
.mobile-bottom-nav .nav-item svg { width: 22px; height: 22px; flex-shrink: 0; }

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 1024px) {
    .products-grid { grid-template-columns: repeat(3, 1fr); }
    .related-card { width: calc(33.333% - 11px); }
    .product-main { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .product-gallery { position: static; }
    .footer-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    .header-nav { display: none; }
    .desktop-only { display: none !important; }
    .mobile-menu-btn { display: flex; }
    .mobile-bottom-nav { display: block; }
    body { padding-bottom: 58px; }

    /* Product page: keep the action buttons and variant options on-screen on
       narrow viewports. qty + add-to-cart share the first row; buy-now gets its
       own full-width row so it can never be pushed off the edge. */
    .product-add-section { flex-wrap: wrap; }
    .product-add-section .qty-selector { flex: 0 0 auto; }
    .product-add-section .btn-add-cart { flex: 1 1 auto; }
    .product-add-section .btn-buy-now { flex: 1 1 100%; }
    .product-page, .product-main, .product-info { max-width: 100%; }
    .vr-terms { width: 100%; }

    /* Mobile header: burger (left) | logo (center) | lang+cart (right) */
    .header-inner { padding: 0 12px; gap: 0; position: relative; justify-content: space-between; height: 56px; }
    .header-left { flex: 0 0 auto; }
    .header-logo { position: absolute; left: 50%; transform: translateX(-50%); }
    body[dir="rtl"] .header-logo { left: auto; right: 50%; transform: translateX(50%); }
    .header-logo img { height: 28px; }
    .header-logo .logo-text { font-size: 18px; }
    .header-right { flex: 0 0 auto; gap: 4px; }
    .header-actions { gap: 2px; }
    .header-action-btn { width: 34px; height: 34px; }
    .header-action-btn svg { width: 20px; height: 20px; }
    .header-lang { font-size: 11px; padding: 4px 10px; }

    .shop-container { grid-template-columns: 1fr; padding: 16px 10px; }
    .shop-sidebar { display: none; }
    .shop-sidebar.show { display: block; position: static; }
    /* Two-column shop grid. `min-width: 0` on the grid AND the cards is the fix
       for the second card overflowing off-screen: grid/flex items default to
       min-width:auto, so a long product name (or any wide child) forces the
       1fr track wider than half the viewport and pushes the next column out of
       view. Pinning min-width:0 lets the tracks shrink to the available space,
       and max-width:100% keeps every card child inside its column. */
    .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; }
    .products-grid > .product-card { min-width: 0; max-width: 100%; }
    .product-card .card-body { padding: 10px; min-width: 0; }
    .product-card .card-body > * { min-width: 0; max-width: 100%; }
    .product-card .card-title {
        font-size: 13px;
        /* clamp long names to two lines instead of forcing the card wider */
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
        overflow: hidden; word-break: break-word; overflow-wrap: anywhere;
    }
    .product-card .card-category { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .product-card .card-slider-btn { opacity: 1; width: 24px; height: 24px; font-size: 12px; }
    .product-card .card-select-btn { font-size: 12px; padding: 8px; }
    .product-card .card-price .current { font-size: 14px; }
    .product-card .card-price-row { flex-wrap: wrap; gap: 6px; min-width: 0; }
    .product-card .card-price { min-width: 0; }
    .product-card .card-price .current,
    .product-card .card-price .original { word-break: break-word; }

    .product-page { padding: 16px 10px; }
    .product-info h1 { font-size: 20px; }
    .product-price-box .price { font-size: 22px; }

    .footer-inner { grid-template-columns: 1fr; gap: 24px; }
    .footer-bottom { flex-direction: column; text-align: center; }
    .whatsapp-float { bottom: 68px; }
    .related-card { width: calc(50% - 8px); min-width: 0; }
    .related-arrow { display: none; }   /* swipe on phones instead of arrows */
    .shop-banner { padding: 28px 16px 22px; }
    .shop-banner h1 { font-size: 22px; }
}

/* ============================================================
   HOMEPAGE SECTIONS — Phase 3
   ============================================================ */

/* (header-search styles moved to header section above) */
/* (old mobile-search-bar placeholder removed) */

/* ── Mobile Menu Tabs ──────────────────────────────────── */
/* (old mobile menu tabs removed - now using .mm-tabs above) */

/* ── Hero Slider ───────────────────────────────────────── */
.hero-section { position: relative; overflow: hidden; margin: -6px 0 0 0; padding: 0; line-height: 0; touch-action: pan-y; cursor: grab; }
.hero-slider { position: relative; width: 100%; line-height: 1.6; aspect-ratio: 16 / 9; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s ease; display: flex; align-items: center; justify-content: center; }
.hero-slide.active { opacity: 1; z-index: 1; }
.hero-slide-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-slide-img.mobile-img { display: none; }
.hero-slide-video {
    width: 100%;
    height: 100%;
    display: block;
    background: #000;
    object-fit: cover;
    aspect-ratio: 16 / 9;
}
iframe.hero-slide-video {
    aspect-ratio: 16 / 9;
    border: 0;
    pointer-events: none;
}
@media (max-width: 768px) {
    .hero-slide-video { aspect-ratio: 16 / 9; }
    iframe.hero-slide-video { aspect-ratio: 16 / 9; }
}
.hero-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.3); pointer-events: none; }
.hero-content { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 24px; }
.hero-title { font-size: 38px; font-weight: 700; margin-bottom: 10px; line-height: 1.2; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.hero-subtitle { font-size: 16px; opacity: 0.9; margin-bottom: 20px; text-shadow: 0 1px 4px rgba(0,0,0,0.3); }
.hero-btn { display: inline-block; padding: 14px 36px; background: var(--primary); color: #fff; border-radius: var(--radius); font-weight: 600; font-size: 15px; transition: all var(--transition); }
.hero-btn:hover { background: var(--primary-hover); color: #fff; transform: translateY(-2px); }
/* If no image uploaded, show a colored bg fallback */
.hero-slide-placeholder { width: 100%; min-height: 350px; background: var(--secondary); }
.hero-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,0.9); border: none; cursor: pointer; font-size: 20px; z-index: 3; display: flex; align-items: center; justify-content: center; transition: all var(--transition); }
.hero-nav:hover { background: #fff; box-shadow: var(--shadow); }
.hero-nav.prev { left: 20px; }
.hero-nav.next { right: 20px; }
body[dir="rtl"] .hero-nav.prev { left: auto; right: 20px; }
body[dir="rtl"] .hero-nav.next { right: auto; left: 20px; }
.hero-dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 3; }
.hero-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.5); cursor: pointer; transition: all 0.3s; }
.hero-dot.active { background: #fff; transform: scale(1.3); }

/* ── Search Bar (mobile) ──────────────────────────────── */
.mobile-search-bar { display: none; background: var(--primary); padding: 8px 12px 10px; margin: 0; line-height: 1; position: relative; }
.mobile-search-bar::after { content: ''; position: absolute; bottom: -4px; left: 0; right: 0; height: 5px; background: var(--primary); }
.mobile-search-bar form { display: flex; gap: 0; background: var(--surface, #fff); border-radius: 22px; overflow: hidden; margin: 0; line-height: normal; }
.mobile-search-bar input { flex: 1; padding: 10px 16px; border: none; outline: none; font-size: 13px; font-family: inherit; min-width: 0; background: transparent; }
.mobile-search-bar button { padding: 10px 14px; background: var(--primary); border: none; cursor: pointer; color: #fff; display: flex; align-items: center; border-radius: 0 22px 22px 0; }
body[dir="rtl"] .mobile-search-bar button { border-radius: 22px 0 0 22px; }

/* ── Features Bar ──────────────────────────────────────── */
.features-bar { border-bottom: 1px solid var(--border); overflow-x: auto; }
.features-inner { max-width: 1280px; margin: 0 auto; display: flex; padding: 16px 20px; gap: 30px; }
.feature-item { display: flex; align-items: center; gap: 10px; white-space: nowrap; flex-shrink: 0; }
.feature-icon { font-size: 18px; color: var(--primary); }
.feature-item strong { font-size: 13px; display: block; }
.feature-item span { font-size: 11px; color: var(--text-light); }

/* ── Home Sections ─────────────────────────────────────── */
.home-section { padding: 40px 0; }
.section-inner { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.section-header h2 { font-size: 22px; font-weight: 700; }
.section-link { font-size: 13px; font-weight: 600; color: var(--primary); }
.section-link:hover { text-decoration: underline; }

/* Products horizontal scroll */
.products-scroll { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
/* View: Slider */
.products-scroll.view-slider { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.products-scroll.view-slider::-webkit-scrollbar { height: 4px; }
.products-scroll.view-slider::-webkit-scrollbar-thumb { background: var(--border-dark); border-radius: 2px; }
.products-scroll.view-slider .product-card { min-width: 220px; max-width: 260px; flex-shrink: 0; scroll-snap-align: start; }
/* View: Masonry */
.products-scroll.view-masonry { columns: 4; column-gap: 16px; display: block; }
.products-scroll.view-masonry .product-card { break-inside: avoid; margin-bottom: 16px; display: inline-block; width: 100%; }

/* Categories views */
.categories-grid.view-slider { display: flex; overflow-x: auto; gap: 16px; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.categories-grid.view-slider::-webkit-scrollbar { height: 4px; }
.categories-grid.view-slider::-webkit-scrollbar-thumb { background: var(--border-dark); border-radius: 2px; }
.categories-grid.view-slider .category-card { min-width: 260px; flex-shrink: 0; }

/* ── Categories Grid ───────────────────────────────────── */
.categories-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.category-card { display: flex; align-items: center; gap: 16px; padding: 16px; border: 1px solid var(--border); border-radius: var(--radius); transition: all var(--transition); background: var(--surface, #fff); }
.category-card:hover { box-shadow: var(--shadow); border-color: transparent; transform: translateY(-2px); }
.category-img { width: 90px; height: 90px; border-radius: var(--radius); overflow: hidden; background: var(--bg-gray); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.category-img img { width: 100%; height: 100%; object-fit: cover; }
.category-img span { font-size: 32px; }
.category-info strong { font-size: 15px; display: block; margin-bottom: 4px; color: var(--text); }
.category-info span { font-size: 12px; color: var(--text-light); }

/* ── Promo Banners Grid ────────────────────────────────── */
.promo-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.promo-card { position: relative; border-radius: var(--radius); overflow: hidden; min-height: 200px; display: flex; align-items: center; transition: all var(--transition); }
.promo-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.promo-img-desktop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.promo-img-mobile { display: none; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.promo-overlay { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.promo-content { position: relative; z-index: 2; padding: 24px; }
.promo-subtitle { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; opacity: 0.8; display: block; margin-bottom: 6px; }
.promo-content h3 { font-size: 22px; font-weight: 700; margin-bottom: 12px; line-height: 1.2; }
.promo-btn { display: inline-block; padding: 8px 18px; border: 1px solid currentColor; border-radius: var(--radius); font-size: 13px; font-weight: 600; transition: all var(--transition); }
.promo-btn:hover { background: rgba(0,0,0,0.1); }

/* ── Why Choose Us ─────────────────────────────────────── */
.why-choose-layout { display: flex; flex-direction: column; gap: 36px; }
.why-choose-header { text-align: center; max-width: 720px; margin: 0 auto; }
.why-choose-heading { font-size: 32px; font-weight: 800; margin-bottom: 12px; line-height: 1.2; letter-spacing: -0.5px; }
.why-choose-heading .accent { color: var(--primary); }
.why-choose-desc { color: var(--text-muted); font-size: 14px; line-height: 1.7; margin: 0; }

/* Body: image on one side, items on the other */
.why-choose-body { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.why-choose-body.no-media { grid-template-columns: 1fr; max-width: 800px; margin: 0 auto; }

.why-choose-media { position: relative; }
.why-choose-media img { width: 100%; border-radius: 12px; display: block; }
.why-choose-video { position: relative; }
.play-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; border-radius: 50%; background: rgba(255,255,255,0.9); display: flex; align-items: center; justify-content: center; font-size: 24px; box-shadow: var(--shadow); }

/* Items: vertical list (single column) — reads well next to a hero image */
.why-choose-items { display: flex; flex-direction: column; gap: 22px; }
.why-item { display: flex; gap: 14px; align-items: flex-start; }
.why-number {
    font-size: 18px; font-weight: 700; color: var(--primary);
    flex-shrink: 0; line-height: 1.2;
    min-width: 24px; padding-top: 2px;
}
.why-icon-wrap { width: 44px; flex-shrink: 0; display: flex; align-items: flex-start; padding-top: 2px; }
.why-icon { width: 38px; height: 38px; object-fit: contain; }
.why-content h4 { font-size: 16px; font-weight: 700; margin-bottom: 6px; line-height: 1.3; }
.why-content p { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin: 0; }

@media (max-width: 800px) {
    .why-choose-body { grid-template-columns: 1fr; gap: 24px; }
    .why-choose-heading { font-size: 24px; }
}

/* ── Story Section ─────────────────────────────────────── */
/* Story — full-bleed cinematic banner */
.story-banner {
    position: relative;
    width: 100%;
    min-height: 460px;
    display: flex;
    align-items: center;
    background-color: var(--secondary);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
}
.story-banner-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.story-banner .section-inner { position: relative; z-index: 2; width: 100%; }
.story-banner-content {
    max-width: 600px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
}
.story-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 12px;
    font-weight: 700;
    color: var(--accent);
}
.story-banner-title {
    font-size: clamp(28px, 4.2vw, 52px);
    line-height: 1.12;
    font-weight: 800;
    letter-spacing: -0.01em;
    margin: 0;
    text-shadow: 0 1px 24px rgba(0,0,0,0.28);
}
.story-banner-text {
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.85;
    margin: 0;
    max-width: 60ch;
    text-shadow: 0 1px 14px rgba(0,0,0,0.25);
}
.story-banner-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    padding: 14px 30px;
    background: var(--primary);
    color: #fff;
    border-radius: var(--radius);
    font-weight: 700;
    font-size: 15px;
    box-shadow: 0 10px 26px rgba(0,0,0,0.25);
    transition: background var(--transition), transform var(--transition);
}
.story-banner-btn:hover { background: var(--primary-hover); transform: translateY(-2px); }
.story-btn-arrow { font-size: 17px; line-height: 1; }
[dir="rtl"] .story-btn-arrow { transform: scaleX(-1); }

/* Text position (logical, RTL-aware) */
.story-banner.story-pos-start  .story-banner-content { margin-inline-end: auto; }
.story-banner.story-pos-end    .story-banner-content { margin-inline-start: auto; }
.story-banner.story-pos-center { justify-content: center; }
.story-banner.story-pos-center .story-banner-content { margin-inline: auto; align-items: center; text-align: center; }

/* ── Flash Sale Countdown ──────────────────────────────── */
.countdown { display: flex; gap: 8px; }
.cd-box { background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 12px; text-align: center; min-width: 55px; }
.cd-box span { font-size: 22px; font-weight: 700; display: block; }
.cd-box small { font-size: 10px; color: var(--text-light); text-transform: uppercase; }

/* ── Newsletter ────────────────────────────────────────── */
.newsletter-form { display: flex; gap: 8px; max-width: 450px; margin: 0 auto; }
.newsletter-form input { flex: 1; padding: 12px 16px; border: 1px solid rgba(255,255,255,0.3); border-radius: var(--radius); background: rgba(255,255,255,0.1); color: #fff; font-size: 14px; outline: none; font-family: inherit; min-width: 0; }
.newsletter-form input::placeholder { color: rgba(255,255,255,0.5); }
.newsletter-form button { padding: 12px 24px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 14px; font-weight: 600; cursor: pointer; font-family: inherit; white-space: nowrap; }

/* ── Contact Section ───────────────────────────────────── */
.contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.contact-item { display: flex; gap: 14px; align-items: start; padding: 20px; border: 1px solid var(--border); border-radius: var(--radius); }
.contact-icon { font-size: 24px; flex-shrink: 0; }
.contact-item strong { font-size: 14px; display: block; margin-bottom: 4px; }
.contact-item p { font-size: 13px; color: var(--text-muted); margin: 0; }

/* ── Homepage Responsive ───────────────────────────────── */
@media (max-width: 1024px) {
    .story-banner { min-height: 380px; }
    .story-banner-content { max-width: 100%; gap: 14px; }
}

@media (max-width: 768px) {
    .header-inner > .search-wrapper { display: none; }
    .mobile-search-bar { display: block; }

    .hero-slide-img.desktop-img { display: none; }
    .hero-slide-img.mobile-img { display: block; }
    .hero-title { font-size: 22px; }
    .hero-subtitle { font-size: 13px; }
    .hero-nav { width: 32px; height: 32px; font-size: 16px; }
    .hero-nav.prev { left: 8px; }
    .hero-nav.next { right: 8px; }
    body[dir="rtl"] .hero-nav.prev { left: auto; right: 8px; }
    body[dir="rtl"] .hero-nav.next { right: auto; left: 8px; }

    .features-inner { gap: 16px; padding: 12px 16px; }
    .feature-item strong { font-size: 12px; }

    .home-section { padding: 28px 0; }
    .section-header h2 { font-size: 18px; }
    .section-inner { padding: 0 12px; }

    .products-scroll { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .categories-grid { grid-template-columns: 1fr; }
    .promo-grid { grid-template-columns: 1fr; }
    .promo-card.has-mobile-img .promo-img-desktop { display: none; }
    .promo-card.has-mobile-img .promo-img-mobile { display: block; }
    .promo-content h3 { font-size: 18px; }

    .why-choose-heading { font-size: 22px; }
    .countdown { gap: 4px; }
    .cd-box { padding: 6px 8px; min-width: 45px; }
    .cd-box span { font-size: 18px; }
    .newsletter-form { flex-direction: column; }
}

/* ============================================================
   PHASE 4 — Cart Sidebar, Cart Page, Checkout, Confirmation
   ============================================================ */

/* ── Cart Sidebar ──────────────────────────────────────── */
.cart-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 300; opacity: 0; visibility: hidden; transition: all 0.3s; }
.cart-overlay.show { opacity: 1; visibility: visible; }
.cart-sidebar { position: fixed; top: 0; right: 0; width: 400px; max-width: 90vw; height: 100vh; background: var(--surface, #fff); z-index: 301; transform: translateX(100%); transition: transform 0.3s ease; display: flex; flex-direction: column; box-shadow: var(--shadow-lg); }
body[dir="rtl"] .cart-sidebar { right: auto; left: 0; transform: translateX(-100%); }
.cart-sidebar.open { transform: translateX(0) !important; }
.cart-sidebar-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
.cart-sidebar-header h3 { font-size: 18px; font-weight: 700; }
.cart-sidebar-header button { background: none; border: none; font-size: 14px; cursor: pointer; color: var(--text-muted); display: flex; align-items: center; gap: 4px; font-family: inherit; }
.cart-sidebar-items { flex: 1; overflow-y: auto; padding: 12px 20px; }
.cart-empty-msg { text-align: center; padding: 40px 20px; color: var(--text-muted); font-size: 14px; }
.cart-sidebar-item { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--bg-gray); position: relative; }
.cart-item-img { width: 64px; height: 64px; object-fit: contain; border-radius: 6px; background: var(--bg-gray); flex-shrink: 0; }
.cart-item-info { flex: 1; min-width: 0; }
.cart-item-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; line-height: 1.3; }
.cart-item-sku { font-size: 10px; color: var(--text-light); }
.cart-item-opts { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.cart-item-qty-row { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.cart-qty-mini { display: flex; align-items: center; border: 1px solid var(--border); border-radius: 4px; }
.cart-qty-mini button { width: 26px; height: 26px; background: var(--bg-gray); border: none; cursor: pointer; font-size: 14px; }
.cart-qty-mini span { width: 28px; text-align: center; font-size: 13px; font-weight: 600; }
.cart-item-price { font-size: 13px; color: var(--primary); font-weight: 600; }
.cart-item-remove { position: absolute; top: 14px; right: 0; background: none; border: none; font-size: 18px; cursor: pointer; color: var(--text-light); line-height: 1; }
body[dir="rtl"] .cart-item-remove { right: auto; left: 0; }

.cart-sidebar-footer { border-top: 1px solid var(--border); padding: 16px 20px; flex-shrink: 0; }
.cart-sidebar-subtotal { display: flex; justify-content: space-between; font-size: 18px; font-weight: 700; margin-bottom: 12px; }
.cart-sidebar-subtotal span:last-child { color: var(--primary); }
.cart-sidebar-freeship { margin-bottom: 14px; font-size: 13px; color: var(--text-muted); }
.cart-sidebar-freeship strong { color: var(--primary); }
.fs-qualified { color: var(--success) !important; font-weight: 600; }
.fs-bar { width: 100%; height: 6px; background: var(--bg-gray); border-radius: 3px; margin-top: 6px; overflow: hidden; }
.fs-fill { height: 100%; background: linear-gradient(90deg, var(--primary), var(--info)); border-radius: 3px; transition: width 0.3s; }
.cart-sidebar-viewcart { display: block; width: 100%; padding: 11px; text-align: center; border: 1px solid var(--border-dark); border-radius: var(--radius); font-size: 14px; font-weight: 600; margin-bottom: 8px; transition: all var(--transition); }
.cart-sidebar-viewcart:hover { border-color: var(--text); }
.cart-sidebar-checkout { display: block; width: 100%; padding: 12px; text-align: center; background: var(--info); color: #fff; border-radius: var(--radius); font-size: 14px; font-weight: 600; transition: all var(--transition); }
.cart-sidebar-checkout:hover { background: #3367D6; color: #fff; }

/* ── Cart Page ─────────────────────────────────────────── */
.cart-page { max-width: 1280px; margin: 0 auto; padding: 30px 20px; }
.cart-page-title { font-size: 26px; font-weight: 700; margin-bottom: 20px; }
.cart-empty { text-align: center; padding: 60px 20px; }
.cart-empty h3 { margin: 12px 0 20px; color: var(--text-muted); }
.btn-continue-shop { display: inline-block; padding: 12px 28px; background: var(--primary); color: #fff; border-radius: var(--radius); font-weight: 600; font-size: 14px; }
.free-ship-bar { padding: 16px 20px; background: var(--bg-gray); border-radius: var(--radius); margin-bottom: 20px; }
.free-ship-bar p { font-size: 14px; margin-bottom: 8px; }
.free-ship-bar strong { color: var(--primary); }
.free-ship-progress { height: 8px; background: var(--border); border-radius: 4px; overflow: hidden; }
.free-ship-fill { height: 100%; background: linear-gradient(90deg, var(--primary), var(--success)); border-radius: 4px; }
.cart-layout { display: grid; grid-template-columns: 1fr 340px; gap: 24px; }
.cart-table-wrap { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.cart-table { width: 100%; border-collapse: collapse; }
.cart-table th { padding: 12px 16px; font-size: 13px; font-weight: 600; text-align: left; border-bottom: 2px solid var(--border); }
body[dir="rtl"] .cart-table th { text-align: right; }
.cart-table td { padding: 16px; vertical-align: middle; border-bottom: 1px solid var(--bg-gray); }
.cart-td-remove { width: 30px; }
.cart-remove-btn { font-size: 20px; color: var(--text-light); }
.cart-remove-btn:hover { color: var(--primary); }
.cart-product-row { display: flex; align-items: center; gap: 12px; }
.cart-product-img { width: 70px; height: 70px; object-fit: contain; border-radius: 6px; background: var(--bg-gray); }
.cart-product-row strong { font-size: 13px; display: block; }
.cart-product-opts { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.cart-td-price { font-size: 14px; }
.cart-qty { display: flex; align-items: center; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.cart-qty button { width: 34px; height: 36px; background: var(--bg-gray); border: none; cursor: pointer; font-size: 16px; }
.cart-qty input { width: 40px; height: 36px; text-align: center; border: none; font-size: 14px; font-weight: 600; outline: none; font-family: inherit; }
.cart-td-total { font-size: 15px; }
.cart-actions-row { display: flex; justify-content: space-between; align-items: center; padding: 16px; gap: 12px; flex-wrap: wrap; }
.cart-coupon-row { display: flex; gap: 8px; align-items: center; }
.cart-coupon-input { padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--radius); font-size: 13px; outline: none; font-family: inherit; min-width: 180px; }
.cart-coupon-btn { padding: 10px 18px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; }
.cart-coupon-remove { color: var(--primary); font-size: 18px; }
.cart-update-btn { padding: 10px 20px; border: 1px solid var(--border-dark); border-radius: var(--radius); background: var(--surface, #fff); font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; }
.cart-totals { border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; position: sticky; top: calc(var(--header-h) + 20px); }
.cart-totals h3 { font-size: 20px; font-weight: 700; margin-bottom: 16px; }
.ct-row { display: flex; justify-content: space-between; padding: 10px 0; font-size: 14px; border-bottom: 1px solid var(--bg-gray); }
.ct-discount span:last-child { color: var(--success); }
.ct-total { border-bottom: none; font-size: 18px; font-weight: 700; border-top: 2px solid var(--border); padding-top: 14px; }
.ct-total-price { color: var(--primary); }
.ct-shipping { padding: 12px 0; border-bottom: 1px solid var(--bg-gray); }
.ct-shipping strong { font-size: 14px; display: block; margin-bottom: 8px; }
.ct-ship-option { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 13px; cursor: pointer; gap: 8px; }
.ct-ship-option input { margin: 0; }
.cart-checkout-btn { display: block; width: 100%; padding: 14px; text-align: center; background: var(--primary); color: #fff; border-radius: var(--radius); font-size: 16px; font-weight: 600; margin-top: 16px; }
.cart-checkout-btn:hover { background: var(--primary-hover); color: #fff; }

/* ── Checkout Page ─────────────────────────────────────── */
.checkout-page { max-width: 1280px; margin: 0 auto; padding: 30px 20px; }
.checkout-title { font-size: 26px; font-weight: 700; margin-bottom: 20px; }
.checkout-errors { margin-bottom: 16px; }
.checkout-error { padding: 8px 14px; background: #FFEBEE; color: #C62828; border-radius: 6px; font-size: 13px; margin-bottom: 6px; }
.checkout-layout { display: grid; grid-template-columns: 1fr 420px; gap: 30px; }
.checkout-form h3 { font-size: 18px; font-weight: 700; margin-bottom: 14px; }
.checkout-fields { display: flex; flex-wrap: wrap; gap: 14px; }
.checkout-field { width: 100%; }
.checkout-field.half { width: calc(50% - 7px); }
.checkout-field label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 5px; }
.checkout-field .req { color: var(--primary); }
.checkout-input { width: 100%; padding: 10px 14px; border: 1px solid var(--border-dark); border-radius: var(--radius); font-size: 14px; font-family: inherit; outline: none; transition: border-color 0.2s; }
.checkout-input:focus { border-color: var(--primary); }
.checkout-shipping { display: flex; flex-direction: column; gap: 8px; }
.shipping-option { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; transition: border-color 0.2s; }
.shipping-option:has(input:checked) { border-color: var(--primary); background: var(--primary-light); }
.shipping-option-info { flex: 1; }
.shipping-option-info strong { font-size: 13px; display: block; }
.shipping-option-info span { font-size: 11px; color: var(--text-muted); }
.shipping-option-price { font-size: 13px; font-weight: 600; color: var(--success); }
.checkout-payment { display: flex; flex-direction: column; gap: 8px; }
.payment-option { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; font-size: 14px; }
.checkout-summary { border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; position: sticky; top: calc(var(--header-h) + 20px); align-self: start; }
.checkout-summary h3 { font-size: 18px; font-weight: 700; margin-bottom: 14px; }
.order-items { margin-bottom: 16px; }
.order-item { display: flex; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--bg-gray); }
.order-item img { width: 50px; height: 50px; object-fit: contain; border-radius: 6px; background: var(--bg-gray); }
.order-item-info { flex: 1; }
.order-item-info strong { font-size: 13px; display: block; line-height: 1.2; }
.order-item-info small { font-size: 11px; color: var(--text-muted); display: block; }
.order-item-info span { font-size: 12px; color: var(--text-muted); }
.order-item-total { font-weight: 600; font-size: 14px; white-space: nowrap; }
.order-totals { border-top: 1px solid var(--border); padding-top: 12px; }
.ot-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 14px; }
.ot-discount span:last-child { color: var(--success); }
.ot-total { font-size: 18px; font-weight: 700; border-top: 2px solid var(--border); padding-top: 12px; }
.ot-total span:last-child { color: var(--primary); }
.place-order-btn { display: block; width: 100%; padding: 14px; text-align: center; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 16px; font-weight: 700; cursor: pointer; margin-top: 16px; font-family: inherit; }
.place-order-btn:hover { background: var(--primary-hover); }

/* ── Order Confirmation ────────────────────────────────── */
.confirmation-page { padding: 40px 20px; }
.confirm-box { text-align: center; max-width: 600px; margin: 0 auto; }
.confirm-icon { width: 70px; height: 70px; border-radius: 50%; background: var(--success); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 32px; margin: 0 auto 16px; }
.confirm-box h1 { font-size: 26px; margin-bottom: 6px; }
.confirm-subtitle { color: var(--text-muted); margin-bottom: 24px; }
.confirm-details { border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; margin-bottom: 20px; text-align: left; }
.cd-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 14px; border-bottom: 1px solid var(--bg-gray); }
.cd-row:last-child { border-bottom: none; }
.confirm-total { color: var(--primary); font-size: 18px; }
.confirm-items { border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; margin-bottom: 20px; text-align: left; }
.confirm-items h3 { margin-bottom: 12px; }
.ci-row { display: flex; justify-content: space-between; padding: 6px 0; font-size: 13px; }
.ci-row small { color: var(--text-muted); }
.confirm-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.btn-whatsapp-order { padding: 12px 28px; background: #25D366; color: #fff; border-radius: var(--radius); font-weight: 600; font-size: 14px; }

/* ── Cart/Checkout Responsive ──────────────────────────── */
@media (max-width: 768px) {
    .cart-layout { grid-template-columns: 1fr; }
    .cart-totals { position: static; }
    .cart-table th:nth-child(3), .cart-table td.cart-td-price { display: none; }
    .checkout-layout { grid-template-columns: 1fr; }
    .checkout-summary { position: static; }
    .checkout-field.half { width: 100%; }
    .cart-actions-row { flex-direction: column; }
    .cart-coupon-row { width: 100%; }
    .cart-coupon-input { flex: 1; min-width: 0; }
}

/* ============================================================
   CATEGORY DISCOUNT BADGES & BANNERS
   ============================================================ */

/* Badge — small inline (for lists) */
.cat-deal-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; background: linear-gradient(135deg, #FF6B35, #F7C948); color: #fff; border-radius: 20px; font-size: 11px; font-weight: 700; white-space: nowrap; }

/* Card — under category card on homepage */
.cat-deal-card { margin-top: 8px; padding: 6px 12px; background: linear-gradient(135deg, #FF6B35, #E53935); color: #fff; border-radius: 8px; font-size: 11px; font-weight: 700; text-align: center; line-height: 1.3; animation: deal-pulse 2s ease-in-out infinite; }

/* Banner — full width (product page, shop page) */
.cat-deal-banner { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 20px; background: linear-gradient(135deg, #1A1A2E 0%, #16213E 50%, #0F3460 100%); color: #fff; margin: 0; text-align: center; position: relative; overflow: hidden; }
.cat-deal-banner::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,107,53,0.1) 0%, transparent 50%); animation: deal-shimmer 3s ease-in-out infinite; }
.cat-deal-icon { font-size: 22px; flex-shrink: 0; position: relative; z-index: 1; animation: deal-bounce 1.5s ease-in-out infinite; }
.cat-deal-text { font-size: 15px; font-weight: 700; letter-spacing: 0.3px; position: relative; z-index: 1; }

/* Product page banner — rounded with margin */
.product-main .cat-deal-banner { border-radius: var(--radius); margin: 0 0 16px 0; grid-column: 1 / -1; }

@keyframes deal-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.85; } }
@keyframes deal-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes deal-shimmer { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } }

@media (max-width: 768px) {
    .cat-deal-banner { padding: 10px 14px; gap: 8px; }
    .cat-deal-text { font-size: 13px; }
    .cat-deal-icon { font-size: 18px; }
    .cat-deal-card { font-size: 10px; padding: 5px 8px; }
}

/* ============================================================
   LIVE SEARCH DROPDOWN
   ============================================================ */
.search-wrapper { position: relative; flex: 1; max-width: 480px; }
.search-dropdown { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--surface, #fff); border: 1px solid var(--border); border-radius: 0 0 12px 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.12); z-index: 150; max-height: 400px; overflow-y: auto; }
.search-result-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--bg-gray); transition: background 0.15s; }
.search-result-item:last-child { border-bottom: none; }
.search-result-item:hover { background: var(--bg-gray); }
.search-result-item img { width: 48px; height: 48px; object-fit: contain; border-radius: 6px; background: var(--bg-gray); flex-shrink: 0; }
.search-result-noimg { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--bg-gray); border-radius: 6px; font-size: 20px; flex-shrink: 0; }
.search-result-info { flex: 1; min-width: 0; }
.search-result-info strong { display: block; font-size: 13px; color: var(--text); font-weight: 600; line-height: 1.3; }
.search-result-price { font-size: 13px; font-weight: 700; color: var(--primary); }
.search-result-old { font-size: 11px; color: var(--text-light); text-decoration: line-through; margin-right: 6px; }
body[dir="rtl"] .search-result-old { margin-right: 0; margin-left: 6px; }
.search-no-results { padding: 20px; text-align: center; color: var(--text-muted); font-size: 13px; }

.mobile-search-bar .search-wrapper { max-width: none; }
.mobile-search-bar .search-dropdown { border-radius: 0 0 12px 12px; top: calc(100% + 2px); }

/* ============================================================
   LEAD MAGNET POPUP
   ============================================================ */
.leadpop-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 500; }
.leadpop { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 501; background: var(--surface, #fff); border-radius: 16px; overflow: hidden; max-width: 480px; width: 92vw; max-height: 90vh; flex-direction: column; box-shadow: 0 20px 60px rgba(0,0,0,0.3); animation: popIn 0.3s ease; }
@keyframes popIn { from { opacity: 0; transform: translate(-50%, -50%) scale(0.9); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
.leadpop-close { position: absolute; top: 10px; right: 10px; z-index: 5; width: 32px; height: 32px; border-radius: 50%; background: rgba(0,0,0,0.5); color: #fff; border: none; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
body[dir="rtl"] .leadpop-close { right: auto; left: 10px; }
.leadpop-img { width: 100%; overflow: hidden; }
.leadpop-img img { width: 100%; height: auto; display: block; object-fit: cover; max-height: 280px; }
.leadpop-body { padding: 24px; text-align: center; }
.leadpop-heading { font-size: 22px; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.leadpop-sub { font-size: 14px; color: var(--text-muted); margin-bottom: 18px; }
.leadpop-form { display: flex; flex-direction: column; gap: 10px; }
.leadpop-form input { padding: 12px 16px; border: 1px solid var(--border-dark); border-radius: var(--radius); font-size: 14px; outline: none; font-family: inherit; text-align: center; }
.leadpop-form input:focus { border-color: var(--primary); }
.leadpop-btn { padding: 14px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 16px; font-weight: 700; cursor: pointer; font-family: inherit; transition: background 0.2s; }
.leadpop-btn:hover { background: var(--primary-hover); }
.leadpop-coupon-reveal { text-align: center; }
.leadpop-coupon-reveal p { font-size: 14px; color: var(--text-muted); margin-bottom: 10px; }
.leadpop-coupon-code { font-size: 28px; font-weight: 800; color: var(--primary); background: var(--bg-gray); padding: 12px 24px; border-radius: 10px; letter-spacing: 3px; display: inline-block; margin-bottom: 12px; border: 2px dashed var(--primary); }
.leadpop-copy { padding: 10px 20px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; }
.leadpop-wa-msg { padding: 20px; }
.leadpop-wa-msg p { font-size: 16px; color: var(--success); font-weight: 600; }

/* Payment options styling */
.pay-opt-content { flex: 1; }
.pay-opt-content strong { display: block; font-size: 14px; margin-bottom: 2px; }
.pay-logos { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.payment-option { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; transition: border-color 0.2s; }
.payment-option:has(input:checked) { border-color: var(--primary); background: rgba(229,57,53,0.03); }

@media (max-width: 480px) {
    .leadpop { width: 95vw; }
    .leadpop-heading { font-size: 18px; }
    .leadpop-body { padding: 18px; }
    .leadpop-coupon-code { font-size: 22px; padding: 10px 18px; }
}

/* ============================================================
   CONTACT US PAGE
   ============================================================ */
.contact-page { padding: 30px 0 60px; }
.contact-title { font-size: 28px; font-weight: 700; margin-bottom: 24px; }
.contact-map { margin-bottom: 24px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.contact-map iframe { display: block; }
.contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.contact-info-card, .contact-form-card { background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; }
.contact-info-card h3, .contact-form-card h3 { font-size: 18px; font-weight: 700; margin-bottom: 20px; }
.contact-item { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--bg-gray); }
.contact-item:last-of-type { border-bottom: none; }
.contact-icon { font-size: 22px; flex-shrink: 0; width: 32px; text-align: center; }
.contact-item strong { display: block; font-size: 13px; margin-bottom: 2px; }
.contact-item p { font-size: 14px; color: var(--text-muted); margin: 0; }
.contact-item a { color: var(--primary); }
.contact-map-link { font-size: 12px; color: var(--primary); font-weight: 600; margin-top: 4px; display: inline-block; }
.contact-social { padding-top: 18px; margin-top: 8px; border-top: 1px solid var(--border); }
.contact-social strong { display: block; font-size: 13px; margin-bottom: 12px; letter-spacing: 0.3px; text-transform: uppercase; color: var(--text-muted); font-weight: 700; }
.contact-social-links { display: flex; flex-wrap: wrap; gap: 8px; }
.social-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 9px 16px;
    background: var(--bg-gray, #f4f4f5);
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px; font-weight: 600;
    color: var(--text);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    line-height: 1;
}
.social-btn svg { width: 14px; height: 14px; transition: transform 0.2s; }
.social-btn:hover {
    background: var(--brand, var(--primary));
    color: var(--brand-text, #fff);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.social-btn:hover svg { transform: scale(1.1); }

/* Contact Form */
.contact-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.contact-field { margin-bottom: 14px; }
.contact-field label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 5px; }
.contact-field input, .contact-field textarea { width: 100%; padding: 10px 14px; border: 1px solid var(--border-dark); border-radius: var(--radius); font-size: 14px; font-family: inherit; outline: none; transition: border-color 0.2s; }
.contact-field input:focus, .contact-field textarea:focus { border-color: var(--primary); }
.contact-submit { width: 100%; padding: 14px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 16px; font-weight: 700; cursor: pointer; font-family: inherit; transition: background 0.2s; }
.contact-submit:hover { background: var(--primary-hover); }
.contact-success { text-align: center; padding: 30px; }
.contact-success span { display: block; font-size: 40px; margin-bottom: 12px; }
.contact-success p { color: var(--success); font-size: 15px; font-weight: 600; }

/* ============================================================
   RETURNS POLICY PAGE
   ============================================================ */
.policy-page { padding: 30px 0 60px; }
.policy-title { font-size: 28px; font-weight: 700; margin-bottom: 24px; text-align: center; }
.policy-content { background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); padding: 32px; font-size: 15px; line-height: 1.8; color: var(--text); }
.policy-content h2 { font-size: 20px; font-weight: 700; margin: 24px 0 12px; color: var(--secondary); }
.policy-content h3 { font-size: 17px; font-weight: 600; margin: 20px 0 10px; }
.policy-content p { margin-bottom: 14px; }
.policy-content ul, .policy-content ol { margin: 12px 0 14px 24px; }
body[dir="rtl"] .policy-content ul, body[dir="rtl"] .policy-content ol { margin: 12px 24px 14px 0; }
.policy-content li { margin-bottom: 6px; }
.policy-content strong { color: var(--secondary); }

@media (max-width: 768px) {
    .contact-layout { grid-template-columns: 1fr; }
    .contact-form-row { grid-template-columns: 1fr; }
    .contact-map iframe { height: 250px; }
    .contact-info-card, .contact-form-card { padding: 20px; }
    .policy-content { padding: 20px; font-size: 14px; }
}

/* ============================================================
   AUTH PAGES (Login, Register, Account)
   ============================================================ */
.auth-page { display: flex; align-items: center; justify-content: center; min-height: 60vh; padding: 40px 20px; }
.auth-box { background: var(--surface, #fff); border: 1px solid var(--border); border-radius: 16px; padding: 36px; width: 100%; max-width: 480px; }
.auth-box h1 { font-size: 24px; font-weight: 700; text-align: center; margin-bottom: 4px; }
.auth-subtitle { text-align: center; color: var(--text-muted); font-size: 13px; margin-bottom: 24px; }
.auth-error { background: #FFEBEE; color: #C62828; padding: 10px 14px; border-radius: 8px; font-size: 13px; margin-bottom: 16px; text-align: center; }
.auth-field { margin-bottom: 14px; }
.auth-field label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 5px; }
.auth-field input { width: 100%; padding: 11px 14px; border: 1px solid var(--border-dark); border-radius: var(--radius); font-size: 14px; font-family: inherit; outline: none; transition: border-color 0.2s; }
.auth-field input:focus { border-color: var(--primary); }
.auth-field input:disabled { opacity: 0.6; background: var(--bg-gray); }
.auth-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.auth-btn { width: 100%; padding: 13px; background: var(--primary); color: #fff; border: none; border-radius: var(--radius); font-size: 15px; font-weight: 700; cursor: pointer; font-family: inherit; margin-top: 8px; transition: background 0.2s; }
.auth-btn:hover { background: var(--primary-hover); }
.auth-link { text-align: center; margin-top: 16px; font-size: 13px; color: var(--text-muted); }
.auth-link a { color: var(--primary); font-weight: 600; }

/* Account Page */
.account-page { padding: 30px 0 60px; }
.account-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; }
.account-sidebar { background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; text-align: center; align-self: start; position: sticky; top: calc(var(--header-h) + 20px); }
.account-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 24px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; }
.account-sidebar h3 { font-size: 16px; font-weight: 700; margin-bottom: 2px; }
.account-nav { display: flex; flex-direction: column; gap: 4px; margin-top: 18px; text-align: start; }
.account-nav a { padding: 10px 14px; border-radius: var(--radius); font-size: 13px; font-weight: 500; color: var(--text); transition: all 0.15s; }
.account-nav a:hover { background: var(--bg-gray); }
.account-nav a.active { background: var(--primary-light); color: var(--primary); font-weight: 600; }
.account-content { min-width: 0; }
.account-content h2 { font-size: 20px; font-weight: 700; margin-bottom: 16px; }
.account-empty { text-align: center; padding: 40px 20px; }
.account-empty span { font-size: 48px; display: block; margin-bottom: 12px; }
.account-empty p { color: var(--text-muted); margin-bottom: 16px; }

/* Order cards */
.orders-list { display: flex; flex-direction: column; gap: 10px; }
.order-card { background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; }
.order-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.order-card-header strong { font-size: 14px; }
.order-card-body { display: flex; gap: 20px; font-size: 13px; color: var(--text-muted); }

/* Wishlist grid */
.wishlist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.wishlist-item { display: flex; align-items: center; gap: 12px; background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; position: relative; }
.wishlist-item img { width: 60px; height: 60px; object-fit: contain; border-radius: 6px; background: var(--bg-gray); }
.wishlist-item strong { font-size: 13px; display: block; line-height: 1.3; }
.wishlist-remove { position: absolute; top: 8px; right: 8px; font-size: 18px; color: var(--text-light); }
body[dir="rtl"] .wishlist-remove { right: auto; left: 8px; }
.wishlist-remove:hover { color: var(--primary); }

/* Profile form */
.profile-form { max-width: 600px; }

/* Badge count in header */
.header-action-btn .badge-count { position: absolute; top: 2px; right: 2px; background: var(--primary); color: #fff; width: 16px; height: 16px; border-radius: 50%; font-size: 9px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

@media (max-width: 768px) {
    .auth-row { grid-template-columns: 1fr; }
    .auth-box { padding: 24px 18px; }
    .account-layout { grid-template-columns: 1fr; }
    .account-content { min-width: 0; width: 100%; }
    .account-sidebar {
        position: static;
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas: "avatar name" "avatar email" "nav nav";
        align-items: center;
        column-gap: 14px;
        row-gap: 2px;
        text-align: start;
        padding: 16px;
    }
    .account-avatar { grid-area: avatar; width: 48px; height: 48px; font-size: 19px; margin: 0; align-self: center; }
    .account-sidebar h3 { grid-area: name; font-size: 15px; align-self: end; margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .account-sidebar p { grid-area: email; align-self: start; margin: 0 !important; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .account-nav { grid-area: nav; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; margin-top: 12px; gap: 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .account-nav::-webkit-scrollbar { display: none; }
    .account-nav a { white-space: nowrap; flex: 0 0 auto; padding: 8px 14px; font-size: 12px; background: var(--bg-gray); border-radius: 999px; }
    .account-nav a.active { background: var(--primary-light); color: var(--primary); }
    .order-card-body { flex-wrap: wrap; gap: 8px 20px; }
    .btn-continue-shop { max-width: 100%; }
    .wishlist-grid { grid-template-columns: 1fr; }
}

/* Wishlist button states */
.card-wl-btn { background: rgba(255,255,255,0.9); width: 32px; height: 32px; border-radius: 50%; border: none; cursor: pointer; font-size: 16px; display: flex; align-items: center; justify-content: center; transition: all 0.2s; color: var(--text-muted); }
.card-wl-btn:hover { background: #fff; color: var(--primary); transform: scale(1.1); }
.card-wl-btn.wishlisted { color: var(--primary); }
.product-actions-row button.wishlisted { color: var(--primary); }

/* Footer newsletter form */
.footer-newsletter-form { display: flex; gap: 0; border-radius: 6px; overflow: hidden; margin-top: 8px; }
.footer-newsletter-form input { flex: 1; padding: 10px 12px; border: 1px solid rgba(255,255,255,0.15); background: rgba(255,255,255,0.08); color: #fff; font-size: 13px; outline: none; font-family: inherit; min-width: 0; border-radius: 6px 0 0 6px; }
body[dir="rtl"] .footer-newsletter-form input { border-radius: 0 6px 6px 0; }
.footer-newsletter-form input::placeholder { color: rgba(255,255,255,0.4); }
.footer-newsletter-form button { padding: 10px 16px; background: var(--primary); color: #fff; border: none; cursor: pointer; font-size: 13px; font-weight: 600; font-family: inherit; border-radius: 0 6px 6px 0; }
body[dir="rtl"] .footer-newsletter-form button { border-radius: 6px 0 0 6px; }

/* Mobile bottom nav badge */
.bottom-badge { position: absolute; top: -2px; right: 50%; transform: translateX(14px); background: var(--primary); color: #fff; width: 16px; height: 16px; border-radius: 50%; font-size: 9px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* ============================================================
   CUSTOM SECTIONS (Page Builder)
   ============================================================ */
.cs-section { position: relative; overflow: hidden; }
.cs-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.cs-inner { position: relative; z-index: 2; max-width: 1280px; margin: 0 auto; padding: 50px 20px; }
.cs-header { text-align: center; margin-bottom: 30px; }
.cs-title { font-size: 28px; font-weight: 700; margin-bottom: 6px; }
.cs-subtitle { font-size: 15px; opacity: 0.8; max-width: 600px; margin: 0 auto; }
.custom-page-header { background: var(--secondary); color: #fff; padding: 32px 0; text-align: center; }
.custom-page-header h1 { font-size: 28px; font-weight: 700; }

/* ── Custom Slider ────────────────────────────────────── */
div.cs-slider { position: relative; min-height: 350px; border-radius: var(--radius); overflow: hidden; }
.cs-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.5s; display: flex; align-items: center; justify-content: center; }
.cs-slide.active { opacity: 1; position: relative; }
.cs-slide-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cs-slide-overlay { position: absolute; inset: 0; }
.cs-slide-content { position: relative; z-index: 2; text-align: center; color: #fff; padding: 40px; max-width: 700px; }
.cs-slide-content h3 { font-size: 32px; font-weight: 800; margin-bottom: 10px; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.cs-slide-content p { font-size: 16px; margin-bottom: 20px; opacity: 0.9; }
.cs-slide-btn { display: inline-block; padding: 12px 32px; background: var(--primary); color: #fff; border-radius: var(--radius); font-weight: 700; font-size: 15px; transition: background 0.2s; }
.cs-slide-btn:hover { background: var(--primary-hover); }
.cs-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,0.9); border: none; cursor: pointer; font-size: 20px; display: flex; align-items: center; justify-content: center; transition: all 0.2s; }
.cs-nav:hover { background: #fff; }
.cs-nav.prev { left: 16px; }
.cs-nav.next { right: 16px; }
body[dir="rtl"] .cs-nav.prev { left: auto; right: 16px; }
body[dir="rtl"] .cs-nav.next { right: auto; left: 16px; }
.cs-dots { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 5; }
.cs-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.5); cursor: pointer; transition: all 0.2s; }
.cs-dot.active { background: #fff; transform: scale(1.3); }

/* ── Features Grid ────────────────────────────────────── */
.cs-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 24px; }
@media (max-width: 1024px) { .cs-features-grid { grid-template-columns: repeat(2, 1fr); } }
.cs-feature-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
    padding: 8px;
}
.cs-feature-img {
    width: 72px; height: 72px;
    border-radius: 12px;
    object-fit: contain;
    flex-shrink: 0;
}
.cs-feature-icon {
    font-size: 56px;
    line-height: 1;
    color: var(--primary);
    flex-shrink: 0;
}
.cs-feature-num {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: var(--primary); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 20px;
    flex-shrink: 0;
}
.cs-feature-body { width: 100%; }
.cs-feature-body h4 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.cs-feature-body p {
    font-size: 13px;
    opacity: 0.75;
    line-height: 1.7;
    margin: 0;
}
.cs-feature-link {
    display: inline-block;
    margin-top: 12px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--primary);
    border-bottom: 2px solid var(--primary);
    padding-bottom: 2px;
}
.cs-feature-link:hover { opacity: 0.7; color: var(--primary); }

/* ── Story Layout ─────────────────────────────────────── */
.cs-story-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.cs-story-layout + .cs-story-layout { margin-top: 48px; }
.cs-story-reverse .cs-story-media { order: 2; }
.cs-story-reverse .cs-story-text { order: 1; }
.cs-story-title { font-size: 24px; font-weight: 800; margin: 0 0 12px; }
.cs-story-media img { width: 100%; border-radius: var(--radius); }
.cs-story-body { font-size: 15px; line-height: 1.8; opacity: 0.85; }
.cs-story-btn { display: inline-block; margin-top: 18px; padding: 12px 28px; background: var(--primary); color: #fff; border-radius: var(--radius); font-weight: 700; }

/* ── Card Carousel ────────────────────────────────────── */
.cs-carousel-wrap { position: relative; }
div.cs-carousel { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; padding-bottom: 8px; scroll-behavior: smooth; overscroll-behavior-x: contain; touch-action: pan-x pan-y; min-width: 0; }
div.cs-carousel > .cs-card { scroll-snap-align: start; }
div.cs-carousel::-webkit-scrollbar { height: 0; }
.cs-carousel-arrow {
    position: absolute; top: 42%; transform: translateY(-50%); z-index: 3;
    width: 40px; height: 40px; border-radius: 50%; border: none; cursor: pointer;
    background: var(--primary); color: var(--secondary); font-size: 22px; line-height: 1;
    box-shadow: 0 4px 14px rgba(0,0,0,0.15); display: flex; align-items: center; justify-content: center;
    transition: opacity .2s, transform .2s;
}
.cs-carousel-arrow:hover { transform: translateY(-50%) scale(1.08); }
.cs-carousel-arrow.prev { inset-inline-start: -8px; }
.cs-carousel-arrow.next { inset-inline-end: -8px; }
.cs-carousel-arrow[disabled] { opacity: 0; pointer-events: none; }
[dir="rtl"] .cs-carousel-arrow.prev { transform: translateY(-50%) scaleX(-1); }
[dir="rtl"] .cs-carousel-arrow.next { transform: translateY(-50%) scaleX(-1); }
.cs-carousel-dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }
.cs-carousel-dots button {
    width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0; cursor: pointer;
    background: var(--border-dark, #ccc); transition: background .2s, width .2s;
}
.cs-carousel-dots button.active { background: var(--primary); width: 22px; border-radius: 5px; }
.cs-card { min-width: 280px; max-width: 320px; flex-shrink: 0; scroll-snap-align: start; background: var(--surface, #fff); border-radius: 12px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,0.08); transition: transform 0.2s; }
.cs-card:hover { transform: translateY(-4px); }
.cs-card-img img { width: 100%; height: 180px; object-fit: cover; }
.cs-card-icon { height: 120px; display: flex; align-items: center; justify-content: center; font-size: 48px; background: var(--bg-gray); }
.cs-card-body { padding: 18px; }
.cs-card-body h4 { font-size: 16px; font-weight: 700; margin-bottom: 6px; color: var(--text); }
.cs-card-body p { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin-bottom: 12px; }
.cs-card-btn { display: inline-block; padding: 8px 18px; background: var(--primary); color: #fff; border-radius: var(--radius); font-size: 13px; font-weight: 600; }

/* ── Video ────────────────────────────────────────────── */
.cs-video { margin-top: 24px; max-width: 800px; margin-left: auto; margin-right: auto; }
.cs-video-thumb { position: relative; cursor: pointer; border-radius: var(--radius); overflow: hidden; }
.cs-video-thumb img { width: 100%; display: block; }
.cs-play-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; background: rgba(0,0,0,0.7); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; transition: all 0.2s; }
.cs-video-thumb:hover .cs-play-btn { background: var(--primary); transform: translate(-50%, -50%) scale(1.1); }

@media (max-width: 768px) {
    .cs-inner { padding: 30px 16px; }
    .cs-title { font-size: 22px; }
    div.cs-slider { min-height: 250px; }
    .cs-slide-content h3 { font-size: 22px; }
    .cs-slide-content { padding: 24px 16px; }
    .cs-nav { width: 32px; height: 32px; font-size: 16px; }
    .cs-features-grid { grid-template-columns: 1fr; gap: 16px; }
    .cs-story-layout { grid-template-columns: 1fr; gap: 20px; }
    .cs-card { min-width: 240px; }
    .custom-page-header { padding: 24px 0; }
    .custom-page-header h1 { font-size: 22px; }
}

/* ============================================================
   BRANDS SLIDER & BRAND PAGE
   ============================================================ */

/* Homepage brands slider */
.brands-slider { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 8px; }
.brands-slider::-webkit-scrollbar { height: 4px; }
.brands-slider::-webkit-scrollbar-thumb { background: var(--border-dark); border-radius: 2px; }
.brand-slide-card { min-width: 140px; max-width: 180px; flex-shrink: 0; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 20px 16px; background: var(--surface, #fff); border: 1px solid var(--border); border-radius: 12px; transition: all 0.2s; text-align: center; }
.brand-slide-card:hover { border-color: var(--primary); transform: translateY(-4px); box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.brand-slide-img { width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; }
.brand-slide-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.brand-slide-icon { width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; font-size: 36px; background: var(--bg-gray); border-radius: 50%; }
.brand-slide-card strong { font-size: 13px; color: var(--text); white-space: nowrap; }

/* Brand page header */
.brand-header { background: linear-gradient(135deg, var(--secondary) 0%, #1a1a2e 100%); color: #fff; padding: 40px 0 0; }
.brand-header-inner { display: flex; align-items: center; gap: 24px; margin-bottom: 24px; }
.brand-logo-wrap { width: 90px; height: 90px; background: #fff; border-radius: 16px; padding: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.brand-logo-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; }
.brand-info h1 { font-size: 28px; font-weight: 700; margin-bottom: 4px; }
.brand-info p { font-size: 14px; opacity: 0.8; margin-bottom: 6px; }
.brand-count { font-size: 12px; opacity: 0.6; }

/* Brand category filter tabs */
.brand-cats { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 0; -webkit-overflow-scrolling: touch; }
.brand-cats a { padding: 10px 18px; font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.7); white-space: nowrap; border-bottom: 2px solid transparent; transition: all 0.2s; }
.brand-cats a:hover { color: #fff; }
.brand-cats a.active { color: #fff; border-bottom-color: var(--primary); }
.brand-cats a span { font-size: 11px; opacity: 0.6; }

/* Brand toolbar */
.brand-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }

@media (max-width: 768px) {
    .brand-header-inner { gap: 16px; }
    .brand-logo-wrap { width: 64px; height: 64px; border-radius: 12px; padding: 8px; }
    .brand-info h1 { font-size: 20px; }
    .brand-slide-card { min-width: 120px; padding: 14px 10px; }
    .brand-slide-img { width: 60px; height: 60px; }
    .brand-slide-card strong { font-size: 11px; }
}

/* Product brand link */
.product-brand-link { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; background: var(--bg-gray); border-radius: 20px; font-size: 12px; font-weight: 600; color: var(--primary); transition: all 0.2s; }
.product-brand-link:hover { background: var(--primary-light); }

/* ════════════════════════════════════════════════════════
   HEADER CUSTOMIZATION (search/nav bg + font + reorder)
   ════════════════════════════════════════════════════════ */
.store-header { background: var(--header-nav-bg, var(--header-bg, #fff)); }
.store-header .header-nav a { color: var(--header-nav-text, #333); }
.mobile-search-bar { background: var(--header-search-bg, var(--primary)); }
.mobile-search-bar::after { background: var(--header-search-bg, var(--primary)); }
.mobile-search-bar button { background: var(--header-search-bg, var(--primary)); color: var(--header-search-text, #fff); }
.header-search input { color: var(--header-nav-text, #333); }
.header-search button { color: var(--header-search-bg, var(--primary)); }

/* Hero on mobile: sit flush against search bar, no gap, no overlap */
@media (max-width: 768px) {
    .hero-section { margin-top: 0 !important; }
    .mobile-search-bar { padding-bottom: 12px; }
    .mobile-search-bar::after { display: none; }
}

/* ════════════════════════════════════════════════════════
   PAGE BANNER (shop / category / brand) CUSTOMIZATION
   ════════════════════════════════════════════════════════ */
.page-banner-custom {
    position: relative;
    background-color: var(--page-banner-bg, var(--secondary));
    background-size: cover;
    background-position: center;
    color: var(--page-banner-text, #fff);
    text-align: center;
    padding: 60px 20px 50px;
    margin-top: -6px;
    overflow: hidden;
}
.page-banner-custom::before {
    content: '';
    position: absolute; inset: 0;
    background: rgba(0, 0, 0, var(--page-banner-overlay, 0));
    pointer-events: none;
    z-index: 1;
}
.page-banner-custom > * { position: relative; z-index: 2; }
.page-banner-custom h1 {
    font-size: 36px; font-weight: 700; margin-bottom: 8px;
    color: var(--page-banner-text, #fff);
}
.page-banner-custom .banner-desc {
    font-size: 14px; opacity: 0.9; max-width: 600px; margin: 0 auto 16px;
}
.page-banner-custom .shop-categories,
.page-banner-custom .brand-cats {
    display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 20px;
}
.page-banner-custom .shop-categories a,
.page-banner-custom .brand-cats a {
    padding: 8px 18px; border-radius: 999px;
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.25);
    color: var(--page-banner-text, #fff);
    font-size: 13px; font-weight: 500;
    transition: all 0.2s;
}
.page-banner-custom .shop-categories a:hover,
.page-banner-custom .brand-cats a:hover,
.page-banner-custom .shop-categories a.active,
.page-banner-custom .brand-cats a.active {
    background: rgba(255,255,255,0.95);
    color: var(--primary);
    border-color: rgba(255,255,255,0.95);
}
@media (max-width: 768px) {
    .page-banner-custom { padding: 40px 16px 32px; }
    .page-banner-custom h1 { font-size: 24px; }
}

/* ════════════════════════════════════════════════════════
   NEW SEARCH ICON STYLE (red circle button)
   ════════════════════════════════════════════════════════ */
.mobile-search-bar form {
    background: var(--surface, #fff);
    border-radius: 999px;
    padding: 4px 4px 4px 16px;
    overflow: visible;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
body[dir="rtl"] .mobile-search-bar form { padding: 4px 16px 4px 4px; }
.mobile-search-bar input {
    padding: 9px 0;
}
.mobile-search-bar button {
    width: 38px; height: 38px;
    border-radius: 50% !important;
    background: var(--header-search-bg, var(--primary)) !important;
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    padding: 0;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.mobile-search-bar button svg {
    stroke: #fff;
    stroke-width: 2.5;
}

/* Desktop search button - rounded too */
.header-search {
    background: var(--surface, #fff);
    border-radius: 999px;
    padding: 4px 4px 4px 16px;
    border: 1px solid var(--border);
    align-items: center;
    overflow: visible;
}
body[dir="rtl"] .header-search { padding: 4px 16px 4px 4px; }
.header-search input { padding: 8px 0; border: none; outline: none; background: transparent; flex: 1; }
.header-search button {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    border: none;
    display: flex; align-items: center; justify-content: center;
    padding: 0;
    flex-shrink: 0;
    cursor: pointer;
}
.header-search button svg { stroke: #fff; stroke-width: 2.5; }

/* Header rows order */
.store-header { display: flex; flex-direction: column; }
.store-header .header-inner { order: var(--order-nav, 2); }
.store-header .mobile-search-bar { order: var(--order-search, 3); }
.announcement-bar { order: var(--order-announcement, 1); }

/* ──────────────────────────────────────────────────────
   Variation Selector (WooCommerce-style)
   Generated by Phase 1 of the variant rewrite.
   ────────────────────────────────────────────────────── */
/* ──────────────────────────────────────────────────────
   Variation Selector — v3
   Bigger touch targets, square image swatches, label pills with
   price-differential subtext (e.g. "256GB / +EGP3,000.00").
   Selectors are written specifically (.vr-terms-* > .vr-term) to win
   against any older cached rules.
   ────────────────────────────────────────────────────── */
.vr-attr-group { margin: 18px 0; }
.vr-attr-label {
    font-size: 14px; margin-bottom: 10px; color: var(--text, #222);
    display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap;
}
.vr-attr-label strong { font-weight: 600; }
.vr-attr-selected {
    font-weight: 500; margin-inline-start: 4px;
    color: var(--text, #222) !important;
}

.vr-terms { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }

/* ── Color swatches: round chips ── */
.vr-terms.vr-terms-color > .vr-term {
    width: 44px !important; height: 44px !important; min-width: 44px !important;
    border-radius: 50% !important;
    border: 2px solid #d0d0d0; cursor: pointer; padding: 0;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
    overflow: hidden; position: relative;
    background: var(--surface-2, #f5f5f5);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.04);
    flex: 0 0 auto;
}
.vr-terms.vr-terms-color > .vr-term:hover { transform: scale(1.08); border-color: #999; }
.vr-terms.vr-terms-color > .vr-term.vr-selected {
    border-color: var(--primary, #E53935);
    box-shadow: 0 0 0 2px #fff inset, 0 0 0 3px var(--primary, #E53935);
    transform: scale(1.05);
}
.vr-terms.vr-terms-color > .vr-term img {
    width: 100%; height: 100%; object-fit: cover;
}

/* ── Image swatches: SQUARE chips (sharper corners — explicit user request) ── */
.vr-terms.vr-terms-image > .vr-term {
    width: 64px !important; height: 64px !important;
    border-radius: 6px !important;  /* slight rounding, otherwise square */
    border: 2px solid #d0d0d0; padding: 0; cursor: pointer;
    overflow: hidden; background: var(--surface-2, #f8f8f8);
    transition: all .12s ease;
    flex: 0 0 auto;
}
.vr-terms.vr-terms-image > .vr-term:hover { transform: translateY(-2px); border-color: #999; }
.vr-terms.vr-terms-image > .vr-term.vr-selected {
    border-color: var(--primary, #E53935);
    box-shadow: 0 0 0 2px var(--primary, #E53935);
}
.vr-terms.vr-terms-image > .vr-term img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}

/* ── Label pills: bigger, with name + price-diff subtext stacked ── */
.vr-terms.vr-terms-label > .vr-term {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    border: 1.5px solid #d0d0d0; background: var(--surface, #fff); cursor: pointer;
    padding: 10px 18px; border-radius: 8px;
    font-weight: 500; min-width: 64px; min-height: 48px;
    color: var(--text, #222);
    transition: all .12s ease;
    line-height: 1.25;
    gap: 2px;
}
.vr-terms.vr-terms-label > .vr-term:hover { border-color: var(--primary, #E53935); background: var(--surface-2, #faf8f8); }
.vr-terms.vr-terms-label > .vr-term.vr-selected {
    background: var(--primary, #E53935); color: #fff;
    border-color: var(--primary, #E53935);
}
.vr-terms.vr-terms-label .vr-term-name { font-size: 14px; font-weight: 600; }
.vr-terms.vr-terms-label .vr-term-price { font-size: 11px; opacity: 0.75; font-weight: 500; }
.vr-terms.vr-terms-label > .vr-term.vr-selected .vr-term-price { opacity: 0.95; }

/* ── Unavailable state (across all swatch types) ── */
.vr-term.vr-unavailable { opacity: 0.4; cursor: not-allowed; position: relative; }
.vr-term.vr-unavailable::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(to top right,
        transparent calc(50% - 1px),
        rgba(120,120,120,.6) calc(50% - 1px),
        rgba(120,120,120,.6) calc(50% + 1px),
        transparent calc(50% + 1px));
}

/* ── "From" price label ── */
.price-from-label { display: inline-block; vertical-align: middle; }

/* ── Card-level variant indicators (shop/home cards) ── */
.card-variant-hint {
    display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px;
    align-items: center;
}
.card-variant-hint .vh-color {
    width: 16px; height: 16px; border-radius: 50%;
    border: 1.5px solid rgba(0,0,0,.1); display: inline-block;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.3);
}
.card-variant-hint .vh-text {
    font-size: 11px; padding: 2px 8px; border-radius: 10px;
    background: var(--surface-2, #f0f0f0); color: var(--text-muted, #666);
    border: 1px solid #e5e5e5;
    line-height: 1.4;
}
.card-variant-hint .vh-more {
    font-size: 11px; color: var(--text-muted, #888);
    padding: 2px 4px;
}

/* ════════════════════════════════════════════════════════════════
   REVIEWS CAROUSEL — Editorial Testimonials
   ════════════════════════════════════════════════════════════════ */
.cs-reviews { background: linear-gradient(180deg, #FAFAF7 0%, #F4EEE8 100%); }
.cs-reviews .cs-inner { max-width: 1320px; }

/* Section title styling within reviews */
.cs-reviews .cs-title {
    letter-spacing: -0.02em;
    font-weight: 800;
}
.cs-reviews .cs-title::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    margin-top: 14px;
    background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
    border-radius: 2px;
}
.cs-reviews .cs-subtitle {
    color: var(--text-muted);
    font-size: 15px;
    max-width: 600px;
    margin-top: 12px;
}

/* Wrap & viewport */
.cs-reviews-wrap { position: relative; padding-top: 8px; }
.cs-reviews-controls-row {
    position: absolute;
    top: -68px;
    inset-inline-end: 0;
    display: flex;
    gap: 10px;
    z-index: 2;
}
.cs-reviews-arrow {
    width: 46px; height: 46px;
    border-radius: 50%;
    border: 1.5px solid rgba(0, 0, 0, 0.12);
    background: var(--surface, #fff);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--secondary);
    transition: all 0.35s cubic-bezier(0.65, 0, 0.35, 1);
    padding: 0;
}
.cs-reviews-arrow:hover:not(:disabled) {
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    border-color: transparent;
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 14px 28px -8px rgba(229, 57, 53, 0.45);
}
.cs-reviews-arrow:disabled { opacity: 0.32; cursor: not-allowed; }
body[dir="rtl"] .cs-reviews-arrow svg { transform: scaleX(-1); }

.cs-reviews-viewport { overflow: hidden; padding: 6px 4px 28px; margin: 0 -4px; }
.cs-reviews-track {
    display: flex;
    gap: 22px;
    transition: transform 0.7s cubic-bezier(0.65, 0, 0.35, 1);
    will-change: transform;
}

/* ── Card base ── */
.cs-review-card {
    flex: 0 0 calc((100% - 44px) / 3);
    min-width: 0;
    background: var(--surface-2, #FAF8F5);
    border-radius: 18px;
    padding: 28px 26px 24px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 15, 30, 0.04), 0 12px 36px -12px rgba(15, 15, 30, 0.10);
    transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1), box-shadow 0.4s ease;
    opacity: 0;
    transform: translateY(24px);
    animation: csReviewEntrance 0.85s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    will-change: transform, opacity;
}
@keyframes csReviewEntrance {
    to { opacity: 1; transform: translateY(0); }
}
.cs-review-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 4px 8px rgba(15, 15, 30, 0.06), 0 28px 56px -16px rgba(15, 15, 30, 0.18);
}

/* Top accent gradient bar (avatar cards only — kept off media cards) */
.cs-review-avatar-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
    opacity: 0.9;
}

/* ── AVATAR REVIEW CARD ── */
.cs-review-avatar-card {
    display: flex;
    flex-direction: column;
    min-height: 280px;
}
.cs-review-quote-bg {
    position: absolute;
    top: 12px;
    inset-inline-end: 18px;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 140px;
    line-height: 0.85;
    color: rgba(229, 57, 53, 0.07);
    font-weight: 900;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}
.cs-review-stars {
    display: flex;
    gap: 3px;
    margin-bottom: 14px;
    position: relative;
    z-index: 1;
}
.cs-review-star {
    width: 16px; height: 16px;
    color: #FFB300;
    filter: drop-shadow(0 1px 2px rgba(255, 179, 0, 0.32));
    flex-shrink: 0;
}
.cs-review-star.empty {
    color: rgba(0, 0, 0, 0.10);
    filter: none;
}
.cs-review-message {
    font-size: 15px;
    line-height: 1.72;
    color: var(--secondary);
    margin-bottom: 22px;
    position: relative;
    z-index: 1;
    flex: 1;
    font-weight: 400;
    word-wrap: break-word;
}
body[dir="rtl"] .cs-review-message { font-size: 14.5px; line-height: 1.85; }
.cs-review-author {
    display: flex; align-items: center; gap: 12px;
    position: relative;
    z-index: 1;
    padding-top: 18px;
    border-top: 1px solid rgba(15, 15, 30, 0.06);
}
.cs-review-avatar,
.cs-review-avatar-fallback {
    width: 46px; height: 46px;
    border-radius: 50%;
    flex-shrink: 0;
}
.cs-review-avatar {
    object-fit: cover;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px var(--primary);
}
.cs-review-avatar-fallback {
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; font-weight: 700;
    box-shadow: 0 4px 12px rgba(229, 57, 53, 0.35);
}
.cs-review-author-text { min-width: 0; }
.cs-review-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--secondary);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cs-review-name-sub {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
    margin-top: 3px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── SCREENSHOT REVIEW CARD ── */
.cs-review-screenshot-card {
    padding: 0;
    background: var(--surface, #fff);
    cursor: zoom-in;
    aspect-ratio: 9 / 16;
}
.cs-review-screenshot-card::before { display: none; }
.cs-review-screenshot-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.cs-review-screenshot-card:hover .cs-review-screenshot-img {
    transform: scale(1.04);
}
.cs-review-screenshot-frame {
    position: absolute; inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05),
                inset 0 -80px 60px -40px rgba(0, 0, 0, 0.35);
    border-radius: 18px;
}
.cs-review-screenshot-badge {
    position: absolute;
    top: 14px; inset-inline-start: 14px;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--secondary);
    padding: 6px 11px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    display: inline-flex; align-items: center; gap: 5px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}
.cs-review-screenshot-badge svg { color: #25D366; }
.cs-review-screenshot-name {
    position: absolute;
    bottom: 16px;
    inset-inline-start: 18px;
    inset-inline-end: 18px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
    z-index: 1;
}

/* ── VIDEO REVIEW CARD ── */
.cs-review-video-card {
    padding: 0;
    background: #0a0a14;
    aspect-ratio: 9 / 16;
}
.cs-review-video-card::before { display: none; }
.cs-review-video-poster {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.cs-review-video-noposter {
    background: radial-gradient(circle at 30% 30%, rgba(229, 57, 53, 0.4), transparent 60%),
                radial-gradient(circle at 70% 70%, rgba(255, 111, 0, 0.4), transparent 60%),
                #0a0a14;
}
.cs-review-video-card:hover .cs-review-video-poster {
    transform: scale(1.05);
}
.cs-review-video-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg,
        rgba(0, 0, 0, 0.18) 0%,
        rgba(0, 0, 0, 0) 35%,
        rgba(0, 0, 0, 0) 55%,
        rgba(0, 0, 0, 0.78) 100%);
    pointer-events: none;
}
.cs-review-video-play {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 68px; height: 68px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    border: none;
    color: var(--secondary);
    transition: all 0.35s cubic-bezier(0.65, 0, 0.35, 1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7), 0 12px 36px rgba(0, 0, 0, 0.55);
    z-index: 2;
    padding: 0;
    padding-inline-start: 4px; /* visually center the play triangle */
}
.cs-review-video-play svg { display: block; }
.cs-review-video-card::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 68px; height: 68px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.55);
    z-index: 1;
    pointer-events: none;
    animation: csVideoPulse 2.2s ease-out infinite;
}
@keyframes csVideoPulse {
    0%   { transform: translate(-50%, -50%) scale(1);    opacity: 0.9; }
    70%  { transform: translate(-50%, -50%) scale(1.45); opacity: 0; }
    100% { transform: translate(-50%, -50%) scale(1.45); opacity: 0; }
}
.cs-review-video-card:hover .cs-review-video-play {
    transform: translate(-50%, -50%) scale(1.12);
    background: var(--primary);
    color: #fff;
}
.cs-review-video-info {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 18px 20px 16px;
    color: #fff;
    z-index: 2;
    pointer-events: none;
}
.cs-review-video-name {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 4px;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
    letter-spacing: -0.01em;
}
.cs-review-video-tag {
    font-size: 10.5px;
    opacity: 0.9;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 600;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}
.cs-review-video-card.playing .cs-review-video-play,
.cs-review-video-card.playing .cs-review-video-overlay,
.cs-review-video-card.playing .cs-review-video-info,
.cs-review-video-card.playing .cs-review-video-poster {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.cs-review-video-card.playing::after { display: none; }

/* ── Pagination dots ── */
.cs-reviews-dots {
    display: flex; justify-content: center; gap: 8px;
    margin-top: 6px;
}
.cs-reviews-dot {
    width: 8px; height: 8px;
    border-radius: 4px;
    background: rgba(15, 15, 30, 0.16);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.65, 0, 0.35, 1);
    border: none;
    padding: 0;
}
.cs-reviews-dot:hover { background: rgba(15, 15, 30, 0.28); }
.cs-reviews-dot.active {
    width: 28px;
    background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
}

/* ── Lightbox for screenshots ── */
.cs-review-lightbox {
    position: fixed; inset: 0;
    background: rgba(8, 8, 18, 0.94);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    animation: csLightboxFade 0.35s ease;
}
.cs-review-lightbox.show { display: flex; }
.cs-review-lightbox img {
    max-width: min(92vw, 480px);
    max-height: 92vh;
    border-radius: 14px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7);
    animation: csLightboxZoom 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.cs-review-lightbox-close {
    position: absolute;
    top: 24px; inset-inline-end: 24px;
    width: 48px; height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 22px;
    cursor: pointer;
    backdrop-filter: blur(6px);
    transition: all 0.25s ease;
    display: flex; align-items: center; justify-content: center;
}
.cs-review-lightbox-close:hover { background: rgba(255, 255, 255, 0.2); transform: rotate(90deg); }
@keyframes csLightboxFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes csLightboxZoom { from { transform: scale(0.92); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* ─ Mobile: 2 columns ─ */
@media (max-width: 768px) {
    .cs-reviews .cs-inner { padding-top: 36px; padding-bottom: 36px; }
    .cs-reviews-track { gap: 14px; }
    .cs-review-card {
        flex: 0 0 calc((100% - 14px) / 2);
        padding: 22px 18px 20px;
        border-radius: 14px;
    }
    .cs-review-avatar-card { min-height: 240px; }
    .cs-review-message { font-size: 13.5px; line-height: 1.65; margin-bottom: 18px; }
    body[dir="rtl"] .cs-review-message { font-size: 13px; line-height: 1.78; }
    .cs-review-quote-bg { font-size: 100px; top: 8px; }
    .cs-review-avatar, .cs-review-avatar-fallback { width: 38px; height: 38px; }
    .cs-review-avatar-fallback { font-size: 15px; }
    .cs-review-name { font-size: 13px; }
    .cs-review-name-sub { font-size: 10px; letter-spacing: 0.4px; }
    .cs-review-stars { margin-bottom: 12px; gap: 2px; }
    .cs-review-star { width: 13px; height: 13px; }
    .cs-review-author { padding-top: 14px; gap: 10px; }
    .cs-reviews-arrow { width: 40px; height: 40px; }
    .cs-reviews-arrow svg { width: 16px; height: 16px; }
    .cs-reviews-controls-row { top: -56px; gap: 8px; }
    .cs-review-screenshot-card,
    .cs-review-video-card { border-radius: 14px; }
    .cs-review-video-play { width: 54px; height: 54px; }
    .cs-review-video-play svg { width: 18px; height: 18px; }
    .cs-review-video-card::after { width: 54px; height: 54px; }
    .cs-review-screenshot-badge { font-size: 10px; padding: 5px 9px; top: 10px; }
    .cs-review-screenshot-name { font-size: 12px; bottom: 12px; }
    .cs-review-video-info { padding: 14px 14px 12px; }
    .cs-review-video-name { font-size: 12.5px; }
    .cs-review-video-tag { font-size: 9.5px; }
    .cs-reviews-dots { margin-top: 14px; }
    .cs-review-lightbox img { border-radius: 10px; }
    .cs-review-lightbox-close { top: 16px; inset-inline-end: 16px; width: 40px; height: 40px; font-size: 20px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .cs-review-card { animation: none; opacity: 1; transform: none; }
    .cs-review-card:hover { transform: none; }
    .cs-reviews-track { transition: transform 0.3s ease; }
    .cs-review-video-card::after { animation: none; opacity: 0; }
}

/* ════════════════════════════════════════════════════════════════
   CUSTOM-PAGE / SLIDER FULL-BLEED + HERO PARITY
   ════════════════════════════════════════════════════════════════ */

/* Custom page with hidden header — flush against navigation bar */
.custom-page--no-header { padding-top: 0; }
.custom-page--no-header .cs-section:first-child { margin-top: 0; }

/* When slider section is full-bleed, kill the inner constraint */
.cs-section.cs-slider {
    overflow: hidden;
    line-height: 0;
    margin: 0;
    padding: 0;
}
.cs-section.cs-slider .cs-inner.cs-inner--bleed,
.cs-section.cs-slider .cs-inner {
    max-width: none;
    padding: 0;
    margin: 0;
    line-height: 1.6;
}

/* Hero-equivalent slider — full width, image-driven height */
.cs-slider--hero {
    position: relative;
    width: 100%;
    border-radius: 0;
    overflow: hidden;
    min-height: 280px;
    aspect-ratio: 12 / 5;
}
@media (max-width: 768px) {
    .cs-slider--hero { aspect-ratio: 4 / 5; min-height: 320px; }
}
.cs-slider--hero .cs-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.6s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.cs-slider--hero .cs-slide.active {
    opacity: 1;
    pointer-events: auto;
    z-index: 2;
}
.cs-slider--hero .cs-slide-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    position: absolute;
    inset: 0;
}
.cs-slider--hero .cs-slide-img.mobile-img { display: none; }
.cs-slider--hero .cs-slide-video {
    width: 100%;
    aspect-ratio: 12 / 5;
    display: block;
    object-fit: cover;
    background: var(--secondary);
}
.cs-slider--hero iframe.cs-slide-video {
    aspect-ratio: 16 / 9;
    border: 0;
}
.cs-slider--hero .cs-slide-placeholder {
    width: 100%;
    min-height: 350px;
    background: var(--secondary);
}
.cs-slider--hero .cs-slide-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.cs-slider--hero .cs-slide-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 40px 24px;
    max-width: none;
    color: #fff;
}
.cs-slider--hero .cs-slide-title {
    font-size: 38px;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.2;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.cs-slider--hero .cs-slide-subtitle {
    font-size: 16px;
    opacity: 0.9;
    margin-bottom: 6px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}
.cs-slider--hero .cs-slide-desc {
    font-size: 14px;
    opacity: 0.85;
    margin-bottom: 22px;
    max-width: 640px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.3);
    line-height: 1.6;
}
.cs-slider--hero .cs-slide-btn {
    display: inline-block;
    padding: 14px 36px;
    background: var(--primary);
    color: #fff;
    border-radius: var(--radius);
    font-weight: 600;
    font-size: 15px;
    transition: all var(--transition);
}
.cs-slider--hero .cs-slide-btn:hover {
    background: var(--primary-hover);
    color: #fff;
    transform: translateY(-2px);
}

/* Nav buttons — match hero look */
.cs-slider--hero .cs-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,0.9);
    border: none;
    cursor: pointer;
    font-size: 20px;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition);
}
.cs-slider--hero .cs-nav:hover { background: #fff; box-shadow: var(--shadow); }
.cs-slider--hero .cs-nav.prev { inset-inline-start: 20px; }
.cs-slider--hero .cs-nav.next { inset-inline-end: 20px; }
body[dir="rtl"] .cs-slider--hero .cs-nav.prev { transform: translateY(-50%) scaleX(-1); }
body[dir="rtl"] .cs-slider--hero .cs-nav.next { transform: translateY(-50%) scaleX(-1); }

/* Dots — match hero look */
.cs-slider--hero .cs-dots {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 3;
    margin: 0;
}
.cs-slider--hero .cs-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    cursor: pointer;
    transition: all 0.3s;
    display: inline-block;
}
.cs-slider--hero .cs-dot.active {
    background: #fff;
    transform: scale(1.3);
}

/* Mobile: swap to portrait image and tighten typography */
@media (max-width: 768px) {
    .cs-slider--hero .cs-slide-img.desktop-img { display: none; }
    .cs-slider--hero .cs-slide-img.mobile-img { display: block; }
    .cs-slider--hero .cs-slide-video { aspect-ratio: 3 / 4; }
    .cs-slider--hero iframe.cs-slide-video { aspect-ratio: 9 / 16; }
    .cs-slider--hero .cs-slide-title { font-size: 22px; }
    .cs-slider--hero .cs-slide-subtitle { font-size: 13px; }
    .cs-slider--hero .cs-slide-desc { font-size: 13px; margin-bottom: 16px; }
    .cs-slider--hero .cs-slide-btn { padding: 11px 26px; font-size: 13px; }
    .cs-slider--hero .cs-nav { width: 36px; height: 36px; font-size: 16px; }
    .cs-slider--hero .cs-nav.prev { inset-inline-start: 12px; }
    .cs-slider--hero .cs-nav.next { inset-inline-end: 12px; }
}

/* ───────────────────────────────────────────────────────────
   Sticky-header reinforcement + Desktop Mega Menu (Shop)
   ─────────────────────────────────────────────────────────── */
.store-header { backdrop-filter: saturate(1.05); }
.store-header.scrolled { box-shadow: 0 2px 12px rgba(0,0,0,.08); border-bottom: 1px solid var(--border); }

/* ─────────────────────────────────────────────────────────
   MEGA MENU — Editorial / refined
   Hover from desktop "Shop" link. Two-zone layout:
     • Featured promo card (left) — visual anchor
     • Categories grid (right) — root cats with subcats listed beneath
   Typography hierarchy: small uppercase eyebrow + serif/heavy display
   for the section title, refined body copy for links.
   ───────────────────────────────────────────────────────── */
.nav-shop-wrap { position: relative; display: inline-flex; align-items: center; }
.nav-shop-link { display: inline-flex; align-items: center; gap: 4px; position: relative; }
.nav-shop-caret { transition: transform .25s ease; opacity: .55; }
.nav-shop-wrap:hover .nav-shop-caret,
.nav-shop-wrap:focus-within .nav-shop-caret { transform: rotate(180deg); opacity: 1; }

.mega-menu {
    position: fixed;
    top: var(--header-h, 64px);
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    width: min(960px, calc(100vw - 32px));
    background: var(--surface, #fff);
    border: 1px solid rgba(15, 15, 30, 0.08);
    border-radius: 4px;
    box-shadow: 0 24px 60px -10px rgba(15,15,30,.18), 0 6px 20px -4px rgba(15,15,30,.08);
    padding: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
    z-index: 150;
    overflow: hidden;
}

.nav-shop-wrap:hover > .mega-menu,
.nav-shop-wrap:focus-within > .mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
    transition: opacity .22s ease, transform .22s ease, visibility 0s;
}

/* Hover bridge so cursor can move from "Shop" to the panel */
.mega-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 16px; }

/* Two-zone layout */
.mega-menu-body {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 0;
    align-items: stretch;
}

/* Left feature panel — sets the editorial tone */
.mega-feature {
    background: linear-gradient(155deg, #1a1d2e 0%, #2d1b3d 60%, #4a1a2b 100%);
    color: #fff;
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 320px;
    position: relative;
    overflow: hidden;
}
.mega-feature::after {
    content: "";
    position: absolute;
    inset: -40% -40% auto auto;
    width: 240px; height: 240px;
    background: radial-gradient(circle, rgba(229,57,53,0.35) 0%, transparent 70%);
    pointer-events: none;
}
.mega-feature-eyebrow {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.7;
    margin-bottom: 10px;
}
.mega-feature-title {
    font-size: 24px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
    position: relative;
    z-index: 1;
}
.mega-feature-text {
    font-size: 13px;
    line-height: 1.55;
    opacity: 0.78;
    margin-bottom: 18px;
    position: relative;
    z-index: 1;
}
.mega-feature-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    padding: 9px 16px;
    background: var(--surface, #fff);
    color: #1a1d2e;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    border-radius: 999px;
    transition: transform .2s, box-shadow .2s;
    position: relative;
    z-index: 1;
}
.mega-feature-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -4px rgba(0,0,0,.3); color: var(--primary); }
.mega-feature-cta svg { width: 14px; height: 14px; transition: transform .2s; }
.mega-feature-cta:hover svg { transform: translateX(3px); }
[dir="rtl"] .mega-feature-cta:hover svg { transform: translateX(-3px) scaleX(-1); }
[dir="rtl"] .mega-feature-cta svg { transform: scaleX(-1); }

/* Right side — categories grid */
.mega-grid-wrap {
    padding: 28px 30px 22px;
    background: var(--surface, #fff);
}
.mega-grid-eyebrow {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-light, #999);
    margin-bottom: 14px;
}
.mega-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px 26px;
}
.mega-col {
    min-width: 0;
}
.mega-col-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.01em;
    color: #1a1d2e;
    text-decoration: none;
    margin-bottom: 8px;
    padding-bottom: 6px;
    position: relative;
    transition: color 0.18s;
}
.mega-col-title::after {
    content: "";
    position: absolute;
    bottom: 0; inset-inline-start: 0;
    width: 18px; height: 2px;
    background: var(--primary);
    transition: width 0.25s ease;
}
.mega-col-title:hover { color: var(--primary); }
.mega-col-title:hover::after { width: 36px; }
.mega-col-icon { font-size: 14px; opacity: 0.85; }

.mega-col-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.mega-col-list li { margin: 0; }
.mega-col-list a {
    display: block;
    padding: 4px 0;
    color: #6b6f7e;
    font-size: 12.5px;
    text-decoration: none;
    transition: color 0.15s, transform 0.15s, padding 0.15s;
    position: relative;
}
.mega-col-list a:hover {
    color: var(--primary);
    padding-inline-start: 6px;
}

.mega-menu-footer {
    margin-top: 0;
    padding: 12px 30px;
    background: var(--surface-2, #fafafa);
    border-top: 1px solid rgba(15,15,30,0.06);
    text-align: end;
}
.mega-view-all {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--primary);
    font-weight: 600;
    font-size: 12px;
    text-decoration: none;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}
.mega-view-all::after {
    content: "→";
    transition: transform .2s;
}
.mega-view-all:hover::after { transform: translateX(4px); }
[dir="rtl"] .mega-view-all::after { content: "←"; }
[dir="rtl"] .mega-view-all:hover::after { transform: translateX(-4px); }

/* Hide mega menu on mobile — mobile uses off-canvas menu */
@media (max-width: 900px) {
    .nav-shop-caret { display: none; }
    .mega-menu { display: none !important; }
}
@media (max-width: 1100px) {
    .mega-menu-body { grid-template-columns: 1fr; }
    .mega-feature { min-height: 0; padding: 22px 24px; }
    .mega-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Cart sidebar — auto-applied category discount rows */
.cart-sidebar-discounts { display: flex; flex-direction: column; gap: 6px; padding-bottom: 8px; margin-bottom: 8px; border-bottom: 1px dashed var(--border); }
.cart-sidebar-discount-row { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.cart-sidebar-discount-label { color: var(--text); display: inline-flex; align-items: center; gap: 6px; }
.cart-sidebar-discount-value { color: #138a36; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ─────────────────────────────────────────────────────────
   SHOP FILTERS — Refined sidebar
   ───────────────────────────────────────────────────────── */
.shop-sidebar { font-size: 13px; }
.shop-sidebar .sidebar-widget { padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--border); }
.shop-sidebar .sidebar-widget:last-child { border-bottom: none; margin-bottom: 0; }
.shop-sidebar h4 {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #1a1d2e;
    margin-bottom: 12px;
}

/* Active filter chips */
.filter-chips-widget { background: var(--surface-2, #fafafa); border: 1px solid var(--border); border-radius: 8px; padding: 12px !important; }
.filter-chips-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #1a1d2e; }
.filter-clear-all { color: var(--primary); font-size: 11px; text-decoration: underline; cursor: pointer; }
.filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    background: var(--surface, #fff);
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 11.5px;
    color: var(--text);
    text-decoration: none;
    transition: all .15s;
}
.filter-chip:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.filter-chip svg { opacity: 0.6; }
.filter-chip:hover svg { opacity: 1; }

/* Plain link list (categories / subcategories) */
.filter-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.filter-list-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 8px;
    font-size: 13px;
    color: var(--text-muted);
    text-decoration: none;
    border-radius: 6px;
    transition: background .15s, color .15s;
}
.filter-list-link:hover { background: var(--bg-gray); color: var(--text); }
.filter-list-link.active { background: rgba(229,57,53,0.08); color: var(--primary); font-weight: 600; }
.filter-count { font-size: 11px; color: var(--text-light); background: var(--bg-gray); padding: 1px 7px; border-radius: 10px; flex-shrink: 0; }
.filter-list-link.active .filter-count { background: rgba(229,57,53,0.15); color: var(--primary); }

/* Custom checkbox */
.filter-checkbox { display: flex; align-items: center; gap: 9px; padding: 6px 0; cursor: pointer; user-select: none; }
.filter-checkbox input { position: absolute; opacity: 0; pointer-events: none; }
.filter-checkbox-box {
    width: 16px; height: 16px;
    border: 1.5px solid #c4c4cc;
    border-radius: 3px;
    flex-shrink: 0;
    background: var(--surface, #fff);
    transition: all 0.15s;
    position: relative;
}
.filter-checkbox-box::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
    opacity: 0;
    transition: opacity 0.12s;
}
.filter-checkbox input:checked + .filter-checkbox-box {
    background: var(--primary);
    border-color: var(--primary);
}
.filter-checkbox input:checked + .filter-checkbox-box::after { opacity: 1; }
.filter-checkbox-label {
    display: flex; align-items: center; gap: 8px;
    flex: 1; min-width: 0;
    font-size: 13px;
    color: var(--text);
}
.filter-brand-logo { width: 18px; height: 18px; object-fit: contain; flex-shrink: 0; }
.filter-brand-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filter-checkbox-label .filter-count { margin-inline-start: auto; }

.filter-scroll { max-height: 220px; overflow-y: auto; padding-inline-end: 4px; }
.filter-scroll::-webkit-scrollbar { width: 4px; }
.filter-scroll::-webkit-scrollbar-thumb { background: #d4d4dc; border-radius: 2px; }

/* Price range */
.price-range { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.price-range input { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid var(--border); border-radius: 6px; font-size: 13px; font-family: inherit; }
.price-range input:focus { outline: none; border-color: var(--primary); }
.price-range span { color: var(--text-light); }
.price-range-hint { font-size: 11px; color: var(--text-light); margin-top: 4px; }

/* Rating filter */
.rating-filter { display: flex; flex-direction: column; gap: 4px; }
.rating-option {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s;
}
.rating-option:hover { background: var(--bg-gray); }
.rating-option.active { background: rgba(245, 180, 0, 0.08); }
.rating-option input { display: none; }
.rating-option .stars { display: inline-flex; gap: 1px; }
.rating-option .rating-label { font-size: 12px; color: var(--text-muted); }

/* Color swatches */
.color-swatches-filter { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: 6px; }
.color-swatch-filter {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 6px 4px;
    border: 1.5px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
}
.color-swatch-filter:hover { border-color: var(--border); }
.color-swatch-filter.active { border-color: var(--primary); background: rgba(229,57,53,0.05); }
.color-swatch-filter input { display: none; }
.color-swatch-dot {
    width: 26px; height: 26px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,0.1);
    box-shadow: inset 0 0 0 2px #fff;
    flex-shrink: 0;
}
.color-swatch-filter.active .color-swatch-dot { box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--primary); }
.color-swatch-name { font-size: 10.5px; color: var(--text-muted); text-align: center; line-height: 1.2; }

/* Size pills */
.size-pills-filter { display: flex; flex-wrap: wrap; gap: 6px; }
.size-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    padding: 6px 12px;
    border: 1.5px solid var(--border);
    border-radius: 6px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--text);
    cursor: pointer;
    transition: all 0.15s;
    background: var(--surface, #fff);
}
.size-pill:hover { border-color: #888; }
.size-pill.active { border-color: var(--primary); background: var(--primary); color: #fff; }
.size-pill input { display: none; }

/* Apply button */
.filter-btn-apply { width: 100%; margin-top: 10px; padding: 11px; background: var(--primary); color: #fff; border: none; border-radius: 8px; font-weight: 600; font-size: 13px; cursor: pointer; transition: background .15s; font-family: inherit; }
.filter-btn-apply:hover { background: var(--primary-hover); }

/* Mobile filter drawer body lock when sidebar is open */
@media (max-width: 768px) {
    .shop-sidebar h4 { font-size: 12px; }
}

/* ============================================================
   Site-wide button styles — Appearance → Button Style
   Body carries btnfx-<style>. Targets primary CTAs across all
   themes via the palette vars (--primary / --accent). Shape &
   shadow use !important; background/colour do not, so a
   per-section button override (Section Style) still wins.
   ============================================================ */
body[class*="btnfx-"] .btn-primary,
body[class*="btnfx-"] .add-to-cart-btn,
body[class*="btnfx-"] .add-cart-btn,
body[class*="btnfx-"] .atc-btn,
body[class*="btnfx-"] a[class*="-btn"],
body[class*="btnfx-"] button[class*="-btn"]{
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

/* — Rounded (Pill) — */
body.btnfx-pill .btn-primary,
body.btnfx-pill .add-to-cart-btn,
body.btnfx-pill .add-cart-btn,
body.btnfx-pill .atc-btn,
body.btnfx-pill a[class*="-btn"],
body.btnfx-pill button[class*="-btn"]{ border-radius:999px !important; }

/* — Soft / Elevated — */
body.btnfx-soft .btn-primary,
body.btnfx-soft .add-to-cart-btn,
body.btnfx-soft .add-cart-btn,
body.btnfx-soft .atc-btn,
body.btnfx-soft a[class*="-btn"],
body.btnfx-soft button[class*="-btn"]{ border-radius:10px !important; box-shadow:0 10px 22px -8px rgba(0,0,0,.45) !important; }
body.btnfx-soft .btn-primary:hover,
body.btnfx-soft .add-to-cart-btn:hover,
body.btnfx-soft a[class*="-btn"]:hover,
body.btnfx-soft button[class*="-btn"]:hover{ transform:translateY(-2px) !important; box-shadow:0 16px 30px -10px rgba(0,0,0,.55) !important; }

/* — Gradient — */
body.btnfx-gradient .btn-primary,
body.btnfx-gradient .add-to-cart-btn,
body.btnfx-gradient .add-cart-btn,
body.btnfx-gradient .atc-btn,
body.btnfx-gradient a[class*="-btn"],
body.btnfx-gradient button[class*="-btn"]{
  background:linear-gradient(135deg, var(--primary), var(--accent));
  border-color:transparent; color:#fff;
  border-radius:10px !important;
  box-shadow:0 10px 22px -10px var(--primary) !important;
}
body.btnfx-gradient .btn-primary:hover,
body.btnfx-gradient .add-to-cart-btn:hover,
body.btnfx-gradient a[class*="-btn"]:hover,
body.btnfx-gradient button[class*="-btn"]:hover{ transform:translateY(-2px) !important; filter:brightness(1.06); }

/* — Outline (fills on hover) — */
body.btnfx-outline .btn-primary,
body.btnfx-outline .add-to-cart-btn,
body.btnfx-outline .add-cart-btn,
body.btnfx-outline .atc-btn,
body.btnfx-outline a[class*="-btn"],
body.btnfx-outline button[class*="-btn"]{
  background:transparent; color:var(--primary);
  border:2px solid var(--primary); border-radius:8px !important;
}
body.btnfx-outline .btn-primary:hover,
body.btnfx-outline .add-to-cart-btn:hover,
body.btnfx-outline a[class*="-btn"]:hover,
body.btnfx-outline button[class*="-btn"]:hover{ background:var(--primary); color:#fff; }

/* — Classic — theme default (no overrides) — */

/* ============================================================
   Product-page CTAs into the button-style (btnfx) system.
   The main page buttons use the "btn-" prefix convention
   (.btn-add-cart / .btn-buy-now), which the base selectors
   ([class*="-btn"]) don't catch — so map them explicitly.
   ============================================================ */
body[class*="btnfx-"] .btn-add-cart,
body[class*="btnfx-"] .btn-buy-now{
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
body.btnfx-pill .btn-add-cart,
body.btnfx-pill .btn-buy-now{ border-radius:999px !important; }

body.btnfx-soft .btn-add-cart,
body.btnfx-soft .btn-buy-now{ border-radius:10px !important; box-shadow:0 10px 22px -8px rgba(0,0,0,.45) !important; }
body.btnfx-soft .btn-add-cart:hover,
body.btnfx-soft .btn-buy-now:hover{ transform:translateY(-2px) !important; box-shadow:0 16px 30px -10px rgba(0,0,0,.55) !important; }

body.btnfx-gradient .btn-add-cart,
body.btnfx-gradient .btn-buy-now{
  background:linear-gradient(135deg, var(--primary), var(--accent));
  border-color:transparent; color:#fff;
  border-radius:10px !important;
  box-shadow:0 10px 22px -10px var(--primary) !important;
}
body.btnfx-gradient .btn-add-cart:hover,
body.btnfx-gradient .btn-buy-now:hover{ transform:translateY(-2px) !important; filter:brightness(1.06); }

body.btnfx-outline .btn-add-cart,
body.btnfx-outline .btn-buy-now{
  background:transparent; color:var(--primary);
  border:2px solid var(--primary); border-radius:8px !important;
}
body.btnfx-outline .btn-add-cart:hover,
body.btnfx-outline .btn-buy-now:hover{ background:var(--primary); color:#fff; }

/* ============================================================
   Product gallery — instant switch with blur-up + loader.
   The main image swaps to the cached small thumb immediately,
   shows a spinner while the sharp full image is fetched, then
   swaps it in. Removes the "stuck on the previous image" pause.
   ============================================================ */
.gallery-main img { transition: transform 0.3s, filter 0.25s ease; }
.gallery-main img.is-soft { filter: blur(7px); }
.gallery-loader {
  position: absolute; inset: 0; display: none;
  align-items: center; justify-content: center;
  background: rgba(255,255,255,.40); z-index: 6; pointer-events: none;
}
.gallery-spinner {
  width: 38px; height: 38px; border: 3px solid rgba(0,0,0,.15);
  border-top-color: var(--primary, #333); border-radius: 50%;
  animation: gallery-spin .7s linear infinite;
}
@keyframes gallery-spin { to { transform: rotate(360deg); } }

/* ============================================================================
   CUSTOM-SECTION CAROUSEL — new designs (Appearance-agnostic; work on every
   theme). Selected per section in the CMS: settings.carousel_style.
   cs2-sc = "Showcase" (bg image + preview cards) · cs2-sp = "Spotlight"
   (angled panel + big counter). Both honour section bg/overlay/title styling.
   ========================================================================== */
/* ── Showcase ── */
.cs2-sc{ position:relative; min-height:520px; border-radius:0; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
.cs2-sc__bgs,.cs2-sc__bg{ position:absolute; inset:0; }
.cs2-sc__bg{ opacity:0; transition:opacity .6s ease; }
.cs2-sc__bg.active{ opacity:1; }
.cs2-sc__bg img{ width:100%; height:100%; object-fit:cover; }
.cs2-sc__shade{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.28) 45%, rgba(0,0,0,.08) 100%); }
[dir="rtl"] .cs2-sc__shade{ background:linear-gradient(270deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.28) 45%, rgba(0,0,0,.08) 100%); }
.cs2-sc__stage{ position:relative; z-index:2; display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:30px;
  max-width:1280px; width:100%; margin:0 auto; padding:64px clamp(18px,4vw,44px) 96px; }
.cs2-sc__texts{ position:relative; min-height:220px; }
.cs2-sc__text{ position:absolute; inset-inline-start:0; top:50%; transform:translateY(-50%); max-width:520px;
  opacity:0; visibility:hidden; transition:opacity .45s ease; color:#fff; }
.cs2-sc__text.active{ opacity:1; visibility:visible; }
.cs2-sc__title{ font-size:clamp(1.9rem,4.6vw,3.2rem) !important; font-weight:800; line-height:1.08; margin:0 0 14px; color:inherit; }
.cs2-sc__desc{ font-size:clamp(.98rem,1.5vw,1.15rem); line-height:1.7; margin:0 0 24px; opacity:.95; }
.cs2-sc__btn{ display:inline-block; background:#fff; color:#111 !important; font-weight:700; padding:13px 26px; border-radius:8px;
  transition:transform .18s ease, box-shadow .18s ease; box-shadow:0 10px 26px -12px rgba(0,0,0,.6); }
.cs2-sc__btn:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(0,0,0,.7); }
.cs2-sc__rail{ display:flex; gap:20px; justify-content:flex-end; align-items:center; }
.cs2-sc__prev{ display:none; width:min(240px,38%); aspect-ratio:3/4; border-radius:26px; overflow:hidden; padding:0;
  border:3px solid rgba(255,255,255,.95); background:#111; cursor:pointer;
  box-shadow:0 24px 50px -22px rgba(0,0,0,.75); transition:transform .3s ease; }
.cs2-sc__prev:hover{ transform:translateY(-4px); }
.cs2-sc__prev img{ width:100%; height:100%; object-fit:cover; display:block; }
.cs2-sc__prev.is-1,.cs2-sc__prev.is-2{ display:block; }
.cs2-sc__navs{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:4; display:flex; gap:14px; }
.cs2-sc__nav{ width:50px; height:50px; border-radius:50%; border:none; background:rgba(235,235,235,.92); color:#222;
  font-size:1.5rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:transform .18s ease, background .18s ease; }
.cs2-sc__nav:hover{ background:#fff; transform:scale(1.08); }
[dir="rtl"] .cs2-sc__nav{ transform:scaleX(-1); }
[dir="rtl"] .cs2-sc__nav:hover{ transform:scaleX(-1) scale(1.08); }

/* ── Spotlight ── */
.cs2-sp{ position:relative; overflow:hidden; min-height:540px; background:#0A0A0A; color:#fff; }
.cs2-sp__slide{ position:absolute; inset:0; display:grid; grid-template-columns:1.12fr 1fr; opacity:0; visibility:hidden; transition:opacity .55s ease, visibility 0s linear .55s; }
.cs2-sp__slide.active{ position:relative; opacity:1; visibility:visible; transition:opacity .55s ease; }
.cs2-sp__media{ position:relative; min-height:540px; overflow:hidden; clip-path:polygon(0 0, 100% 0, 78% 100%, 0 100%); }
[dir="rtl"] .cs2-sp__media{ clip-path:polygon(0 0, 100% 0, 100% 100%, 22% 100%); }
.cs2-sp__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cs2-sp__img-m{ display:none; }
.cs2-sp__tint{ position:absolute; inset:0; }
.cs2-sp__panel{ align-self:center; padding:60px 5vw 60px 28px; text-align:end; color:#fff; }
[dir="rtl"] .cs2-sp__panel{ text-align:start; padding:60px 28px 60px 5vw; }
.cs2-sp__kicker{ display:block; font-weight:600; font-size:.95rem; margin-bottom:12px; opacity:.9; }
.cs2-sp__title{ font-size:clamp(2.2rem,6.4vw,4.6rem) !important; font-weight:900; letter-spacing:-.01em; line-height:1; margin:0 0 18px; color:inherit; text-transform:uppercase; }
.cs2-sp__desc{ font-size:clamp(.98rem,1.5vw,1.25rem); line-height:1.65; opacity:.92; max-width:500px; margin:0 0 26px auto; }
[dir="rtl"] .cs2-sp__desc{ margin:0 auto 26px 0; }
.cs2-sp__btn{ display:inline-block; font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.88rem; color:#fff !important;
  background:linear-gradient(90deg, var(--primary, #0E5E63), var(--accent, #2FA093)); padding:14px 32px; border-radius:999px;
  box-shadow:0 14px 30px -12px rgba(0,0,0,.65); transition:transform .18s ease, filter .18s ease; }
.cs2-sp__btn:hover{ transform:translateY(-2px); filter:brightness(1.1); }
.cs2-sp__counter{ position:absolute; bottom:22px; inset-inline-start:30px; z-index:5; font-weight:900; font-size:clamp(2.6rem,6vw,4.4rem); line-height:1; color:#fff; }
.cs2-sp__dashes{ position:absolute; bottom:44px; inset-inline-start:calc(30px + clamp(2.6rem,6vw,4.4rem) + 24px); z-index:5; display:flex; gap:10px; }
.cs2-sp__dash{ width:42px; height:3px; border:none; padding:0; background:rgba(255,255,255,.35); cursor:pointer; transition:background .18s ease; }
.cs2-sp__dash.active{ background:#fff; }
.cs2-sp__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:6; width:50px; height:50px; border-radius:50%;
  border:none; background:#fff; color:#111; font-size:1.5rem; line-height:1; cursor:pointer;
  box-shadow:0 10px 26px -10px rgba(0,0,0,.6); display:flex; align-items:center; justify-content:center; transition:transform .18s ease; }
.cs2-sp__nav:hover{ transform:translateY(-50%) scale(1.07); }
.cs2-sp__nav--prev{ inset-inline-start:20px; } .cs2-sp__nav--next{ inset-inline-end:20px; }
.cs2-sp__nav--next::after{ content:''; position:absolute; inset:-5px; border-radius:50%;
  border:3px solid transparent; border-top-color:var(--accent, #2FA093); transform:rotate(35deg); }

@media (max-width:860px){
  .cs2-sc{ min-height:0; }
  .cs2-sc__stage{ grid-template-columns:1fr; gap:22px; padding:44px 18px 92px; }
  .cs2-sc__texts{ min-height:0; }
  .cs2-sc__text{ position:relative; top:auto; transform:none; display:none; }
  .cs2-sc__text.active{ display:block; }
  .cs2-sc__rail{ justify-content:center; }
  .cs2-sc__prev{ width:min(230px,62%); }
  .cs2-sc__prev.is-2{ display:none; }
  .cs2-sp__slide{ grid-template-columns:1fr; }
  .cs2-sp__media{ clip-path:none; min-height:0; position:relative; margin:26px 9vw 0; transform:rotate(-5deg); border-radius:8px; box-shadow:0 24px 50px -22px rgba(0,0,0,.8); }
  [dir="rtl"] .cs2-sp__media{ clip-path:none; }
  .cs2-sp__media img{ position:relative; aspect-ratio:4/5; height:auto; }
  .cs2-sp__img-d{ display:none; } .cs2-sp__img-m{ display:block; }
  .cs2-sp__panel,[dir="rtl"] .cs2-sp__panel{ text-align:center; padding:24px 18px 104px; }
  .cs2-sp__desc{ margin:0 auto 24px; }
  .cs2-sp__nav{ top:auto; bottom:98px; transform:none; width:46px; height:46px; }
  .cs2-sp__nav:hover{ transform:scale(1.05); }
}

/* view-slider alias for sections whose parts use .products-grid as the
   container — makes the section-manager Grid/Slider switch work everywhere. */
.products-grid.view-slider { display: flex; overflow-x: auto; scroll-snap-type: x proximity; gap: 16px; padding-bottom: 8px; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.products-grid.view-slider::-webkit-scrollbar { height: 4px; }
.products-grid.view-slider::-webkit-scrollbar-thumb { background: var(--border-dark); border-radius: 2px; }
.products-grid.view-slider .product-card { min-width: 220px; max-width: 260px; flex-shrink: 0; scroll-snap-align: start; }

/* ═══════════════════════════════════════════════════════════════════
   PER-PIECE VARIANT CONFIGURATOR
   Appears when a customer buys 2+ of a variable product. Each piece is
   an independent card with the same swatches; a live summary groups
   identical picks. Reuses .vr-terms swatch styling for consistency.
   ═══════════════════════════════════════════════════════════════════ */
.vr-multi {
    margin: 18px 0 6px;
    border: 1px solid var(--border, #e6e2d9);
    border-radius: 16px;
    background:
        radial-gradient(120% 100% at 0% 0%, rgba(215,52,44,0.03) 0%, transparent 40%),
        var(--bg-card, #fff);
    padding: 16px 16px 18px;
    animation: vrMultiIn .28s cubic-bezier(.2,.7,.3,1);
}
@keyframes vrMultiIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.vr-multi__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.vr-multi__title { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--text, #201e24); }
.vr-multi__hint { font-size: 12px; font-weight: 600; }
.vr-multi__hint.s-warn { color: #B26A00; }
.vr-multi__hint.s-ok { color: #178A50; }

.vr-multi__pieces { display: flex; flex-direction: column; gap: 12px; }

/* Each piece card */
.vr-piece {
    border: 1.5px solid var(--border, #e6e2d9);
    border-radius: 13px;
    padding: 13px 14px;
    background: var(--bg, #faf9f6);
    position: relative;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.vr-piece.is-ready { border-color: rgba(23,138,80,0.5); background: linear-gradient(0deg, rgba(23,138,80,0.04), rgba(23,138,80,0.04)), #fff; }
.vr-piece.is-oos { border-color: rgba(207,58,58,0.5); }
.vr-piece__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.vr-piece__num {
    font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--text, #201e24);
    display: inline-flex; align-items: center; gap: 8px;
}
.vr-piece__num::before {
    content: ''; width: 7px; height: 7px; border-radius: 50%;
    background: var(--text-muted, #9a94a2);
}
.vr-piece.is-ready .vr-piece__num::before { background: #178A50; }
.vr-piece.is-oos .vr-piece__num::before { background: #CF3A3A; }
.vr-piece__state { font-size: 11.5px; font-weight: 700; }
.vr-piece__state.s-empty { color: var(--text-muted, #9a94a2); }
.vr-piece__state.s-ready { color: #178A50; }
.vr-piece__state.s-oos { color: #CF3A3A; }

.vr-piece__group { margin-bottom: 11px; }
.vr-piece__group:last-of-type { margin-bottom: 0; }
.vr-piece__glabel { font-size: 11.5px; font-weight: 600; color: var(--text-muted, #6f6a77); margin-bottom: 7px; }

/* Compact swatches inside pieces (slightly smaller than the hero selector) */
.vr-piece .vr-terms { gap: 8px; }
.vr-piece .vr-terms.vr-terms-color > .vr-term { width: 34px !important; height: 34px !important; min-width: 34px !important; }
.vr-piece .vr-terms.vr-terms-image > .vr-term { width: 48px !important; height: 48px !important; }
.vr-piece .vr-terms.vr-terms-label > .vr-term { padding: 7px 12px; font-size: 12.5px; }
.vr-piece .vr-term.vr-unavailable { opacity: .32; }
.vr-piece .vr-term.vr-unavailable::after {
    content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, transparent 46%, currentColor 47%, currentColor 53%, transparent 54%); opacity: .3; pointer-events: none;
}

.vr-piece__apply {
    margin-top: 12px; width: 100%;
    background: transparent; border: 1px dashed var(--border-dark, #c9c2b6);
    color: var(--text-muted, #6f6a77);
    border-radius: 9px; padding: 8px; font-size: 12px; font-weight: 700; cursor: pointer;
    transition: all .15s ease; font-family: inherit;
}
.vr-piece__apply:hover { border-color: var(--primary, #D7342C); color: var(--primary, #D7342C); background: rgba(215,52,44,0.03); }

/* Live grouped summary */
.vr-multi__summary { margin-top: 14px; }
.vr-sum__label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted, #9a94a2); margin-bottom: 8px; }
.vr-sum__chips { display: flex; flex-wrap: wrap; gap: 7px; }
.vr-sum__chip {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--bg-card, #fff); border: 1px solid var(--border, #e6e2d9);
    border-radius: 999px; padding: 6px 13px; font-size: 12.5px; color: var(--text, #201e24);
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.vr-sum__chip b { color: var(--primary, #D7342C); font-weight: 800; }
.vr-sum__chip--over { border-color: rgba(207,58,58,0.5); background: rgba(207,58,58,0.05); }

[dir="rtl"] .vr-piece__num { letter-spacing: 0; }

/* ═══════════════════════════════════════════════════════════════════
   CATEGORY DRILLDOWN — subcategory cards (drilldown browse mode)
   Shown on the shop page when the store browses category → subcategory
   → … → products. Each card carries the category image.
   ═══════════════════════════════════════════════════════════════════ */
.shop-drilldown-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 18px;
}
.drilldown-card {
    display: flex; flex-direction: column;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border, #eee);
    border-radius: 16px; overflow: hidden;
    text-decoration: none; color: inherit;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.drilldown-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px -20px rgba(0,0,0,0.28);
    border-color: var(--primary, #D7342C);
}
.drilldown-card__img { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--bg, #f5f3ee); }
.drilldown-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.drilldown-card:hover .drilldown-card__img img { transform: scale(1.06); }
.drilldown-card__noimg {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--primary, #D7342C), #F08A3C);
}
.drilldown-card__noimg span { font-size: 46px; font-weight: 800; color: rgba(255,255,255,0.9); text-transform: uppercase; }
.drilldown-card__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; }
.drilldown-card__title { font-size: 15.5px; font-weight: 700; margin: 0; line-height: 1.3; }
.drilldown-card__meta { font-size: 12px; color: var(--text-muted, #888); }
.drilldown-card__go {
    margin-top: 8px; font-size: 12.5px; font-weight: 700; color: var(--primary, #D7342C);
    display: inline-flex; align-items: center; gap: 5px;
}
.drilldown-card__go i { font-style: normal; transition: transform .2s ease; }
.drilldown-card:hover .drilldown-card__go i { transform: translateX(3px); }
[dir="rtl"] .drilldown-card__go i { transform: scaleX(-1); }
[dir="rtl"] .drilldown-card:hover .drilldown-card__go i { transform: scaleX(-1) translateX(3px); }
@media (max-width: 600px) { .shop-drilldown-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }

/* ═══════════════════════════════════════════════════════════════════
   BRANDS SECTION — grid + carousel (homepage "Our Brands")
   Refined logo tiles: soft frame, monochrome-to-colour lift on hover,
   generous whitespace. Each card links to the brand page.
   ═══════════════════════════════════════════════════════════════════ */
.brands-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
}
.brands-carousel { position: relative; display: flex; align-items: center; gap: 8px; }
.brands-track {
    display: flex; gap: 16px; overflow-x: auto; flex: 1;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain; scroll-behavior: smooth; padding: 4px 2px 10px; min-width: 0;
}
.brands-track::-webkit-scrollbar { height: 4px; }
.brands-track::-webkit-scrollbar-thumb { background: var(--border-dark, #ccc); border-radius: 2px; }
.brands-carousel .brand-card { min-width: 170px; max-width: 200px; flex: 0 0 auto; scroll-snap-align: start; }

.brand-card {
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    padding: 22px 16px 18px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border, #eee);
    border-radius: 16px; text-decoration: none; color: inherit; text-align: center;
    transition: transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, border-color .22s ease;
}
.brand-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 38px -20px rgba(0,0,0,0.3);
    border-color: var(--primary, #D7342C);
}
.brand-card__logo {
    width: 92px; height: 92px; display: flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--bg, #f7f5f0); overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.04);
}
.brand-card__logo img {
    max-width: 72%; max-height: 72%; object-fit: contain;
    filter: grayscale(0.35); opacity: 0.92; transition: filter .25s ease, opacity .25s ease, transform .25s ease;
}
.brand-card:hover .brand-card__logo img { filter: grayscale(0); opacity: 1; transform: scale(1.05); }
.brand-card__initial {
    font-size: 38px; font-weight: 800; text-transform: uppercase;
    color: #fff;
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--primary, #D7342C), #F08A3C);
}
.brand-card__name { font-size: 14px; font-weight: 700; color: var(--text, #201e24); line-height: 1.3; }

.brands-carousel__arrow {
    width: 40px; height: 40px; flex: none; border-radius: 50%;
    border: 1px solid var(--border, #e5e5e5); background: var(--bg-card, #fff);
    color: var(--text, #333); cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: all .18s ease; box-shadow: 0 2px 10px -4px rgba(0,0,0,0.2);
}
.brands-carousel__arrow:hover { background: var(--primary, #D7342C); color: #fff; border-color: var(--primary, #D7342C); transform: scale(1.06); }
[dir="rtl"] .brands-carousel__arrow svg { transform: scaleX(-1); }
@media (max-width: 600px) {
    .brands-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }
    .brand-card__logo { width: 74px; height: 74px; }
    .brands-carousel__arrow { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   COLLECTIONS SECTION — shared category tab-switcher (cl- prefix)
   Theme-agnostic: inherits each theme's palette through CSS vars so it
   looks native on every template. Tabs switch panels with no reload.
   MOBILE: the tab row is a SINGLE horizontal scrolling line (never wraps).
   ═══════════════════════════════════════════════════════════════════ */
.cl-collections .section-header { text-align: center; margin-bottom: 26px; }

.cl-tabs-wrap { position: relative; border-bottom: 1px solid var(--border, #e8e4dc); margin-bottom: 30px; }
.cl-tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 28px;
    padding-bottom: 0;
}
.cl-tab {
    position: relative;
    background: none; border: none; cursor: pointer;
    font-family: inherit;
    font-size: clamp(13px, 1.4vw, 16px);
    font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase;
    color: var(--text-muted, #9a948b);
    padding: 6px 2px 14px;
    white-space: nowrap;
    transition: color .2s ease;
}
.cl-tab::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
    background: var(--primary, #D7342C); transform: scaleX(0); transform-origin: center;
    transition: transform .25s cubic-bezier(.2,.7,.3,1);
}
.cl-tab:hover { color: var(--text, #201e24); }
.cl-tab.active { color: var(--primary, var(--text, #201e24)); }
.cl-tab.active::after { transform: scaleX(1); }

.cl-panel { display: none; animation: clFade .3s ease; }
.cl-panel.active { display: block; }
@keyframes clFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.cl-panel__more { text-align: center; margin-top: 22px; }
.cl-more-link {
    display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: 0.03em;
    text-transform: uppercase; text-decoration: none;
    color: var(--primary, #D7342C);
    padding: 10px 22px; border: 1px solid var(--border-dark, #d8d2c8); border-radius: 999px;
    transition: all .2s ease;
}
.cl-more-link:hover { background: var(--primary, #D7342C); color: #fff; border-color: var(--primary, #D7342C); }

/* ── MOBILE: tabs become one horizontal scrolling line (request fix) ── */
@media (max-width: 768px) {
    /* Wrap the tabs so we can layer a fade + arrow affordance over them */
    .cl-tabs {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        gap: 20px;
        /* keep clear of the screen edge — no negative margin so tabs never
           touch the border; comfortable start/end padding instead */
        padding: 0 18px 12px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        scroll-snap-type: x proximity;
    }
    .cl-tabs::-webkit-scrollbar { display: none; }
    .cl-tab { flex: 0 0 auto; scroll-snap-align: start; }
    /* breathing room so the first/last tab clears the fade edges */
    .cl-tab:first-child { padding-inline-start: 2px; }
    .cl-tab:last-child { padding-inline-end: 20px; }
}

/* ── Scroll affordance: right-edge fade telling the user more tabs exist ── */
.cl-tabs-wrap::before,
.cl-tabs-wrap::after {
    content: ''; position: absolute; top: 0; bottom: 12px; width: 42px;
    pointer-events: none; z-index: 2; opacity: 0; transition: opacity .2s ease;
}
.cl-tabs-wrap::before { left: 0; background: linear-gradient(90deg, var(--bg, #fff) 10%, transparent); }
.cl-tabs-wrap::after  { right: 0; background: linear-gradient(270deg, var(--bg, #fff) 10%, transparent); }
.cl-tabs-wrap.can-left::before  { opacity: 1; }
.cl-tabs-wrap.can-right::after  { opacity: 1; }
[dir="rtl"] .cl-tabs-wrap::before { background: linear-gradient(270deg, var(--bg, #fff) 10%, transparent); }
[dir="rtl"] .cl-tabs-wrap::after  { background: linear-gradient(90deg, var(--bg, #fff) 10%, transparent); }

/* Optional scroll arrows (shown only when the strip overflows) */
.cl-tabs-arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 32px; height: 32px; border-radius: 50%; z-index: 3;
    border: 1px solid var(--border, #e5e5e5); background: var(--bg-card, #fff);
    color: var(--text, #333); cursor: pointer; display: none;
    align-items: center; justify-content: center;
    box-shadow: 0 2px 10px -3px rgba(0,0,0,0.25); transition: all .16s ease;
}
.cl-tabs-arrow:hover { background: var(--primary, #D7342C); color: #fff; border-color: var(--primary, #D7342C); }
.cl-tabs-arrow.prev { left: -6px; }
.cl-tabs-arrow.next { right: -6px; }
.cl-tabs-wrap.can-left  .cl-tabs-arrow.prev { display: flex; }
.cl-tabs-wrap.can-right .cl-tabs-arrow.next { display: flex; }
[dir="rtl"] .cl-tabs-arrow svg { transform: scaleX(-1); }
@media (max-width: 768px) { .cl-tabs-arrow { display: none !important; } }

/* ═══════════════════════════════════════════════════════════
   MOBILE FIXES — checkout layout + slide drawers (all templates;
   these components are shared, themes only recolor them).
   ═══════════════════════════════════════════════════════════ */

/* Drawers: 100vh overshoots on mobile browsers (URL bar), pushing the
   footer buttons (View Cart / Checkout) below the visible screen.
   dvh tracks the real visible height, so the footer always shows. */
.cart-sidebar { height: 100vh; height: 100dvh; }
.mobile-slide-menu { height: 100vh; height: 100dvh; }
.cart-sidebar-footer { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }

/* Checkout: the rigid 1fr/420px grid never collapsed, so on phones the
   summary column shoved the whole layout past the screen edge. */
@media (max-width: 920px) {
    .checkout-layout { grid-template-columns: 1fr; gap: 24px; }
    .checkout-summary { position: static; top: auto; }
    .checkout-page { padding: 20px 14px 40px; overflow-x: clip; }
}
@media (max-width: 520px) {
    .checkout-field.half { width: 100%; }   /* stacked name fields */
    .checkout-summary { padding: 18px 16px; }
    .checkout-title { font-size: 22px; }
    .checkout-input, .checkout-field select, .checkout-field textarea { font-size: 16px; } /* prevents iOS zoom-on-focus */
    .ot-row { font-size: 13.5px; }
    /* Guard against edge-to-edge content on phones (esp. RTL): the form and
       summary keep breathing room, inputs stay inside their column, and the
       summary's rows/totals never sit flush against the screen edge. */
    .checkout-form { padding-inline: 2px; }
    .checkout-input, .checkout-field select, .checkout-field textarea { max-width: 100%; box-sizing: border-box; }
    .order-item, .ot-row, .checkout-summary h3 { padding-inline: 0; }
    .order-item-info { min-width: 0; }
    .order-item-info strong { word-break: break-word; overflow-wrap: anywhere; }
}

/* ═══════════════════════════════════════════════════════════════════
   Personalization atelier ("لمستك الخاصة") — the customer's custom
   text / image on the product page. Inherits each template's variables
   (--primary, --border, --radius) so it feels native on every theme,
   with its own handcrafted identity: a stitched-tag chip overlapping a
   dashed border, a live character counter, and a tactile dropzone.
   ═══════════════════════════════════════════════════════════════════ */
.pz-atelier {
    position: relative;
    margin: 22px 0 6px;
    padding: 22px 18px 16px;
    border: 1.5px dashed color-mix(in srgb, var(--primary) 45%, var(--border));
    border-radius: calc(var(--radius, 8px) + 4px);
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--primary) 5%, transparent) 0%,
            transparent 45%),
        var(--surface, transparent);
    animation: pzReveal .5s cubic-bezier(.2,.8,.25,1) both;
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
    .pz-atelier { border-color: var(--primary); }
}
@keyframes pzReveal {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}
.pz-atelier__tag {
    position: absolute;
    top: -12px;
    inset-inline-start: 14px;
    padding: 3px 12px;
    background: var(--primary);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    border-radius: 999px;
    box-shadow: 0 3px 10px color-mix(in srgb, var(--primary) 35%, transparent);
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
    .pz-atelier__tag { box-shadow: 0 3px 10px rgba(0,0,0,.18); }
}

.pz-field { margin-bottom: 14px; }
.pz-field:last-child { margin-bottom: 4px; }
.pz-field__label {
    display: flex; align-items: center; gap: 7px;
    font-size: 13.5px; font-weight: 600;
    color: var(--text, inherit);
    margin-bottom: 8px;
}
.pz-field__label svg { color: var(--primary); flex: none; }
.pz-req { color: var(--primary); font-style: normal; font-weight: 800; }

/* text input + live counter */
.pz-input-wrap { position: relative; }
.pz-input-wrap input {
    width: 100%;
    padding: 12px 64px 12px 14px;
    font: inherit; font-size: 14.5px;
    color: inherit;
    background: var(--bg, #fff);
    border: 1.5px solid var(--border, #e5e5e5);
    border-radius: var(--radius, 8px);
    outline: none;
    transition: border-color .18s, box-shadow .18s;
}
[dir="rtl"] .pz-input-wrap input { padding: 12px 14px 12px 64px; }
.pz-input-wrap input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent);
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
    .pz-input-wrap input:focus { box-shadow: none; }
}
.pz-counter {
    position: absolute;
    inset-inline-end: 12px;
    top: 50%; transform: translateY(-50%);
    font-size: 11px; font-weight: 700;
    color: var(--text-muted, #999);
    pointer-events: none;
    font-variant-numeric: tabular-nums;
}
.pz-counter.warm { color: var(--primary); }

/* dropzone */
.pz-drop {
    position: relative;
    border: 1.5px dashed var(--border, #ddd);
    border-radius: var(--radius, 8px);
    background: var(--bg, #fff);
    cursor: pointer;
    overflow: hidden;
    transition: border-color .18s, transform .18s, box-shadow .18s;
}
.pz-drop:hover, .pz-drop.dragover {
    border-color: var(--primary);
    box-shadow: 0 4px 18px color-mix(in srgb, var(--primary) 12%, transparent);
}
.pz-drop.dragover { transform: scale(1.012); }
@supports not (color: color-mix(in srgb, red 50%, blue)) {
    .pz-drop:hover, .pz-drop.dragover { box-shadow: 0 4px 18px rgba(0,0,0,.08); }
}
.pz-drop__idle { padding: 22px 14px; text-align: center; }
.pz-drop__icon {
    width: 54px; height: 54px; margin: 0 auto 10px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    color: var(--primary);
    background: color-mix(in srgb, var(--primary) 9%, transparent);
    transition: transform .25s;
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
    .pz-drop__icon { background: var(--border); }
}
.pz-drop:hover .pz-drop__icon { transform: translateY(-3px); }
.pz-drop__text { font-size: 14px; font-weight: 600; }
.pz-drop__hint { font-size: 11.5px; color: var(--text-muted, #999); margin-top: 4px; }

/* uploading state */
.pz-drop__busy {
    padding: 26px 14px; text-align: center;
    font-size: 13.5px; font-weight: 600; color: var(--text-muted, #777);
}
.pz-shimmer {
    height: 5px; border-radius: 3px; margin: 0 auto 12px; max-width: 220px;
    background: linear-gradient(90deg, var(--border, #eee) 25%, var(--primary) 50%, var(--border, #eee) 75%);
    background-size: 200% 100%;
    animation: pzShimmer 1.1s linear infinite;
}
@keyframes pzShimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* uploaded state */
.pz-drop__done { display: flex; align-items: center; gap: 14px; padding: 12px 14px; animation: pzReveal .35s ease both; }
.pz-drop__done img {
    width: 74px; height: 74px; object-fit: cover;
    border-radius: calc(var(--radius, 8px) - 2px);
    box-shadow: 0 3px 12px rgba(0,0,0,.16);
    background: var(--border, #eee);
    flex: none;
}
.pz-drop__meta { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; min-width: 0; }
.pz-drop__check { font-size: 13.5px; font-weight: 700; color: #16a34a; }
.pz-drop__remove {
    font: inherit; font-size: 12px; font-weight: 600;
    color: var(--primary);
    background: none; border: 1px solid currentColor; border-radius: 999px;
    padding: 4px 14px; cursor: pointer;
    transition: background .15s, color .15s;
}
.pz-drop__remove:hover { background: var(--primary); color: #fff; }

.pz-error {
    margin-top: 8px; font-size: 12.5px; font-weight: 600; color: #dc2626;
}

/* the personalization summary shown on cart lines */
.pz-line { margin-top: 6px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pz-line__text {
    font-size: 12px; color: var(--text-muted, #777);
    background: color-mix(in srgb, var(--primary) 7%, transparent);
    border: 1px dashed color-mix(in srgb, var(--primary) 35%, var(--border));
    border-radius: 999px; padding: 2px 10px;
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
    .pz-line__text { background: var(--border); border-color: var(--primary); }
}
.pz-line__thumb {
    width: 30px; height: 30px; object-fit: cover;
    border-radius: 6px; box-shadow: 0 1px 5px rgba(0,0,0,.2);
    flex: none;
}

@media (max-width: 640px) {
    .pz-atelier { padding: 20px 14px 12px; }
    .pz-drop__idle { padding: 18px 10px; }
    .pz-input-wrap input { font-size: 16px; } /* prevents iOS zoom-on-focus */
}

/* ═══════════════════════════════════════════════════════════════════
   CUSTOM SECTIONS — 4 new designs (connect / steps / newsletter / showcase)
   All colour-driven via inline styles from the admin; these rules own the
   layout, spacing, motion and responsive/RTL behaviour. Theme-variable
   fallbacks keep them coherent on every template.
   ═══════════════════════════════════════════════════════════════════ */

/* shared reveal used by cards/rows */
@keyframes csNewReveal { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* ── CONNECT ("Stay Connected") ─────────────────────────────────────
   A colour banner (the section bg) holds the title + link on one side and a
   descriptive paragraph on the other; a row of cards sits below and OVERLAPS
   the banner's lower edge, spilling onto the page background. */
.cs-connect { position: relative; }
.cs-connect__head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
    padding: 8px 0 120px;   /* bottom room for the overlapping cards */
    max-width: 1180px;
    margin: 0 auto;
}
.cs-connect__title { font-size: clamp(30px, 4vw, 44px); font-weight: 800; line-height: 1.1; margin: 0 0 18px; }
.cs-connect__link {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: inherit; text-decoration: none; opacity: .95;
}
.cs-connect__link span { transition: transform .2s; }
.cs-connect__link:hover span { transform: translateX(4px); }
[dir="rtl"] .cs-connect__link span { display: inline-block; transform: scaleX(-1); }
[dir="rtl"] .cs-connect__link:hover span { transform: scaleX(-1) translateX(4px); }
.cs-connect__desc { font-size: 15px; line-height: 1.9; margin: 6px 0 0; opacity: .92; }
.cs-connect__cards {
    position: relative;
    margin-top: -100px;      /* pull cards up over the banner */
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    max-width: 1180px;
    margin-left: auto; margin-right: auto;
    padding: 0 4px;
}
.cs-connect__card {
    border-radius: 6px;
    padding: 40px 28px 34px;
    text-align: center;
    box-shadow: 0 20px 50px rgba(0,0,0,.10);
    display: flex; flex-direction: column; align-items: center;
    animation: csNewReveal .6s cubic-bezier(.2,.8,.25,1) both;
    animation-delay: var(--d, 0ms);
}
.cs-connect__icon {
    width: 86px; height: 86px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 22px;
}
.cs-connect__card-title { font-size: 21px; font-weight: 700; margin: 0 0 14px; }
.cs-connect__card-desc { font-size: 14px; line-height: 1.75; margin: 0 0 26px; }
.cs-connect__btn {
    margin-top: auto;
    display: inline-block; width: 100%;
    padding: 15px 24px; border-radius: 999px;
    font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    text-decoration: none; transition: filter .2s, transform .2s;
}
.cs-connect__btn:hover { filter: brightness(1.08); transform: translateY(-2px); }
@media (max-width: 900px) {
    .cs-connect__head { grid-template-columns: 1fr; gap: 22px; padding-bottom: 60px; text-align: center; }
    .cs-connect__cards { grid-template-columns: 1fr; margin-top: -30px; gap: 22px; }
}

/* ── STEPS ("How to get started") ───────────────────────────────────
   Two columns: a lead (title + text + button) and a vertical list of
   icon rows (icon on the inline-start, title + description beside it). */
div.cs-steps {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 60px;
    align-items: start;
    max-width: 1180px;
    margin: 0 auto;
}
.cs-steps__title { font-size: clamp(28px, 3.4vw, 40px); font-weight: 800; line-height: 1.12; margin: 0 0 20px; }
.cs-steps__desc { font-size: 15px; line-height: 1.9; margin: 0 0 26px; }
.cs-steps__btn {
    display: inline-block; padding: 14px 30px; border-radius: 4px;
    font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    text-decoration: none; transition: filter .2s, transform .2s;
}
.cs-steps__btn:hover { filter: brightness(1.08); transform: translateY(-2px); }
.cs-steps__list { display: flex; flex-direction: column; gap: 34px; }
.cs-steps__row {
    display: flex; gap: 20px; align-items: flex-start;
    animation: csNewReveal .55s ease both; animation-delay: var(--d, 0ms);
}
.cs-steps__icon {
    flex: 0 0 auto; width: 46px; height: 46px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 12px;
}
.cs-steps__body { min-width: 0; }
.cs-steps__row-title { font-size: 18px; font-weight: 700; margin: 2px 0 8px; }
.cs-steps__row-desc { font-size: 14px; line-height: 1.75; margin: 0; }
@media (max-width: 860px) {
    div.cs-steps { grid-template-columns: 1fr; gap: 34px; }
}

/* ── NEWSLETTER ("Sign up for our newsletter") ──────────────────────
   A dark panel (eyebrow + big title + text + email form) on the inline-start,
   with an image that OVERLAPS it on the inline-end and bleeds slightly past. */
.cs-nl {
    position: relative;
    max-width: 1180px; margin: 0 auto;
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
}
.cs-nl:not(.has-image) { grid-template-columns: 1fr; max-width: 760px; }
.cs-nl__panel {
    padding: clamp(34px, 5vw, 64px);
    position: relative; z-index: 2;
    align-self: stretch;
    display: flex; flex-direction: column; justify-content: center;
}
.cs-nl__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; opacity: .7; margin-bottom: 18px; }
.cs-nl__title { font-size: clamp(34px, 4.6vw, 56px); font-weight: 800; line-height: 1.05; margin: 0 0 22px; }
.cs-nl__desc { font-size: 15px; line-height: 1.85; opacity: .85; margin: 0 0 30px; }
.cs-nl__form { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.cs-nl__input {
    flex: 1; min-width: 200px;
    padding: 15px 18px; border: none; border-radius: 2px;
    font-size: 14px; font-family: inherit; background: var(--surface, #fff); color: #111; outline: none;
}
.cs-nl__btn {
    padding: 15px 26px; border: none; border-radius: 2px;
    font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    cursor: pointer; font-family: inherit; transition: filter .2s, transform .2s;
}
.cs-nl__btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.cs-nl__msg { flex-basis: 100%; font-size: 13px; opacity: .9; min-height: 0; }
.cs-nl__msg.ok { color: #4ade80; }
.cs-nl__msg.err { color: #fca5a5; }
.cs-nl__media {
    position: relative; z-index: 1;
    margin-inline-start: -40px;    /* overlap the panel */
    align-self: stretch;
}
.cs-nl__media img { display: block; width: 100%; height: 100%; min-height: 320px; object-fit: cover; }
@media (max-width: 820px) {
    .cs-nl, .cs-nl:not(.has-image) { grid-template-columns: 1fr; max-width: 560px; }
    .cs-nl__media { margin-inline-start: 0; margin-top: -1px; }
    .cs-nl__media img { min-height: 240px; }
}

/* ── SHOWCASE ("Simple banking for you" + logos bar) ────────────────
   Top: image on one side, lead (title + text + CTA + link) on the other.
   Below: a dark rounded bar of brand logos that visually bridges the two. */
.cs-showcase { max-width: 1240px; margin: 0 auto; }
.cs-showcase__top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}
.cs-showcase__media img { display: block; width: 100%; height: 100%; max-height: 520px; object-fit: cover; border-radius: 4px; }
.cs-showcase__title { font-size: clamp(30px, 4vw, 46px); font-weight: 800; line-height: 1.1; margin: 0 0 20px; }
.cs-showcase__desc { font-size: 15px; line-height: 1.85; margin: 0 0 30px; opacity: .9; }
.cs-showcase__actions { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.cs-showcase__btn {
    display: inline-block; padding: 16px 34px; border-radius: 4px;
    font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    text-decoration: none; transition: filter .2s, transform .2s;
}
.cs-showcase__btn:hover { filter: brightness(1.08); transform: translateY(-2px); }
.cs-showcase__link {
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    text-decoration: none;
}
.cs-showcase__link span { transition: transform .2s; }
.cs-showcase__link:hover span { transform: translateX(4px); }
[dir="rtl"] .cs-showcase__link span { display: inline-block; transform: scaleX(-1); }
.cs-showcase__logos {
    margin-top: -40px;      /* bridge under the top row */
    position: relative; z-index: 2;
    border-radius: 14px;
    padding: 34px clamp(20px, 4vw, 60px);
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: 20px;
    align-items: center;
    box-shadow: 0 24px 60px rgba(0,0,0,.18);
    overflow-x: auto;
    scrollbar-width: none;
}
.cs-showcase__logos::-webkit-scrollbar { display: none; }
.cs-showcase__logo { display: flex; align-items: center; justify-content: center; }
.cs-showcase__logo img { max-height: 34px; max-width: 120px; width: auto; object-fit: contain; filter: brightness(0) invert(1); opacity: .9; }
@media (max-width: 900px) {
    .cs-showcase__top { grid-template-columns: 1fr; gap: 30px; }
    .cs-showcase__logos { grid-auto-flow: row; grid-template-columns: repeat(2, 1fr); grid-auto-columns: auto; gap: 26px 20px; margin-top: 24px; }
    .cs-showcase__logo img { max-height: 30px; }
}

/* ── Small-desktop header: never let nav links get pushed off-screen ──
   .header-right is flex-shrink:0, so as nav items grow (custom pages +
   Contact + Return Policy) they squeeze the search box and can push the last
   link past the viewport edge. Below 1100px tighten the nav spacing; below
   900px hand search over to the full-width mobile search bar (already in the
   markup) so the nav always fits and search stays usable rather than
   collapsing to zero width. Above 768px the desktop nav is still shown. */
@media (max-width: 1100px) and (min-width: 901px) {
    .header-nav { gap: 13px; }
    .header-nav a, .header-nav .nav-shop-link { font-size: 12.5px; }
    .search-wrapper { max-width: 220px; min-width: 0; }
}
@media (max-width: 900px) and (min-width: 769px) {
    .header-inner > .search-wrapper { display: none; }
    .mobile-search-bar { display: block; }
    .header-nav { gap: 14px; }
    .header-nav a, .header-nav .nav-shop-link { font-size: 12.5px; }
}

/* ═══════════════════════════════════════════════════════════════════
   COD-TRUST + WHATSAPP-ORDER custom sections (Egyptian SMB blocks)
   Theme-variable skinned; render via includes/custom-section.php.
   ═══════════════════════════════════════════════════════════════════ */

/* ── COD reassurance / delivery-coverage grid ── */
.cs-cod { position: relative; }
.cs-cod__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 4px;
}
.cs-cod__card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 22px 20px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(0,0,0,.05);
    animation: csNewReveal .6s cubic-bezier(.2,.8,.25,1) both;
    animation-delay: var(--d, 0ms);
}
.cs-cod__icon {
    flex-shrink: 0;
    width: 52px; height: 52px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}
.cs-cod__body { min-width: 0; }
.cs-cod__card-title { font-size: 15px; font-weight: 700; margin: 2px 0 4px; line-height: 1.35; }
.cs-cod__card-desc  { font-size: 13px; line-height: 1.7; margin: 0; }

/* ── WhatsApp order band ── */
.cs-waorder { border-radius: var(--radius); overflow: hidden; }
.cs-waorder__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    flex-wrap: wrap;
    max-width: 1100px;
    margin: 0 auto;
    padding: 34px 30px;
}
.cs-waorder__lead { min-width: 0; flex: 1 1 320px; }
.cs-waorder__title { font-size: clamp(22px, 3vw, 32px); font-weight: 800; line-height: 1.2; margin: 0 0 8px; }
.cs-waorder__desc  { font-size: 15px; line-height: 1.8; margin: 0; opacity: .92; }
.cs-waorder__btn {
    flex-shrink: 0;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 15px 30px;
    border-radius: 999px;
    font-size: 16px; font-weight: 700;
    text-decoration: none;
    box-shadow: 0 10px 26px rgba(0,0,0,.18);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cs-waorder__btn:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0,0,0,.24); }
.cs-waorder__btn svg { flex-shrink: 0; }

@media (max-width: 980px) {
    .cs-cod__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .cs-cod__grid { grid-template-columns: 1fr; gap: 12px; }
    .cs-cod__card { padding: 18px 16px; }
    .cs-waorder__inner { flex-direction: column; text-align: center; padding: 28px 20px; }
    .cs-waorder__btn { width: 100%; justify-content: center; }
}

/* ═══════════ FLATBOX — flat offset-shadow plan cards ═══════════ */
.cs-fb { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; padding: 30px 8px 40px; max-width: 1120px; margin: 0 auto; }
.cs-fb__card { border-radius: 2px; padding: 40px 34px 36px; display: flex; flex-direction: column; align-items: flex-start; animation: csNewReveal .5s ease both; animation-delay: var(--d, 0ms); }
.cs-fb__icon { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 22px; flex-shrink: 0; }
.cs-fb__icon img, .cs-fb__icon svg { width: 28px; height: 28px; object-fit: contain; }
.cs-fb__title { font-size: 23px; font-weight: 700; margin: 0 0 18px; line-height: 1.3; }
p.cs-fb__desc, ul.cs-fb__desc, ol.cs-fb__desc { font-size: 14.5px; line-height: 2.1; margin: 0 0 26px; }
ul.cs-fb__desc li, ol.cs-fb__desc li { margin: 0 0 2px; }
.cs-fb__btn { display: inline-block; border: 1px solid currentColor; background: transparent; padding: 13px 26px; font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; margin-top: auto; transition: transform .15s ease, filter .15s ease; }
.cs-fb__btn:hover { filter: brightness(.88); transform: translateY(-1px); }
@media (max-width: 980px) { .cs-fb { grid-template-columns: repeat(2, 1fr); gap: 32px; } }
@media (max-width: 640px) { .cs-fb { grid-template-columns: 1fr; gap: 30px; padding: 22px 4px 30px; } .cs-fb__card { padding: 34px 26px 30px; } }

/* ═══════════ YELLOWCARDS — photo cards with accent rule + link ═══════════ */
.cs-yc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; padding: 10px 4px 30px; }
.cs-yc__card { display: flex; flex-direction: column; animation: csNewReveal .5s ease both; animation-delay: var(--d, 0ms); }
.cs-yc__media { aspect-ratio: 5/4; overflow: hidden; }
.cs-yc__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.cs-yc__card:hover .cs-yc__media img { transform: scale(1.045); }
.cs-yc__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 30px 30px 32px; }
.cs-yc__rule { display: block; width: 92px; height: 2px; margin-bottom: 22px; }
.cs-yc__title { font-size: 22px; font-weight: 700; margin: 0 0 12px; line-height: 1.3; }
p.cs-yc__desc, ul.cs-yc__desc, ol.cs-yc__desc { font-size: 14px; line-height: 1.85; margin: 0 0 22px; }
.cs-yc__link { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; margin-top: auto; transition: gap .15s ease; }
.cs-yc__link:hover { gap: 11px; }
@media (max-width: 980px) { .cs-yc { grid-template-columns: 1fr; gap: 30px; max-width: 560px; margin: 0 auto; } }

/* ═══════════ DARKBLUEBOX — photo + overlapping white card ═══════════ */
.cs-dbb { position: relative; padding: 44px 0 70px; max-width: 1120px; margin: 0 auto; }
.cs-dbb__media { width: 62%; }
.cs-dbb__media img { width: 100%; display: block; aspect-ratio: 3/2; object-fit: cover; }
.cs-dbb__card { position: absolute; inset-inline-end: 0; top: 50%; transform: translateY(-42%); width: 46%; padding: 46px 44px; }
.cs-dbb__title { font-size: 27px; font-weight: 700; margin: 0 0 18px; }
p.cs-dbb__desc, ul.cs-dbb__desc, ol.cs-dbb__desc { font-size: 14.5px; line-height: 1.9; margin: 0 0 26px; }
.cs-dbb__btn { display: inline-block; padding: 14px 26px; font-size: 12.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; border-radius: 3px; transition: filter .15s ease, transform .15s ease; }
.cs-dbb__btn:hover { filter: brightness(.92); transform: translateY(-1px); }
@media (max-width: 900px) {
  .cs-dbb { padding: 24px 0 34px; }
  .cs-dbb__media { width: 100%; }
  .cs-dbb__card { position: static; transform: none; width: 100%; padding: 32px 26px 36px; }
}

/* ═══════════ CHECKBOX — hero photo, lead + overlapping checklist panel ═══════════ */
.cs-cbx { padding-bottom: 24px; }
.cs-cbx__hero { margin: 0 0 0; }
.cs-cbx__hero img { width: 100%; display: block; aspect-ratio: 21/8; object-fit: cover; }
.cs-cbx__row { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: start; max-width: 1120px; margin: 0 auto; padding: 34px 8px 10px; }
.cs-cbx__row.has-hero .cs-cbx__panel { margin-top: -150px; position: relative; z-index: 2; }
.cs-cbx__lead { padding-top: 26px; }
.cs-cbx__title { font-size: 30px; font-weight: 700; margin: 0 0 18px; }
p.cs-cbx__desc, ul.cs-cbx__desc, ol.cs-cbx__desc { font-size: 15.5px; line-height: 1.9; margin: 0 0 28px; }
.cs-cbx__btn { display: inline-block; padding: 15px 28px; font-size: 12.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; border-radius: 3px; transition: filter .15s ease; }
.cs-cbx__btn:hover { filter: brightness(.92); }
.cs-cbx__panel { padding: 40px 38px 30px; box-shadow: 0 14px 40px rgba(20,30,45,.10); }
.cs-cbx__panel-title { font-size: 21px; font-weight: 700; margin: 0 0 18px; }
.cs-cbx__list { list-style: none; margin: 0; padding: 0; }
.cs-cbx__list li { display: flex; gap: 13px; align-items: flex-start; font-size: 14.5px; line-height: 1.75; padding: 13px 0; border-bottom: 1px solid rgba(120,130,145,.18); }
.cs-cbx__list li:last-child { border-bottom: 0; }
.cs-cbx__list li svg { flex-shrink: 0; margin-top: 4px; }
@media (max-width: 900px) {
  .cs-cbx__row { grid-template-columns: 1fr; gap: 26px; padding-top: 22px; }
  .cs-cbx__row.has-hero .cs-cbx__panel { margin-top: 0; }
  .cs-cbx__lead { padding-top: 0; }
  .cs-cbx__hero img { aspect-ratio: 16/8; }
}

/* ═══════════ HARDICONS — lead column + 2-col outline-icon grid ═══════════ */
.cs-hi { display: grid; grid-template-columns: 0.85fr 2fr; gap: 60px; align-items: start; max-width: 1180px; margin: 0 auto; padding: 26px 6px 30px; }
.cs-hi__eyebrow { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8492a6; margin-bottom: 10px; }
.cs-hi__title { font-size: 42px; font-weight: 700; margin: 0 0 20px; line-height: 1.12; }
p.cs-hi__desc, ul.cs-hi__desc, ol.cs-hi__desc { font-size: 15.5px; line-height: 1.85; margin: 0; }
.cs-hi__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 44px 56px; }
.cs-hi__cell { animation: csNewReveal .5s ease both; animation-delay: var(--d, 0ms); }
.cs-hi__icon { margin-bottom: 16px; }
.cs-hi__icon img, .cs-hi__icon svg { width: 48px; height: 48px; object-fit: contain; }
.cs-hi__cell-title { font-size: 20px; font-weight: 700; margin: 0 0 10px; }
p.cs-hi__cell-desc, ul.cs-hi__cell-desc, ol.cs-hi__cell-desc { font-size: 14px; line-height: 1.85; margin: 0; }
.cs-hi__link { display: inline-block; margin-top: 10px; font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; color: inherit; }
@media (max-width: 980px) {
  .cs-hi { grid-template-columns: 1fr; gap: 34px; }
  .cs-hi__title { font-size: 34px; }
  .cs-hi__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ============================================================
   Lead Magnet block (gated free download)
   ============================================================ */
.lead-magnet-section{ padding:48px 0; }
.lm-card{
  display:grid; grid-template-columns:1.1fr 1fr; gap:0; align-items:stretch;
  max-width:1000px; margin:0 auto; background:var(--surface,#fff);
  border:1px solid var(--border,#e5e7eb); border-radius:20px; overflow:hidden;
  box-shadow:0 10px 34px rgba(0,0,0,.08);
}
.lm-media{ background:var(--surface-2, #f3f4f6); }
.lm-media img{ width:100%; height:100%; object-fit:cover; display:block; min-height:260px; }
.lm-body{ padding:34px 32px; display:flex; flex-direction:column; justify-content:center; }
.lm-title{ font-size:clamp(22px,3vw,30px); margin:0 0 10px; line-height:1.25; }
.lm-sub{ color:var(--text-muted,#6b7280); line-height:1.85; margin:0 0 20px; font-size:15px; }
.lm-form{ display:flex; flex-direction:column; gap:12px; }
.lm-input{
  width:100%; padding:13px 16px; border:1.5px solid var(--border,#e5e7eb);
  border-radius:12px; font-family:inherit; font-size:15px; background: var(--surface, #fff);
}
.lm-input:focus{ outline:none; border-color:var(--primary,#2563eb); }
.lm-hint{ font-size:12.5px; color:var(--text-muted,#6b7280); margin:-2px 0 2px; }
.lm-btn{ width:100%; border-radius:999px; font-weight:800; padding:14px 22px; cursor:pointer; }
.lm-msg{ padding:11px 14px; border-radius:10px; font-size:14px; line-height:1.7; }
.lm-msg.ok{ background:rgba(16,185,129,.10); color:#0f7a52; border:1px solid rgba(16,185,129,.3); }
.lm-msg.err{ background:rgba(220,53,69,.10); color:#b02a37; border:1px solid rgba(220,53,69,.25); }
.lm-manual{ font-weight:700; text-decoration:underline; }
@media (max-width:720px){
  .lm-card{ grid-template-columns:1fr; }
  .lm-media img{ min-height:180px; max-height:240px; }
  .lm-body{ padding:26px 22px; }
}

/* ════════════════════════════════════════════════════════════════
   SITE COLOR SCHEME — global dark-mode fixups.
   Active ONLY when the merchant enables the Dark scheme in
   Settings → Appearance (body carries data-scheme="dark").
   Themes add their own targeted fixups in their theme.css.
   ════════════════════════════════════════════════════════════════ */
body[data-scheme="dark"] {
    color-scheme: dark; /* native scrollbars, form widgets, date pickers */
    /* Light accent tints glare on dark canvases — swap for a subtle glow. */
    --primary-light: rgba(255,255,255,0.07);
    /* Shadows need more weight to read against dark surfaces. */
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
    --shadow: 0 2px 14px rgba(0,0,0,0.5);
    --shadow-lg: 0 10px 34px rgba(0,0,0,0.6);
}
/* Text inputs / selects / textareas across the storefront pick up the
   scheme surfaces (checkout, auth, contact, filters, search). */
body[data-scheme="dark"] input[type="text"],
body[data-scheme="dark"] input[type="email"],
body[data-scheme="dark"] input[type="tel"],
body[data-scheme="dark"] input[type="password"],
body[data-scheme="dark"] input[type="number"],
body[data-scheme="dark"] input[type="search"],
body[data-scheme="dark"] select,
body[data-scheme="dark"] textarea {
    background-color: var(--surface);
    color: var(--text);
    border-color: var(--border-dark);
}
body[data-scheme="dark"] input::placeholder,
body[data-scheme="dark"] textarea::placeholder { color: var(--text-light); }
/* Quantity selector free-standing input (no border of its own). */
body[data-scheme="dark"] .qty-selector input { background: var(--surface); color: var(--text); }
/* Overlay panels that sit above content keep separation via border. */
body[data-scheme="dark"] .search-dropdown,
body[data-scheme="dark"] .mega-panel,
body[data-scheme="dark"] .cart-sidebar,
body[data-scheme="dark"] .mobile-slide-menu,
body[data-scheme="dark"] .leadpop { border: 1px solid var(--border); }
/* Product images usually ship on white — a soft well keeps cards clean. */
body[data-scheme="dark"] .product-card .card-image,
body[data-scheme="dark"] .cart-item-img,
body[data-scheme="dark"] .cart-sidebar-item img { background: #FFFFFF; border-radius: inherit; }


/* ════════════════════════════════════════════════════════════════════════
   CUSTOM SECTIONS — designed system (v1_35).
   FAQ · Marquee · Stats · Panels · Gallery · Before/After · Countdown ·
   Timeline. Every rule consumes the theme tokens (--primary, --secondary,
   --heading, --radius, scheme surfaces) and inherits the theme's fonts, so
   each section wears the ACTIVE theme natively — and its Light/Dark scheme.
   Motion: staggered scroll-in via [data-cs-reveal] (store.js adds
   .cs-inview); everything degrades gracefully under reduced motion.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Shared reveal choreography ── */
[data-cs-reveal] > *{ opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
[data-cs-reveal]:not(.cs-inview) > *{ opacity: 0; transform: translateY(18px); }
[data-cs-reveal].cs-inview > *{ opacity: 1; transform: none; transition: opacity .6s ease, transform .6s cubic-bezier(.22,.8,.3,1); }
[data-cs-reveal].cs-inview > *:nth-child(2){ transition-delay: .08s; }
[data-cs-reveal].cs-inview > *:nth-child(3){ transition-delay: .16s; }
[data-cs-reveal].cs-inview > *:nth-child(4){ transition-delay: .24s; }
[data-cs-reveal].cs-inview > *:nth-child(5){ transition-delay: .32s; }
[data-cs-reveal].cs-inview > *:nth-child(n+6){ transition-delay: .4s; }
}

/* ── FAQ — editorial hairline accordion ── */
div.cs-faq{ max-width: 780px; margin: 0 auto; }
.cs-faq-item{ border-bottom: 1px solid var(--border-dark, var(--border)); background: transparent; }
.cs-faq-item:first-child{ border-top: 1px solid var(--border-dark, var(--border)); }
.cs-faq-q{ display: flex; align-items: center; justify-content: space-between; gap: 18px; list-style: none; cursor: pointer; padding: 22px 4px; font-size: 16.5px; font-weight: 700; color: var(--heading, var(--text)); letter-spacing: -0.01em; transition: color .25s; }
.cs-faq-q::-webkit-details-marker{ display: none; }
.cs-faq-q:hover{ color: var(--primary); }
.cs-faq-chev{ flex-shrink: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--border-dark, var(--border)); border-radius: 50%; font-size: 12px; color: var(--text-muted); transition: transform .35s cubic-bezier(.22,.8,.3,1), background .25s, color .25s, border-color .25s; }
.cs-faq-item[open] .cs-faq-chev{ transform: rotate(180deg); background: var(--primary); border-color: var(--primary); color: #fff; }
.cs-faq-a{ padding: 0 4px 24px; font-size: 14.5px; line-height: 1.9; color: var(--text-muted); max-width: 640px; }
@media (prefers-reduced-motion: no-preference) {
.cs-faq-item[open] .cs-faq-a{ animation: csFadeUp .4s ease both; }
}
@keyframes csFadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ── Marquee — edge-masked ribbon ── */
div.cs-marquee{ overflow: hidden; white-space: nowrap; padding: 16px 0;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cs-marquee-track{ direction: ltr; display: inline-flex; flex-wrap: nowrap; will-change: transform; animation: csMarqueeScroll var(--cs-mq-dur, 22s) linear infinite; }
div.cs-marquee:hover .cs-marquee-track{ animation-play-state: paused; }
.cs-marquee-unit{ flex: 0 0 auto; display: inline-flex; align-items: center; }
body[dir="rtl"] .cs-marquee-unit{ direction: rtl; }
.cs-marquee-phrase{ font-size: 14px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; padding: 0 22px; color: var(--heading, var(--text)); }
.cs-marquee-sep{ color: var(--primary); font-size: 12px; }
.cs-marquee-static{ display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; white-space: normal; text-align: center; }
@keyframes csMarqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .cs-marquee-track { animation: none; } }

/* ── Stats — open display numbers over hairline rules ── */
div.cs-stats{ display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0; max-width: 1040px; margin: 0 auto; }
.cs-stat{ position: relative; text-align: center; padding: 30px 22px 22px; }
.cs-stat::before{ content: ''; position: absolute; top: 0; inset-inline: 22px; height: 2px; background: var(--primary); opacity: .9; }
.cs-stat + .cs-stat::after{ content: ''; position: absolute; top: 28px; bottom: 22px; inset-inline-start: 0; width: 1px; background: var(--border); }
.cs-stat-ic{ margin-bottom: 10px; color: var(--primary); display: flex; justify-content: center; }
.cs-stat-num{ font-size: clamp(38px, 5.5vw, 58px); font-weight: 800; line-height: 1.05; color: var(--heading, var(--text)); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.cs-stat-label{ margin-top: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); }
@media (max-width: 640px) { .cs-stat + .cs-stat::after { display: none; } .cs-stats { gap: 6px; } }

/* ── Panels — expanding pillars (the fab-tech language, generic) ── */
div.cs-panels{ display: flex; gap: 14px; min-height: 540px; }
.cs-panel{ position: relative; overflow: hidden; flex: 1; min-width: 0; border-radius: var(--radius); background: var(--secondary); color: #fff; cursor: pointer; outline: none; padding: 26px 26px 30px; display: flex; flex-direction: column; border: 1px solid transparent; transition: flex .6s cubic-bezier(.3,.9,.25,1), border-color .35s; }
.cs-panel.active{ flex: 3.4; cursor: default; border-color: var(--primary); }
.cs-panel:not(.active):hover{ border-color: rgba(255,255,255,0.28); }
.cs-panel-bg{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; transform: scale(1.06); transition: opacity .6s ease, transform .8s cubic-bezier(.3,.9,.25,1); }
.cs-panel.active .cs-panel-bg{ opacity: .55; transform: scale(1); }
.cs-panel-shade{ position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,10,18,0.42) 0%, rgba(8,10,18,0.12) 42%, rgba(8,10,18,0.86) 100%); }
.cs-panel-num{ position: absolute; top: 20px; inset-inline-end: 22px; z-index: 2; font-size: 13px; font-weight: 800; letter-spacing: 0.3em; color: var(--primary); }
.cs-panel-head{ position: relative; z-index: 2; }
.cs-panel-title{ font-size: clamp(19px, 2vw, 26px); font-weight: 800; line-height: 1.25; letter-spacing: -0.01em; color: #fff; overflow-wrap: anywhere; }
.cs-panel-eyebrow{ margin-top: 7px; font-size: 11.5px; font-weight: 800; letter-spacing: 0.22em; text-transform: uppercase; color: var(--primary); }
.cs-panel:not(.active) .cs-panel-title{ font-size: 16px; }
.cs-panel-content{ position: relative; z-index: 2; margin-top: auto; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .45s ease .12s, transform .45s cubic-bezier(.22,.8,.3,1) .12s, visibility 0s .45s; }
.cs-panel.active .cs-panel-content{ opacity: 1; visibility: visible; transform: none; transition: opacity .5s ease .18s, transform .5s cubic-bezier(.22,.8,.3,1) .18s, visibility 0s; }
.cs-panel-ic{ width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--primary); border-radius: calc(var(--radius) / 2); color: var(--primary); font-size: 24px; margin-bottom: 18px; background: rgba(0,0,0,0.25); }
.cs-panel-list{ list-style: none; padding: 0; margin: 0; }
.cs-panel-list li{ position: relative; padding: 11px 0 11px; padding-inline-start: 24px; font-size: 14px; line-height: 1.65; color: rgba(255,255,255,0.94); border-bottom: 1px solid rgba(255,255,255,0.14); }
.cs-panel-list li:last-child{ border-bottom: 0; }
.cs-panel-list li::before{ content: '◆'; position: absolute; inset-inline-start: 0; top: 13px; font-size: 10px; color: var(--primary); }
.cs-panel-btn{ display: inline-block; margin-top: 16px; padding: 11px 24px; background: var(--primary); color: #fff; border-radius: var(--radius); font-size: 13px; font-weight: 800; letter-spacing: 0.04em; }
@media (max-width: 820px) {
div.cs-panels{ flex-direction: column; min-height: 0; gap: 12px; }
.cs-panel{ flex: none; padding: 20px 20px 22px; transition: border-color .35s; }
.cs-panel:not(.active){ min-height: 96px; justify-content: center; }
.cs-panel:not(.active) .cs-panel-title{ font-size: 17px; }
.cs-panel.active{ min-height: 420px; }
.cs-panel-content{ margin-top: 18px; }
}

/* ── Gallery — hover-lift grid + lightbox ── */
div.cs-gallery{ display: grid; grid-template-columns: repeat(var(--cs-gl-cols, 3), 1fr); gap: 14px; }
.cs-gallery-item{ margin: 0; position: relative; border-radius: var(--radius); overflow: hidden; cursor: zoom-in; background: var(--surface-2, #f2f2f5); }
.cs-gallery-item img{ width: 100%; aspect-ratio: 1; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.22,.8,.3,1); }
.cs-gallery-item:hover img{ transform: scale(1.06); }
.cs-gallery-cap{ position: absolute; inset-inline: 0; bottom: 0; padding: 26px 14px 12px; font-size: 12.5px; font-weight: 700; color: #fff; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.7)); transform: translateY(8px); opacity: 0; transition: opacity .35s ease, transform .35s ease; }
.cs-gallery-item:hover .cs-gallery-cap{ opacity: 1; transform: none; }
@media (max-width: 640px) { .cs-gallery { grid-template-columns: repeat(2, 1fr); gap: 10px; } .cs-gallery-cap { opacity: 1; transform: none; } }
.cs-lightbox{ position: fixed; inset: 0; z-index: 700; background: rgba(8,9,14,0.92); display: flex; align-items: center; justify-content: center; padding: 24px; animation: csLbIn .25s ease; }
.cs-lightbox img{ max-width: 92vw; max-height: 88vh; border-radius: 8px; animation: csLbZoom .3s cubic-bezier(.22,.8,.3,1); }
.cs-lightbox-close{ position: absolute; top: 18px; inset-inline-end: 22px; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,0.3); border-radius: 50%; background: rgba(255,255,255,0.08); color: #fff; font-size: 18px; cursor: pointer; transition: background .25s; }
.cs-lightbox-close:hover{ background: rgba(255,255,255,0.22); }
@keyframes csLbIn { from { opacity: 0; } }
@keyframes csLbZoom { from { transform: scale(.94); opacity: 0; } }

/* ── Before / After — refined comparison ── */
.cs-ba-wrap{ display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); max-width: 1000px; margin: 0 auto; }
.cs-ba{ position: relative; overflow: hidden; border-radius: var(--radius); aspect-ratio: 4 / 3; touch-action: none; user-select: none; background: var(--surface-2, #f2f2f5); box-shadow: var(--shadow, 0 2px 14px rgba(0,0,0,0.08)); }
.cs-ba-img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cs-ba-after-clip{ position: absolute; inset: 0; overflow: hidden; width: var(--cs-ba-x, 50%); }
.cs-ba-after-clip .cs-ba-img--after{ max-width: none; }
.cs-ba-handle{ position: absolute; top: 0; bottom: 0; left: var(--cs-ba-x, 50%); width: 2px; margin-left: -1px; background: #fff; cursor: ew-resize; box-shadow: 0 0 12px rgba(0,0,0,0.4); }
.cs-ba-knob{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 42px; height: 42px; border-radius: 50%; background: #fff; color: var(--secondary, #111); display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 800; box-shadow: 0 6px 18px rgba(0,0,0,0.35); }
@media (prefers-reduced-motion: no-preference) {
.cs-ba:not(.cs-ba--touched) .cs-ba-knob{ animation: csBaHint 2.2s ease-in-out infinite; }
}
@keyframes csBaHint { 0%,100% { box-shadow: 0 6px 18px rgba(0,0,0,0.35); } 50% { box-shadow: 0 6px 18px rgba(0,0,0,0.35), 0 0 0 9px rgba(255,255,255,0.18); } }
.cs-ba-tag{ position: absolute; top: 14px; padding: 6px 14px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; background: rgba(10,12,18,0.6); color: #fff; backdrop-filter: blur(4px); }
.cs-ba-tag--before{ inset-inline-start: 14px; }
.cs-ba-tag--after{ inset-inline-end: 14px; background: var(--primary); }
.cs-ba-cap{ text-align: center; margin-top: 12px; font-size: 13.5px; font-weight: 700; color: var(--text-muted); }

/* ── Countdown — display digits with pulsing seconds ── */
div.cs-countdown{ display: flex; flex-direction: column; align-items: center; gap: 22px; }
.cs-cd-boxes{ display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center; }
.cs-cd-box{ position: relative; min-width: 90px; padding: 18px 14px 14px; text-align: center; background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.06)); }
.cs-cd-box::before{ content: ''; position: absolute; top: 0; inset-inline: 18px; height: 2px; background: var(--primary); }
.cs-cd-box b{ display: block; font-size: clamp(32px, 4.5vw, 48px); font-weight: 800; color: var(--heading, var(--text)); font-variant-numeric: tabular-nums; line-height: 1.05; letter-spacing: -0.02em; }
.cs-cd-box span{ display: block; margin-top: 5px; font-size: 10.5px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-muted); }
.cs-cd-box:last-child b{ color: var(--primary); }
.cs-cd-expired{ font-size: 22px; font-weight: 800; color: var(--text-muted); letter-spacing: -0.01em; }
.cs-cd-btn{ display: inline-block; padding: 14px 34px; background: var(--primary); color: #fff; border-radius: var(--radius); font-size: 14px; font-weight: 800; letter-spacing: 0.03em; transition: transform .25s ease, box-shadow .25s ease; }
.cs-cd-btn:hover{ transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,0.18); }

/* ── Timeline — center spine, alternating milestones ── */
div.cs-timeline{ max-width: 880px; margin: 0 auto; position: relative; }
div.cs-timeline::before{ content: ''; position: absolute; top: 8px; bottom: 8px; inset-inline-start: 17px; width: 2px; background: linear-gradient(180deg, var(--primary), var(--border-dark, var(--border))); }
.cs-tl-row{ position: relative; display: flex; gap: 22px; padding-bottom: 34px; }
.cs-tl-row:last-child{ padding-bottom: 0; }
.cs-tl-marker{ position: relative; z-index: 1; flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; background: var(--surface, #fff); border: 2px solid var(--primary); color: var(--primary); display: flex; align-items: center; justify-content: center; font-size: 12px; box-shadow: 0 0 0 5px var(--bg, #fff); }
.cs-tl-date{ font-size: 18px; font-weight: 800; color: var(--heading, var(--text)); margin: 5px 0 5px; letter-spacing: -0.01em; }
.cs-tl-text{ font-size: 14px; line-height: 1.85; color: var(--text-muted); max-width: 560px; }
.cs-tl-img{ margin-top: 12px; border-radius: var(--radius); max-height: 230px; object-fit: cover; box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.08)); }
@media (min-width: 860px) {
div.cs-timeline::before{ inset-inline-start: 50%; margin-inline-start: -1px; }
.cs-tl-row{ width: 50%; padding-inline-end: 44px; }
.cs-tl-row:nth-child(even){ margin-inline-start: 50%; padding-inline-end: 0; padding-inline-start: 44px; }
.cs-tl-row .cs-tl-marker{ position: absolute; inset-inline-end: -18px; }
.cs-tl-row:nth-child(even) .cs-tl-marker{ inset-inline-end: auto; inset-inline-start: -18px; }
.cs-tl-row{ flex-direction: column; text-align: end; }
.cs-tl-row:nth-child(even){ text-align: start; }
.cs-tl-row .cs-tl-text{ margin-inline-start: auto; }
.cs-tl-row:nth-child(even) .cs-tl-text{ margin-inline-start: 0; }
}


/* ── v1_35b — layout behaviours requested after live review ────────────── */
/* Full-bleed sections: panels, steps, and every carousel run edge-to-edge. */
.cs-section.cs-panels .cs-inner,
.cs-section.cs-steps .cs-inner { max-width: none; padding-inline: clamp(14px, 3vw, 40px); }
.cs-section.cs-carousel .cs-inner { max-width: none; padding-inline: 0; }
.cs-section.cs-carousel .cs-header { padding-inline: clamp(14px, 3vw, 40px); }
.cs-section.cs-carousel div.cs-carousel { padding-inline: clamp(14px, 3vw, 40px); scroll-padding-inline: clamp(14px, 3vw, 40px); }
.cs-section.cs-carousel .cs-carousel-arrow.prev { inset-inline-start: clamp(4px, 1vw, 14px); }
.cs-section.cs-carousel .cs-carousel-arrow.next { inset-inline-end: clamp(4px, 1vw, 14px); }
/* Gallery: stretch the whole container; two columns on mobile stay. */
.cs-section.cs-gallery .cs-inner { max-width: none; padding-inline: clamp(14px, 3vw, 40px); }
div.cs-gallery { width: 100%; }
div.cs-gallery .cs-gallery-item img { width: 100%; height: 100%; }
/* Countdown: all four boxes on ONE row, always — they shrink to fit. */
div.cs-countdown .cs-cd-boxes { flex-wrap: nowrap; width: 100%; max-width: 560px; }
div.cs-countdown .cs-cd-box { flex: 1 1 0; min-width: 0; padding: 14px 6px 12px; }
div.cs-countdown .cs-cd-box b { font-size: clamp(22px, 6vw, 48px); }
div.cs-countdown .cs-cd-box span { font-size: clamp(8.5px, 1.6vw, 10.5px); letter-spacing: 0.1em; }
/* Stats: exactly the item count per row on wide screens, 2×2 on mobile,
   never wider than the viewport. */
div.cs-stats { width: 100%; }
@media (max-width: 640px) {
    div.cs-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    div.cs-stats .cs-stat { padding: 22px 10px 16px; }
    div.cs-stats .cs-stat-num { font-size: clamp(30px, 9vw, 40px); }
    div.cs-stats .cs-stat-label { font-size: 10.5px; letter-spacing: 0.08em; }
}
/* Panels fill their now-full-bleed container. */
div.cs-panels { width: 100%; }

.cs-section.cs-steps .cs-inner { max-width: none; }
div.cs-steps { max-width: none; }

/* ════════════════════════════════════════════════════════════════════════
   PRODUCT ADVANCED-CONTENT SECTIONS — default look (v1_39).
   Clean, token-driven rendering for every theme + scheme; the 8 PDP
   templates (assets/css/pdp/) restyle these same classes.
   ════════════════════════════════════════════════════════════════════════ */
.pdp-sections { max-width: 1280px; margin: 0 auto; padding: 10px 20px 30px; }
.pdp-sec { margin: 42px 0; }
.pdp-sec .m-head { margin-bottom: 20px; }
.pdp-sec .m-head h2 { font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; color: var(--heading, var(--text)); letter-spacing: -0.015em; margin: 0; }
.pdp-sec .m-head span { display: block; margin-top: 5px; font-size: 13.5px; color: var(--text-muted); }
/* features */
.pdp-sec .ft-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.pdp-sec .ft { background: var(--surface, #fff); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 16px; display: flex; flex-direction: column; gap: 6px; }
.pdp-sec .ft-i { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: calc(var(--radius) / 1.5); background: var(--primary-light, rgba(0,0,0,0.05)); color: var(--primary); font-size: 20px; }
.pdp-sec .ft-i img { width: 24px; height: 24px; object-fit: contain; }
.pdp-sec .ft b { font-size: 14px; color: var(--heading, var(--text)); }
.pdp-sec .ft > span:not(.ft-i) { font-size: 12.5px; line-height: 1.65; color: var(--text-muted); }
/* accordion */
.pdp-sec details.ac { border-bottom: 1px solid var(--border-dark, var(--border)); }
.pdp-sec details.ac:first-of-type { border-top: 1px solid var(--border-dark, var(--border)); }
.pdp-sec .ac summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style: none; cursor: pointer; padding: 18px 4px; font-size: 15px; font-weight: 700; color: var(--heading, var(--text)); }
.pdp-sec .ac summary::-webkit-details-marker { display: none; }
.pdp-sec .ac-x { flex-shrink: 0; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--border-dark, var(--border)); border-radius: 50%; font-style: normal; font-size: 15px; color: var(--text-muted); transition: transform .3s ease; }
.pdp-sec .ac[open] .ac-x { transform: rotate(45deg); color: var(--primary); border-color: var(--primary); }
.pdp-sec .ac-b { padding: 0 4px 20px; font-size: 14px; line-height: 1.85; color: var(--text-muted); max-width: 720px; }
/* specs */
.pdp-sec .spec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 0 34px; }
.pdp-sec .spec table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.pdp-sec .spec th { text-align: start; padding: 11px 12px 11px 0; color: var(--text-muted); font-weight: 600; width: 42%; border-bottom: 1px solid var(--border); vertical-align: top; }
.pdp-sec .spec td { padding: 11px 0; color: var(--text); border-bottom: 1px solid var(--border); }
/* size chart */
.pdp-sec.m-chart .chart-fig { margin: 0; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--surface, #fff); }
.pdp-sec.m-chart .chart-fig img { display: block; width: 100%; height: auto; }
/* story */
.pdp-sec.story { display: grid; gap: 28px; align-items: center; }
.pdp-sec.story.has-img { grid-template-columns: 1fr 1.1fr; }
.pdp-sec.story .story-fig { margin: 0; border-radius: var(--radius); overflow: hidden; }
.pdp-sec.story .story-fig img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pdp-sec.story .story-text { font-size: 15px; line-height: 2; color: var(--text-muted); }
@media (max-width: 760px) { .pdp-sec.story.has-img { grid-template-columns: 1fr; } .pdp-sec { margin: 32px 0; } }


/* ════════════════════════════════════════════════════════════════════════
   Direct-contact CTAs (WhatsApp / Call) — v1_44.
   Optional per product and site-wide. Same box geometry as the main CTAs
   so the buy area never looks ragged.
   ════════════════════════════════════════════════════════════════════════ */
.product-contact-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.product-contact-cta .cta {
    flex: 1 1 160px; min-height: 52px; padding: 0 18px;
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    border-radius: var(--radius); border: 1.5px solid transparent;
    font-size: 15px; font-weight: 700; font-family: inherit;
    text-decoration: none; cursor: pointer; box-sizing: border-box;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.product-contact-cta .cta svg { width: 19px; height: 19px; flex-shrink: 0; }
.product-contact-cta .cta:hover { transform: translateY(-1px); }
.product-contact-cta .cta--wa { background: #25D366; color: #fff; }
.product-contact-cta .cta--wa:hover { background: #1EB859; box-shadow: 0 10px 22px rgba(37,211,102,.34); }
.product-contact-cta .cta--call { background: transparent; color: var(--text); border-color: var(--border-dark, var(--border)); }
.product-contact-cta .cta--call:hover { border-color: var(--primary); color: var(--primary); }
@media (max-width: 480px) { .product-contact-cta .cta { flex: 1 1 100%; } }
/* Inside the PDP templates the CTAs inherit the template's radius. */
body[class*="ptpl-"] .product-contact-cta .cta { border-radius: var(--pdp-cta-r, var(--pdp-r, var(--radius))); }

/* ════════════════════════════════════════════════════════════════════════
   Installable-app prompt (v1_44) — storefront + dashboard.
   ════════════════════════════════════════════════════════════════════════ */
.vnd-pwa {
    position: fixed; z-index: 950; inset-inline: 14px; bottom: 14px;
    max-width: 460px; margin-inline: auto;
    display: flex; align-items: center; gap: 12px;
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom, 0px));
    background: var(--surface, #fff); color: var(--text, #14161c);
    border: 1px solid var(--border, #e6e8ee); border-radius: 16px;
    box-shadow: 0 18px 50px rgba(10, 14, 22, .22);
    transform: translateY(140%); opacity: 0;
    transition: transform .38s cubic-bezier(.22,.8,.3,1), opacity .3s ease;
}
.vnd-pwa.is-on { transform: none; opacity: 1; }
.vnd-pwa__icon { width: 44px; height: 44px; border-radius: 11px; flex-shrink: 0; object-fit: cover; }
.vnd-pwa__txt { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.vnd-pwa__txt strong { font-size: 14px; }
.vnd-pwa__txt span { font-size: 12px; line-height: 1.5; color: var(--text-muted, #6d7482); }
.vnd-pwa__go {
    flex-shrink: 0; min-height: 40px; padding: 0 18px; border: 0; cursor: pointer;
    border-radius: 10px; background: var(--primary, #e53935); color: #fff;
    font-size: 13.5px; font-weight: 700; font-family: inherit;
}
.vnd-pwa__x {
    flex-shrink: 0; width: 30px; height: 30px; border: 0; cursor: pointer;
    background: transparent; color: var(--text-muted, #6d7482); font-size: 21px; line-height: 1;
}
@media (max-width: 420px) {
    .vnd-pwa { gap: 10px; padding-inline: 12px; }
    .vnd-pwa__icon { width: 38px; height: 38px; }
    .vnd-pwa__go { padding: 0 13px; font-size: 13px; }
}
/* Keep it clear of the mobile bottom bar when that is on. */
body.has-mobile-nav .vnd-pwa { bottom: 74px; }

/* ════════════════════════════════════════════════════════════════════════
   Footer newsletter overflow fix (v1_45).
   Grid items default to min-width:auto, so the input+button row could not
   shrink below its intrinsic width and pushed past its column — which in
   RTL means spilling over the LEFT edge with no padding, exactly what the
   Arabic mobile footer was showing. Letting the column and the row shrink
   fixes it for every theme at once.
   ════════════════════════════════════════════════════════════════════════ */
.footer-inner { min-width: 0; }
.footer-col { min-width: 0; }
.footer-newsletter-form { min-width: 0; flex-wrap: wrap; }
.footer-newsletter-form input { flex: 1 1 140px; min-width: 0; max-width: 100%; box-sizing: border-box; }
.footer-newsletter-form button { flex: 0 0 auto; }
/* Guarantee a gutter even if a theme zeroes the footer padding. */
.store-footer { padding-inline: max(16px, env(safe-area-inset-left, 0px)); overflow-x: clip; }
@media (max-width: 520px) {
    /* Side by side gets cramped on a phone — stack it and let both be full width. */
    .footer-newsletter-form { flex-direction: column; align-items: stretch; gap: 8px; }
    .footer-newsletter-form input,
    .footer-newsletter-form button { width: 100%; flex: 1 1 auto; }
}
