/*
Theme Name: ShopWise
Theme URI: https://shopwise-theme.com
Author: ShopWise Team
Author URI: https://shopwise-theme.com
Description: A modern, feature-rich WooCommerce theme with clean design, responsive layout, and full e-commerce integration. Perfect for any online store.
Version: 1.0.0
Requires at least: 5.6
Tested up to: 6.4
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 8.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shopwise
Tags: e-commerce, woocommerce, responsive, modern, clean, shop, store, full-width-template, custom-logo, custom-menu, custom-background, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
*/

/* ============================================================
   CSS Custom Properties
   ============================================================ */
:root {
  /* Colors */
  --sw-primary:        #1a1a2e;
  --sw-secondary:      #16213e;
  --sw-accent:         #e94560;
  --sw-accent-hover:   #c73652;
  --sw-accent-light:   #fff0f3;
  --sw-success:        #27ae60;
  --sw-warning:        #f39c12;
  --sw-info:           #2980b9;

  /* Neutrals */
  --sw-white:          #ffffff;
  --sw-off-white:      #f8f9fa;
  --sw-light:          #f1f3f5;
  --sw-border:         #e9ecef;
  --sw-muted:          #adb5bd;
  --sw-text-light:     #6c757d;
  --sw-text:           #343a40;
  --sw-text-dark:      #1a1a2e;

  /* Typography */
  --sw-font-heading:   'Sora', 'Segoe UI', sans-serif;
  --sw-font-body:      'DM Sans', 'Helvetica Neue', sans-serif;
  --sw-font-mono:      'JetBrains Mono', monospace;

  /* Sizing */
  --sw-container:      1280px;
  --sw-radius-sm:      6px;
  --sw-radius:         10px;
  --sw-radius-lg:      16px;
  --sw-radius-xl:      24px;
  --sw-radius-full:    9999px;

  /* Shadows */
  --sw-shadow-sm:      0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --sw-shadow:         0 4px 16px rgba(0,0,0,.08);
  --sw-shadow-md:      0 8px 32px rgba(0,0,0,.10);
  --sw-shadow-lg:      0 20px 60px rgba(0,0,0,.14);
  --sw-shadow-accent:  0 8px 24px rgba(233,69,96,.28);

  /* Transitions */
  --sw-transition:     0.22s cubic-bezier(.4,0,.2,1);
  --sw-transition-slow:0.4s cubic-bezier(.4,0,.2,1);
}

/* ============================================================
   Reset & Base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--sw-font-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sw-text);
  background: var(--sw-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--sw-accent); text-decoration: none; transition: color var(--sw-transition); }
a:hover { color: var(--sw-accent-hover); }
ul, ol { list-style: none; }
button, input, select, textarea { font-family: inherit; font-size: inherit; }
input, textarea, select { border: 1.5px solid var(--sw-border); border-radius: var(--sw-radius-sm); padding: .6rem .9rem; width: 100%; background: var(--sw-white); color: var(--sw-text); transition: border-color var(--sw-transition), box-shadow var(--sw-transition); outline: none; }
input:focus, textarea:focus, select:focus { border-color: var(--sw-accent); box-shadow: 0 0 0 3px rgba(233,69,96,.12); }

/* ============================================================
   Typography
   ============================================================ */
h1,h2,h3,h4,h5,h6 {
  font-family: var(--sw-font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--sw-text-dark);
  margin-bottom: .5em;
}
h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.6rem); }
h3 { font-size: clamp(1.2rem, 2.5vw, 1.8rem); }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.1rem; }
h6 { font-size: 1rem; }

p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 { margin-top: 1.8em; margin-bottom: .6em; }
.entry-content ul, .entry-content ol { list-style: revert; padding-left: 1.5em; margin-bottom: 1rem; }
.entry-content blockquote { border-left: 4px solid var(--sw-accent); padding: 1rem 1.5rem; margin: 1.5rem 0; background: var(--sw-accent-light); border-radius: 0 var(--sw-radius) var(--sw-radius) 0; font-style: italic; }

/* ============================================================
   Layout Utilities
   ============================================================ */
.sw-container { max-width: var(--sw-container); margin: 0 auto; padding: 0 1.5rem; }

/* Layout Width: Full Width mode — container expands edge-to-edge */
body.sw-layout-full .sw-container { max-width: 100%; }
body.sw-layout-full .sw-main { padding-left: 1.5rem; padding-right: 1.5rem; }

/* Layout Width: Boxed mode (default) — already handled by --sw-container variable */
body.sw-layout-boxed .sw-container { max-width: var(--sw-container); }
.sw-container--narrow { max-width: 860px; }
.sw-container--wide { max-width: 1440px; }

.sw-grid { display: grid; gap: 1.5rem; }
.sw-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sw-grid--3 { grid-template-columns: repeat(3, 1fr); }
.sw-grid--4 { grid-template-columns: repeat(4, 1fr); }
.sw-flex { display: flex; align-items: center; }
.sw-flex--between { justify-content: space-between; }
.sw-flex--center { justify-content: center; }
.sw-flex--wrap { flex-wrap: wrap; }

.sw-text-center { text-align: center; }
.sw-text-right  { text-align: right; }
.sw-hidden { display: none !important; }
.sw-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

/* Spacing helpers */
.sw-mt-1 { margin-top:.5rem; } .sw-mt-2 { margin-top:1rem; } .sw-mt-3 { margin-top:1.5rem; }
.sw-mb-1 { margin-bottom:.5rem; } .sw-mb-2 { margin-bottom:1rem; } .sw-mb-3 { margin-bottom:1.5rem; }
.sw-section { padding: 5rem 0; }
.sw-section--sm { padding: 3rem 0; }
.sw-section--lg { padding: 7rem 0; }

/* ============================================================
   Buttons
   ============================================================ */
.sw-btn, .button, button[type="submit"],
input[type="submit"], .woocommerce a.button,
.woocommerce button.button, .woocommerce input.button {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .75rem 1.75rem;
  border-radius: var(--sw-radius-full);
  font-family: var(--sw-font-heading);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .01em;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all var(--sw-transition);
  white-space: nowrap;
  text-decoration: none;
  line-height: 1;
}
.sw-btn--primary, .button, button[type="submit"],
input[type="submit"], .woocommerce a.button,
.woocommerce button.button, .woocommerce input.button {
  background: var(--sw-accent);
  color: var(--sw-white);
  border-color: var(--sw-accent);
  box-shadow: var(--sw-shadow-accent);
}
.sw-btn--primary:hover, .button:hover, .woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: var(--sw-accent-hover);
  border-color: var(--sw-accent-hover);
  color: var(--sw-white);
  transform: translateY(-1px);
  box-shadow: 0 10px 30px rgba(233,69,96,.35);
}
.sw-btn--outline {
  background: transparent;
  color: var(--sw-accent);
  border-color: var(--sw-accent);
  box-shadow: none;
}
.sw-btn--outline:hover {
  background: var(--sw-accent);
  color: var(--sw-white);
  transform: translateY(-1px);
}
.sw-btn--dark {
  background: var(--sw-primary);
  color: var(--sw-white);
  border-color: var(--sw-primary);
}
.sw-btn--dark:hover { background: var(--sw-secondary); border-color: var(--sw-secondary); color: var(--sw-white); }
.sw-btn--white {
  background: var(--sw-white);
  color: var(--sw-primary);
  border-color: var(--sw-white);
}
.sw-btn--white:hover { background: var(--sw-light); }
.sw-btn--sm { padding: .5rem 1.2rem; font-size: .85rem; }
.sw-btn--lg { padding: 1rem 2.5rem; font-size: 1.05rem; }
.sw-btn--icon { padding: .65rem; border-radius: var(--sw-radius); }

/* ============================================================
   Badges / Labels
   ============================================================ */
.sw-badge {
  display: inline-block;
  padding: .2rem .65rem;
  border-radius: var(--sw-radius-full);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.sw-badge--accent  { background: var(--sw-accent);   color: #fff; }
.sw-badge--success { background: var(--sw-success);  color: #fff; }
.sw-badge--primary { background: var(--sw-primary);  color: #fff; }
.sw-badge--light   { background: var(--sw-light);    color: var(--sw-text); }
.sw-badge--sale    { background: var(--sw-accent);   color: #fff; }
.sw-badge--new     { background: var(--sw-success);  color: #fff; }
.sw-badge--oos     { background: var(--sw-muted);    color: #fff; }

/* ============================================================
   Section Headers
   ============================================================ */
.sw-section-header { text-align: center; margin-bottom: 3rem; }
.sw-section-header .sw-eyebrow {
  display: inline-block;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sw-accent);
  margin-bottom: .75rem;
}
.sw-section-header h2 { margin-bottom: .75rem; }
.sw-section-header p { color: var(--sw-text-light); max-width: 560px; margin: 0 auto; font-size: 1.05rem; }

/* ============================================================
   Topbar
   ============================================================ */
.sw-topbar {
  background: var(--sw-primary);
  color: rgba(255,255,255,.75);
  font-size: .8rem;
  padding: .5rem 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.sw-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.sw-topbar__message a { color: rgba(255,255,255,.9); }
.sw-topbar__links { display: flex; align-items: center; gap: 1.25rem; }
.sw-topbar__links a { color: rgba(255,255,255,.75); transition: color var(--sw-transition); }
.sw-topbar__links a:hover { color: #fff; }
.sw-topbar__links .sep { color: rgba(255,255,255,.2); }

/* ============================================================
   Header
   ============================================================ */
.sw-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--sw-white);
  box-shadow: 0 2px 16px rgba(0,0,0,.06);
  transition: box-shadow var(--sw-transition), transform var(--sw-transition);
}
.sw-header.is-scrolled,
.sw-header.sw-header--scrolled { box-shadow: 0 4px 24px rgba(0,0,0,.1); }
.sw-header.sw-header--hidden { transform: translateY(-100%); }

.sw-header__inner {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 1rem 10px;
}

/* Logo */
.sw-header__logo { flex-shrink: 0; }
.sw-header__logo a { display: flex; align-items: center; gap: .75rem; text-decoration: none; }
.sw-header__logo img { height: 44px; width: auto; }
.sw-header__logo .site-title {
  font-family: var(--sw-font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--sw-primary);
  line-height: 1;
}
.sw-header__logo .site-title span { color: var(--sw-accent); }

/* Search */
.sw-header__search { flex: 1; max-width: 460px; }
.sw-header__search form { position: relative; }
.sw-header__search input[type="search"] {
  padding-right: 3rem;
  border-radius: var(--sw-radius-full);
  background: var(--sw-light);
  border-color: transparent;
}
.sw-header__search input[type="search"]:focus { background: #fff; border-color: var(--sw-accent); }
.sw-header__search button {
  position: absolute; right: 0; top: 0; bottom: 0;
  padding: 0 1rem;
  background: none;
  border: none;
  color: var(--sw-muted);
  cursor: pointer;
  transition: color var(--sw-transition);
}
.sw-header__search button:hover { color: var(--sw-accent); }

/* Logo text fallback */
.sw-logo-text {
  font-family: var(--sw-font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--sw-primary);
  text-decoration: none;
  line-height: 1;
}

/* Actions */
.sw-header__actions { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.sw-header__action-btn,
.sw-header__action {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border-radius: var(--sw-radius);
  background: var(--sw-light);
  color: var(--sw-text-dark);
  border: none;
  cursor: pointer;
  transition: all var(--sw-transition);
  text-decoration: none;
  font-size: 1.1rem;
}
.sw-header__action-btn:hover,
.sw-header__action:hover { background: var(--sw-accent); color: #fff; }
.sw-cart-count {
  position: absolute;
  top: -4px; right: -4px;
  min-width: 18px; height: 18px;
  padding: 0 4px;
  display: flex; align-items: center; justify-content: center;
  font-size: .65rem;
  border-radius: 999px;
  background: var(--sw-accent);
  color: #fff;
  font-weight: 700;
  border: 2px solid #fff;
}
.sw-header__action-btn .sw-badge {
  position: absolute;
  top: -4px; right: -4px;
  min-width: 18px; height: 18px;
  padding: 0 4px;
  display: flex; align-items: center; justify-content: center;
  font-size: .65rem;
  border-radius: 999px;
  background: var(--sw-accent);
  color: #fff;
  font-weight: 700;
  border: 2px solid #fff;
}

/* Mobile Toggle Button */
.sw-mobile-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: .4rem;
  color: var(--sw-text-dark);
}

/* Hamburger */
.sw-hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: .25rem;
  pointer-events: none;
}
.sw-hamburger span {
  display: block;
  width: 24px; height: 2px;
  background: var(--sw-text-dark);
  border-radius: 2px;
  transition: all var(--sw-transition);
}
.sw-hamburger.is-active span:nth-child(1),
.sw-hamburger.sw-hamburger--open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.sw-hamburger.is-active span:nth-child(2),
.sw-hamburger.sw-hamburger--open span:nth-child(2) { opacity: 0; }
.sw-hamburger.is-active span:nth-child(3),
.sw-hamburger.sw-hamburger--open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Prevent body scroll when mobile menu is open */
body.sw-menu-open { overflow: hidden; }

/* Search Drawer */
.sw-search-drawer {
  background: var(--sw-white);
  border-top: 1px solid var(--sw-border);
  border-bottom: 1px solid var(--sw-border);
  padding: 1rem 0;
}
.sw-search-drawer[hidden] { display: none; }

/* Mobile Navigation Drawer */
.sw-mobile-nav {
  position: fixed;
  top: 0; left: 0;
  width: 300px; max-width: 85vw;
  height: 100%;
  background: var(--sw-primary);
  z-index: 1100;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform var(--sw-transition);
  overflow-y: auto;
}
.sw-mobile-nav.is-open,
.sw-mobile-nav[aria-hidden="false"],
.sw-mobile-nav.sw-mobile-nav--open { transform: translateX(0); }

.sw-mobile-nav__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.sw-mobile-nav__logo {
  font-family: var(--sw-font-heading);
  font-size: 1.25rem;
  font-weight: 800;
  color: #fff;
}
.sw-mobile-close {
  background: none;
  border: none;
  color: rgba(255,255,255,.75);
  cursor: pointer;
  padding: .25rem;
  display: flex; align-items: center; justify-content: center;
  transition: color var(--sw-transition);
}
.sw-mobile-close:hover { color: #fff; }

.sw-mobile-nav__menu { flex: 1; }
.sw-mobile-menu { list-style: none; margin: 0; padding: 0; }
.sw-mobile-menu a {
  display: block;
  padding: .85rem 1.5rem;
  color: rgba(255,255,255,.85);
  font-size: .95rem;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.05);
  transition: all var(--sw-transition);
}
.sw-mobile-menu a:hover { color: #fff; background: rgba(255,255,255,.06); }
.sw-mobile-menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.sw-mobile-menu .sub-menu a { padding-left: 2.5rem; font-size: .88rem; }

.sw-mobile-nav__footer {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid rgba(255,255,255,.08);
}

/* Overlay */
.sw-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 1050;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--sw-transition), visibility var(--sw-transition);
}
.sw-overlay.is-active,
.sw-overlay.sw-overlay--active { opacity: 1; visibility: visible; }

/* ============================================================
   Navigation
   ============================================================ */
.sw-nav { background: var(--sw-primary); }
.sw-nav__inner { display: flex; align-items: center; }

.sw-nav__menu { display: flex; align-items: center; gap: 0; }
.sw-nav__menu > li { position: relative; }
.sw-nav__menu > li > a {
  display: block;
  padding: .85rem 1.25rem;
  color: rgba(255,255,255,.85);
  font-size: .9rem;
  font-weight: 500;
  transition: all var(--sw-transition);
  border-bottom: 3px solid transparent;
}
.sw-nav__menu > li:hover > a,
.sw-nav__menu > li.current-menu-item > a,
.sw-nav__menu > li.current-menu-parent > a {
  color: #fff;
  border-bottom-color: var(--sw-accent);
}

/* Dropdown */
.sw-nav__menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--sw-white);
  border-radius: 0 0 var(--sw-radius) var(--sw-radius);
  box-shadow: var(--sw-shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: all var(--sw-transition);
  z-index: 999;
  border-top: 3px solid var(--sw-accent);
}
.sw-nav__menu li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.sw-nav__menu .sub-menu li a {
  display: block;
  padding: .65rem 1.25rem;
  color: var(--sw-text);
  font-size: .88rem;
  transition: all var(--sw-transition);
}
.sw-nav__menu .sub-menu li a:hover { color: var(--sw-accent); padding-left: 1.5rem; }

.sw-nav__mobile-menu {
  display: none;
  background: var(--sw-primary);
  padding: 1rem 0;
}
.sw-nav__mobile-menu.is-open { display: block; }
.sw-nav__mobile-menu a {
  display: block;
  padding: .75rem 1.5rem;
  color: rgba(255,255,255,.85);
  font-size: .95rem;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.sw-nav__mobile-menu a:hover { color: #fff; background: rgba(255,255,255,.05); }
.sw-nav__mobile-menu .sub-menu a { padding-left: 2.5rem; font-size: .88rem; }

/* ============================================================
   Hero Banner
   ============================================================ */
.sw-hero {
  position: relative;
  overflow: hidden;
  min-height: 580px;
  display: flex;
  align-items: center;
  background: linear-gradient(135deg, var(--sw-primary) 0%, #0f3460 60%, var(--sw-secondary) 100%);
}
.sw-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('assets/images/hero-pattern.svg') center/cover;
  opacity: .06;
  pointer-events: none;
}
.sw-hero__bg-shape {
  position: absolute;
  right: -5%;
  top: -10%;
  width: 60%;
  max-width: 700px;
  aspect-ratio: 1;
  background: radial-gradient(circle at 50% 50%, rgba(233,69,96,.2) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.sw-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  padding: 5rem 0;
}
.sw-hero__content { color: #fff; }
.sw-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.9);
  padding: .4rem 1rem;
  border-radius: var(--sw-radius-full);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
  backdrop-filter: blur(10px);
}
.sw-hero__eyebrow .dot { width: 6px; height: 6px; background: var(--sw-accent); border-radius: 50%; display: inline-block; animation: pulse 2s infinite; }
.sw-hero__title {
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  color: #fff;
  line-height: 1.1;
  margin-bottom: 1.25rem;
}
.sw-hero__title .highlight {
  color: var(--sw-accent);
  position: relative;
}
.sw-hero__desc {
  color: rgba(255,255,255,.75);
  font-size: 1.1rem;
  margin-bottom: 2rem;
  max-width: 480px;
}
.sw-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.sw-hero__stats {
  display: flex;
  gap: 2rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.1);
}
.sw-hero__stat .number { font-size: 1.8rem; font-weight: 800; color: #fff; font-family: var(--sw-font-heading); line-height: 1; }
.sw-hero__stat .label { font-size: .8rem; color: rgba(255,255,255,.6); margin-top: .2rem; }

.sw-hero__image {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sw-hero__image img {
  border-radius: var(--sw-radius-xl);
  box-shadow: var(--sw-shadow-lg);
  width: 100%;
  object-fit: cover;
  max-height: 440px;
}
.sw-hero__badge-float {
  position: absolute;
  bottom: -1rem;
  left: -1rem;
  background: #fff;
  border-radius: var(--sw-radius-lg);
  padding: 1rem 1.25rem;
  box-shadow: var(--sw-shadow-md);
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: .85rem;
}
.sw-hero__badge-float .icon { font-size: 1.5rem; }
.sw-hero__badge-float strong { display: block; font-weight: 700; color: var(--sw-text-dark); font-size: .95rem; }
.sw-hero__badge-float span { color: var(--sw-text-light); font-size: .78rem; }

/* ============================================================
   Announcement Bar / Promo Strip
   ============================================================ */
.sw-promo-strip {
  background: var(--sw-accent);
  color: #fff;
  text-align: center;
  padding: .65rem 1rem;
  font-size: .88rem;
  font-weight: 500;
}
.sw-promo-strip a { color: #fff; text-decoration: underline; }

/* ============================================================
   Feature Icons Strip
   ============================================================ */
.sw-features-strip { padding: 2.5rem 0; background: var(--sw-off-white); border-top: 1px solid var(--sw-border); border-bottom: 1px solid var(--sw-border); }
.sw-features-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.sw-feature-item { display: flex; align-items: center; gap: 1rem; }
.sw-feature-item__icon {
  width: 50px; height: 50px;
  background: var(--sw-accent-light);
  color: var(--sw-accent);
  border-radius: var(--sw-radius);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  flex-shrink: 0;
}
.sw-feature-item__text strong { display: block; font-weight: 700; font-size: .92rem; color: var(--sw-text-dark); }
.sw-feature-item__text span { font-size: .8rem; color: var(--sw-text-light); }

/* ============================================================
   Product Cards
   ============================================================ */
.sw-product-card {
  background: var(--sw-white);
  border-radius: var(--sw-radius-lg);
  overflow: hidden;
  box-shadow: var(--sw-shadow-sm);
  transition: box-shadow var(--sw-transition), transform var(--sw-transition);
  border: 1px solid var(--sw-border);
  position: relative;
  display: flex;
  flex-direction: column;
  /* Initial state for scroll-in animation (JS adds .sw-animate-in) */
  opacity: 0;
  transform: translateY(20px);
}
.sw-product-card.sw-animate-in {
  animation: fadeInUp .5s ease forwards;
}
.sw-product-card:hover {
  box-shadow: var(--sw-shadow-md);
  transform: translateY(-3px);
}
/* After animate-in, hover should still lift */
.sw-product-card.sw-animate-in:hover {
  transform: translateY(-3px);
}
.sw-product-card__image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1/1;
  background: var(--sw-light);
}
.sw-product-card__image-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--sw-transition-slow);
}
.sw-product-card:hover .sw-product-card__image-wrap img { transform: scale(1.05); }

.sw-product-card__badges {
  position: absolute;
  top: .75rem; left: .75rem;
  display: flex; flex-direction: column; gap: .35rem;
  z-index: 2;
}
.sw-product-card__actions {
  position: absolute;
  top: .75rem; right: .75rem;
  display: flex; flex-direction: column; gap: .35rem;
  opacity: 0;
  transform: translateX(8px);
  transition: all var(--sw-transition);
  z-index: 2;
}
.sw-product-card:hover .sw-product-card__actions { opacity: 1; transform: translateX(0); }
.sw-product-card__action-btn,
.sw-product-card__action {
  width: 36px; height: 36px;
  background: #fff;
  border-radius: var(--sw-radius);
  display: flex; align-items: center; justify-content: center;
  color: var(--sw-text-dark);
  font-size: 1rem;
  box-shadow: var(--sw-shadow-sm);
  transition: all var(--sw-transition);
  cursor: pointer;
  border: none;
  text-decoration: none;
}
.sw-product-card__action-btn:hover,
.sw-product-card__action:hover { background: var(--sw-accent); color: #fff; }

/* __info is an alias for __body; __cats is an alias for __cat */
.sw-product-card__info { padding: 1rem 1.1rem 1.2rem; flex: 1; display: flex; flex-direction: column; }
.sw-product-card__cats {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--sw-accent);
  margin-bottom: .35rem;
}
.sw-product-card__cats a { color: inherit; text-decoration: none; }

.sw-product-card__body { padding: 1rem 1.1rem 1.2rem; flex: 1; display: flex; flex-direction: column; }
.sw-product-card__cat {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--sw-accent);
  margin-bottom: .35rem;
}
.sw-product-card__title {
  font-size: .95rem;
  font-weight: 600;
  color: var(--sw-text-dark);
  margin-bottom: .5rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sw-product-card__title a { color: inherit; }
.sw-product-card__title a:hover { color: var(--sw-accent); }

.sw-product-card__rating { display: flex; align-items: center; gap: .35rem; margin-bottom: .6rem; }
.sw-product-card__stars { color: #f59e0b; font-size: .85rem; }
.sw-product-card__rating-count { font-size: .75rem; color: var(--sw-text-light); }

.sw-product-card__footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; gap: .5rem; }
.sw-product-card__price { font-family: var(--sw-font-heading); font-weight: 700; font-size: 1.1rem; color: var(--sw-text-dark); }
.sw-product-card__price del { font-size: .85rem; color: var(--sw-muted); font-weight: 400; margin-right: .3rem; }
.sw-product-card__price ins { text-decoration: none; color: var(--sw-accent); }

.sw-product-card .add-to-cart-btn {
  background: var(--sw-primary);
  color: #fff;
  border: none;
  padding: .5rem .9rem;
  border-radius: var(--sw-radius-sm);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--sw-transition);
  text-decoration: none;
  white-space: nowrap;
}
.sw-product-card .add-to-cart-btn:hover { background: var(--sw-accent); color: #fff; transform: none; }

/* ============================================================
   Product Grid Section
   ============================================================ */
.sw-products-section { padding: 5rem 0; }
.sw-products-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.sw-products-tabs { display: flex; gap: .5rem; justify-content: center; margin-bottom: 2.5rem; flex-wrap: wrap; }
.sw-tab-btn {
  padding: .5rem 1.25rem;
  border-radius: var(--sw-radius-full);
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
  border: 2px solid var(--sw-border);
  background: transparent;
  color: var(--sw-text-light);
  transition: all var(--sw-transition);
}
.sw-tab-btn.is-active, .sw-tab-btn:hover {
  background: var(--sw-accent);
  border-color: var(--sw-accent);
  color: #fff;
}

/* ============================================================
   Category Cards
   ============================================================ */
/* .sw-cat-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; } */
.sw-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}
.sw-cat-card {
  background: var(--sw-white);
  border: 1.5px solid var(--sw-border);
  border-radius: var(--sw-radius-lg);
  padding: 1.5rem 1rem;
  text-align: center;
  transition: all var(--sw-transition);
  cursor: pointer;
  text-decoration: none;
  display: block;
}
.sw-cat-card:hover {
  border-color: var(--sw-accent);
  box-shadow: 0 4px 20px rgba(233,69,96,.12);
  transform: translateY(-2px);
}
.sw-cat-card__icon {
  width: 64px; height: 64px;
  background: var(--sw-light);
  border-radius: var(--sw-radius);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.8rem;
  margin: 0 auto .75rem;
  transition: all var(--sw-transition);
}
.sw-cat-card:hover .sw-cat-card__icon { background: var(--sw-accent-light); }
.sw-cat-card img { width: 48px; height: 48px; object-fit: cover; border-radius: var(--sw-radius-sm); margin: 0 auto; }
.sw-cat-card__name { font-weight: 700; font-size: .88rem; color: var(--sw-text-dark); margin-bottom: .2rem; }
.sw-cat-card__count { font-size: .75rem; color: var(--sw-text-light); }

/* ============================================================
   Promo Banners
   ============================================================ */
.sw-promo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.sw-promo-banner {
  position: relative;
  overflow: hidden;
  border-radius: var(--sw-radius-xl);
  min-height: 260px;
  display: flex;
  align-items: flex-end;
  padding: 2rem;
  text-decoration: none;
}
.sw-promo-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,.7) 0%, rgba(0,0,0,.1) 60%, transparent 100%);
  z-index: 1;
}
.sw-promo-banner img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--sw-transition-slow);
}
.sw-promo-banner:hover img { transform: scale(1.04); }
.sw-promo-banner__content { position: relative; z-index: 2; color: #fff; }
.sw-promo-banner__tag { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sw-accent); margin-bottom: .4rem; }
.sw-promo-banner__title { font-size: 1.5rem; font-weight: 800; color: #fff; margin-bottom: .4rem; }
.sw-promo-banner__desc { font-size: .88rem; color: rgba(255,255,255,.8); margin-bottom: 1rem; }
.sw-promo-banner__cta {
  display: inline-flex; align-items: center; gap: .4rem;
  background: #fff; color: var(--sw-text-dark);
  padding: .5rem 1.2rem;
  border-radius: var(--sw-radius-full);
  font-weight: 700; font-size: .85rem;
  transition: all var(--sw-transition);
}
.sw-promo-banner:hover .sw-promo-banner__cta { background: var(--sw-accent); color: #fff; }

.sw-promo-banner--wide { grid-column: 1 / -1; min-height: 220px; }
.sw-promo-banner--tall { grid-row: span 2; }

/* ============================================================
   Testimonials
   ============================================================ */
.sw-testimonials { background: var(--sw-off-white); padding: 5rem 0; }
.sw-testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.sw-testimonial-card {
  background: #fff;
  border-radius: var(--sw-radius-lg);
  padding: 1.75rem;
  box-shadow: var(--sw-shadow-sm);
  border: 1px solid var(--sw-border);
  transition: box-shadow var(--sw-transition);
}
.sw-testimonial-card:hover { box-shadow: var(--sw-shadow-md); }
.sw-testimonial-card__stars { color: #f59e0b; font-size: 1rem; margin-bottom: 1rem; }
.sw-testimonial-card__text { color: var(--sw-text); font-size: .95rem; line-height: 1.7; margin-bottom: 1.25rem; font-style: italic; }
.sw-testimonial-card__author { display: flex; align-items: center; gap: .75rem; }
.sw-testimonial-card__avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--sw-light);
  overflow: hidden;
  flex-shrink: 0;
}
.sw-testimonial-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-testimonial-card__name { font-weight: 700; font-size: .9rem; color: var(--sw-text-dark); }
.sw-testimonial-card__role { font-size: .78rem; color: var(--sw-text-light); }

/* ============================================================
   Newsletter
   ============================================================ */
.sw-newsletter {
  background: linear-gradient(135deg, var(--sw-primary), #0f3460);
  padding: 5rem 0;
  text-align: center;
  color: #fff;
}
.sw-newsletter h2 { color: #fff; margin-bottom: .75rem; }
.sw-newsletter p { color: rgba(255,255,255,.75); margin-bottom: 2rem; font-size: 1.05rem; }
.sw-newsletter__form { display: flex; gap: .75rem; max-width: 520px; margin: 0 auto; }
.sw-newsletter__form input {
  background: rgba(255,255,255,.1);
  border: 1.5px solid rgba(255,255,255,.2);
  color: #fff;
  border-radius: var(--sw-radius-full);
  padding: .8rem 1.25rem;
}
.sw-newsletter__form input::placeholder { color: rgba(255,255,255,.5); }
.sw-newsletter__form input:focus { border-color: var(--sw-accent); background: rgba(255,255,255,.15); }

/* ============================================================
   Footer
   ============================================================ */
.sw-footer {
  background: var(--sw-primary);
  color: rgba(255,255,255,.75);
  padding-top: 4rem;
}
.sw-footer__grid {
  display: grid;
  /* grid-template-columns: 2fr 1fr 1fr 1fr; */
  grid-template-columns: 1fr 1fr;
  /* gap: 3rem; */
  gap: 40rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

/* Footer brand / logo column */
.sw-footer__logo { margin-bottom: 1rem; }
.sw-footer__logo img { height: 44px; width: auto; }
.sw-footer__logo-text,
.sw-footer__brand .site-title {
  color: #fff;
  font-family: var(--sw-font-heading);
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: 1rem;
  display: block;
  text-decoration: none;
}
.sw-footer__brand .site-title span { color: var(--sw-accent); }
.sw-footer__about,
.sw-footer__desc { font-size: .88rem; line-height: 1.8; margin-bottom: 1.25rem; color: rgba(255,255,255,.65); }
.sw-footer__social { display: flex; gap: .5rem; }
.sw-footer__social a {
  width: 36px; height: 36px;
  background: rgba(255,255,255,.08);
  border-radius: var(--sw-radius-sm);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.75);
  font-size: .9rem;
  transition: all var(--sw-transition);
  text-decoration: none;
}
.sw-footer__social a:hover { background: var(--sw-accent); color: #fff; }

/* Footer columns */
.sw-footer__col-title,
.sw-footer__col h4 {
  color: #fff;
  font-size: .95rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
  padding-bottom: .75rem;
  border-bottom: 2px solid var(--sw-accent);
  display: inline-block;
}
.sw-footer__links,
.sw-footer__col ul { display: flex; flex-direction: column; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.sw-footer__links li a,
.sw-footer__col ul li a {
  color: rgba(255,255,255,.65);
  font-size: .88rem;
  transition: all var(--sw-transition);
  text-decoration: none;
}
.sw-footer__links li a:hover,
.sw-footer__col ul li a:hover { color: #fff; padding-left: .3rem; }

/* Contact list */
.sw-footer__contact { list-style: none; margin: 0 0 1.25rem; padding: 0; display: flex; flex-direction: column; gap: .65rem; }
.sw-footer__contact li { display: flex; align-items: center; gap: .6rem; font-size: .88rem; }
.sw-footer__contact li svg { flex-shrink: 0; color: var(--sw-accent); }
.sw-footer__contact li a { color: rgba(255,255,255,.65); text-decoration: none; transition: color var(--sw-transition); }
.sw-footer__contact li a:hover { color: #fff; }

/* Newsletter */
.sw-footer__newsletter p { font-size: .85rem; color: rgba(255,255,255,.55); margin-bottom: .6rem; }

/* Footer bottom */
.sw-footer__bottom {
  background: #000;
  padding: 1.25rem 0;
  font-size: .82rem;
  color: rgba(255,255,255,.4);
}
.sw-footer__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
}
.sw-footer__copyright { color: rgba(255,255,255,.4); }
.sw-footer__bottom-nav { }
.sw-footer__bottom-menu { display: flex; align-items: center; gap: 1rem; list-style: none; margin: 0; padding: 0; }
.sw-footer__bottom-menu li a { color: rgba(255,255,255,.4); font-size: .82rem; text-decoration: none; transition: color var(--sw-transition); }
.sw-footer__bottom-menu li a:hover { color: rgba(255,255,255,.8); }

/* Payment badges */
.sw-footer__payment { display: flex; align-items: center; gap: .5rem; }
.sw-footer__payment img { height: 24px; border-radius: 3px; }
.sw-payment-badge,
.sw-footer__payment-icon {
  background: rgba(255,255,255,.1);
  border-radius: 4px;
  padding: 2px 8px;
  font-size: .75rem;
  color: rgba(255,255,255,.7);
  font-weight: 600;
}

/* ============================================================
   WooCommerce — Shop Hero Banner
   ============================================================ */
.sw-shop-hero {
  background: linear-gradient(135deg, var(--sw-primary) 0%, #0f3460 100%);
  padding: 3rem 0;
  text-align: center;
}
.sw-shop-hero__title {
  color: #fff;
  font-size: 2.2rem;
  margin: 0 0 .5rem;
  line-height: 1.2;
}
.sw-shop-hero__breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  font-size: .85rem;
  color: rgba(255,255,255,.65);
  flex-wrap: wrap;
}
.sw-shop-hero__breadcrumb a { color: rgba(255,255,255,.85); text-decoration: none; transition: color var(--sw-transition); }
.sw-shop-hero__breadcrumb a:hover { color: #fff; }
.sw-shop-hero__breadcrumb .sep { opacity: .5; }

/* ============================================================
   WooCommerce — Catalog / Archive
   ============================================================ */
.sw-woocommerce-main { padding: 4rem 0 5rem; }
.woocommerce .woocommerce-notices-wrapper { margin-bottom: 1.5rem; }

/* Toolbar — wraps WC's default result count + ordering output */
.sw-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1rem 1.5rem;
  background: var(--sw-white);
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius-lg);
  margin-bottom: 2rem;
  box-shadow: var(--sw-shadow-sm);
}

/* WooCommerce default before_shop_loop output — result count + ordering sit inside
   .sw-shop-toolbar (display:flex / space-between), so we must NOT override them to
   display:block or the flex layout collapses.  The toolbar's justify-content already
   pushes ordering to the right; no margin-left override is needed here. */
.sw-shop-toolbar .woocommerce-result-count,
.sw-shop-toolbar .woocommerce-ordering {
  margin: 0;
}

.woocommerce-result-count {
  font-size: .88rem;
  color: var(--sw-text-light);
  margin: 0;
}
.woocommerce-ordering {
  margin: 0;
}
.woocommerce-ordering select {
  padding: .5rem 2.2rem .5rem .9rem;
  border: 1.5px solid var(--sw-border);
  border-radius: var(--sw-radius-sm);
  font-size: .88rem;
  font-family: var(--sw-font-body);
  color: var(--sw-text-dark);
  background-color: var(--sw-white);
  cursor: pointer;
  outline: none;
  transition: border-color var(--sw-transition);
  min-width: 190px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .7rem center;
}
.woocommerce-ordering select:focus { border-color: var(--sw-accent); }

/* ── Shop Product Grid ──────────────────────────────────────────────────────── */
/* 4-column grid — identical layout to homepage .sw-products-grid             */
.sw-shop-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

/* Ensure every direct child — whether a plain div or a WC <li> — behaves as a
   grid item and does not carry WooCommerce's default float/width/margin.       */
.sw-shop-products-grid > * {
  float: none ;
  width: auto ;
  margin: 0 ;
  list-style: none ;
}
/* Only strip padding from list items (<li>), not from the card divs themselves */
.sw-shop-products-grid > li {
  padding: 0 ;
}

/* If WooCommerce somehow still injects a <ul> wrapper, flatten it into the grid */
.sw-shop-products-grid ul.products {
  display: contents ;
  list-style: none ;
  margin: 0 ;
  padding: 0 ;
}
.sw-shop-products-grid ul.products li.product {
  float: none ;
  width: auto ;
  margin: 0 ;
  padding: 0 ;
}

/* WC global — neutralise any residual floats outside our grid too */
.woocommerce ul.products { list-style: none ; margin: 0 ; padding: 0 ; }
.woocommerce ul.products li.product { margin: 0 ; float: none ; width: auto ; }

/* ── Add-to-cart button inside card footer ─────────────────────────────────── */
/* Override WooCommerce's global .button styles to match home page compact card style */
.sw-product-card__footer .button,
.sw-product-card__footer a.button,
.sw-product-card__footer .add_to_cart_button,
.woocommerce .sw-product-card__footer .button,
.woocommerce .sw-product-card__footer a.button,
.woocommerce .sw-product-card__footer .add_to_cart_button {
  background: var(--sw-primary) ;
  color: #fff ;
  border: none ;
  padding: .5rem .9rem ;
  border-radius: var(--sw-radius-sm) ;
  font-size: .82rem ;
  font-weight: 600 ;
  cursor: pointer;
  transition: all var(--sw-transition) ;
  text-decoration: none;
  white-space: nowrap;
  display: inline-flex ;
  align-items: center;
  gap: .3rem;
  box-shadow: none ;
  transform: none ;
  letter-spacing: 0 ;
}
.sw-product-card__footer .button:hover,
.sw-product-card__footer a.button:hover,
.sw-product-card__footer .add_to_cart_button:hover,
.woocommerce .sw-product-card__footer .button:hover,
.woocommerce .sw-product-card__footer a.button:hover,
.woocommerce .sw-product-card__footer .add_to_cart_button:hover {
  background: var(--sw-accent) ;
  border-color: transparent ;
  color: #fff ;
  transform: none ;
  box-shadow: none ;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
  display: flex; gap: .4rem; list-style: none; padding: 0; margin: 3rem 0 0; justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce nav.woocommerce-pagination ul li a {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border-radius: var(--sw-radius-sm);
  border: 1.5px solid var(--sw-border);
  color: var(--sw-text); font-weight: 600; font-size: .9rem;
  transition: all var(--sw-transition);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--sw-accent); border-color: var(--sw-accent); color: #fff;
}

/* ============================================================
   Shop Page — Product Card Parity with Home Page
   Ensures .sw-product-card inside .woocommerce context has
   identical design, hover animations, and scroll animations
   as the homepage Featured Products section.
   ============================================================ */

/* Card base — ensure WooCommerce wrapper doesn't override */
.woocommerce .sw-product-card,
.woocommerce-page .sw-product-card {
  background: var(--sw-white) ;
  border-radius: var(--sw-radius-lg) ;
  overflow: hidden ;
  box-shadow: var(--sw-shadow-sm) ;
  transition: box-shadow var(--sw-transition), transform var(--sw-transition) ;
  border: 1px solid var(--sw-border) ;
  position: relative ;
  display: flex ;
  flex-direction: column ;
  float: none ;
  width: auto ;
  margin: 0 ;
  padding: 0 ;
}

/* Hover lift — identical to home page */
.woocommerce .sw-product-card:hover,
.woocommerce-page .sw-product-card:hover {
  box-shadow: var(--sw-shadow-md) ;
  transform: translateY(-3px) ;
}

/* Image wrap */
.woocommerce .sw-product-card__image-wrap,
.woocommerce-page .sw-product-card__image-wrap {
  position: relative ;
  overflow: hidden ;
  aspect-ratio: 1/1 ;
  background: var(--sw-light) ;
}

/* Image zoom on hover */
.woocommerce .sw-product-card__image-wrap img,
.woocommerce-page .sw-product-card__image-wrap img {
  width: 100% ;
  height: 100% ;
  object-fit: cover ;
  transition: transform var(--sw-transition-slow) ;
  display: block ;
}
.woocommerce .sw-product-card:hover .sw-product-card__image-wrap img,
.woocommerce-page .sw-product-card:hover .sw-product-card__image-wrap img {
  transform: scale(1.05) ;
}

/* Action buttons — slide in from right on hover */
.woocommerce .sw-product-card__actions,
.woocommerce-page .sw-product-card__actions {
  position: absolute ;
  top: .75rem ;
  right: .75rem ;
  display: flex ;
  flex-direction: column ;
  gap: .35rem ;
  opacity: 0 ;
  transform: translateX(8px) ;
  transition: all var(--sw-transition) ;
  z-index: 2 ;
}
.woocommerce .sw-product-card:hover .sw-product-card__actions,
.woocommerce-page .sw-product-card:hover .sw-product-card__actions {
  opacity: 1 ;
  transform: translateX(0) ;
}

/* Action icon buttons */
.woocommerce .sw-product-card__action-btn,
.woocommerce-page .sw-product-card__action-btn {
  width: 36px ;
  height: 36px ;
  background: #fff ;
  border-radius: var(--sw-radius) ;
  display: flex ;
  align-items: center ;
  justify-content: center ;
  color: var(--sw-text-dark) ;
  box-shadow: var(--sw-shadow-sm) ;
  transition: all var(--sw-transition) ;
  cursor: pointer ;
  border: none ;
  padding: 0 ;
  font-size: 1rem ;
  letter-spacing: 0 ;
}
.woocommerce .sw-product-card__action-btn:hover,
.woocommerce-page .sw-product-card__action-btn:hover {
  background: var(--sw-accent) ;
  color: #fff ;
  transform: none ;
  box-shadow: none ;
}

/* Scroll-in animation — same as home page (js adds .sw-animate-in) */
.woocommerce .sw-product-card,
.woocommerce-page .sw-product-card {
  opacity: 0;
  transform: translateY(20px);
}
.woocommerce .sw-product-card.sw-animate-in,
.woocommerce-page .sw-product-card.sw-animate-in {
  animation: fadeInUp .5s ease forwards ;
}
/* On hover after animate-in, keep the lift */
.woocommerce .sw-product-card.sw-animate-in:hover,
.woocommerce-page .sw-product-card.sw-animate-in:hover {
  transform: translateY(-3px) ;
}


/* ============================================================
   Single Product Page
   ============================================================ */

.sw-single-product {
  display: grid ;
  grid-template-columns: 1fr 1fr ;
  gap: 3.5rem;
  align-items: start;
  padding: 3rem 0 2rem;
}

/* ── Gallery Column ─────────────────────────────────────────────────────── */
.sw-single-product__gallery {
  grid-column: 1;
  position: sticky;
  top: calc(var(--sw-header-h, 80px) + 1.5rem);
}

/* ── Summary Column ─────────────────────────────────────────────────────── */
.sw-single-product__summary {
  grid-column: 2;
}

/* Main slider viewport */
.woocommerce-product-gallery .flex-viewport {
  border-radius: var(--sw-radius-xl) ;
  overflow: hidden ;
  box-shadow: var(--sw-shadow-md) ;
  margin-bottom: .875rem ;
  cursor: zoom-in ;
}

/* Slide images inside viewport */
.woocommerce-product-gallery .woocommerce-product-gallery__image img,
.woocommerce-product-gallery .slides li img {
  width: 100% ;
  height: 480px ;
  object-fit: cover ;
  display: block ;
}

/* Single image fallback (no slider) */
.woocommerce-product-gallery .woocommerce-product-gallery__image:only-child {
  border-radius: var(--sw-radius-xl) ;
  overflow: hidden ;
  box-shadow: var(--sw-shadow-md) ;
  cursor: zoom-in ;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image:only-child img {
  height: 480px ;
  object-fit: cover ;
  width: 100% ;
  display: block ;
}

/* ── Thumbnail strip (flex-control-thumbs) ────────────────────────── */
.woocommerce-product-gallery .flex-control-thumbs {
  display: flex ;
  flex-direction: row ;
  flex-wrap: nowrap ;
  gap: .625rem ;
  overflow-x: auto ;
  margin: 0 ;
  padding: 0 ;
  list-style: none ;
  scrollbar-width: thin ;
  scrollbar-color: var(--sw-border) transparent ;
}
.woocommerce-product-gallery .flex-control-thumbs li {
  flex: 0 0 calc(25% - .47rem) ;
  max-width: calc(25% - .47rem) ;
  border-radius: var(--sw-radius) ;
  overflow: hidden ;
  border: 2px solid var(--sw-border) ;
  transition: border-color .2s ease, box-shadow .2s ease ;
  cursor: pointer ;
  background: var(--sw-light) ;
}
.woocommerce-product-gallery .flex-control-thumbs li:hover {
  border-color: var(--sw-accent) ;
}
.woocommerce-product-gallery .flex-control-thumbs li.flex-active {
  border-color: var(--sw-accent) ;
  box-shadow: 0 0 0 2px var(--sw-accent) ;
}
.woocommerce-product-gallery .flex-control-thumbs li img {
  width: 100% ;
  height: 82px ;
  object-fit: cover ;
  display: block ;
  opacity: 1 ;
  cursor: pointer ;
}

/* Zoom image injected by WooCommerce zoom plugin */
.woocommerce-product-gallery .zoomImg {
  border-radius: var(--sw-radius-xl) ;
}

/* ── Summary Column ─────────────────────────────────────────────────────── */
.sw-single-product__summary .product_title { font-size: 2rem; margin-bottom: .5rem; }
.sw-single-product__summary .price { font-size: 1.6rem; font-weight: 800; color: var(--sw-accent); font-family: var(--sw-font-heading); margin-bottom: 1rem; }
.sw-single-product__summary .price del { font-size: 1.1rem; color: var(--sw-muted); font-weight: 400; margin-right: .4rem; }
.sw-single-product__summary .woocommerce-product-rating { margin-bottom: .75rem; }
.sw-single-product__summary .woocommerce-review-link { color: var(--sw-text-light); font-size: .88rem; }
.sw-single-product__summary .woocommerce-product-details__short-description { color: var(--sw-text-light); font-size: .95rem; line-height: 1.8; margin-bottom: 1.5rem; }

/* Cart form row */
.woocommerce div.product form.cart {
  display: flex;
  gap: .75rem;
  align-items: center;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

/* ── Quantity Controls ──────────────────────────────────────────────────── */
/* .sw-qty-wrap also has class .quantity — target both */
.woocommerce div.product form.cart .sw-qty-wrap,
.woocommerce div.product form.cart .quantity {
  display: flex ;
  align-items: stretch ;
  height: 48px ;
  border: 2px solid var(--sw-border) ;
  border-radius: 100px ;
  overflow: hidden ;
  background: var(--sw-white) ;
  box-shadow: 0 1px 4px rgba(0,0,0,.06) ;
  padding: 0 ;
  gap: 0 ;
  min-width: 0 ;
  width: auto ;
}

/* Plus / Minus buttons — class is .sw-qty-btn on the template */
.woocommerce div.product form.cart .sw-qty-btn {
  width: 44px ;
  height: 100% ;
  background: var(--sw-light) ;
  border: none ;
  cursor: pointer ;
  display: flex ;
  align-items: center ;
  justify-content: center ;
  flex-shrink: 0 ;
  color: var(--sw-text) ;
  transition: background .2s ease, color .2s ease ;
  padding: 0 ;
  outline: none ;
}
.woocommerce div.product form.cart .sw-qty-btn:hover {
  background: var(--sw-accent) ;
  color: #fff ;
}

/* Number input — class is .sw-qty-input on the template */
.woocommerce div.product form.cart .sw-qty-input,
.woocommerce div.product form.cart input.qty {
  width: 52px ;
  text-align: center ;
  border: none ;
  border-left: 1.5px solid var(--sw-border) ;
  border-right: 1.5px solid var(--sw-border) ;
  border-radius: 0 ;
  font-weight: 700 ;
  font-size: .95rem ;
  font-family: var(--sw-font-heading) ;
  padding: 0 ;
  background: transparent ;
  color: var(--sw-text-dark) ;
  height: 100% ;
  -moz-appearance: textfield ;
  appearance: textfield ;
  box-shadow: none ;
  outline: none ;
  flex: 1 ;
}
.woocommerce div.product form.cart .sw-qty-input::-webkit-outer-spin-button,
.woocommerce div.product form.cart .sw-qty-input::-webkit-inner-spin-button,
.woocommerce div.product form.cart input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none ;
  margin: 0 ;
}

/* ── Add to Cart Button — same style as shop page card button ───────────── */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart button.single_add_to_cart_button {
  background: var(--sw-primary) ;
  color: #fff ;
  border: none ;
  padding: 0 1.6rem ;
  height: 48px ;
  border-radius: var(--sw-radius-sm) ;
  font-family: var(--sw-font-heading) ;
  font-weight: 600 ;
  font-size: .88rem ;
  cursor: pointer ;
  transition: background .2s ease ;
  display: inline-flex ;
  align-items: center ;
  gap: .5rem ;
  white-space: nowrap ;
  text-decoration: none ;
  box-shadow: none ;
  transform: none ;
  letter-spacing: 0 ;
  line-height: 1 ;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
  background: var(--sw-accent) ;
  color: #fff ;
  transform: none ;
  box-shadow: none ;
}

/* ── Estimated Delivery Date ────────────────────────────────────────────── */
.sw-delivery-estimate {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .88rem;
  color: var(--sw-text-light);
  margin-top: .5rem;
  margin-bottom: .25rem;
}
.sw-delivery-estimate__icon {
  color: var(--sw-accent);
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.sw-delivery-estimate__text strong {
  color: var(--sw-text);
  font-weight: 600;
}

/* Trust signals bar */
.sw-single-product__trust {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
  padding: 1.25rem 0;
  border-top: 1px solid var(--sw-border);
  margin-top: 1.5rem;
}
.sw-trust-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .82rem;
  color: var(--sw-text-light);
}
.sw-trust-item svg { color: var(--sw-accent); flex-shrink: 0; }

/* Tabs section — full-width block BELOW the .sw-single-product grid */
.sw-single-product__tabs {
  width: 100%;
  border-top: 1px solid var(--sw-border);
  padding-top: 3rem;
  margin-top: 0;
  clear: both;
}

/* woocommerce div.product shares the same element as .sw-single-product via wc_product_class().
   Do NOT set display here — the grid is already declared on .sw-single-product above. */
.woocommerce div.product .product_title { font-size: 2rem; margin-bottom: .5rem; }
.woocommerce div.product .price { font-size: 1.6rem; font-weight: 800; color: var(--sw-accent); font-family: var(--sw-font-heading); margin-bottom: 1rem; }
.woocommerce div.product .price del { font-size: 1.1rem; color: var(--sw-muted); font-weight: 400; margin-right: .4rem; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: .75rem; }
.woocommerce div.product .woocommerce-review-link { color: var(--sw-text-light); font-size: .88rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--sw-text-light); font-size: .95rem; line-height: 1.8; margin-bottom: 1.5rem; }

.sw-product-meta { font-size: .85rem; color: var(--sw-text-light); margin-top: 1.25rem; }
.sw-product-meta a { color: var(--sw-accent); }
.sw-product-meta > span { display: block; margin-bottom: .35rem; }
.sw-product-meta strong { color: var(--sw-text); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex; gap: 0; border-bottom: 2px solid var(--sw-border); padding: 0; margin-bottom: 2rem; list-style: none;
}
.sw-single-product__tabs .woocommerce-tabs {
  width: 100%;
}
.sw-single-product__tabs .woocommerce-tabs ul.tabs {
  display: flex; gap: 0; border-bottom: 2px solid var(--sw-border); padding: 0; margin-bottom: 2rem; list-style: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin-bottom: -2px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block; padding: .85rem 1.5rem;
  font-weight: 600; font-size: .92rem;
  color: var(--sw-text-light);
  border-bottom: 2px solid transparent;
  transition: all var(--sw-transition);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--sw-accent); border-bottom-color: var(--sw-accent);
}
.woocommerce div.product .woocommerce-tabs .panel { padding: 0; }

/* ── Related Products — rendered after tabs ─────────────────────────────── */
.sw-single-product__related {
  padding: 3.5rem 0 2rem;
  border-top: 1px solid var(--sw-border);
  clear: both;
}
/* Strip WooCommerce default related margins/padding inside our wrapper */
.sw-single-product__related .related.products { padding: 0; border-top: none; }
.woocommerce .related.products > h2,
.woocommerce-page .related.products > h2 { font-size: 1.6rem; margin-bottom: 1.5rem; }

/* 4-column grid, same as homepage card grid */
.woocommerce .related.products ul.products,
.woocommerce-page .related.products ul.products {
  display: grid ;
  grid-template-columns: repeat(4, 1fr) ;
  gap: 1.5rem ;
  list-style: none ;
  padding: 0 ;
  margin: 0 ;
  float: none ;
  width: 100% ;
}


/* ============================================================
   Cart & Checkout
   ============================================================ */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce { padding: 3rem 0 5rem; }

.woocommerce table.shop_table { border: 1px solid var(--sw-border); border-radius: var(--sw-radius-lg); overflow: hidden; border-collapse: separate; width: 100%; }
.woocommerce table.shop_table th { background: var(--sw-off-white); font-weight: 700; font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; color: var(--sw-text-light); padding: 1rem 1.25rem; border-bottom: 1px solid var(--sw-border); }
.woocommerce table.shop_table td { padding: 1rem 1.25rem; border-bottom: 1px solid var(--sw-border); vertical-align: middle; }
.woocommerce table.shop_table tr:last-child td { border-bottom: none; }
.woocommerce table.shop_table .product-thumbnail img { width: 72px; border-radius: var(--sw-radius-sm); }
.woocommerce table.shop_table .product-name a { font-weight: 600; color: var(--sw-text-dark); }

.cart-collaterals { margin-top: 2rem; }
.woocommerce .cart-collaterals .cart_totals { float: right; width: 40%; }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 1.25rem; margin-bottom: 1.25rem; }
.woocommerce .cart-collaterals .cart_totals table { background: var(--sw-off-white); }

/* Checkout form */
.woocommerce-checkout .woocommerce { display: grid; grid-template-columns: 1fr 400px; gap: 3rem; align-items: start; }
.woocommerce-checkout .col2-set { order: 1; }
.woocommerce-checkout #order_review_heading { font-size: 1.25rem; margin-bottom: 1rem; }
.woocommerce-checkout #order_review { background: var(--sw-off-white); border-radius: var(--sw-radius-lg); padding: 1.75rem; position: sticky; top: 80px; }

.woocommerce form .form-row { margin-bottom: 1rem; }
.woocommerce form .form-row label { font-weight: 600; font-size: .88rem; display: block; margin-bottom: .35rem; color: var(--sw-text-dark); }
.woocommerce form .form-row .required { color: var(--sw-accent); }
.woocommerce-checkout #payment { background: var(--sw-off-white); border-radius: var(--sw-radius-lg); padding: 1.5rem; margin-top: 1.5rem; }
.woocommerce-checkout #payment ul.payment_methods { border: 1px solid var(--sw-border); border-radius: var(--sw-radius); overflow: hidden; margin-bottom: 1.25rem; list-style: none; padding: 0; }
.woocommerce-checkout #payment ul.payment_methods li { padding: .85rem 1rem; border-bottom: 1px solid var(--sw-border); }
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: none; }

/* ============================================================
   My Account
   ============================================================ */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 2.5rem; padding: 3rem 0 5rem; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
.woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--sw-border); }
.woocommerce-MyAccount-navigation ul li a {
  display: block; padding: .85rem 1.25rem;
  color: var(--sw-text); font-weight: 500; font-size: .92rem;
  transition: all var(--sw-transition);
  border-left: 3px solid transparent;
  background: var(--sw-off-white);
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
  color: var(--sw-accent); border-left-color: var(--sw-accent); background: var(--sw-accent-light);
}

/* ============================================================
   Breadcrumb
   ============================================================ */
.sw-breadcrumb {
  background: var(--sw-off-white);
  border-bottom: 1px solid var(--sw-border);
  padding: .85rem 0;
  font-size: .84rem;
  color: var(--sw-text-light);
}
.sw-breadcrumb a { color: var(--sw-text-light); }
.sw-breadcrumb a:hover { color: var(--sw-accent); }
.sw-breadcrumb .sep { margin: 0 .4rem; }
.woocommerce .woocommerce-breadcrumb { display: none; }

/* ============================================================
   Notices / Alerts
   ============================================================ */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-radius: var(--sw-radius);
  padding: 1rem 1.25rem 1rem 3.5rem;
  margin-bottom: 1.5rem;
  position: relative;
  font-size: .92rem;
  list-style: none;
}
.woocommerce-message { background: #d1fae5; color: #065f46; border-left: 4px solid var(--sw-success); }
.woocommerce-info { background: #dbeafe; color: #1e40af; border-left: 4px solid var(--sw-info); }
.woocommerce-error { background: #fee2e2; color: #991b1b; border-left: 4px solid var(--sw-accent); }
.woocommerce-message::before { content: '✓'; position: absolute; left: 1rem; font-weight: 700; }
.woocommerce-info::before { content: 'ℹ'; position: absolute; left: 1rem; font-weight: 700; }
.woocommerce-error::before { content: '✕'; position: absolute; left: 1rem; font-weight: 700; }

/* ============================================================
   Widgets
   ============================================================ */
.widget-area .widget { margin-bottom: 1.5rem; }
.widget-title { font-size: 1rem; font-weight: 700; margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 2px solid var(--sw-accent); display: inline-block; }

/* SW Widget: Featured Products */
.sw-widget-products .sw-mini-product { display: flex; gap: .75rem; padding: .6rem 0; border-bottom: 1px solid var(--sw-border); }
.sw-widget-products .sw-mini-product:last-child { border-bottom: none; }
.sw-widget-products .sw-mini-product img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--sw-radius-sm); flex-shrink: 0; }
.sw-widget-products .sw-mini-product__title { font-size: .85rem; font-weight: 600; color: var(--sw-text-dark); margin-bottom: .25rem; }
.sw-widget-products .sw-mini-product__title a { color: inherit; }
.sw-widget-products .sw-mini-product__price { font-size: .88rem; font-weight: 700; color: var(--sw-accent); }

/* ============================================================
   Sidebar layout
   ============================================================ */
.site-content { display: grid; grid-template-columns: 1fr 300px; gap: 2.5rem; padding: 3rem 0; }
.site-content.no-sidebar { grid-template-columns: 1fr; }
.content-area { min-width: 0; }

/* ============================================================
   Page Hero / Title
   ============================================================ */
.sw-page-hero {
  background: linear-gradient(135deg, var(--sw-primary) 0%, #0f3460 100%);
  padding: 3rem 0;
  color: #fff;
}
.sw-page-hero h1 { color: #fff; font-size: 2.2rem; margin: 0; }
.sw-page-hero .sw-breadcrumb-inline { color: rgba(255,255,255,.6); font-size: .85rem; margin-top: .5rem; }
.sw-page-hero .sw-breadcrumb-inline a { color: rgba(255,255,255,.8); }

/* ============================================================
   Loading / Skeleton
   ============================================================ */
@keyframes skeleton { 0%,100%{opacity:1} 50%{opacity:.5} }
.sw-skeleton { animation: skeleton 1.5s ease-in-out infinite; background: var(--sw-light); border-radius: var(--sw-radius-sm); }

/* ============================================================
   Animations
   ============================================================ */
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.7;transform:scale(1.3)} }
@keyframes fadeInUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideInRight { from{opacity:0;transform:translateX(-20px)} to{opacity:1;transform:translateX(0)} }

.sw-animate-in { animation: fadeInUp .5s ease forwards; }
.sw-animate-delay-1 { animation-delay: .1s; }
.sw-animate-delay-2 { animation-delay: .2s; }
.sw-animate-delay-3 { animation-delay: .3s; }

/* ============================================================
   Scroll to Top
   ============================================================ */
.sw-scroll-top {
  position: fixed;
  bottom: 1.5rem; right: 1.5rem;
  width: 44px; height: 44px;
  background: var(--sw-accent);
  color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  box-shadow: var(--sw-shadow-accent);
  cursor: pointer;
  border: none;
  opacity: 0; visibility: hidden;
  transition: all var(--sw-transition);
  z-index: 999;
  text-decoration: none;
}
.sw-scroll-top.is-visible { opacity: 1; visibility: visible; }
.sw-scroll-top:hover { background: var(--sw-accent-hover); color: #fff; transform: translateY(-2px); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1100px) {
  .sw-products-grid { grid-template-columns: repeat(3, 1fr); }
  .sw-cat-grid { grid-template-columns: repeat(4, 1fr); }
  .sw-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .sw-features-strip__grid { grid-template-columns: repeat(2, 1fr); }
  .woocommerce-checkout .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce { grid-template-columns: 200px 1fr; }
}
@media (max-width:900px) {
  .sw-hero__inner { grid-template-columns: 1fr; gap: 2.5rem; padding: 3.5rem 0; }
  .sw-hero__image { display: none; }
  .sw-promo-grid { grid-template-columns: 1fr; }
  .sw-testimonials-grid { grid-template-columns: 1fr 1fr; }
  .sw-single-product { grid-template-columns: 1fr ; }
  .sw-single-product__gallery { grid-column: 1; position: static; }
  .sw-single-product__summary { grid-column: 1; }
  .sw-shop-products-grid { grid-template-columns: repeat(3, 1fr) ; }
  .site-content { grid-template-columns: 1fr; }
  .sw-shop-hero__title { font-size: 1.7rem; }
  .woocommerce .related.products ul.products,
  .woocommerce-page .related.products ul.products { grid-template-columns: repeat(2, 1fr) ; }
}
@media (max-width:768px) {
  .sw-mobile-toggle { display: flex; }
  .sw-hamburger { display: flex; }
  .sw-nav .sw-nav__menu { display: none; }
  .sw-header__search { display: none; }
  .sw-product-grid { grid-template-columns: repeat(2, 1fr); }
  .sw-products-grid { grid-template-columns: repeat(2, 1fr); }
  .sw-shop-products-grid { grid-template-columns: repeat(2, 1fr) ; }
  .sw-cat-grid { grid-template-columns: repeat(3, 1fr); }
  .sw-grid--2,.sw-grid--3,.sw-grid--4 { grid-template-columns: 1fr; }
  .sw-newsletter__form { flex-direction: column; }
  .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
  .sw-shop-toolbar { padding: .75rem 1rem; }
  .sw-woocommerce-main { padding: 2rem 0 4rem; }
}
@media (max-width:480px) {
  .sw-products-grid { grid-template-columns: 1fr; }
  .sw-product-grid { grid-template-columns: 1fr; }
  .sw-shop-products-grid { grid-template-columns: 1fr ; }
  .sw-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .sw-testimonials-grid { grid-template-columns: 1fr; }
  .sw-topbar { display: none; }
  .sw-hero__stats { flex-direction: column; gap: 1rem; }
  .sw-footer__grid { grid-template-columns: 1fr; }
  .sw-hero__actions { flex-direction: column; }
  .sw-hero__actions .sw-btn { width: 100%; justify-content: center; }
}

/* =============================================================
   ShopWise — Single Product: Desktop 2-Column Layout
   Add this block at the END of style.css (before the final
   @media blocks, or after them — both work fine).

   Mobile (≤900 px) stays single-column, exactly matching
   the existing shopwise_single_product_page.html design.
   Desktop (>900 px) shows the gallery + summary side-by-side.
   ============================================================= */

/* ── 1. Force the WooCommerce div.product wrapper into a 2-column grid
        on desktop. This covers both cases:
        (a) template adds .sw-single-product  → already styled above
        (b) template does NOT add that class  → this rule takes over   -- */
@media (min-width: 901px) {

  div#product-2025 {
    display: grid;
    grid-template-columns: 54% 1fr !important;
    grid-template-rows: auto;
    gap: 2.5rem !important;
}

  /* Target the native WooCommerce wrapper directly.
     .woocommerce-page is the body class WC adds on product pages. */
  .woocommerce div.product,
  .woocommerce-page div.product {
    display: grid !important;
    /* grid-template-columns: 54% 1fr !important;
    grid-template-rows: auto;
    gap: 2.5rem !important; */
    align-items: start;
  }

  .sw-shop-products-grid div.product {
    display: grid !important;
    align-items: start;
  }

  /* ── 2. Gallery column (WooCommerce default class: .woocommerce-product-gallery) */
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce-page div.product .woocommerce-product-gallery {
    grid-column: 1 !important;
    grid-row: 1 !important;
    /* position: sticky; */
/*     top: calc(var(--sw-header-h, 80px) + 1.5rem); */
  }

  /* ── 3. Summary column (WooCommerce default class: .summary) */
  .woocommerce div.product .summary,
  .woocommerce-page div.product .summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  /* ── 4. Tabs + related products — full-width rows below the grid columns */
  .woocommerce div.product .woocommerce-tabs,
  .woocommerce-page div.product .woocommerce-tabs,
  .woocommerce div.product .woocommerce-tabs ~ *,
  .sw-single-product__tabs,
  .sw-single-product__related {
    grid-column: 1 / -1 !important;  /* span both columns */
  }

  /* ── 5. Main gallery image — taller on desktop to fill the wider column */
  .woocommerce-product-gallery .flex-viewport,
  .woocommerce-product-gallery .woocommerce-product-gallery__image:only-child {
    border-radius: 14px !important;
  }

  .woocommerce-product-gallery .woocommerce-product-gallery__image img,
  .woocommerce-product-gallery .slides li img,
  .woocommerce-product-gallery .woocommerce-product-gallery__image:only-child img {
    height: 420px !important;
    object-fit: cover !important;
  }

  /* ── 6. Summary title — larger on desktop */
  .woocommerce div.product .summary .product_title,
  .woocommerce div.product .product_title {
    font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  }

  /* ── 7. Price — desktop scale */
  .woocommerce div.product .summary .price,
  .woocommerce div.product .price {
    font-size: 1.8rem !important;
  }

  /* ── 8. Add-to-cart row — let button grow on desktop */
  .woocommerce div.product form.cart {
    flex-wrap: nowrap !important;
  }
  .woocommerce div.product form.cart .single_add_to_cart_button,
  .woocommerce div.product form.cart button.single_add_to_cart_button {
    flex: 1 !important;
  }

  /* ── 9. Trust grid — match HTML 3-column grid */
  .sw-single-product__trust {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0.75rem !important;
  }

  /* ── 10. Related products — 4 cards on desktop */
  .woocommerce .related.products ul.products,
  .woocommerce-page .related.products ul.products {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}

/* =============================================================
   Mobile override — ensure single column is preserved ≤900 px
   (these mirror the existing @media rules; listed here as a
   clear, self-contained reference)
   ============================================================= */
@media (max-width: 900px) {

  .woocommerce div.product,
  .woocommerce-page div.product {
    display: block !important;   /* single column — same as current behaviour */
  }

  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce-page div.product .woocommerce-product-gallery {
    position: static !important;
    margin-bottom: 1rem;
  }

  .woocommerce-product-gallery .woocommerce-product-gallery__image img,
  .woocommerce-product-gallery .slides li img,
  .woocommerce-product-gallery .woocommerce-product-gallery__image:only-child img {
    height: 220px !important;   /* compact on mobile */
  }

  .sw-single-product__trust {
    grid-template-columns: repeat(3, 1fr) !important; /* still 3-col on mid mobile */
  }

  .woocommerce .related.products ul.products,
  .woocommerce-page .related.products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  .sw-single-product__trust {
    grid-template-columns: 1fr !important;
  }

  .woocommerce .related.products ul.products,
  .woocommerce-page .related.products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
/* ============================================================
   SINGLE PRODUCT PAGE — FULL REDESIGN (matches design HTML)
   ============================================================ */

/* ── Breadcrumb strip ──────────────────────────────────────────── */
.sw-breadcrumb {
  background: var(--sw-off-white);
  border-bottom: 1px solid var(--sw-border);
  padding: .75rem 0;
  font-size: .8rem;
  color: var(--sw-muted);
}
.sw-breadcrumb .sw-container {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.sw-breadcrumb a { color: var(--sw-text-light); text-decoration: none; }
.sw-breadcrumb a:hover { color: var(--sw-accent); }
.sw-breadcrumb .current { color: var(--sw-primary); font-weight: 600; }
.sw-breadcrumb .sep { color: var(--sw-muted); opacity: .6; }

/* ── Page wrapper ──────────────────────────────────────────────── */
.woocommerce-page.single-product .sw-woocommerce-main,
.single-product .sw-woocommerce-main {
  padding: 2rem 0 4rem;
}

/* ── 2-column grid ─────────────────────────────────────────────── */
.sw-single-product {
  display: grid;
  grid-template-columns: 54% 1fr;
  gap: 2.5rem;
  align-items: start;
  padding: 1.5rem 0 2rem;
}

/* ── Gallery column ────────────────────────────────────────────── */
.sw-single-product__gallery {
  grid-column: 1;
  grid-row: 1;
  position: sticky;
  top: calc(var(--sw-header-h, 80px) + 1.5rem);
  align-self: start;
}

/* ── Summary column ────────────────────────────────────────────── */
.sw-single-product__summary {
  grid-column: 2;
  grid-row: 1;
}

/* ── Gallery image ─────────────────────────────────────────────── */
.woocommerce-product-gallery .flex-viewport {
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: var(--sw-shadow-md) !important;
  margin-bottom: .625rem !important;
  position: relative;
  cursor: zoom-in;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image img,
.woocommerce-product-gallery .slides li img {
  width: 100% !important;
  height: 420px !important;
  object-fit: cover !important;
  display: block !important;
}
/* Sale badge overlay on gallery */
.woocommerce-product-gallery {
  position: relative;
  overflow: hidden;
}
.woocommerce-product-gallery .onsale {
  position: absolute !important;
  top: 14px !important;
  left: 14px !important;
  z-index: 10 !important;
  background: var(--sw-accent) !important;
  color: #fff !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
  border-radius: 20px !important;
  border: none !important;
  margin: 0 !important;
  line-height: 1.4 !important;
  min-height: 0 !important;
  min-width: 0 !important;
}

/* Single image fallback */
.woocommerce-product-gallery .woocommerce-product-gallery__image:only-child {
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: var(--sw-shadow-md) !important;
  cursor: zoom-in;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image:only-child img {
  height: 420px !important;
  object-fit: cover !important;
  width: 100% !important;
  display: block !important;
}

/* ── Thumbnail strip ───────────────────────────────────────────── */
.woocommerce-product-gallery .flex-control-thumbs {
  display: flex !important;
  flex-direction: row !important;
  gap: .5rem !important;
  overflow-x: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  scrollbar-width: none;
}
.woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar { display: none; }
.woocommerce-product-gallery .flex-control-thumbs li {
  flex: 1 !important;
  min-width: 0 !important;
  max-width: calc(25% - .38rem) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  border: 2px solid transparent !important;
  transition: border-color .2s, box-shadow .2s !important;
  cursor: pointer !important;
  background: var(--sw-light) !important;
}
.woocommerce-product-gallery .flex-control-thumbs li:hover,
.woocommerce-product-gallery .flex-control-thumbs li.flex-active {
  border-color: var(--sw-accent) !important;
}
.woocommerce-product-gallery .flex-control-thumbs li img {
  width: 100% !important;
  height: 68px !important;
  object-fit: cover !important;
  display: block !important;
  cursor: pointer !important;
}

/* ── Product badges above title ────────────────────────────────── */
.sw-product-badge-row {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.sw-product-badge-row .sw-badge--sale {
  background: var(--sw-accent);
  color: #fff;
}
.sw-product-badge-row .sw-badge--low-stock {
  background: #fff3cd;
  color: #92610a;
  border: 1px solid #ffe49b;
}

/* Inject badge row via PHP hook — WC fires woocommerce_single_product_summary */

/* ── Product Title ──────────────────────────────────────────────── */
.woocommerce div.product .product_title,
.sw-single-product__summary .product_title {
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  color: var(--sw-primary) !important;
  margin-bottom: .5rem !important;
}

/* ── Star Rating ───────────────────────────────────────────────── */
.woocommerce div.product .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 12px;
}
.woocommerce div.product .star-rating {
  color: var(--sw-accent) !important;
  font-size: .85rem !important;
}
.woocommerce div.product .woocommerce-review-link {
  font-size: .78rem !important;
  color: var(--sw-muted) !important;
}

/* ── Price Box ─────────────────────────────────────────────────── */
.woocommerce div.product .price,
.sw-single-product__summary .price {
  background: var(--sw-accent-light) !important;
  border: 1px solid rgba(233,69,96,.12) !important;
  border-radius: 10px !important;
  padding: 10px 14px !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  font-family: var(--sw-font-heading) !important;
  margin-bottom: 12px !important;
  flex-wrap: wrap;
}
.woocommerce div.product .price ins,
.sw-single-product__summary .price ins {
  text-decoration: none !important;
  font-size: 1.6rem !important;
  font-weight: 800 !important;
  color: var(--sw-accent) !important;
}
.woocommerce div.product .price del,
.sw-single-product__summary .price del {
  font-size: .95rem !important;
  color: var(--sw-muted) !important;
  font-weight: 400 !important;
}
/* Single price (no sale) */
.woocommerce div.product .price > .woocommerce-Price-amount {
  font-size: 1.6rem !important;
  font-weight: 800 !important;
  color: var(--sw-accent) !important;
}

/* ── Short Description ──────────────────────────────────────────── */
.woocommerce div.product .woocommerce-product-details__short-description,
.sw-single-product__summary .woocommerce-product-details__short-description {
  font-size: .87rem !important;
  line-height: 1.8 !important;
  color: var(--sw-text-light) !important;
  margin-bottom: 14px !important;
}

/* ── Cart form / Quantity + ATC ────────────────────────────────── */
.woocommerce div.product form.cart {
  background: var(--sw-off-white) !important;
  border: 1px solid var(--sw-border) !important;
  border-radius: 10px !important;
  padding: 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: .625rem !important;
  margin-bottom: 10px !important;
  flex-wrap: wrap !important;
}

/* Quantity stepper pill */
.woocommerce div.product form.cart .sw-qty-wrap,
.woocommerce div.product form.cart .quantity {
  display: flex !important;
  align-items: stretch !important;
  height: 40px !important;
  border: 1.5px solid var(--sw-border) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: none !important;
  padding: 0 !important;
  gap: 0 !important;
  min-width: 0 !important;
  width: auto !important;
}
.woocommerce div.product form.cart .sw-qty-btn {
  width: 34px !important;
  height: 100% !important;
  background: var(--sw-light) !important;
  border: none !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  color: var(--sw-text) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  transition: background .2s, color .2s !important;
  padding: 0 !important;
}
.woocommerce div.product form.cart .sw-qty-btn:hover {
  background: var(--sw-accent) !important;
  color: #fff !important;
}
.woocommerce div.product form.cart .sw-qty-input,
.woocommerce div.product form.cart input.qty {
  width: 40px !important;
  text-align: center !important;
  border: none !important;
  border-left: 1px solid var(--sw-border) !important;
  border-right: 1px solid var(--sw-border) !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  font-size: .8rem !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--sw-text-dark) !important;
  height: 100% !important;
  -moz-appearance: textfield !important;
  appearance: textfield !important;
  box-shadow: none !important;
  outline: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.woocommerce div.product form.cart .sw-qty-input::-webkit-inner-spin-button,
.woocommerce div.product form.cart .sw-qty-input::-webkit-outer-spin-button,
.woocommerce div.product form.cart input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* Add to Cart button */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart button.single_add_to_cart_button {
  flex: 1 !important;
  height: 40px !important;
  min-width: 110px !important;
  background: var(--sw-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  font-family: var(--sw-font-heading) !important;
  font-weight: 700 !important;
  font-size: .8rem !important;
  letter-spacing: .02em !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  transition: background .2s, transform .15s, box-shadow .2s !important;
  box-shadow: none !important;
  padding: 0 1rem !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  transform: none !important;
  line-height: 1 !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
  background: var(--sw-accent) !important;
  color: #fff !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ── Delivery Estimate Bar ──────────────────────────────────────── */
.sw-delivery-estimate {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .8rem;
  color: var(--sw-text-light);
  padding: 9px 12px;
  background: #f0faf4;
  border: 1px solid #c3e6d0;
  border-radius: 8px;
  margin-bottom: 12px;
}
.sw-delivery-estimate__icon { color: var(--sw-success); flex-shrink: 0; display: flex; align-items: center; }
.sw-delivery-estimate__text strong { color: var(--sw-text); font-weight: 600; }

/* ── Product Meta (SKU / Category / Tags) ───────────────────────── */
.sw-product-meta,
.woocommerce div.product .product_meta {
  font-size: .78rem !important;
  color: var(--sw-text-light) !important;
  margin-bottom: 14px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}
.woocommerce div.product .product_meta > span { display: block; }
.woocommerce div.product .product_meta strong,
.woocommerce div.product .product_meta .sku_wrapper strong,
.woocommerce div.product .product_meta .posted_in strong,
.woocommerce div.product .product_meta .tagged_as strong {
  color: var(--sw-text) !important;
  font-weight: 600 !important;
}
.woocommerce div.product .product_meta a { color: var(--sw-accent) !important; }

/* ── Trust Signals Grid ─────────────────────────────────────────── */
.sw-single-product__trust {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  padding-top: 14px !important;
  border-top: 1px solid var(--sw-border) !important;
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}
.sw-trust-item {
  background: var(--sw-off-white) !important;
  border: 1px solid var(--sw-border) !important;
  border-radius: 8px !important;
  padding: 9px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 7px !important;
  flex-direction: row !important;
}
.sw-trust-icon {
  width: 28px;
  height: 28px;
  background: var(--sw-accent-light);
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sw-accent);
  flex-shrink: 0;
}
.sw-trust-copy strong {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  color: var(--sw-primary);
  line-height: 1.2;
  margin-bottom: 2px;
}
.sw-trust-copy span { font-size: .68rem; color: var(--sw-muted); }

/* ── Share Bar ─────────────────────────────────────────────────── */
.sw-share-bar {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sw-share-bar__label {
  font-size: .72rem;
  color: var(--sw-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.sw-share-btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--sw-off-white);
  border: 1px solid var(--sw-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sw-muted);
  cursor: pointer;
  text-decoration: none;
  transition: background var(--sw-transition), color var(--sw-transition), border-color var(--sw-transition);
}
.sw-share-btn:hover {
  background: var(--sw-accent);
  color: #fff;
  border-color: var(--sw-accent);
}

/* ── Tabs Section ───────────────────────────────────────────────── */
.sw-single-product__tabs {
  width: 100%;
  border-top: 1px solid var(--sw-border);
  padding-top: 2rem;
  margin-top: 1.5rem;
  clear: both;
}
.sw-single-product__tabs .woocommerce-tabs { width: 100%; }
.sw-single-product__tabs .woocommerce-tabs ul.tabs {
  display: flex !important;
  gap: 0 !important;
  border-bottom: 2px solid var(--sw-border) !important;
  padding: 0 !important;
  margin-bottom: 1.5rem !important;
  list-style: none !important;
}
.sw-single-product__tabs .woocommerce-tabs ul.tabs li {
  margin-bottom: -2px !important;
}
.sw-single-product__tabs .woocommerce-tabs ul.tabs li a {
  display: block !important;
  padding: .65rem 1.25rem !important;
  font-weight: 600 !important;
  font-size: .82rem !important;
  color: var(--sw-muted) !important;
  border-bottom: 2.5px solid transparent !important;
  transition: all .2s !important;
}
.sw-single-product__tabs .woocommerce-tabs ul.tabs li.active a,
.sw-single-product__tabs .woocommerce-tabs ul.tabs li a:hover {
  color: var(--sw-accent) !important;
  border-bottom-color: var(--sw-accent) !important;
}
.sw-single-product__tabs .woocommerce-tabs .panel {
  padding: 0 !important;
  font-size: .88rem !important;
  line-height: 1.8 !important;
  color: var(--sw-text-light) !important;
  max-width: 680px !important;
}

/* ── Related Products ───────────────────────────────────────────── */
.sw-single-product__related {
  border-top: 1px solid var(--sw-border);
  padding: 2.5rem 0 2rem;
  clear: both;
}
.sw-single-product__related .related.products { padding: 0; border-top: none; }
.woocommerce .related.products > h2,
.woocommerce-page .related.products > h2 {
  font-size: 1.3rem !important;
  font-weight: 800 !important;
  color: var(--sw-primary) !important;
  margin-bottom: 1.25rem !important;
  position: relative;
  display: inline-block;
}
.woocommerce .related.products > h2::after,
.woocommerce-page .related.products > h2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 30px;
  height: 3px;
  background: var(--sw-accent);
  border-radius: 2px;
}
.woocommerce .related.products ul.products,
.woocommerce-page .related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 1rem 0 0 !important;
  float: none !important;
  width: 100% !important;
}

/* Related product cards — compact */
.sw-single-product__related .sw-product-card {
  opacity: 1 !important;
  transform: none !important;
}
.sw-single-product__related .sw-product-card__image-wrap {
  height: 90px !important;
}
.sw-single-product__related .sw-product-card__image-wrap img {
  height: 90px !important;
}
.sw-single-product__related .sw-product-card__body,
.sw-single-product__related .sw-product-card__info {
  padding: 8px 10px 10px !important;
}
.sw-single-product__related .sw-product-card__title { font-size: .78rem !important; }
.sw-single-product__related .sw-product-card__price { font-size: .88rem !important; }
.sw-single-product__related .sw-product-card__footer .button { font-size: .72rem !important; padding: .3rem .6rem !important; }

/* ── Responsive Overrides ───────────────────────────────────────── */
@media (max-width: 900px) {
  .sw-single-product {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
  .sw-single-product__gallery { grid-column: 1 !important; grid-row: 1 !important; position: static !important; }
  .sw-single-product__summary { grid-column: 1 !important; grid-row: 2 !important; }
  .woocommerce-product-gallery .woocommerce-product-gallery__image img,
  .woocommerce-product-gallery .slides li img,
  .woocommerce-product-gallery .woocommerce-product-gallery__image:only-child img {
    height: 260px !important;
  }
  .woocommerce .related.products ul.products,
  .woocommerce-page .related.products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .sw-single-product__trust { grid-template-columns: 1fr !important; }
  .woocommerce div.product form.cart { flex-wrap: wrap !important; }
  .woocommerce div.product form.cart .single_add_to_cart_button,
  .woocommerce div.product form.cart button.single_add_to_cart_button {
    width: 100% !important;
    flex: none !important;
  }
  .woocommerce-product-gallery .woocommerce-product-gallery__image img,
  .woocommerce-product-gallery .slides li img {
    height: 200px !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   ShopWise — Single Product Page Redesign (Gutenberg-compatible)
   Matches the design reference screenshot
   ═══════════════════════════════════════════════════════════════════ */

/* ── Sale / Stock Badges row (above title) ───────────────────────── */
.sw-product-badges {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

/* Also alias the older class name for backward compat */
.sw-product-badge-row {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-bottom: 10px !important;
}

/* Base badge reset */
.sw-product-badges .sw-badge,
.sw-product-badge-row .sw-badge {
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 20px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}

/* SALE badge — red pill */
.sw-product-badges .sw-badge--sale,
.sw-product-badge-row .sw-badge--sale {
  background: var(--sw-accent) !important;
  color: #fff !important;
}

/* LOW STOCK badge — amber outlined */
.sw-product-badges .sw-badge--low-stock,
.sw-product-badge-row .sw-badge--low-stock {
  background: #fff3cd !important;
  color: #92610a !important;
  border: 1px solid #ffe49b !important;
}

/* Out of stock badge */
.sw-product-badges .sw-badge--oos {
  background: var(--sw-muted) !important;
  color: #fff !important;
}

/* ── Price block — sale price highlight ──────────────────────────── */
.sw-single-product__summary .price ins,
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
  text-decoration: none !important;
}

/* Wrap the price area in a tinted box when on sale */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  display: block;
  background: #fff5f5;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 1rem !important;
}

.woocommerce div.product p.price ins .woocommerce-Price-amount,
.woocommerce div.product span.price ins .woocommerce-Price-amount {
  color: var(--sw-accent) !important;
  font-size: 1.65rem !important;
  font-weight: 800 !important;
}

.woocommerce div.product p.price del .woocommerce-Price-amount,
.woocommerce div.product span.price del .woocommerce-Price-amount {
  color: var(--sw-muted) !important;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
}

/* Regular (non-sale) price */
.woocommerce div.product p.price > .woocommerce-Price-amount,
.woocommerce div.product span.price > .woocommerce-Price-amount {
  color: var(--sw-accent) !important;
  font-size: 1.65rem !important;
  font-weight: 800 !important;
}

/* ── Delivery estimate box ───────────────────────────────────────── */
.sw-delivery-estimate {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: .5rem !important;
  font-size: .88rem !important;
  background: #f0faf4 !important;
  border: 1px solid #b9e8c9 !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  margin: 0 0 1.25rem !important;
  color: var(--sw-text) !important;
  white-space: nowrap !important;
}

.sw-delivery-estimate__icon {
  color: #2e9e5b !important;
}

.sw-delivery-estimate__text strong {
  color: var(--sw-text-dark) !important;
  font-weight: 600 !important;
}

/* ── Product meta (SKU / Category / Tags) ────────────────────────── */
.woocommerce div.product .product_meta {
  font-size: .85rem;
  margin-bottom: 1.25rem !important;
  line-height: 2;
}

/* ── Trust Signals Grid ──────────────────────────────────────────── */
.sw-single-product__trust {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  padding-top: 14px !important;
  border-top: 1px solid var(--sw-border) !important;
  margin-top: 14px !important;
  margin-bottom: 0 !important;
}

.sw-trust-item {
  background: var(--sw-off-white, #f8f8f8) !important;
  border: 1px solid var(--sw-border) !important;
  border-radius: 8px !important;
  padding: 10px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  flex-direction: row !important;
}

.sw-trust-icon {
  width: 28px;
  height: 28px;
  background: #fff0f0;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sw-accent);
  flex-shrink: 0;
}

.sw-trust-copy {
  flex: 1;
}

.sw-trust-copy strong {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  color: var(--sw-primary);
  line-height: 1.3;
  margin-bottom: 1px;
}

.sw-trust-copy span {
  font-size: .67rem;
  color: var(--sw-muted, #999);
  line-height: 1.3;
}

/* ── Share Bar ───────────────────────────────────────────────────── */
.sw-share-bar {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 14px !important;
  margin-bottom: 0 !important;
}

.sw-share-bar__label {
  font-size: .72rem;
  color: var(--sw-muted, #999);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.sw-share-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--sw-off-white, #f8f8f8);
  border: 1px solid var(--sw-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sw-muted, #999);
  cursor: pointer;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}

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

/* ── Tabs: Description / Additional Info / Reviews ───────────────── */
.sw-single-product__tabs {
  border-top: 1px solid var(--sw-border) !important;
  padding-top: 2rem !important;
  margin-top: 2rem !important;
}

.sw-single-product__tabs .woocommerce-tabs ul.tabs {
  display: flex !important;
  border-bottom: 2px solid var(--sw-border) !important;
  padding: 0 !important;
  margin-bottom: 1.5rem !important;
  list-style: none !important;
  gap: 0 !important;
}

.sw-single-product__tabs .woocommerce-tabs ul.tabs li {
  margin-bottom: -2px !important;
}

.sw-single-product__tabs .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 10px 20px;
  font-size: .88rem;
  font-weight: 600;
  color: var(--sw-text-light, #888);
  border-bottom: 2px solid transparent;
  text-decoration: none;
  transition: color .2s, border-color .2s;
  white-space: nowrap;
}

.sw-single-product__tabs .woocommerce-tabs ul.tabs li.active a,
.sw-single-product__tabs .woocommerce-tabs ul.tabs li a:hover {
  color: var(--sw-accent) !important;
  border-bottom-color: var(--sw-accent) !important;
}

.sw-single-product__tabs .woocommerce-tabs .panel {
  padding: 0 !important;
  font-size: .93rem;
  line-height: 1.8;
  color: var(--sw-text-light);
}

/* ── Related Products — "You May Also Like" ──────────────────────── */
.sw-single-product__related {
  margin-top: 3rem;
  padding-top: 0;
}

.sw-single-product__related .related.products > h2 {
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  color: var(--sw-primary) !important;
  margin-bottom: 1.5rem !important;
  position: relative;
  padding-bottom: .6rem;
}

.sw-single-product__related .related.products > h2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 3px;
  background: var(--sw-accent);
  border-radius: 2px;
}

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .sw-single-product__trust {
    grid-template-columns: 1fr !important;
  }

  .sw-product-badges {
    flex-wrap: wrap;
  }
}
