/*
Theme Name: NexoShop
Theme URI: https://nexoshop.com
Author: NexoShop Team
Author URI: https://nexoshop.com
Description: A premium WooCommerce Electronics Store theme inspired by Amazon-style marketplaces. Mega menu, category sidebar, jumbotron banner, product carousels, comparison, wishlist, AJAX cart, Elementor compatible, license key protected.
Version: 1.0.1
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
License: Commercial - All Rights Reserved
License URI: https://nexoshop.com/license
Text Domain: nexoshop
Tags: e-commerce, woocommerce, elementor, electronics, responsive, custom-colors, custom-logo, featured-images, full-width-template
WC requires at least: 6.0
WC tested up to: 8.5
*/

/* ============================================
   CSS VARIABLES — Amazon/Electro style palette
============================================ */
:root {
  --primary:        #FFC600;   /* yellow CTA */
  --primary-dark:   #E0AC00;
  --primary-light:  #FFF7DA;
  --secondary:      #1A1A1A;   /* near-black header/footer */
  --secondary-light:#2B2B2B;
  --accent:         #0096C7;
  --white:          #ffffff;
  --light:          #f4f4f4;
  --gray-100:       #f7f7f7;
  --gray-200:       #ececec;
  --gray-300:       #dddddd;
  --gray-400:       #c4c4c4;
  --gray-500:       #999999;
  --gray-600:       #767676;
  --gray-700:       #4d4d4d;
  --gray-800:       #2e2e2e;
  --dark:           #111111;
  --text:           #232323;
  --text-light:     #6b6b6b;
  --success:        #2e9e3f;
  --danger:         #d33;
  --warning:        #ffc600;
  --info:           #0096C7;
  --border:         #e2e2e2;
  --shadow-sm:      0 1px 3px rgba(0,0,0,0.08);
  --shadow:         0 2px 10px rgba(0,0,0,0.10);
  --shadow-lg:      0 8px 28px rgba(0,0,0,0.18);
  --radius-sm:      3px;
  --radius:         5px;
  --radius-lg:      10px;
  --radius-xl:      16px;
  --transition:     all 0.25s ease;
  --font-main:      'Roboto', 'Segoe UI', Arial, sans-serif;
  --font-heading:   'Roboto', Arial, sans-serif;
  --header-height:  64px;
}

/* ============================================
   RESET & BASE
============================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: var(--font-main); color: var(--text); background: var(--light); line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: var(--text); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--accent); }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); color: var(--secondary); line-height: 1.3; font-weight: 700; }

/* ============================================
   UTILITIES
============================================ */
.container { max-width: 1300px; margin: 0 auto; padding: 0 16px; }
.flex { display: flex; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.flex-wrap { flex-wrap: wrap; }
.text-center { text-align: center; }
.bg-white { background: var(--white); }
.mt-1{margin-top:8px;} .mt-2{margin-top:16px;} .mt-3{margin-top:24px;}
.mb-1{margin-bottom:8px;} .mb-2{margin-bottom:16px;} .mb-3{margin-bottom:24px;}
.py-2{padding:16px 0;} .py-3{padding:24px 0;} .py-4{padding:32px 0;}
.badge { display:inline-block; padding:2px 8px; border-radius:3px; font-size:11px; font-weight:700; }
.badge-primary { background:var(--primary); color:var(--secondary); }
.badge-success { background:var(--success); color:#fff; }
.badge-danger  { background:var(--danger); color:#fff; }
.section-title { font-size: 20px; font-weight: 700; }
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom: 16px; }
.see-all { font-size: 13px; color: var(--accent); font-weight: 600; }
.see-all:hover { text-decoration: underline; }

/* ============================================
   BUTTONS — yellow Amazon-style CTA
============================================ */
.btn {
  display: inline-flex; align-items: center; justify-content:center; gap: 6px;
  padding: 9px 18px; border-radius: var(--radius); font-size: 13px;
  font-weight: 600; cursor: pointer; border: 1px solid transparent;
  transition: var(--transition); line-height: 1.4; font-family: var(--font-main);
}
.btn-primary { background: linear-gradient(to bottom,#FFD93D,var(--primary)); color: var(--secondary); border-color: #E0AC00; box-shadow: 0 1px 0 rgba(255,255,255,0.4) inset; }
.btn-primary:hover { background: linear-gradient(to bottom,#FFCF33,#E8B400); }
.btn-secondary { background: var(--secondary); color: #fff; border-color: var(--secondary); }
.btn-secondary:hover { background: var(--secondary-light); }
.btn-outline { background: #fff; color: var(--text); border-color: var(--gray-400); }
.btn-outline:hover { border-color: var(--gray-600); background: var(--gray-100); }
.btn-sm { padding: 6px 14px; font-size: 12px; }
.btn-lg { padding: 13px 32px; font-size: 15px; }
.btn-block { width: 100%; }
.btn-icon { width: 36px; height: 36px; padding: 0; border-radius: 50%; }

/* ============================================
   TOP STRIP (deliver-to bar, like Amazon)
============================================ */
.nexo-topbar { background: #232f3e; color: #ddd; font-size: 12px; padding: 6px 0; }
.nexo-topbar .container { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.nexo-topbar a { color: #ddd; }
.nexo-topbar a:hover { color: #fff; text-decoration:underline; }
.topbar-left, .topbar-right { display:flex; align-items:center; gap:18px; }
.topbar-item { display:flex; align-items:center; gap:6px; }
.topbar-item i { color: var(--primary); }

/* ============================================
   HEADER — black bar w/ logo, search, account, cart
============================================ */
.nexo-header { background: var(--secondary); position: sticky; top: 0; z-index: 1000; }
.header-inner { display:flex; align-items:center; gap:18px; height: var(--header-height); }
.nexo-logo .logo-text { font-size: 24px; font-weight: 800; color: #fff; letter-spacing:-0.5px; }
.nexo-logo .logo-text span { color: var(--primary); }
.nexo-logo img { height: 38px; }

/* Search bar w/ category dropdown — classic Amazon style */
.nexo-search { flex:1; max-width: 700px; position:relative; }
.search-form { display:flex; border-radius: var(--radius); overflow:hidden; height:40px; }
.search-category { background: var(--gray-200); border:none; border-right:1px solid var(--gray-400); padding:0 10px; font-size:12px; color:var(--text); min-width:120px; font-family: var(--font-main); }
.search-input { flex:1; border:none; padding:0 14px; font-size:14px; outline:none; font-family: var(--font-main); }
.search-btn { background: var(--primary); border:none; color:var(--secondary); padding:0 18px; cursor:pointer; font-size:16px; }
.search-btn:hover { background: var(--primary-dark); }
.search-results-dropdown { position:absolute; top:calc(100% + 4px); left:0; width:100%; z-index:999; }

.header-actions { display:flex; align-items:center; gap:4px; margin-left:auto; }
.header-action-btn {
  display:flex; flex-direction:column; align-items:center; gap:1px; padding:6px 12px;
  color:#eee; font-size:11px; cursor:pointer; position:relative; transition:var(--transition);
  background:none; border:1px solid transparent; border-radius:var(--radius); font-family:var(--font-main);
}
.header-action-btn:hover { border-color:#fff; }
.header-action-btn .top-label { font-size:10px; color:#bbb; }
.header-action-btn .main-label { font-size:13px; font-weight:700; color:#fff; }
.header-action-btn i { font-size:20px; color:#fff; }
.header-action-btn .count {
  position:absolute; top:0; right:6px; background:var(--primary); color:var(--secondary);
  font-size:10px; font-weight:800; width:17px; height:17px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}

/* ============================================
   SECOND NAV BAR (categories / links) — dark gray
============================================ */
.nexo-nav { background: #2B2B2B; }
.nav-inner { display:flex; align-items:center; height:40px; }
.cat-nav { position:relative; }
.cat-nav-btn {
  display:flex; align-items:center; gap:8px; padding:0 14px; height:40px;
  background:transparent; color:#fff; font-size:13px; font-weight:600; cursor:pointer; border:none;
  font-family: var(--font-main);
}
.cat-nav-btn:hover { background: rgba(255,255,255,0.08); }
.cat-dropdown {
  position:absolute; top:100%; left:0; width:270px; background:#fff;
  box-shadow: var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(6px);
  transition: var(--transition); z-index:999; border-top:3px solid var(--primary);
  max-height: 480px; overflow-y:auto;
}
.cat-nav:hover .cat-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.cat-dropdown li a { display:flex; align-items:center; gap:10px; padding:9px 16px; font-size:13px; color:var(--text); border-bottom:1px solid var(--border); }
.cat-dropdown li a:hover { background: var(--gray-100); color:var(--accent); }
.cat-dropdown li a i { width:18px; color:var(--gray-600); font-size:14px; }

.nexo-menu { display:flex; }
.nexo-menu > li > a { display:flex; align-items:center; padding:0 14px; height:40px; color:#eee; font-size:13px; font-weight:500; }
.nexo-menu > li > a:hover { color:var(--primary); }
.nexo-menu > li.menu-deals > a { color: var(--primary); font-weight:700; }

/* ============================================
   HERO / JUMBOTRON — banner + side promo stack (Electro-style)
============================================ */
.nexo-hero-section { padding: 16px 0; background: var(--light); }
.hero-layout { display:grid; grid-template-columns: 1fr 300px; gap:14px; }
.hero-slider-wrap { position:relative; border-radius: var(--radius); overflow:hidden; background:#0a1628; min-height:380px; }
.hero-slide { min-height:380px; display:flex; align-items:center; padding: 40px 48px; position:relative; }
.hero-slide:not(.active) { display:none; }
.hero-content { position:relative; z-index:2; max-width: 480px; }
.hero-badge { display:inline-block; background:var(--primary); color:var(--secondary); padding:3px 12px; border-radius:3px; font-size:11px; font-weight:800; margin-bottom:14px; text-transform:uppercase; letter-spacing:0.5px; }
.hero-title { font-size: clamp(24px,3.4vw,40px); color:#fff; margin-bottom:14px; line-height:1.2; }
.hero-title .accent { color: var(--primary); }
.hero-desc { color:#ccc; font-size:14px; margin-bottom:22px; line-height:1.7; }
.hero-price-row { margin-bottom:20px; display:flex; align-items:baseline; gap:10px; }
.hero-price-row .old { color:#999; text-decoration:line-through; font-size:14px; }
.hero-price-row .new { color: var(--primary); font-weight:800; font-size:28px; }
.slider-dots { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:6px; z-index:5; }
.slider-dots button { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,0.4); border:none; cursor:pointer; padding:0; }
.slider-dots button.active { background: var(--primary); width:22px; border-radius:4px; }
.slider-arrow { position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; background:rgba(0,0,0,0.35); border:none; color:#fff; border-radius:50%; cursor:pointer; z-index:5; }
.slider-arrow.prev { left:10px; } .slider-arrow.next { right:10px; }

/* Side promo stack */
.hero-side-stack { display:flex; flex-direction:column; gap:14px; }
.side-promo { background:#fff; border-radius:var(--radius); padding:16px; flex:1; display:flex; flex-direction:column; justify-content:space-between; box-shadow:var(--shadow-sm); }
.side-promo .tag { font-size:11px; color:var(--gray-600); text-transform:uppercase; font-weight:700; margin-bottom:6px; }
.side-promo h4 { font-size:14px; margin-bottom:10px; line-height:1.4; }
.side-promo img { border-radius: var(--radius-sm); margin-bottom: 10px; height:90px; width:100%; object-fit:cover; background: var(--gray-100); }
.side-promo .link { font-size:12px; color:var(--accent); font-weight:700; }

/* ============================================
   FEATURE STRIP
============================================ */
.feature-strip { background:#fff; border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:14px 0; }
.feature-strip-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.feature-item-h { display:flex; align-items:center; gap:10px; }
.feature-item-h .ic { width:38px; height:38px; border-radius:50%; background:var(--primary-light); color:var(--secondary); display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.feature-item-h .tt { font-size:13px; font-weight:700; }
.feature-item-h .ss { font-size:11px; color:var(--text-light); }

/* ============================================
   CATEGORY ICONS ROW
============================================ */
.category-strip { padding: 24px 0; background: #fff; margin-top:14px; border-radius: var(--radius); }
.category-strip-grid { display:grid; grid-template-columns:repeat(8,1fr); gap:8px; }
.category-card { text-align:center; padding:14px 6px; border-radius:var(--radius); cursor:pointer; transition:var(--transition); }
.category-card:hover { background: var(--gray-100); }
.cat-icon { width:56px; height:56px; border-radius:50%; background:var(--gray-100); border:1px solid var(--border); color:var(--secondary); font-size:22px; display:flex; align-items:center; justify-content:center; margin:0 auto 8px; transition:var(--transition); }
.category-card:hover .cat-icon { border-color: var(--primary); background: var(--primary-light); }
.cat-name { font-size:12px; font-weight:600; color:var(--text); }

/* ============================================
   PRODUCT GRID / CARDS — dense Amazon-style
============================================ */
.product-block { background:#fff; border-radius:var(--radius); padding:18px; margin-top:14px; }
.products-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.products-grid-4 { grid-template-columns:repeat(4,1fr); }
.products-grid-6 { grid-template-columns:repeat(6,1fr); }

.product-card { background:#fff; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:var(--transition); position:relative; display:flex; flex-direction:column; }
.product-card:hover { box-shadow: var(--shadow-lg); border-color: var(--gray-400); z-index:2; }
.product-thumb { position:relative; background:#fff; aspect-ratio:1; display:flex; align-items:center; justify-content:center; padding:14px; }
.product-thumb img { max-height:160px; object-fit:contain; transition: transform 0.3s ease; }
.product-card:hover .product-thumb img { transform: scale(1.05); }
.product-badges { position:absolute; top:8px; left:8px; display:flex; flex-direction:column; gap:4px; z-index:2; }
.product-badge { padding:2px 7px; border-radius:3px; font-size:10px; font-weight:800; }
.badge-new { background:var(--accent); color:#fff; }
.badge-sale { background:var(--danger); color:#fff; }
.badge-hot { background:var(--primary); color:var(--secondary); }
.badge-soldout { background:var(--gray-500); color:#fff; }
.product-actions { position:absolute; top:8px; right:8px; display:flex; flex-direction:column; gap:5px; opacity:0; transition: var(--transition); }
.product-card:hover .product-actions { opacity:1; }
.product-action-btn { width:30px; height:30px; border-radius:50%; background:#fff; border:1px solid var(--border); color:var(--text); font-size:13px; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow: var(--shadow-sm); }
.product-action-btn:hover { background: var(--secondary); color:#fff; border-color: var(--secondary); }
.product-info { padding:12px 14px 14px; flex:1; display:flex; flex-direction:column; }
.product-category-label { font-size:10px; color:var(--text-light); text-transform:uppercase; letter-spacing:0.4px; margin-bottom:4px; }
.product-title { font-size:13px; font-weight:500; color:var(--text); margin-bottom:6px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:36px; }
.product-title a { color:inherit; }
.product-title a:hover { color: var(--accent); }
.product-rating { display:flex; align-items:center; gap:5px; margin-bottom:8px; }
.stars { color:var(--primary); font-size:12px; letter-spacing:1px; }
.rating-count { font-size:11px; color:var(--text-light); }
.product-price { display:flex; align-items:center; gap:8px; margin-bottom:10px; flex-wrap:wrap; margin-top:auto; }
.price-current { font-size:16px; font-weight:800; color:var(--text); }
.price-old { font-size:12px; color:var(--gray-500); text-decoration:line-through; }
.price-discount { font-size:10px; background:var(--danger); color:#fff; padding:1px 5px; border-radius:3px; font-weight:700; }
.product-add-cart { width:100%; background: var(--secondary); color:#fff; border:none; padding:8px; border-radius:var(--radius); font-size:12px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:6px; font-family:var(--font-main); }
.product-add-cart:hover { background: #000; }
.product-add-cart.added { background: var(--success); }

/* ============================================
   DEALS / COUNTDOWN STRIP
============================================ */
.flash-deals { background:#fff; border-radius:var(--radius); padding:18px; margin-top:14px; }
.flash-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; flex-wrap:wrap; gap:10px; }
.flash-title { display:flex; align-items:center; gap:10px; }
.flash-title h2 { font-size:18px; }
.flash-icon { font-size:20px; }
.countdown { display:flex; align-items:center; gap:6px; }
.countdown-item { background:var(--secondary); color:#fff; border-radius:var(--radius-sm); min-width:40px; height:40px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-weight:700; }
.countdown-item .num { font-size:16px; line-height:1; }
.countdown-item .label { font-size:8px; opacity:0.7; }
.countdown-sep { font-size:16px; font-weight:700; color:var(--text-light); }

/* ============================================
   BANNERS (2 column promo)
============================================ */
.promo-banners { padding-top:14px; }
.banners-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
.promo-banner { position:relative; border-radius:var(--radius); overflow:hidden; min-height:180px; display:flex; align-items:flex-end; padding:20px; background: var(--secondary); cursor:pointer; }
.banner-overlay { position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,0.75) 10%,transparent 80%); }
.banner-content { position:relative; z-index:2; }
.banner-tag { font-size:10px; color: var(--primary); font-weight:800; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:4px; }
.banner-title { font-size:16px; color:#fff; margin-bottom:6px; }
.banner-price { font-size:14px; color: var(--primary); font-weight:800; }

/* ============================================
   TABS
============================================ */
.tabs-header { display:flex; gap:0; margin-bottom:16px; border-bottom:1px solid var(--border); }
.tab-btn { padding:10px 18px; font-size:13px; font-weight:600; color:var(--text-light); cursor:pointer; border:none; background:none; border-bottom:2px solid transparent; margin-bottom:-1px; font-family:var(--font-main); }
.tab-btn.active, .tab-btn:hover { color:var(--text); border-bottom-color: var(--primary); }
.tab-pane { display:none; }
.tab-pane.active { display:block; }

/* ============================================
   SIDEBAR (Shop)
============================================ */
.nexo-sidebar { width:240px; flex-shrink:0; }
.sidebar-widget { background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:16px; margin-bottom:14px; }
.widget-title { font-size:14px; font-weight:700; margin-bottom:12px; padding-bottom:8px; border-bottom:1px solid var(--border); }
.filter-list li { margin-bottom:7px; }
.filter-list li label { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--text); cursor:pointer; }
.filter-list li input[type="checkbox"] { accent-color: var(--primary); width:14px; height:14px; }
.price-range input[type="range"] { width:100%; accent-color: var(--primary); }
.price-display { display:flex; justify-content:space-between; font-size:12px; font-weight:600; margin-top:6px; }

/* ============================================
   SHOP TOOLBAR
============================================ */
.shop-layout { display:flex; gap:16px; padding:16px 0 40px; }
.shop-content { flex:1; min-width:0; }
.shop-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding:10px 16px; background:#fff; border:1px solid var(--border); border-radius:var(--radius); flex-wrap:wrap; gap:10px; }
.toolbar-results { font-size:13px; color:var(--text-light); }
.toolbar-right { display:flex; align-items:center; gap:10px; }
.sort-select { border:1px solid var(--border); border-radius:var(--radius-sm); padding:6px 10px; font-size:12px; font-family:var(--font-main); }

/* ============================================
   SINGLE PRODUCT
============================================ */
.single-product-layout { display:grid; grid-template-columns: 1fr 1fr; gap:32px; padding:24px 0; background:#fff; border-radius:var(--radius); margin-top:16px; }
.product-gallery { padding:20px; }
.gallery-main { border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; aspect-ratio:1; display:flex; align-items:center; justify-content:center; padding:16px; margin-bottom:10px; }
.gallery-main img { max-height:340px; object-fit:contain; }
.gallery-thumbs { display:flex; gap:8px; }
.gallery-thumb { width:60px; height:60px; border:2px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; cursor:pointer; padding:3px; flex-shrink:0; }
.gallery-thumb.active { border-color: var(--primary); }
.gallery-thumb img { width:100%; height:100%; object-fit:contain; }
.product-details { padding:20px 20px 20px 0; }
.product-details .product-title { font-size:22px; margin-bottom:10px; min-height:0; -webkit-line-clamp:unset; }
.product-meta { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:14px; font-size:12px; color:var(--text-light); }
.product-details .product-price { font-size:28px; margin:16px 0; }
.product-details .price-current { font-size:28px; }
.product-short-desc { font-size:13px; color:var(--text-light); line-height:1.7; margin-bottom:20px; border-bottom:1px solid var(--border); padding-bottom:18px; }
.qty-group { display:flex; align-items:center; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; width:fit-content; }
.qty-btn { width:34px; height:40px; background:var(--gray-100); border:none; font-size:16px; cursor:pointer; }
.qty-btn:hover { background: var(--primary); }
.qty-input { width:50px; height:40px; text-align:center; border:none; border-left:1px solid var(--border); border-right:1px solid var(--border); font-size:14px; font-family:var(--font-main); }
.add-to-cart-group { display:flex; gap:10px; margin:18px 0; }
.btn-add-cart { flex:1; }
.product-features { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:18px 0; }
.feature-item { display:flex; align-items:center; gap:8px; font-size:12px; }
.feature-item i { color: var(--accent); width:16px; }
.product-tabs { margin-top:24px; background:#fff; border-radius:var(--radius); padding: 0; }
.product-tab-content { padding:20px; border:1px solid var(--border); border-top:none; font-size:13px; line-height:1.8; color:var(--text-light); }

/* ============================================
   CART / CHECKOUT
============================================ */
.cart-layout { display:grid; grid-template-columns:1fr 320px; gap:16px; padding:16px 0 40px; }
.cart-table { width:100%; border-collapse:collapse; background:#fff; }
.cart-table th { background:var(--gray-100); padding:10px 14px; font-size:12px; font-weight:700; text-align:left; border-bottom:1px solid var(--border); }
.cart-table td { padding:14px; border-bottom:1px solid var(--border); vertical-align:middle; font-size:13px; }
.cart-item-img { width:60px; height:60px; object-fit:contain; border:1px solid var(--border); border-radius:var(--radius-sm); padding:3px; }
.cart-remove { color:var(--danger); font-size:16px; cursor:pointer; background:none; border:none; }
.order-summary { background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:18px; position:sticky; top: calc(var(--header-height) + 50px); }
.summary-title { font-size:15px; font-weight:700; margin-bottom:14px; }
.summary-row { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--border); font-size:13px; }
.summary-total { font-size:16px; font-weight:800; }
.coupon-form { display:flex; gap:6px; }
.coupon-form input { flex:1; border:1px solid var(--border); border-radius:var(--radius-sm); padding:7px 10px; font-size:12px; font-family:var(--font-main); }
.checkout-layout { display:grid; grid-template-columns:1fr 360px; gap:24px; padding:16px 0 40px; }
.checkout-section { background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:22px; margin-bottom:16px; }
.checkout-section h3 { font-size:15px; margin-bottom:16px; }
.form-group { margin-bottom:14px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-group label { display:block; font-size:12px; font-weight:600; margin-bottom:5px; }
.form-group input, .form-group select, .form-group textarea { width:100%; border:1px solid var(--border); border-radius:var(--radius-sm); padding:9px 12px; font-size:13px; font-family:var(--font-main); }

/* ============================================
   FOOTER
============================================ */
.nexo-footer { background: #232F3E; color:#ddd; margin-top:24px; }
.footer-top { padding:40px 0 24px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:32px; }
.footer-logo .logo-text { font-size:24px; font-weight:800; color:#fff; }
.footer-logo .logo-text span { color: var(--primary); }
.footer-desc { font-size:13px; line-height:1.7; margin:12px 0 16px; color:#aaa; }
.social-links { display:flex; gap:8px; }
.social-link { width:32px; height:32px; border-radius:50%; background:#37475A; color:#ddd; display:flex; align-items:center; justify-content:center; font-size:13px; }
.social-link:hover { background: var(--primary); color: var(--secondary); }
.footer-heading { font-size:13px; font-weight:700; color:#fff; margin-bottom:14px; text-transform:uppercase; letter-spacing:0.4px; }
.footer-links li { margin-bottom:7px; }
.footer-links a { font-size:12px; color:#bbb; }
.footer-links a:hover { color: var(--primary); }
.footer-contact li { display:flex; gap:8px; margin-bottom:10px; font-size:12px; color:#bbb; }
.footer-contact li i { color: var(--primary); margin-top:2px; }
.newsletter-form { display:flex; border:1px solid #37475A; border-radius:var(--radius-sm); overflow:hidden; }
.newsletter-form input { flex:1; background:transparent; border:none; padding:9px 12px; color:#fff; font-size:12px; font-family:var(--font-main); }
.newsletter-form button { background: var(--primary); border:none; color:var(--secondary); padding:0 14px; cursor:pointer; }
.footer-middle { border-top:1px solid #37475A; border-bottom:1px solid #37475A; padding:16px 0; }
.payment-methods-footer { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.payment-methods-footer span { font-size:12px; font-weight:600; color:#bbb; }
.payment-badge { background:#fff; border-radius:3px; padding:3px 7px; font-size:11px; font-weight:700; color:var(--secondary); }
.footer-bottom { padding:14px 0; display:flex; align-items:center; justify-content:space-between; font-size:11px; flex-wrap:wrap; gap:10px; }
.footer-bottom-links { display:flex; gap:16px; }
.footer-bottom-links a { color:#999; font-size:11px; }

/* ============================================
   MISC WIDGETS
============================================ */
.breadcrumb { display:flex; align-items:center; gap:6px; font-size:12px; padding:12px 0; color:var(--text-light); }
.breadcrumb a { color:var(--text-light); }
.breadcrumb a:hover { color: var(--accent); }
.mini-cart { position:absolute; top:calc(100% + 8px); right:0; width:320px; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:16px; z-index:999; opacity:0; visibility:hidden; transform:translateY(8px); transition:var(--transition); }
.cart-wrapper:hover .mini-cart { opacity:1; visibility:visible; transform:translateY(0); }
.nexo-toast { position:fixed; bottom:20px; right:20px; z-index:9999; background:var(--secondary); color:#fff; padding:12px 18px; border-radius:var(--radius); box-shadow:var(--shadow-lg); display:flex; align-items:center; gap:10px; transform:translateY(80px); opacity:0; transition:var(--transition); font-size:13px; }
.nexo-toast.show { transform:translateY(0); opacity:1; }
.nexo-toast i { color: var(--success); }
.nexo-toast.error i { color: var(--danger); }
.back-to-top { position:fixed; bottom:20px; left:20px; width:40px; height:40px; background:var(--secondary); color:#fff; border:none; border-radius:50%; cursor:pointer; opacity:0; visibility:hidden; transition:var(--transition); display:flex; align-items:center; justify-content:center; z-index:999; }
.back-to-top.visible { opacity:1; visibility:visible; }
.nexo-preloader { position:fixed; inset:0; background:#fff; z-index:9999; display:flex; align-items:center; justify-content:center; }
.preloader-spinner { width:44px; height:44px; border:4px solid var(--border); border-top-color: var(--primary); border-radius:50%; animation:spin 0.8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* Mobile nav */
.mobile-nav { position:fixed; top:0; left:-280px; width:270px; height:100vh; background:#fff; z-index:10000; overflow-y:auto; transition:left 0.3s ease; box-shadow: var(--shadow-lg); }
.mobile-nav.active { left:0; }
.mobile-nav-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:9999; display:none; }
.mobile-nav-overlay.active { display:block; }
.mobile-nav-header { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; background: var(--secondary); }
.mobile-nav-close { background:none; border:none; color:#fff; font-size:18px; cursor:pointer; }
.mobile-menu li a { display:block; padding:11px 18px; border-bottom:1px solid var(--border); font-size:13px; }
.mobile-nav-toggle { display:none; }

/* Quick view modal */
.nexo-modal { position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:16px; }
.modal-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.6); }
.modal-content { position:relative; background:#fff; border-radius:var(--radius-lg); max-width:880px; width:100%; max-height:90vh; overflow-y:auto; padding:28px; }
.modal-close { position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%; background:var(--gray-100); border:none; cursor:pointer; }

/* WooCommerce overrides */
.woocommerce button.button, .woocommerce a.button, .woocommerce input.button { background: linear-gradient(to bottom,#FFD93D,var(--primary)); color: var(--secondary); border-radius:var(--radius); padding:9px 20px; font-size:13px; font-weight:700; border:1px solid #E0AC00; }
.woocommerce .star-rating span::before { color: var(--primary); }
.woocommerce-Price-amount { color: var(--text); font-weight:700; }
.woocommerce-pagination ul { display:flex; gap:6px; }
.woocommerce-pagination ul li a, .woocommerce-pagination ul li span { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid var(--border); border-radius:var(--radius-sm); font-size:13px; font-weight:600; }
.woocommerce-pagination ul li span.current { background: var(--primary); border-color:#E0AC00; }

/* Responsive */
@media (max-width: 1200px) {
  .hero-layout { grid-template-columns: 1fr; }
  .hero-side-stack { flex-direction: row; }
  .category-strip-grid { grid-template-columns: repeat(6,1fr); }
  .products-grid { grid-template-columns: repeat(4,1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap:24px; }
}
@media (max-width: 992px) {
  .single-product-layout { grid-template-columns: 1fr; }
  .cart-layout, .checkout-layout { grid-template-columns: 1fr; }
  .banners-grid { grid-template-columns: 1fr; }
  .shop-layout { flex-direction:column; }
  .nexo-sidebar { width:100%; }
  .nexo-search { max-width:100%; }
}
@media (max-width: 768px) {
  :root { --header-height: 56px; }
  .nexo-topbar { display:none; }
  .header-inner { flex-wrap:wrap; height:auto; padding:8px 0; gap:8px; }
  .nexo-search { order:3; width:100%; max-width:100%; }
  .nexo-nav { display:none; }
  .mobile-nav-toggle { display:flex; }
  .category-strip-grid { grid-template-columns: repeat(4,1fr); }
  .products-grid, .products-grid-4, .products-grid-6 { grid-template-columns: repeat(2,1fr); gap:10px; }
  .footer-grid { grid-template-columns:1fr; }
  .hero-slide { padding:24px; min-height:300px; }
}
@media (max-width: 480px) {
  .category-strip-grid { grid-template-columns: repeat(3,1fr); }
  .hero-side-stack { flex-direction: column; }
}
