/* ══════════════════════════════════════════
   WOODMAN THEME — WooCommerce Styles
   Matches design tokens from main.css
   Mobile-first, breakpoint 768px
   ══════════════════════════════════════════ */

/* ── WooCommerce Notices / Messages ── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.wc-block-components-notice-banner {
  font-family: var(--f);
  font-size: 14px;
  padding: 14px 18px;
  border-radius: var(--rs);
  margin-bottom: 16px;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 10px;
}

.woocommerce-message {
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}

.woocommerce-info {
  background: #eff6ff;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.woocommerce-error {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
  list-style: none;
}

.woocommerce-message a,
.woocommerce-info a {
  color: var(--c);
  font-weight: 600;
  text-decoration: underline;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
  display: none;
}

/* ── Breadcrumbs ── */
.wc-breadcrumb,
.woocommerce-breadcrumb {
  padding: 12px 0;
  font-size: 12px;
  color: var(--g5);
}

.woocommerce-breadcrumb a {
  color: var(--g5);
  transition: color .15s;
}

.woocommerce-breadcrumb a:hover {
  color: var(--c);
}

.woocommerce-breadcrumb .breadcrumb-separator,
.woocommerce-breadcrumb > span:not(:last-child)::after {
  margin: 0 6px;
  color: var(--g3);
}


/* ══════════════════════════════════════════
   SHOP / CATEGORY PAGE (archive-product)
   ══════════════════════════════════════════ */

/* Category Hero Banner */
.cat-hero {
  position: relative;
  width: 100%;
  max-height: 240px;
  overflow: hidden;
  background: var(--g1);
}

.cat-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cat-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 60%);
  display: flex;
  align-items: flex-end;
}

.cat-hero-overlay .wrap {
  padding-bottom: 24px;
}

.cat-hero-title {
  color: #fff;
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 4px;
}

.cat-hero-desc {
  color: rgba(255,255,255,.7);
  font-size: 13px;
  line-height: 1.5;
}

/* Shop Page Title */
.shop-page-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--g9);
  margin-bottom: 8px;
}

/* Sort Bar */
.shop-sort-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--g2);
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.shop-result-count {
  font-size: 13px;
  color: var(--g5);
}

.shop-result-count p {
  margin: 0;
}

.shop-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  background: var(--w);
  cursor: pointer;
  transition: .15s;
}

.shop-filter-toggle:hover {
  border-color: var(--c);
  color: var(--c);
}

.shop-ordering select,
.shop-ordering .woocommerce-ordering select {
  font-family: var(--f);
  font-size: 13px;
  padding: 8px 32px 8px 12px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  background: var(--w);
  color: var(--g8);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23999' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}

.shop-ordering select:focus {
  outline: none;
  border-color: var(--c);
}

/* Shop Layout: Sidebar + Products */
.shop-layout {
  display: flex;
  gap: 0;
}

/* Sidebar */
.shop-sidebar {
  display: none;
}

.shop-sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--g2);
}

.shop-sidebar-header h3 {
  font-size: 18px;
  font-weight: 700;
}

.shop-sidebar-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  cursor: pointer;
}

.shop-sidebar .widget {
  margin-bottom: 24px;
}

.shop-sidebar .widget-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--g8);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--g1);
}

.shop-sidebar .widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.shop-sidebar .widget ul li {
  padding: 6px 0;
  font-size: 13px;
  color: var(--g6);
}

.shop-sidebar .widget ul li a {
  color: var(--g6);
  transition: color .15s;
}

.shop-sidebar .widget ul li a:hover {
  color: var(--c);
}

.shop-sidebar-overlay {
  display: none;
}

/* Products column */
.shop-products {
  flex: 1;
  min-width: 0;
}

/* Shop grid: 2 cols on mobile */
.shop-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

/* Mobile: Sidebar as bottom sheet */
.shop-sidebar.open {
  display: block;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 201;
  background: var(--w);
  border-radius: 20px 20px 0 0;
  padding: 20px;
  max-height: 80vh;
  overflow-y: auto;
  animation: slideUp .3s ease;
  box-shadow: 0 -8px 40px rgba(0,0,0,.15);
}

.shop-sidebar-overlay.open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(0,0,0,.5);
}

@keyframes slideUp {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

/* WooCommerce Pagination */
.woocommerce-pagination {
  padding: 24px 0;
  text-align: center;
}

.woocommerce-pagination ul {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-pagination ul li {
  display: inline-block;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border-radius: var(--rs);
  font-size: 14px;
  font-weight: 600;
  color: var(--g6);
  border: 1px solid var(--g2);
  transition: .15s;
}

.woocommerce-pagination ul li a:hover {
  border-color: var(--c);
  color: var(--c);
}

.woocommerce-pagination ul li span.current {
  background: var(--c);
  color: #fff;
  border-color: var(--c);
}


/* ══════════════════════════════════════════
   SINGLE PRODUCT PAGE
   ══════════════════════════════════════════ */

.sp-main {
  padding-bottom: 40px;
  padding-top: 8px;
}

.sp-wrap {
  padding: 0;
}

.sp-breadcrumb {
  padding: 12px 0 8px;
}

/* Top Section: Gallery + Info */
.sp-top {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* ── Image Gallery ── */
.sp-gallery {
  position: relative;
}

.sp-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  font-size: 11px;
}

.sp-main-img {
  display: none; /* Hidden on mobile, shown on desktop */
  background: var(--g1);
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 1;
}

.sp-main-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Desktop Thumbnail Strip */
.sp-thumbs {
  display: none; /* Hidden on mobile */
  gap: 8px;
  margin-top: 12px;
  overflow-x: auto;
  scrollbar-width: none;
}

.sp-thumbs::-webkit-scrollbar { display: none; }

.sp-thumb {
  width: 72px;
  height: 72px;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid var(--g2);
  cursor: pointer;
  flex-shrink: 0;
  transition: .15s;
  background: var(--g1);
  padding: 0;
}

.sp-thumb:hover {
  border-color: var(--g4);
}

.sp-thumb.active {
  border-color: var(--c);
}

.sp-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Mobile Gallery: Horizontal Scroll with Dots */
.sp-mobile-gallery {
  position: relative;
}

.sp-mobile-scroll {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border-radius: var(--r);
  background: var(--g1);
}

.sp-mobile-scroll::-webkit-scrollbar { display: none; }

.sp-mobile-slide {
  min-width: 100%;
  scroll-snap-align: center;
  aspect-ratio: 1;
}

.sp-mobile-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sp-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  padding: 12px 0 4px;
}

.sp-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--g3);
  transition: .2s;
  cursor: pointer;
}

.sp-dot.active {
  background: var(--c);
  width: 20px;
  border-radius: 4px;
}

/* ── Product Info Column ── */
.sp-info {
  padding: 0;
}

.sp-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--g9);
  line-height: 1.25;
  margin-bottom: 8px;
}

/* Rating */
.sp-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.sp-rating-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--gn);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 6px;
}

.sp-review-link {
  font-size: 13px;
  color: var(--bl);
  text-decoration: underline;
  font-weight: 500;
}

.sp-review-link:hover {
  color: var(--c);
}

/* Price Box */
.sp-price-box {
  background: var(--g0);
  border-radius: var(--r);
  padding: 16px;
  margin-bottom: 16px;
}

.sp-price-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.sp-price-now {
  font-size: 28px;
  font-weight: 900;
  color: var(--g9);
}

.sp-price-now .woocommerce-Price-amount {
  font-size: inherit;
  font-weight: inherit;
}

.sp-price-was {
  font-size: 14px;
  color: var(--g4);
  text-decoration: line-through;
}

.sp-price-off {
  font-size: 13px;
  font-weight: 700;
  color: var(--gn);
  background: #dcfce7;
  padding: 2px 8px;
  border-radius: 4px;
}

.sp-savings {
  font-size: 13px;
  color: var(--gn);
  font-weight: 600;
  margin-bottom: 4px;
}

.sp-tax-note {
  font-size: 11px;
  color: var(--g4);
}

/* Section Label */
.sp-section-label {
  font-size: 14px;
  font-weight: 700;
  color: var(--g8);
  margin-bottom: 10px;
  display: block;
}

/* Highlights */
.sp-highlights {
  margin-bottom: 16px;
}

.sp-highlights-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-highlights-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 5px 0;
  font-size: 13px;
  color: var(--g6);
  line-height: 1.5;
}

.sp-highlights-list li svg {
  flex-shrink: 0;
  margin-top: 2px;
}

/* Car Input */
.sp-car-input {
  margin-bottom: 16px;
}

.sp-input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  font-family: var(--f);
  color: var(--g9);
  background: var(--w);
  transition: .15s;
}

.sp-input:focus {
  outline: none;
  border-color: var(--c);
  box-shadow: 0 0 0 3px var(--cg);
}

.sp-input::placeholder {
  color: var(--g4);
}

/* Add-ons */
.sp-addons {
  margin-bottom: 16px;
}

.sp-addons-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sp-addon-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  cursor: pointer;
  transition: .15s;
}

.sp-addon-item:hover {
  border-color: var(--c);
  background: var(--cl);
}

.sp-addon-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--c);
  flex-shrink: 0;
}

.sp-addon-info {
  display: flex;
  justify-content: space-between;
  flex: 1;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.sp-addon-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
}

.sp-addon-price {
  font-size: 13px;
  font-weight: 700;
  color: var(--g6);
  flex-shrink: 0;
  white-space: nowrap;
}

.sp-addon-free {
  color: var(--gn);
}

.sp-addon-group {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.sp-addon-desc {
  margin: 0;
  padding: 0 14px 0 42px;
  font-size: 12px;
  color: var(--rd, #d63031);
  line-height: 1.5;
}

/* Actions: Add to Cart + Buy Now */
.sp-actions {
  margin: 20px 0 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sp-actions .single_add_to_cart_button {
  width: 100%;
  background: var(--c);
  color: #fff;
  padding: 14px 24px;
  border-radius: var(--rs);
  font-weight: 700;
  font-size: 15px;
  border: none;
  cursor: pointer;
  transition: .15s;
  font-family: var(--f);
}

.sp-actions .single_add_to_cart_button:hover {
  background: var(--cd);
}

.sp-buy-now {
  width: 100%;
  justify-content: center;
  padding: 14px 24px;
  font-size: 15px;
  border-radius: var(--rs);
  background: var(--c);
  color: #fff;
  font-weight: 700;
  font-family: var(--f);
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 4px 20px rgba(255,106,13,.3);
  transition: .15s;
}
.sp-buy-now:hover {
  background: var(--cd);
}
.sp-buy-now:active {
  transform: scale(.96);
}
.sp-buy-now.loading {
  opacity: .6;
  pointer-events: none;
}

/* GoKwik injects its own Buy now into form.cart — the theme already has one */
.sp-actions .gk-buy-now-btn,
form.cart .gk-buy-now-btn {
  display: none !important;
}

/* Quantity input within add-to-cart form */
.sp-actions .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  overflow: hidden;
  margin-bottom: 10px;
}

.sp-actions .quantity .qty-btn {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--g6);
  background: var(--g0);
  border: none;
  cursor: pointer;
  transition: .15s;
}

.sp-actions .quantity .qty-btn:hover {
  color: var(--c);
  background: var(--cl);
}

.sp-actions .quantity input.qty {
  width: 50px;
  text-align: center;
  border: none;
  font-size: 15px;
  font-weight: 600;
  font-family: var(--f);
  color: var(--g9);
  -moz-appearance: textfield;
}

.sp-actions .quantity input.qty::-webkit-inner-spin-button,
.sp-actions .quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* WooCommerce Variation Selectors (Car Make, Car Model, etc.) */
.sp-info .variations {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 16px;
}
.sp-info .variations tr {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.sp-info .variations td.label {
  white-space: nowrap;
  font-weight: 600;
  font-size: 14px;
  color: var(--g8);
  padding: 0;
  min-width: fit-content;
}
.sp-info .variations td.label label {
  white-space: nowrap;
}
.sp-info .variations td.value {
  flex: 1;
  padding: 0;
}
.sp-info .variations td.value select {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  background: var(--w);
  color: var(--g8);
}
.sp-info .variations td.value select:focus {
  border-color: var(--c);
  outline: none;
}
.sp-info .variations .reset_variations {
  display: none;
}

/* Promise Grid */
.sp-promise-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 20px;
}

.sp-promise-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  background: var(--g0);
  border-radius: var(--rs);
}

.sp-promise-item svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.sp-promise-item strong {
  font-size: 11px;
  color: var(--g8);
  display: block;
  line-height: 1.3;
}

.sp-promise-item span {
  font-size: 9px;
  color: var(--g5);
}

/* ── Below Fold Sections ── */
.sp-below {
  margin-top: 32px;
}

.sp-section {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--g1);
}

.sp-section:last-child {
  border-bottom: none;
}

.sp-section-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--g9);
  margin-bottom: 16px;
}

/* Full-width product description (Elementor-edited products) */
.sp-description-fullwidth {
  width: 100%;
  padding: 0;
  margin-bottom: 32px;
  border-bottom: 1px solid var(--g1);
  padding-bottom: 24px;
}
.sp-description-fullwidth .sp-section-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--g9);
  margin-bottom: 16px;
}
.sp-description-fullwidth .elementor-section.elementor-section-boxed > .elementor-container { max-width: 1280px; }
.sp-description-fullwidth .elementor-section.elementor-section-full_width > .elementor-container { max-width: 100%; }
/* New Elementor containers (flexbox containers) — make them full-width by default */
.sp-description-fullwidth .e-con-boxed {
  --content-width: 100%;
  max-width: 100%;
}
.sp-description-fullwidth .e-con-boxed > .e-con-inner {
  max-width: 100%;
}
.sp-description-fullwidth .elementor-widget {
  max-width: 100%;
}
/* Hide resumed wrappers — they just re-open the HTML structure */
.sp-wrap-resumed { padding: 0; }
.sp-below-resumed { margin-top: 0; }

/* Product Description — handles migrated HTML from live site */
.sp-description {
  font-size: 14px;
  line-height: 1.7;
  color: var(--g6);
  overflow: hidden;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* pd-section fills the description container (no viewport breakout) */
.sp-description .pd-section {
  width: auto;
  max-width: 100%;
  border-radius: 12px;
  overflow: hidden;
}

.sp-description p {
  margin-bottom: 12px;
}

.sp-description img {
  border-radius: var(--rs);
  margin: 12px 0;
  max-width: 100%;
  height: auto;
}

.sp-description ul,
.sp-description ol {
  padding-left: 20px;
  margin-bottom: 12px;
  list-style: disc;
}

.sp-description ol {
  list-style: decimal;
}

.sp-description li {
  margin-bottom: 4px;
  list-style: inherit;
}

/* Headings in description */
.sp-description h1,
.sp-description h2,
.sp-description h3,
.sp-description h4,
.sp-description h5,
.sp-description h6 {
  color: var(--g9);
  font-weight: 700;
  line-height: 1.3;
  margin: 20px 0 10px;
}

.sp-description h1 { font-size: 24px; }
.sp-description h2 { font-size: 20px; }
.sp-description h3 { font-size: 18px; }
.sp-description h4 { font-size: 16px; }
.sp-description h5 { font-size: 14px; font-weight: 600; }

.sp-description h2:first-child,
.sp-description h3:first-child {
  margin-top: 0;
}

/* Tables in description (migrated from TablePress/WPBakery) */
.sp-description table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin: 16px 0;
  border: 1px solid var(--g2);
}

.sp-description table th,
.sp-description table td {
  padding: 10px 14px;
  text-align: left;
  border: 1px solid var(--g2);
  vertical-align: top;
}

.sp-description table th {
  background: var(--g0);
  font-weight: 600;
  color: var(--g8);
}

.sp-description table tr:nth-child(even) {
  background: var(--g0);
}

/* Blockquotes */
.sp-description blockquote {
  border-left: 3px solid var(--c);
  padding: 12px 16px;
  margin: 16px 0;
  background: var(--cl);
  border-radius: 0 var(--rs) var(--rs) 0;
  font-style: italic;
}

/* Strong / emphasis */
.sp-description strong,
.sp-description b {
  color: var(--g8);
  font-weight: 600;
}

/* Links in description */
.sp-description a {
  color: var(--c);
  text-decoration: underline;
}

.sp-description a:hover {
  color: var(--cd);
}

/* iframes (YouTube embeds etc.) */
.sp-description iframe {
  max-width: 100%;
  border-radius: var(--rs);
  margin: 16px 0;
}

/* Remaining WPBakery divs that weren't fully stripped */
.sp-description div {
  max-width: 100%;
}

/* Horizontal rules */
.sp-description hr {
  border: none;
  border-top: 1px solid var(--g2);
  margin: 20px 0;
}
/* -- WPBakery layout grid (inside description only) --
   When WPBakery (js_composer) is active it renders .vc_row / .vc_col-sm-*
   markup. These minimal rules give the content a proper grid without
   loading the full 300 KB WPBakery stylesheet. Scoped to .sp-description
   so it only affects the product description tab content. */
.sp-description .vc_row,
.sp-description .vc_row-fluid {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px;
  max-width: 100%;
}
.sp-description .vc_column_container {
  padding: 0 15px;
  box-sizing: border-box;
}
.sp-description .vc_column-inner {
  width: 100%;
}
/* Column widths -- mobile-first: stack, then grid at 768px+ */
.sp-description [class*="vc_col-sm-"] {
  flex: 0 0 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.sp-description [class*="vc_custom_"] {
  box-sizing: border-box;
}
.sp-description .vc_row[data-vc-full-width="true"] {
  max-width: 100%;
  overflow: hidden;
}
.sp-description .wpb_single_image img {
  max-width: 100%;
  height: auto;
  border-radius: var(--rs);
}
.sp-description .wpb_text_column {
  margin-bottom: 16px;
}
.sp-description .vc_empty_space {
  height: 20px;
}

/* Narrow WPBakery columns — prevent word-break on headings */
.sp-description .vc_col-sm-2 h3,
.sp-description .vc_col-sm-2 h4,
.sp-description .vc_col-sm-2 h5,
.sp-description .vc_col-sm-2 h6,
.sp-description .vc_col-sm-3 h3,
.sp-description .vc_col-sm-3 h4 {
  font-size: clamp(0.75rem, 1.2vw, 1rem);
  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
  line-height: 1.3;
}
.sp-description .vc_col-sm-2 p,
.sp-description .vc_col-sm-3 p {
  font-size: clamp(0.7rem, 1vw, 0.85rem);
}
.sp-description .vc_row[data-vc-stretch-content="true"] {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0;
  padding-right: 0;
}

/* ── Feature Gallery (replaces WPBakery description) ── */
.sp-feature-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.sp-fg-item {
  box-sizing: border-box;
  border-radius: var(--rl);
  overflow: hidden;
  background: var(--g0);
}

/* Mobile: all items full-width */
.sp-fg-full,
.sp-fg-half {
  width: 100%;
}

.sp-fg-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--rl);
}

.sp-fg-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--tx);
  margin: 12px 0 4px;
  padding: 0 4px;
  line-height: 1.4;
}

/* Desktop: half-width items side by side */
@media (min-width: 768px) {
  .sp-feature-gallery {
    gap: 20px;
  }

  .sp-fg-half {
    width: calc(50% - 10px);
  }

  .sp-fg-full {
    width: 100%;
  }

  .sp-fg-title {
    font-size: 16px;
  }
}

/* ── In The Box ── */
.sp-itb-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.sp-itb-item {
  background: var(--g0);
  border: 1px solid var(--g1);
  border-radius: var(--rl);
  padding: 16px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.sp-itb-img {
  width: 80px;
  height: 80px;
  object-fit: contain;
  border-radius: var(--rs);
}

.sp-itb-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--tx);
  line-height: 1.3;
}

@media (min-width: 768px) {
  .sp-itb-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }

  .sp-itb-img {
    width: 100px;
    height: 100px;
  }

  .sp-itb-label {
    font-size: 14px;
  }
}

@media (min-width: 1024px) {
  .sp-itb-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* Specifications Table */
.sp-specs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.sp-specs-table tr {
  border-bottom: 1px solid var(--g1);
}

.sp-specs-table tr:last-child {
  border-bottom: none;
}

.sp-specs-table th {
  text-align: left;
  padding: 12px 16px 12px 0;
  font-weight: 600;
  color: var(--g5);
  width: 40%;
  vertical-align: top;
}

.sp-specs-table td {
  padding: 12px 0;
  color: var(--g8);
  font-weight: 500;
}

/* FAQ Accordion */
.sp-faq-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.sp-faq-item {
  border-bottom: 1px solid var(--g1);
}

.sp-faq-item:last-child {
  border-bottom: none;
}

.sp-faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--g8);
  cursor: pointer;
  background: none;
  border: none;
  text-align: left;
  font-family: var(--f);
  gap: 12px;
}

.sp-faq-q:hover {
  color: var(--c);
}

.sp-faq-icon {
  flex-shrink: 0;
  transition: transform .2s;
}

.sp-faq-q[aria-expanded="true"] .sp-faq-icon {
  transform: rotate(180deg);
}

.sp-faq-a {
  display: none;
  padding: 0 0 14px;
}

.sp-faq-a.open {
  display: block;
}

.sp-faq-a p {
  font-size: 13px;
  color: var(--g6);
  line-height: 1.6;
  margin: 0;
}

/* Countdown Timer */
.woodman-countdown {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: #fef3c7;
  border: 1px solid #fbbf24;
  border-radius: var(--rs);
  margin-bottom: 16px;
  font-size: 13px;
  font-weight: 600;
  color: #92400e;
}

.woodman-countdown svg {
  flex-shrink: 0;
}

/* Social Proof */
.woodman-social-proof {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--cl);
  border-radius: var(--rs);
  margin-bottom: 16px;
  font-size: 13px;
  color: var(--cd);
  font-weight: 600;
}


/* ══════════════════════════════════════════
   CART PAGE
   ══════════════════════════════════════════ */

/* Free Delivery Banner */
.cart-free-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #fef3c7;
  border: 1px solid #fbbf24;
  border-radius: var(--rs);
  margin-bottom: 20px;
  font-size: 13px;
  font-weight: 600;
  color: #92400e;
}

.cart-free-banner--success {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #065f46;
}

/* Cart Layout */
.cart-layout {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Cart Items */
.cart-items-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cart-item {
  display: flex;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--g2);
  border-radius: var(--r);
  background: var(--w);
}

.cart-item-img {
  width: 90px;
  height: 90px;
  flex-shrink: 0;
  border-radius: var(--rs);
  overflow: hidden;
  background: var(--g1);
}

.cart-item-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cart-item-details {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.cart-item-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}

.cart-item-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--g8);
  line-height: 1.3;
  margin-bottom: 4px;
}

.cart-item-name a {
  color: inherit;
}

.cart-item-name a:hover {
  color: var(--c);
}

.cart-item-price {
  font-size: 13px;
  color: var(--g5);
  margin-top: 4px;
}

.cart-item-remove {
  color: var(--g4);
  transition: color .15s;
  flex-shrink: 0;
  padding: 4px;
}

.cart-item-remove:hover {
  color: var(--rd);
}

.cart-item-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
}

.cart-item-subtotal {
  font-size: 16px;
  font-weight: 800;
  color: var(--g9);
}

/* Cart price breakdown (product + addons) */
.woodman-cart-breakdown {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  font-weight: 500;
  color: var(--g6);
  text-align: right;
}
.woodman-cart-breakdown .wcb-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.woodman-cart-breakdown .wcb-label {
  font-weight: 500;
}
.woodman-cart-breakdown .wcb-amount {
  font-weight: 600;
  white-space: nowrap;
}
.woodman-cart-breakdown .wcb-total {
  margin-top: 4px;
  padding-top: 6px;
  border-top: 1px dashed var(--g2);
  font-size: 15px;
  font-weight: 800;
  color: var(--g9);
}
.woodman-cart-breakdown .wcb-total .wcb-amount {
  font-weight: 800;
}

/* Quantity Controls in Cart */
.cart-item-qty .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  overflow: hidden;
}

.qty-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: var(--g6);
  background: var(--g0);
  border: none;
  cursor: pointer;
  transition: .15s;
}

.qty-btn:hover {
  color: var(--c);
  background: var(--cl);
}

input.qty,
input[type="number"].qty {
  width: 44px;
  text-align: center;
  border: none;
  font-size: 14px;
  font-weight: 600;
  font-family: var(--f);
  color: var(--g9);
  background: var(--w);
  -moz-appearance: textfield;
}

input.qty::-webkit-inner-spin-button,
input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Cart Variation Data */
.cart-item .variation {
  list-style: none;
  padding: 0;
  margin: 4px 0 0;
}

.cart-item .variation dt,
.cart-item .variation dd {
  display: inline;
  font-size: 12px;
  color: var(--g5);
}

.cart-item .variation dd p {
  display: inline;
  margin: 0;
}

/* Coupon + Update bar */
.cart-actions-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--g1);
  margin-top: 16px;
  align-items: center;
}

.cart-coupon {
  display: flex;
  gap: 8px;
  flex: 1;
  min-width: 200px;
}

.cart-coupon .sp-input {
  flex: 1;
  max-width: 240px;
}

.cart-apply-coupon {
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  background: var(--w);
  color: var(--g8);
  cursor: pointer;
  white-space: nowrap;
  transition: .15s;
  font-family: var(--f);
}

.cart-apply-coupon:hover {
  border-color: var(--c);
  color: var(--c);
}

.cart-update {
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  background: var(--w);
  color: var(--g8);
  cursor: pointer;
  white-space: nowrap;
  transition: .15s;
  font-family: var(--f);
}

.cart-update:hover {
  border-color: var(--c);
  color: var(--c);
}

/* Order Summary */
.cart-summary {
  background: var(--g0);
  border-radius: var(--r);
  padding: 24px;
}

.cart-summary-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--g9);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--g2);
}

.cart-summary-rows {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 20px;
}

.cart-summary-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: var(--g6);
}

.cart-summary-total {
  padding-top: 12px;
  border-top: 1px solid var(--g2);
  font-size: 18px;
  font-weight: 800;
  color: var(--g9);
}

.cart-summary-discount span:last-child {
  color: var(--gn);
  font-weight: 600;
}

.cart-free-tag {
  color: var(--gn);
  font-weight: 700;
  font-size: 13px;
}

.cart-checkout-btn {
  width: 100%;
  justify-content: center;
  padding: 14px 24px;
  font-size: 15px;
}

/* Trust Strip */
.cart-trust-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--g2);
  justify-content: center;
}

.cart-trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: var(--g5);
  font-weight: 500;
}

/* Cart Cross-sells */
.cart-cross-sells {
  margin-top: 40px;
}

.cart-cross-sells__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--g9);
  margin-bottom: 20px;
}

.cart-cross-sells .shop-grid {
  display: grid;
}


/* ══════════════════════════════════════════
   MINI CART
   ══════════════════════════════════════════ */

.mini-cart-items {
  list-style: none;
  padding: 0;
  margin: 0;
  max-height: 320px;
  overflow-y: auto;
}

.mini-cart-item {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--g1);
  position: relative;
}

.mini-cart-item:last-child {
  border-bottom: none;
}

.mini-cart-item-img {
  width: 60px;
  height: 60px;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  background: var(--g1);
}

.mini-cart-item-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.mini-cart-item-info {
  flex: 1;
  min-width: 0;
}

.mini-cart-item-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
  line-height: 1.3;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.mini-cart-item-name a {
  color: inherit;
}

.mini-cart-item-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}

.mini-cart-qty {
  color: var(--g5);
}

.mini-cart-price {
  font-weight: 700;
  color: var(--g9);
}

.mini-cart-remove {
  position: absolute;
  top: 12px;
  right: 0;
  font-size: 18px;
  color: var(--g4);
  text-decoration: none;
  line-height: 1;
  transition: color .15s;
}

.mini-cart-remove:hover {
  color: var(--rd);
}

/* Mini Cart Total */
.mini-cart-total {
  display: flex;
  justify-content: space-between;
  padding: 14px 0;
  border-top: 1px solid var(--g2);
  font-size: 15px;
  color: var(--g8);
}

.mini-cart-total strong {
  font-weight: 800;
}

/* Mini Cart Buttons */
.mini-cart-buttons {
  display: flex;
  gap: 10px;
  padding-top: 4px;
}

.mini-cart-view {
  flex: 1;
  text-align: center;
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  color: var(--g8);
  transition: .15s;
}

.mini-cart-view:hover {
  border-color: var(--c);
  color: var(--c);
}

.mini-cart-checkout {
  flex: 1;
  text-align: center;
  justify-content: center;
  padding: 10px 16px;
  font-size: 13px;
}

/* Mini Cart Empty */
.mini-cart-empty {
  text-align: center;
  padding: 32px 16px;
}

.mini-cart-empty p {
  font-size: 14px;
  color: var(--g5);
  margin: 12px 0 16px;
}

.mini-cart-shop {
  display: inline-flex;
  padding: 10px 20px;
  font-size: 13px;
}


/* ══════════════════════════════════════════
   CHECKOUT PAGE
   ══════════════════════════════════════════ */

/* Progress Steps */
.checkout-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 20px 0 28px;
}

.checkout-step {
  display: flex;
  align-items: center;
  gap: 8px;
}

.checkout-step-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  background: var(--g1);
  color: var(--g5);
  border: 2px solid var(--g2);
}

.checkout-step--active .checkout-step-num {
  background: var(--c);
  color: #fff;
  border-color: var(--c);
}

.checkout-step--done .checkout-step-num {
  background: var(--gn);
  color: #fff;
  border-color: var(--gn);
}

.checkout-step-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--g5);
}

.checkout-step--active .checkout-step-label {
  color: var(--g9);
}

.checkout-step--done .checkout-step-label {
  color: var(--gn);
}

.checkout-step-line {
  width: 40px;
  height: 2px;
  background: var(--g2);
  margin: 0 8px;
}

.checkout-step-line--done {
  background: var(--gn);
}

/* Checkout Layout */
.checkout-layout {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Checkout Sections */
.checkout-section {
  margin-bottom: 24px;
}

.checkout-section-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--g9);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--g1);
}

/* Form Fields */
.woocommerce-checkout .form-row {
  margin-bottom: 14px;
  width: 100%;
  float: none;
}

/* Side-by-side fields on desktop */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0 14px;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  flex: 1 1 calc(50% - 7px);
  min-width: 0;
}

/* Stack on mobile */
@media (max-width: 767px) {
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    flex: 1 1 100%;
  }
}

.woocommerce-checkout .form-row label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
  margin-bottom: 5px;
}

.woocommerce-checkout .form-row label .required {
  color: var(--rd);
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row .select2-container .select2-selection {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  font-family: var(--f);
  color: var(--g9);
  background: var(--w);
  transition: .15s;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
  outline: none;
  border-color: var(--c);
  box-shadow: 0 0 0 3px var(--cg);
}

.woocommerce-checkout .form-row .select2-container .select2-selection {
  height: auto;
  min-height: 44px;
}

.woocommerce-checkout .form-row .select2-container .select2-selection__rendered {
  line-height: 20px;
  padding: 0;
}

.woocommerce-checkout .form-row .select2-container .select2-selection__arrow {
  height: 100%;
}

/* Checkout Summary */
.checkout-summary {
  background: var(--g0);
  border-radius: var(--r);
  padding: 24px;
}

.checkout-summary-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--g9);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--g2);
}

/* Order Review Table */
.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.woocommerce-checkout-review-order-table thead th {
  text-align: left;
  padding: 8px 0;
  font-weight: 600;
  color: var(--g5);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .3px;
  border-bottom: 1px solid var(--g2);
}

.woocommerce-checkout-review-order-table tbody td {
  padding: 10px 0;
  color: var(--g8);
  border-bottom: 1px solid var(--g1);
}

.woocommerce-checkout-review-order-table .product-name {
  font-weight: 600;
}

.woocommerce-checkout-review-order-table .product-total {
  text-align: right;
  font-weight: 700;
}

.woocommerce-checkout-review-order-table tfoot th {
  text-align: left;
  padding: 10px 0;
  font-weight: 600;
  color: var(--g6);
}

.woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
  padding: 10px 0;
  font-weight: 700;
}

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
  font-size: 18px;
  font-weight: 800;
  color: var(--g9);
  padding-top: 14px;
  border-top: 1px solid var(--g2);
}

/* Payment Methods */
.wc_payment_methods {
  list-style: none;
  padding: 0;
  margin: 0;
}

.wc_payment_method {
  margin-bottom: 10px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  padding: 14px;
  transition: .15s;
}

.wc_payment_method:has(input:checked) {
  border-color: var(--c);
  background: var(--cl);
}

.wc_payment_method label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: var(--g8);
}

.wc_payment_method input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--c);
}

.payment_box {
  padding: 12px 0 0 28px;
  font-size: 13px;
  color: var(--g5);
  line-height: 1.5;
}

/* Place Order Button */
#place_order {
  width: 100%;
  background: var(--c);
  color: #fff;
  padding: 16px 24px;
  border-radius: var(--rs);
  font-weight: 700;
  font-size: 16px;
  border: none;
  cursor: pointer;
  transition: .15s;
  font-family: var(--f);
  margin-top: 16px;
  box-shadow: 0 4px 20px rgba(255,106,13,.3);
}

#place_order:hover {
  background: var(--cd);
}

.woocommerce-terms-and-conditions-wrapper {
  margin-top: 12px;
  font-size: 12px;
  color: var(--g5);
}

.woocommerce-terms-and-conditions-wrapper a {
  color: var(--c);
  text-decoration: underline;
}


/* ══════════════════════════════════════════
   MY ACCOUNT PAGE
   ══════════════════════════════════════════ */

/* Profile Banner */
.account-banner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  background: linear-gradient(135deg, var(--c), #ff8c42);
  border-radius: var(--r);
  margin-bottom: 20px;
  color: #fff;
}

.account-avatar img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,.3);
  object-fit: cover;
}

.account-name {
  font-size: 20px;
  font-weight: 800;
  margin-bottom: 2px;
}

.account-email {
  font-size: 13px;
  opacity: .8;
}

/* Quick Stats */
.account-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

.account-stat {
  background: var(--g0);
  border-radius: var(--rs);
  padding: 16px;
  text-align: center;
}

.account-stat-num {
  font-size: 24px;
  font-weight: 800;
  color: var(--c);
  display: block;
  line-height: 1;
  margin-bottom: 4px;
}

.account-stat-label {
  font-size: 12px;
  color: var(--g5);
  font-weight: 500;
}

/* Account Layout */
.account-layout {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Account Navigation */
.account-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.account-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  font-weight: 600;
  color: var(--g8);
  transition: .15s;
}

.account-nav-item:hover {
  border-color: var(--c);
  background: var(--cl);
  color: var(--c);
}

.account-nav-item.active {
  background: var(--c);
  color: #fff;
  border-color: var(--c);
}

.account-nav-item.active svg {
  stroke: #fff;
}

.account-nav-arrow {
  margin-left: auto;
  color: var(--g4);
}

.account-nav-item.active .account-nav-arrow {
  color: #fff;
}

/* Account Content */
.account-content {
  flex: 1;
  min-width: 0;
}

.account-content h2,
.account-content h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--g9);
  margin-bottom: 12px;
}

/* Account Orders Table */
.woocommerce-orders-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.woocommerce-orders-table th {
  text-align: left;
  padding: 10px 12px;
  font-weight: 600;
  color: var(--g5);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .3px;
  background: var(--g0);
  border-bottom: 1px solid var(--g2);
}

.woocommerce-orders-table td {
  padding: 12px;
  color: var(--g8);
  border-bottom: 1px solid var(--g1);
}

.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a {
  color: var(--c);
  font-weight: 700;
}

.woocommerce-orders-table .woocommerce-button {
  display: inline-flex;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 6px;
  background: var(--g0);
  color: var(--g8);
  border: 1px solid var(--g2);
  transition: .15s;
}

.woocommerce-orders-table .woocommerce-button:hover {
  border-color: var(--c);
  color: var(--c);
}

/* Account Addresses */
.woocommerce-address-fields .form-row label {
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
}

.woocommerce-address-fields .form-row input.input-text,
.woocommerce-address-fields .form-row select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  font-family: var(--f);
  color: var(--g9);
  transition: .15s;
}

.woocommerce-address-fields .form-row input.input-text:focus,
.woocommerce-address-fields .form-row select:focus {
  outline: none;
  border-color: var(--c);
  box-shadow: 0 0 0 3px var(--cg);
}

/* Account Edit Form */
.woocommerce-EditAccountForm .form-row label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
  margin-bottom: 5px;
}

.woocommerce-EditAccountForm .form-row input.input-text {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  font-family: var(--f);
  color: var(--g9);
  transition: .15s;
}

.woocommerce-EditAccountForm .form-row input.input-text:focus {
  outline: none;
  border-color: var(--c);
  box-shadow: 0 0 0 3px var(--cg);
}

.woocommerce-EditAccountForm button[type="submit"],
.woocommerce-address-fields button[type="submit"] {
  background: var(--c);
  color: #fff;
  padding: 12px 28px;
  border-radius: var(--rs);
  font-weight: 700;
  font-size: 14px;
  border: none;
  cursor: pointer;
  transition: .15s;
  font-family: var(--f);
  margin-top: 8px;
}

.woocommerce-EditAccountForm button[type="submit"]:hover,
.woocommerce-address-fields button[type="submit"]:hover {
  background: var(--cd);
}

/* Login / Register forms (account page) */
.woocommerce-form-login,
.woocommerce-form-register {
  max-width: 420px;
  margin: 0 auto;
}

.woocommerce-form-login .form-row,
.woocommerce-form-register .form-row {
  margin-bottom: 14px;
}

.woocommerce-form-login label,
.woocommerce-form-register label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
  margin-bottom: 5px;
}

.woocommerce-form-login input.input-text,
.woocommerce-form-register input.input-text {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  font-family: var(--f);
  color: var(--g9);
  transition: .15s;
}

.woocommerce-form-login input.input-text:focus,
.woocommerce-form-register input.input-text:focus {
  outline: none;
  border-color: var(--c);
  box-shadow: 0 0 0 3px var(--cg);
}

.woocommerce-form-login button[type="submit"],
.woocommerce-form-register button[type="submit"] {
  width: 100%;
  background: var(--c);
  color: #fff;
  padding: 14px 24px;
  border-radius: var(--rs);
  font-weight: 700;
  font-size: 15px;
  border: none;
  cursor: pointer;
  transition: .15s;
  font-family: var(--f);
  margin-top: 4px;
  box-shadow: 0 4px 20px rgba(255,106,13,.3);
}

.woocommerce-form-login button[type="submit"]:hover,
.woocommerce-form-register button[type="submit"]:hover {
  background: var(--cd);
}

.woocommerce-form-login .woocommerce-form-login__rememberme {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--g6);
}

.woocommerce-form-login .lost_password a {
  color: var(--c);
  font-size: 13px;
  font-weight: 500;
}

/* No Orders */
.woocommerce-info.wc-empty-i,
.woocommerce-MyAccount-content .woocommerce-info {
  text-align: center;
  padding: 40px 20px;
  background: var(--g0);
  border: 1px solid var(--g2);
  border-radius: var(--r);
}

.woocommerce-MyAccount-content .woocommerce-info .woocommerce-Button {
  display: inline-flex;
  padding: 10px 24px;
  margin-top: 12px;
  background: var(--c);
  color: #fff;
  border-radius: var(--rs);
  font-weight: 600;
  font-size: 14px;
  transition: .15s;
}

.woocommerce-MyAccount-content .woocommerce-info .woocommerce-Button:hover {
  background: var(--cd);
}


/* ══════════════════════════════════════════
   RELATED PRODUCTS
   ══════════════════════════════════════════ */

.related.products > h2,
.up-sells > h2 {
  font-size: 20px;
  font-weight: 800;
  color: var(--g9);
  margin-bottom: 16px;
}

.related.products .products,
.up-sells .products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}


/* ══════════════════════════════════════════
   DESKTOP BREAKPOINT (768px+)
   ══════════════════════════════════════════ */
@media (min-width: 768px) {

  /* ── Shop / Category ── */
  .cat-hero {
    max-height: 320px;
  }

  .cat-hero-title {
    font-size: 32px;
  }

  .shop-page-title {
    font-size: 28px;
  }

  .shop-filter-toggle {
    display: none;
  }

  .shop-layout {
    gap: 32px;
  }

  .shop-sidebar {
    display: block;
    width: 240px;
    flex-shrink: 0;
    position: static;
    background: none;
    border-radius: 0;
    padding: 0;
    max-height: none;
    overflow: visible;
    animation: none;
    box-shadow: none;
  }

  .shop-sidebar-header {
    display: none; /* Hide close button on desktop */
  }

  .shop-sidebar-close {
    display: none;
  }

  .shop-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }

  .woocommerce-pagination ul li a,
  .woocommerce-pagination ul li span {
    min-width: 44px;
    height: 44px;
  }


  /* ── Single Product ── */
  .sp-top {
    flex-direction: row;
    gap: 40px;
  }

  .sp-gallery {
    flex: 1;
    max-width: 50%;
    position: sticky;
    top: 80px;
    align-self: flex-start;
  }

  .sp-main-img {
    display: block;
  }

  .sp-thumbs {
    display: flex;
  }

  .sp-mobile-gallery {
    display: none;
  }

  .sp-info {
    flex: 1;
  }

  .sp-title {
    font-size: 26px;
  }

  .sp-price-now {
    font-size: 32px;
  }

  .sp-actions {
    flex-direction: row;
    align-items: flex-end;
  }

  .sp-actions form.cart {
    flex: 1;
    min-width: 0;
  }

  .sp-actions .single_add_to_cart_button {
    width: 100%;
  }

  .sp-buy-now {
    flex: 1;
    width: auto;
  }

  .sp-promise-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .sp-section-title {
    font-size: 22px;
  }

  .sp-below {
    margin-top: 48px;
  }

  .sp-description {
    font-size: 15px;
  }

  .sp-description h2 { font-size: 22px; }
  .sp-description h3 { font-size: 19px; }

  .sp-description table {
    font-size: 14px;
  }
  /* WPBakery desktop grid columns */
  .sp-description .vc_col-sm-6  { flex: 0 0 50%;      max-width: 50%; }
  .sp-description .vc_col-sm-4  { flex: 0 0 33.333%;  max-width: 33.333%; }
  .sp-description .vc_col-sm-3  { flex: 0 0 25%;      max-width: 25%; }
  .sp-description .vc_col-sm-8  { flex: 0 0 66.666%;  max-width: 66.666%; }
  .sp-description .vc_col-sm-12 { flex: 0 0 100%;     max-width: 100%; }

  .sp-specs-table th {
    width: 35%;
  }

  /* Related products: 4 columns */
  .related.products .products,
  .up-sells .products {
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }


  /* ── Cart ── */
  .cart-layout {
    flex-direction: row;
    align-items: flex-start;
  }

  .cart-items-col {
    flex: 1;
    min-width: 0;
  }

  .cart-summary-col {
    width: 360px;
    flex-shrink: 0;
  }

  .cart-summary {
    position: sticky;
    top: 80px;
  }

  .cart-item-img {
    width: 100px;
    height: 100px;
  }


  /* ── Checkout ── */
  .checkout-layout {
    flex-direction: row;
    align-items: flex-start;
  }

  .checkout-form-col {
    flex: 1;
    min-width: 0;
  }

  .checkout-summary-col {
    width: 380px;
    flex-shrink: 0;
  }

  .checkout-summary {
    position: sticky;
    top: 80px;
  }

  .checkout-step-line {
    width: 60px;
  }


  /* ── My Account ── */
  .account-layout {
    flex-direction: row;
    gap: 32px;
  }

  .account-nav {
    width: 240px;
    flex-shrink: 0;
    position: sticky;
    top: 80px;
    align-self: flex-start;
  }

  .account-content {
    flex: 1;
  }

  .account-banner {
    padding: 28px 32px;
  }

  .account-name {
    font-size: 24px;
  }

  .account-stats {
    gap: 16px;
  }

  .account-stat {
    padding: 20px;
  }

  .account-stat-num {
    font-size: 28px;
  }

  /* Orders table: show all columns */
  .woocommerce-orders-table {
    display: table;
  }
}

/* ── Large Desktop (1024px+) ── */
@media (min-width: 1024px) {
  .shop-sidebar {
    width: 260px;
  }
}


/* ══════════════════════════════════════════
   MOBILE-SPECIFIC OVERRIDES
   ══════════════════════════════════════════ */
@media (max-width: 767px) {

  /* Orders table: card layout */
  .woocommerce-orders-table,
  .woocommerce-orders-table thead,
  .woocommerce-orders-table tbody,
  .woocommerce-orders-table th,
  .woocommerce-orders-table td,
  .woocommerce-orders-table tr {
    display: block;
  }

  .woocommerce-orders-table thead {
    display: none;
  }

  .woocommerce-orders-table tr {
    margin-bottom: 12px;
    border: 1px solid var(--g2);
    border-radius: var(--rs);
    padding: 12px;
  }

  .woocommerce-orders-table td {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: none;
  }

  .woocommerce-orders-table td::before {
    content: attr(data-title);
    font-weight: 600;
    color: var(--g5);
    font-size: 12px;
  }

  /* Cart item smaller on mobile */
  .cart-item-img {
    width: 70px;
    height: 70px;
  }

  /* Cart item details: tighter on mobile */
  .cart-item-name {
    font-size: 13px;
    -webkit-line-clamp: 2;
  }

  .cart-summary {
    padding: 16px;
  }

  /* Checkout: step labels hidden on small screens */
  .checkout-step-label {
    display: none;
  }

  .checkout-step-line {
    width: 24px;
  }

  /* Checkout summary: tighter padding */
  .checkout-summary {
    padding: 16px;
  }

  /* Product description: prevent overflow on mobile */
  .sp-description img {
    max-width: 100%;
    height: auto !important;
    width: auto !important;
  }

  .sp-description table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    font-size: 12px;
  }

  .sp-description iframe {
    max-width: 100%;
  }

  /* WPBakery rows: remove negative margins on mobile */
  .sp-description .vc_row,
  .sp-description .vc_row-fluid {
    margin-left: 0;
    margin-right: 0;
  }

  .sp-description .vc_column_container {
    padding-left: 0;
    padding-right: 0;
  }

  /* Smaller product titles on small phones */
  .sp-title {
    font-size: 17px;
  }

  .sp-price-now {
    font-size: 22px;
  }

  /* Trust promise grid: 2 cols with smaller text */
  .sp-promise-item strong {
    font-size: 11px;
  }

  .sp-promise-item span {
    font-size: 9px;
  }

  /* Account nav: fill width */
  .account-nav {
    width: 100%;
  }

  /* Shop grid: smaller gap on tiny phones */
  .shop-grid {
    gap: 8px;
  }

  /* Related products: tighter on mobile */
  .related.products .products,
  .up-sells .products {
    gap: 8px;
  }
}


/* ══════════════════════════════════════════
   WOOCOMMERCE REVIEW STYLES
   ══════════════════════════════════════════ */

#reviews .commentlist {
  list-style: none;
  padding: 0;
  margin: 0;
}

#reviews .comment_container {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid var(--g1);
}

#reviews .comment_container .avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

#reviews .comment-text {
  flex: 1;
}

#reviews .star-rating {
  font-size: 12px;
  color: #f59e0b;
  margin-bottom: 4px;
}

#reviews .meta {
  margin-bottom: 6px;
}

#reviews .woocommerce-review__author {
  font-size: 14px;
  font-weight: 700;
  color: var(--g8);
}

#reviews .woocommerce-review__dash {
  display: none;
}

#reviews .woocommerce-review__published-date {
  font-size: 12px;
  color: var(--g4);
}

#reviews .description p {
  font-size: 13px;
  color: var(--g6);
  line-height: 1.6;
  margin: 0;
}

/* Review form */
#review_form_wrapper {
  margin-top: 24px;
}

#review_form .comment-reply-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--g9);
  margin-bottom: 12px;
}

#review_form label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--g8);
  margin-bottom: 5px;
}

#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  font-size: 14px;
  font-family: var(--f);
  color: var(--g9);
  transition: .15s;
  margin-bottom: 12px;
}

#review_form input[type="text"]:focus,
#review_form input[type="email"]:focus,
#review_form textarea:focus {
  outline: none;
  border-color: var(--c);
  box-shadow: 0 0 0 3px var(--cg);
}

#review_form input[type="submit"] {
  background: var(--c);
  color: #fff;
  padding: 12px 28px;
  border-radius: var(--rs);
  font-weight: 700;
  font-size: 14px;
  border: none;
  cursor: pointer;
  transition: .15s;
  font-family: var(--f);
}

#review_form input[type="submit"]:hover {
  background: var(--cd);
}

/* Star rating selector */
#review_form .stars {
  display: inline-flex;
  gap: 4px;
  margin-bottom: 8px;
}

#review_form .stars a {
  font-size: 24px;
  color: var(--g3);
  text-decoration: none;
}

#review_form .stars a:hover,
#review_form .stars a.active {
  color: #f59e0b;
}


/* ══════════════════════════════════════════
   WOOCOMMERCE GENERAL OVERRIDES
   ══════════════════════════════════════════ */

/* Remove default WooCommerce star rating colors */
.star-rating {
  overflow: hidden;
  position: relative;
  height: 1.1em;
  line-height: 1.1;
  width: 5.4em;
  font-family: inherit;
  font-size: 13px;
}

.star-rating::before {
  content: "\2606\2606\2606\2606\2606";
  color: var(--g3);
  float: left;
  top: 0;
  left: 0;
  position: absolute;
  letter-spacing: 1px;
}

.star-rating span {
  overflow: hidden;
  float: left;
  top: 0;
  left: 0;
  position: absolute;
  padding-top: 1.5em;
}

.star-rating span::before {
  content: "\2605\2605\2605\2605\2605";
  color: #f59e0b;
  top: 0;
  position: absolute;
  left: 0;
  letter-spacing: 1px;
}

/* Loading / blockUI overlay */
.woocommerce .blockUI.blockOverlay {
  position: relative;
  background: rgba(255,255,255,.5) !important;
}

.woocommerce .loader::before,
.woocommerce .blockUI.blockOverlay::before {
  content: '';
  display: block;
  width: 32px;
  height: 32px;
  border: 3px solid var(--g2);
  border-top-color: var(--c);
  border-radius: 50%;
  animation: wcSpin .6s linear infinite;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -16px 0 0 -16px;
}

@keyframes wcSpin {
  to { transform: rotate(360deg); }
}

/* WooCommerce buttons generic */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
  font-family: var(--f);
  font-weight: 600;
  border-radius: var(--rs);
  transition: .15s;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
  background: var(--c);
  color: #fff;
  border: none;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
  background: var(--cd);
}

/* WooCommerce product link in loop - reset */
.prod-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* Onsale badge override for WC default */
.woocommerce span.onsale {
  display: none; /* We use .prod-badge instead */
}

/* Coupon display in cart/checkout */
.woocommerce-remove-coupon {
  color: var(--rd);
  font-size: 11px;
  margin-left: 6px;
}

/* Select2 dropdown styling */
.select2-dropdown {
  border-color: var(--g2);
  border-radius: var(--rs);
  box-shadow: var(--shadow-lg);
  font-family: var(--f);
}

.select2-results__option {
  padding: 10px 14px;
  font-size: 14px;
}

.select2-results__option--highlighted {
  background: var(--cl) !important;
  color: var(--c) !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
}


/* ══════════════════════════════════════════
   PRINT STYLES
   ══════════════════════════════════════════ */
@media print {
  .sp-gallery,
  .sp-actions,
  .sp-promise-grid,
  .sp-buy-now,
  .cart-trust-strip,
  .checkout-steps,
  .account-banner,
  .shop-sidebar,
  .shop-filter-toggle,
  .shop-sort-bar {
    display: none;
  }

  .sp-top {
    flex-direction: column;
  }

  .cart-layout,
  .checkout-layout {
    flex-direction: column;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   PRODUCT DESCRIPTION — Rich Sections (no builder dependency)
   Reusable classes for clean product pages.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Section Containers ── */
.pd-section { padding: 40px 0; }
.pd-section--dark { background: #1a1a2e; color: #fff; }
.pd-section--gray { background: #f5f5f5; }
.pd-section--black { background: #000; color: #fff; }
.pd-section--white { background: #fff; }
.pd-inner { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

/* ── Section Headings ── */
.pd-heading { text-align: center; margin-bottom: 30px; }
.pd-heading h2 { font-size: 28px; font-weight: 800; margin: 0 0 8px; }
.pd-heading h2 span { color: #FF6709; }
.pd-heading p { color: #888; font-size: 15px; margin: 0; }
.pd-heading--white h2 { color: #fff; }
.pd-heading--white p { color: #ccc; }

/* ── Grid Systems ── */
.pd-grid { display: grid; gap: 16px; }
.pd-grid--2 { grid-template-columns: 1fr 1fr; }
.pd-grid--3 { grid-template-columns: repeat(3, 1fr); }
.pd-grid--4 { grid-template-columns: repeat(4, 1fr); }
.pd-grid--2x2 { grid-template-columns: 1fr 1fr; }

/* ── Feature Image Cards ── */
.pd-card { border-radius: 12px; overflow: hidden; position: relative; }
.pd-card img { width: 100%; height: auto; display: block; }
.pd-card--dark { background: #111; }
.pd-card--bordered { border: 1px solid #e0e0e0; }
.pd-card--shadow { box-shadow: 0 4px 20px rgba(0,0,0,0.08); }

/* ── Spec Icon Bars ── */
.pd-specs-bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; padding: 24px 0; }
.pd-spec-item { text-align: center; min-width: 120px; }
.pd-spec-item .icon { font-size: 28px; color: #FF6709; margin-bottom: 6px; }
.pd-spec-item h5 { font-size: 13px; font-weight: 700; margin: 0; color: #333; }
.pd-spec-item h6 { font-size: 12px; font-weight: 400; margin: 2px 0 0; color: #666; }
.pd-section--dark .pd-spec-item h5 { color: #fff; }
.pd-section--dark .pd-spec-item h6 { color: #ccc; }

/* ── Trust Badge Grid ── */
.pd-badges { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.pd-badge { text-align: center; padding: 16px 10px; border-radius: 10px; }
.pd-badge img { width: 100%; max-width: 180px; height: auto; margin: 0 auto; display: block; }
.pd-badge--dark { background: #1a1a2e; border: 1px solid #FF6709; }

/* ── In The Box / Carousel-like Grid ── */
.pd-inbox { display: flex; gap: 16px; overflow-x: auto; padding: 10px 0; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.pd-inbox::-webkit-scrollbar { display: none; }
.pd-inbox-item { flex: 0 0 140px; scroll-snap-align: start; text-align: center; }
.pd-inbox-item img { width: 100%; border-radius: 8px; margin-bottom: 6px; }
.pd-inbox-item span { font-size: 12px; font-weight: 600; color: #333; }
.pd-section--dark .pd-inbox-item span { color: #fff; }

/* ── Feature Cards with Text ── */
.pd-feature-card { background: #fff; border-radius: 12px; padding: 24px; }
.pd-feature-card h3 { font-size: 18px; font-weight: 700; color: #FF6709; margin: 0 0 8px; }
.pd-feature-card p { font-size: 14px; line-height: 1.6; color: #555; margin: 0; }
.pd-feature-card--mint { background: #f0faf5; }

/* ── Specs Accordion ── */
.pd-accordion { max-width: 700px; margin: 0 auto; }
.pd-accordion details { margin-bottom: 8px; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; }
.pd-accordion summary { padding: 14px 18px; font-weight: 600; font-size: 15px; cursor: pointer; background: #fafafa; color: #333; }
.pd-accordion summary:hover { background: #f0f0f0; }
.pd-accordion details[open] summary { background: #FF6709; color: #fff; }
.pd-accordion .acc-body { padding: 16px 18px; font-size: 14px; line-height: 1.7; }
.pd-accordion .acc-body strong { color: #333; }
.pd-accordion .acc-body hr { border: 0; border-top: 1px solid #eee; margin: 10px 0; }

/* ── Video Embed ── */
.pd-video { max-width: 700px; margin: 0 auto 20px; border-radius: 12px; overflow: hidden; }
.pd-video iframe { width: 100%; aspect-ratio: 16/9; border: 0; display: block; }

/* ── CTA Button ── */
.pd-cta { text-align: center; margin: 30px 0; }
.pd-cta a { display: inline-block; padding: 14px 40px; background: #FF6709; color: #fff; font-size: 16px; font-weight: 700; border-radius: 8px; text-decoration: none; transition: background 0.2s; }
.pd-cta a:hover { background: #e05500; }

/* ── WhatsApp CTA ── */
.pd-whatsapp { text-align: center; padding: 20px; border: 2px solid #25D366; border-radius: 12px; margin: 20px auto; max-width: 400px; }
.pd-whatsapp a { color: #25D366; font-weight: 700; text-decoration: none; font-size: 16px; }

/* ── Details Box (Specs/Warranty) ── */
.pd-details-box { border: 1px solid #222; border-radius: 12px; padding: 24px; margin: 20px 0; }
.pd-details-box h4 { font-size: 18px; margin: 0 0 16px; padding-bottom: 10px; border-bottom: 2px solid #d49900; color: #333; }
.pd-details-box .pd-grid { gap: 20px; }
.pd-details-box h5 { font-size: 15px; font-weight: 700; margin: 0 0 8px; color: #333; }
.pd-details-box ul { padding-left: 18px; margin: 0; font-size: 14px; line-height: 1.8; }

/* ── Image Gallery (color temp cards etc) ── */
.pd-gallery-scroll { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 10px 0; }
.pd-gallery-scroll::-webkit-scrollbar { display: none; }
.pd-gallery-scroll .pd-card { flex: 0 0 calc(33.333% - 8px); scroll-snap-align: start; min-width: 280px; }

/* ── Dispatch Notice ── */
.pd-dispatch { text-align: center; padding: 16px; background: #fff8f0; border: 1px solid #FF6709; border-radius: 8px; margin: 20px 0; font-weight: 700; font-size: 15px; color: #333; }

/* ── Landing Page Full-Width Image Sections ── */
.pd-full-img { margin: 0; }
.pd-full-img img { width: 100%; height: auto; display: block; }
.pd-full-img--rounded img { border-radius: 12px; }

/* ── Responsive ── */
@media (max-width: 767px) {
  .pd-section { padding: 24px 0; }
  .pd-heading h2 { font-size: 22px; }
  .pd-grid--2, .pd-grid--3, .pd-grid--4 { grid-template-columns: 1fr; }
  .pd-badges { grid-template-columns: repeat(2, 1fr); }
  .pd-specs-bar { gap: 16px; }
  .pd-spec-item { min-width: 80px; }
  .pd-feature-card { padding: 16px; }
  .pd-gallery-scroll .pd-card { flex: 0 0 85%; min-width: 260px; }
  .pd-inbox-item { flex: 0 0 110px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .pd-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .pd-grid--3 { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   Affiliate Dashboard (My Account > Affiliate)
   Replaces YITH WooCommerce Affiliates.
   ========================================================================== */

.woodman-affiliate h3 {
  font-size: 17px;
  font-weight: 700;
  color: var(--g9);
  margin: 28px 0 12px;
}

.woodman-affiliate h3:first-child {
  margin-top: 0;
}

/* --- Referral link box --- */
.woodman-aff-linkbox {
  background: var(--g0);
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  padding: 18px;
  margin-bottom: 20px;
}

.woodman-aff-linkbox label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--g5);
  margin-bottom: 8px;
}

.woodman-aff-linkrow {
  display: flex;
  gap: 8px;
}

.woodman-aff-linkrow input {
  flex: 1;
  min-width: 0;
  font-family: var(--f);
  font-size: 14px;
  padding: 10px 12px;
  border: 1px solid var(--g2);
  border-radius: var(--rs);
  background: var(--w);
  color: var(--g8);
}

.woodman-aff-copy {
  flex-shrink: 0;
  white-space: nowrap;
}

.woodman-aff-hint {
  font-size: 12.5px;
  color: var(--g5);
  margin: 10px 0 0;
  line-height: 1.5;
}

/* --- Stat grid: 4 up, matching .account-stats --- */
.woodman-aff-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

.woodman-aff-stat {
  background: var(--g0);
  border-radius: var(--rs);
  padding: 16px;
  text-align: center;
}

.woodman-aff-num {
  font-size: 20px;
  font-weight: 800;
  color: var(--c);
  display: block;
  line-height: 1.15;
  margin-bottom: 4px;
}

/* wc_price() wraps output in .woocommerce-Price-amount */
.woodman-aff-num .woocommerce-Price-amount {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

.woodman-aff-label {
  font-size: 12px;
  color: var(--g5);
  font-weight: 500;
  line-height: 1.35;
  display: block;
}

/* --- Referral table --- */
.woodman-aff-tablewrap {
  overflow-x: auto;
}

.woodman-aff-table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
}

.woodman-aff-table th {
  text-align: left;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--g5);
  padding: 10px 12px;
  border-bottom: 1px solid var(--g2);
  white-space: nowrap;
}

.woodman-aff-table td {
  padding: 12px;
  font-size: 14px;
  color: var(--g8);
  border-bottom: 1px solid var(--g1);
}

.woodman-aff-table tr:last-child td {
  border-bottom: 0;
}

/* --- Status pills --- */
.woodman-aff-status {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
}

.woodman-aff-status--pending  { background: #fbf1dc; color: #8a5a00; }
.woodman-aff-status--approved { background: #e4f3eb; color: #14603c; }
.woodman-aff-status--paid     { background: #e8edf8; color: #2d4b8e; }
.woodman-aff-status--rejected { background: #f3f4f6; color: #6b7280; }

/* --- Find-my-orders control on the Orders tab --- */
.woodman-find-orders {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.woodman-find-orders-hint {
  font-size: 12.5px;
  color: var(--g5);
}

@media (max-width: 720px) {
  .woodman-aff-stats {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .woodman-aff-linkrow {
    flex-direction: column;
  }

  .woodman-find-orders {
    align-items: flex-start;
  }
}

/* ==========================================================================
   Show / hide password (WooCommerce's own control)

   woocommerce.js wraps password fields in span.password-input and appends a
   .show-password-input button that only WooCommerce's stylesheet styles. The
   theme does not load that stylesheet, so the button was invisible yet still
   focusable — three hidden tab stops on Account details, and no way to see a
   password while typing it. This makes it a visible eye toggle.

   The logged-out sign-in pages hide it in favour of the theme's labelled
   Show/Hide control (assets/css/auth.css), which wins on specificity there.
   ========================================================================== */
.password-input {
  position: relative;
  display: block;
}

.password-input input.input-text { padding-right: 50px; }

.show-password-input {
  position: absolute;
  top: 50%;
  right: 6px;
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px no-repeat;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background-color .15s;
}

.show-password-input.display-password {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cpath d='M1 1l22 22'/%3E%3C/svg%3E");
}

.show-password-input:hover { background-color: var(--g1); }

.show-password-input:focus-visible {
  outline: 2px solid var(--c);
  outline-offset: 1px;
}

/* Category hero on phones: the description is printed again under the
   breadcrumb, and over a 240px image it was unreadable. */
.cat-hero-overlay {
  background: linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.18) 70%, transparent 100%);
}
@media (max-width: 767px) {
  .cat-hero-desc { display: none; }
  .cat-hero { max-height: 200px; }
}
