/* ============================================================
   PERFUME SHOP BD - MAIN STYLESHEET
   Design: Dark luxury with gold accents & cream sections
   ============================================================ */

/* --- FONTS & RESET --- */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,600&family=Jost:wght@300;400;500;600&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --black:    #0d0d0d;
  --dark:     #1a1a1a;
  --charcoal: #2d2d2d;
  --gold:     #0d1a2e;
  --gold-lt:  #1a3050;
  --cream:    #f5f0e8;
  --cream2:   #faf7f2;
  --white:    #ffffff;
  --gray:     #888888;
  --gray-lt:  #e0e0e0;
  --red:      #dc3545;
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans:  'Jost', sans-serif;
  --radius:   4px;
  --shadow:   0 2px 20px rgba(0,0,0,.08);
  --shadow-lg:0 8px 40px rgba(0,0,0,.14);
  --trans:    all .25s ease;
  --card-bg:  rgba(255,255,255,0.06);
  --border:   rgba(255,255,255,0.10);
}

html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--charcoal);
  background: var(--white);
  line-height: 1.6;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: var(--trans); }
ul { list-style: none; }
button { cursor: pointer; font-family: var(--font-sans); border: none; background: none; }

/* === TYPOGRAPHY === */
h1,h2,h3,h4,h5,h6 { font-family: var(--font-serif); font-weight: 400; line-height: 1.2; }
.serif { font-family: var(--font-serif); }
.italic { font-style: italic; }

/* === UTILITIES === */
.container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.container-sm { max-width: 960px; margin: 0 auto; padding: 0 24px; }
.text-center { text-align: center; }
.text-gold { color: var(--gold); }
.text-white { color: var(--white); }
.text-gray { color: var(--gray); }
.eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: var(--gold); }
.section-title { font-size: clamp(2rem, 4vw, 3rem); font-weight: 400; }
.divider { width: 48px; height: 2px; background: var(--gold); margin: 16px 0; }
.divider.center { margin: 16px auto; }
.d-none { display: none !important; }
.d-flex { display: flex; }
.align-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-16 { gap: 16px; }
.mt-8 { margin-top: 8px; }
.mt-16 { margin-top: 16px; }
.mt-24 { margin-top: 24px; }
.mb-8 { margin-bottom: 8px; }
.mb-16 { margin-bottom: 16px; }

/* === BUTTONS === */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 28px; font-size: 12px; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase;
  border: 2px solid transparent; border-radius: var(--radius);
  transition: var(--trans); gap: 8px; white-space: nowrap;
}
.btn-gold { background: var(--gold); color: var(--white); border-color: var(--gold); }
.btn-gold:hover { background: var(--gold-lt); border-color: var(--gold-lt); color: var(--white); }
.btn-outline { background: transparent; color: var(--white); border-color: var(--white); }
.btn-outline:hover { background: var(--white); color: var(--black); }
.btn-outline-dark { background: transparent; color: var(--charcoal); border-color: var(--charcoal); }
.btn-outline-dark:hover { background: var(--charcoal); color: var(--white); }
.btn-dark { background: var(--dark); color: var(--white); border-color: var(--dark); }
.btn-dark:hover { background: var(--black); border-color: var(--black); }
.btn-full { width: 100%; }
.btn-lg { padding: 16px 36px; font-size: 13px; }

/* === SITE ANNOUNCEMENT BAR === */
.announcement-bar {
  background: var(--gold);
  color: var(--white);
  text-align: center;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .04em;
}
.announcement-bar a { color: var(--black); text-decoration: underline; }

/* ================================================
   HEADER
   ================================================ */
#site-header {
  background: var(--black);
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  gap: 24px;
}

/* Logo */
.site-logo img { height: 40px; width: auto; }
.site-logo .text-logo {
  font-family: var(--font-serif);
  font-size: 20px;
  color: var(--white);
  letter-spacing: .04em;
}
.site-logo .text-logo span { color: var(--gold); }

/* Main Nav */
.main-nav { display: flex; align-items: center; }
.main-nav > ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
  gap: 0;
}
.main-nav .menu-item > a {
  display: flex; align-items: center; gap: 4px;
  padding: 8px 14px;
  font-size: 12px; font-weight: 500;
  letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.85);
  border-radius: var(--radius);
  transition: var(--trans);
}
.main-nav .menu-item > a:hover,
.main-nav .menu-item.current-menu-item > a { color: var(--gold); }
.main-nav .menu-item-has-children { position: relative; }
.main-nav .menu-item-has-children .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--dark);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius);
  min-width: 220px;
  padding: 16px 0 8px; /* top padding replaces the old 8px gap — keeps visual spacing without a dead zone */
  box-shadow: var(--shadow-lg);
  z-index: 100;
}
.main-nav .menu-item-has-children:hover .sub-menu { display: block; }
.main-nav .sub-menu .menu-item a {
  display: block; padding: 10px 18px;
  font-size: 13px; font-weight: 400;
  text-transform: none; letter-spacing: .03em;
  color: rgba(255,255,255,.8);
}
.main-nav .sub-menu .menu-item a:hover { color: var(--gold); background: rgba(255,255,255,.04); }
.nav-chevron { font-size: 10px; transition: var(--trans); }
.main-nav .menu-item-has-children:hover .nav-chevron { transform: rotate(180deg); }

/* Header Actions */
.header-actions { display: flex; align-items: center; gap: 16px; }
.header-actions a, .header-actions button {
  color: rgba(255,255,255,.85);
  font-size: 18px;
  padding: 4px;
  transition: var(--trans);
  position: relative;
}
.header-actions a:hover, .header-actions button:hover { color: var(--gold); }
.cart-count {
  position: absolute; top: -6px; right: -8px;
  background: var(--gold); color: var(--white);
  font-size: 10px; font-weight: 700;
  width: 18px; height: 18px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-sans);
}

/* Mobile menu toggle */
.menu-toggle {
  display: none;
  color: var(--white);
  font-size: 22px;
  padding: 4px;
  background: none;
  border: none;
}
.mobile-nav {
  display: none;
  position: fixed;
  top: 64px; left: 0; right: 0; bottom: 0;
  background: var(--black);
  overflow-y: auto;
  padding: 24px;
  z-index: 999;
}
.mobile-nav.open { display: block; }
.mobile-nav .menu-item a {
  display: block;
  padding: 14px 0;
  font-size: 16px;
  color: rgba(255,255,255,.85);
  border-bottom: 1px solid rgba(255,255,255,.08);
  letter-spacing: .03em;
}
.mobile-nav .menu-item a:hover { color: var(--gold); }
.mobile-nav .sub-menu { padding-left: 20px; }
.mobile-nav .sub-menu .menu-item a { font-size: 14px; }

/* Search overlay */
.search-overlay {
  display: none;
  position: fixed;
  top: 64px; left: 0; right: 0;
  background: var(--dark);
  padding: 24px;
  z-index: 998;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.search-overlay.open { display: block; }
.search-form { display: flex; gap: 12px; max-width: 600px; margin: 0 auto; }
.search-form input {
  flex: 1; padding: 12px 16px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 15px;
  font-family: var(--font-sans);
  outline: none;
}
.search-form input::placeholder { color: rgba(255,255,255,.4); }
.search-form button {
  padding: 12px 20px;
  background: var(--gold);
  color: var(--white);
  border-radius: var(--radius);
  font-weight: 600;
}

/* ================================================
   HERO SECTION
   ================================================ */
.hero-section {
  position: relative;
  min-height: calc(100vh - 64px);
  background: var(--black);
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: .35;
  transition: opacity .5s;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.75) 40%, transparent 80%);
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 560px;
  padding: 80px 0;
}
.hero-eyebrow { font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-bottom: 20px; }
.hero-title { font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 300; color: var(--white); line-height: 1.05; }
.hero-title em { font-style: italic; color: var(--gold); }
.hero-sub { font-size: 15px; color: rgba(255,255,255,.65); margin-top: 24px; line-height: 1.8; max-width: 380px; }
.hero-actions { display: flex; gap: 14px; margin-top: 36px; flex-wrap: wrap; }

/* Hero Slider Dots */
.hero-dots { display: flex; gap: 8px; margin-top: 32px; }
.hero-dot {
  width: 32px; height: 2px;
  background: rgba(255,255,255,.3);
  border: none;
  transition: var(--trans);
}
.hero-dot.active { background: var(--gold); width: 48px; }

/* ================================================
   CATEGORY GRID
   ================================================ */
.collections-section { padding: 80px 0; background: var(--cream2); }
.section-header { text-align: center; margin-bottom: 52px; }
.collections-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.collection-card {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: 2px;
  cursor: pointer;
}
.collection-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.collection-card:hover img { transform: scale(1.04); }
.collection-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 60%);
}
.collection-card-info {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 28px 24px;
}
.collection-card-info .eyebrow { color: rgba(255,255,255,.65); margin-bottom: 6px; }
.collection-card-info h3 { font-size: 1.8rem; color: var(--white); margin-bottom: 12px; }
.shop-now-link {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--white); font-weight: 500;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
}
.shop-now-link svg { width: 16px; }

/* === QUICK CATEGORIES BAND === */
.quick-categories { padding: 48px 0; background: var(--white); }
.quick-cats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.quick-cat {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: var(--radius);
  cursor: pointer;
}
.quick-cat img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
  filter: brightness(.65);
}
.quick-cat:hover img { transform: scale(1.05); filter: brightness(.5); }
.quick-cat-label {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 16px 14px;
}
.quick-cat-label h4 { font-size: 1rem; font-family: var(--font-serif); color: var(--white); font-weight: 500; }
.quick-cat-label p { font-size: 11px; color: rgba(255,255,255,.65); margin-top: 2px; }

/* === PROMISE SECTION === */
.promise-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
}
.promise-image { background-size: cover; background-position: center; }
.promise-content {
  background: var(--dark);
  display: flex; flex-direction: column;
  justify-content: center;
  padding: 60px 64px;
}
.promise-content .eyebrow { margin-bottom: 20px; }
.promise-content h2 { font-size: clamp(2rem, 4vw, 3.2rem); color: var(--white); }
.promise-content h2 em { color: var(--gold); font-style: italic; display: block; }
.promise-content p { color: rgba(255,255,255,.65); margin-top: 20px; line-height: 1.9; max-width: 440px; }
.promise-actions { display: flex; gap: 14px; margin-top: 36px; flex-wrap: wrap; }

/* === BEST SELLERS / NEW ARRIVALS === */
.products-section { padding: 80px 0; }
.products-section.cream-bg { background: var(--cream2); }
.section-row { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 40px; }
.view-all-link {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--charcoal); border-bottom: 1px solid var(--charcoal);
  padding-bottom: 2px;
  font-weight: 500;
}
.view-all-link:hover { color: var(--gold); border-color: var(--gold); }

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

/* Product Card */
.psb-product-card {
  position: relative;
  cursor: pointer;
  background: var(--white);
}
.psb-product-card .card-image {
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--white);
  position: relative;
}
.psb-product-card .card-image img {
  width: 100%; height: 100%;
  object-fit: contain;
  transition: transform .45s ease;
}
.psb-product-card:hover .card-image img { transform: scale(1.04); }
.psb-product-card .card-badge {
  position: absolute;
  top: 14px; left: 14px;
  background: var(--gold); color: var(--white);
  font-size: 10px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  padding: 4px 10px;
}
.psb-product-card .card-badge.badge-sale { background: var(--red); color: var(--white); }
/* v2.18.2 — OOS treatment on listing cards (shop / category / search / best sellers / related). */
.psb-product-card .card-badge.badge-soldout { background: #4a4a4a; color: var(--white); }
.psb-product-card.psb-card-oos .card-image img {
  opacity: .55;
  filter: grayscale(.4);
  transition: opacity .25s ease, filter .25s ease;
}
.psb-product-card.psb-card-oos:hover .card-image img {
  opacity: .72;
  filter: grayscale(.2);
}
.card-actions .add-to-cart-btn.psb-card-notify-btn {
  background: #fff;
  color: #1a3050;
  border: 1.5px solid #1a3050;
}
.card-actions .add-to-cart-btn.psb-card-notify-btn:hover {
  background: #1a3050;
  color: #fff;
}
.card-actions {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  display: flex;
  transform: translateY(100%);
  transition: transform .3s ease;
}
.psb-product-card:hover .card-actions { transform: translateY(0); }
.card-actions .add-to-cart-btn {
  flex: 1; width: auto; padding: 14px;
  background: rgba(0,0,0,.88);
  color: var(--white);
  font-size: 11px; font-weight: 500;
  letter-spacing: .1em; text-transform: uppercase;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  border: none; transition: var(--trans);
  font-family: var(--font-sans);
}
.card-actions .add-to-cart-btn:hover { background: var(--gold); color: var(--white); }
/* Quick View icon button on product card */
.psb-qv-btn {
  flex-shrink: 0;
  width: 42px;
  background: rgba(0,0,0,.88);
  border: none; border-left: 1px solid rgba(255,255,255,.12);
  color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.psb-qv-btn:hover { background: var(--gold); }
.psb-product-card .card-info { padding: 16px 4px; }
.card-info .brand-name {
  font-size: 10px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--gray); margin-bottom: 4px;
}
.card-info .product-name { font-family: var(--font-serif); font-size: 1.1rem; color: var(--charcoal); margin-bottom: 8px; line-height: 1.3; }
.card-info .product-name a:hover { color: var(--gold); }
.card-info .price { font-size: 14px; color: var(--charcoal); }
.card-info .price del { color: var(--gray); font-size: 12px; margin-right: 6px; }
.card-info .price ins { text-decoration: none; font-weight: 600; }
.card-wishlist {
  position: absolute; top: 14px; right: 14px;
  background: var(--white); border-radius: 50%;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  color: var(--gray); font-size: 15px;
  opacity: 0; transition: opacity .3s;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
}
.psb-product-card:hover .card-wishlist { opacity: 1; }
.card-wishlist:hover { color: var(--red); }

/* === NEWSLETTER === */
.newsletter-section {
  background: var(--gold);
  padding: 64px 24px;
  text-align: center;
}
.newsletter-section h2 { font-size: clamp(1.8rem,4vw,3rem); font-family: var(--font-serif); color: var(--white); }
.newsletter-section p { color: rgba(255,255,255,.75); margin-top: 10px; font-size: 15px; }
.newsletter-form { display: flex; gap: 12px; max-width: 500px; margin: 28px auto 0; }
.newsletter-form input {
  flex: 1; padding: 14px 18px;
  background: var(--white); border: 1px solid transparent;
  border-radius: var(--radius); font-size: 14px;
  font-family: var(--font-sans); outline: none;
}
.newsletter-form input:focus { border-color: var(--charcoal); }
.newsletter-form button {
  padding: 14px 24px;
  background: var(--black); color: var(--white);
  font-size: 12px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  border-radius: var(--radius);
  border: none; cursor: pointer; font-family: var(--font-sans);
  white-space: nowrap; transition: var(--trans);
}
.newsletter-form button:hover { background: var(--dark); }

/* ================================================
   FOOTER
   ================================================ */
.site-footer { background: var(--dark); color: rgba(255,255,255,.75); }
.footer-top { padding: 64px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.4fr;
  gap: 48px;
}
.footer-col h4 {
  font-family: var(--font-sans);
  font-size: 10px; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--white); margin-bottom: 20px;
}
.footer-col p { font-size: 13px; line-height: 1.9; }
.footer-col a { display: block; font-size: 13px; margin-bottom: 10px; color: rgba(255,255,255,.65); }
.footer-col a:hover { color: var(--gold); }
.footer-contact { margin-top: 16px; font-size: 13px; line-height: 2; }
.footer-contact strong { color: var(--white); }
.footer-payment-logos { margin-top: 12px; }
.footer-payment-logos img { max-width: 280px; opacity: .7; }
.footer-delivery-info { font-size: 13px; line-height: 2; }
.footer-delivery-info strong { color: var(--white); display: block; margin-top: 10px; }
.footer-bottom {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 0; font-size: 12px; color: rgba(255,255,255,.4);
  flex-wrap: wrap; gap: 12px;
}
.social-links { display: flex; gap: 12px; }
.social-links a {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.65);
  font-size: 15px; transition: var(--trans);
}
.social-links a:hover { background: var(--gold); color: var(--white); }

/* ================================================
   SHOP PAGE / ARCHIVE
   ================================================ */
.shop-page-header {
  background: var(--cream2);
  text-align: center;
  padding: 25px 0;
}
.shop-page-header h1 { font-size: clamp(2.5rem,5vw,4rem); font-weight: 300; }
.shop-page-header p { color: var(--gray); margin-top: 12px; font-size: 16px; }

/* Shop search bar */
.shop-search-form {
  margin-top: 28px;
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
.shop-search-inner {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1.5px solid #c8d8ef;
  border-radius: 50px;
  padding: 6px 6px 6px 18px;
  box-shadow: 0 2px 12px rgba(13,26,46,.07);
  gap: 8px;
  transition: border-color .2s, box-shadow .2s;
}
.shop-search-inner:focus-within {
  border-color: var(--gold);
  box-shadow: 0 3px 16px rgba(13,26,46,.13);
}
.shop-search-icon { color: #8fa9c8; flex-shrink: 0; }
.shop-search-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 15px;
  font-family: var(--font-sans);
  color: var(--charcoal);
  background: transparent;
  min-width: 0;
}
.shop-search-input::placeholder { color: #a0b4cb; }
.shop-search-clear {
  font-size: 20px;
  line-height: 1;
  color: #8fa9c8;
  text-decoration: none;
  padding: 0 4px;
  flex-shrink: 0;
}
.shop-search-clear:hover { color: var(--gold); }
.shop-search-btn {
  background: var(--gold);
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--font-sans);
  cursor: pointer;
  flex-shrink: 0;
  transition: background .2s, transform .15s;
  letter-spacing: .02em;
}
.shop-search-btn:hover { background: var(--gold-lt); transform: scale(1.03); }

.shop-layout { display: flex; gap: 0; padding: 20px 0; align-items: flex-start; }
.shop-sidebar {
  width: 220px;
  flex-shrink: 0;
  position: sticky;
  top: 84px;
  padding-right: 28px;
  border-right: 1px solid var(--gray-lt);
}
.shop-main { flex: 1; min-width: 0; padding-left: 28px; }

/* 3 columns in the sidebar layout gives ~300px+ cards — much better UX */
.shop-main .psb-products-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* Sidebar Filters */
.filter-block { border-bottom: 1px solid var(--gray-lt); padding-bottom: 22px; margin-bottom: 22px; }
.filter-block:last-child { border-bottom: none; }
.filter-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #666;
  margin-bottom: 16px;
}
.filter-option { display: flex; align-items: center; gap: 10px; margin-bottom: 13px; cursor: pointer; }
.filter-option:last-child { margin-bottom: 0; }
.filter-checkbox {
  width: 17px; height: 17px;
  border: 1.5px solid #aaa;
  border-radius: 2px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: border-color .2s, background .2s;
}
.filter-checkbox.checked { background: var(--gold); border-color: var(--gold); }
.filter-checkbox.checked::after { content: '✓'; font-size: 11px; color: #fff; font-weight: 700; }
.filter-option span { font-size: 14px; color: #333; line-height: 1.3; }
.filter-option.active span { color: var(--gold); font-weight: 600; }
.filter-option:hover .filter-checkbox:not(.checked) { border-color: #555; }
.filter-option:hover span { color: var(--gold); }
/* filter-option used as <a> tag — reset link defaults */
a.filter-option { text-decoration: none; color: inherit; }

/* Brand scrollable container */
.filter-brand-scroll {
  max-height: 230px;
  overflow-y: auto;
  padding-right: 4px;
  margin-right: -4px;
}
.filter-brand-scroll::-webkit-scrollbar { width: 3px; }
.filter-brand-scroll::-webkit-scrollbar-track { background: transparent; }
.filter-brand-scroll::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }

/* Price range Apply button — full-width dark, matches reference */
.psb-filter-apply-btn {
  display: block;
  width: 100%;
  margin-top: 12px;
  padding: 10px 0;
  background: var(--gold);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s;
}
.psb-filter-apply-btn:hover { background: var(--gold-lt); }

/* Price Range */
.price-range-inputs { display: flex; gap: 8px; align-items: center; }
.price-range-inputs input {
  width: 100%; padding: 8px 10px;
  border: 1px solid var(--gray-lt); border-radius: var(--radius);
  font-size: 13px; font-family: var(--font-sans);
  outline: none; color: var(--charcoal);
}
.price-range-inputs input:focus { border-color: var(--gold); }
.price-range-inputs span { color: var(--gray); flex-shrink: 0; }

.shop-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 20px; border-bottom: 1px solid var(--gray-lt);
  margin-bottom: 28px; flex-wrap: wrap; gap: 12px;
}
.results-count { font-size: 14px; color: var(--gray); }
.sort-select {
  padding: 8px 14px; border: 1px solid var(--gray-lt); border-radius: var(--radius);
  font-size: 13px; font-family: var(--font-sans);
  background: var(--white); color: var(--charcoal); outline: none; cursor: pointer;
}
.sort-select:focus { border-color: var(--gold); }

.products-grid-3 { grid-template-columns: repeat(3, 1fr); }
.products-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* Pagination */
.psb-pagination {
  display: flex; justify-content: center; gap: 8px;
  margin-top: 48px; flex-wrap: wrap;
}
.psb-pagination a, .psb-pagination span {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border: 1px solid var(--gray-lt);
  font-size: 14px; color: var(--charcoal);
  border-radius: var(--radius); transition: var(--trans);
}
.psb-pagination a:hover, .psb-pagination .current {
  background: var(--gold); border-color: var(--gold); color: var(--white);
}

/* ================================================
   SINGLE PRODUCT PAGE
   ================================================ */
.single-product-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  padding: 48px 0 80px;
  align-items: start;
}
/* Prevent grid children from overflowing their column */
.single-product-layout > * { min-width: 0; overflow: hidden; }

/* Product Gallery */
.product-gallery { position: sticky; top: 84px; overflow: visible; }
.gallery-main {
  aspect-ratio: 1/1;
  background: #f5f5f5;
  overflow: hidden;
  border-radius: 2px;
}
.gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumbs {
  display: flex; gap: 10px; margin-top: 12px;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scrollbar-width: none; /* Firefox */
  padding-bottom: 4px;
}
.gallery-thumbs::-webkit-scrollbar { display: none; } /* Chrome/Safari */
.gallery-thumb {
  width: 80px; height: 80px;
  border: 2px solid transparent;
  overflow: hidden; cursor: pointer;
  border-radius: var(--radius); flex-shrink: 0;
  transition: var(--trans);
  scroll-snap-align: start;
}
.gallery-thumb:hover, .gallery-thumb.active { border-color: var(--gold); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Product Info */
.product-info-col { min-width: 0; overflow: visible; }
.product-breadcrumb { font-size: 12px; color: var(--gray); margin-bottom: 16px; }
.product-breadcrumb a:hover { color: var(--gold); }
.product-breadcrumb span { margin: 0 6px; }
.product-badge-sale {
  display: inline-block; padding: 3px 10px;
  background: var(--red); color: var(--white);
  font-size: 11px; font-weight: 700;
  letter-spacing: .06em; border-radius: 2px;
  margin-bottom: 12px;
}
.product-title { font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 400; line-height: 1.2; margin-bottom: 16px; word-break: break-word; overflow-wrap: anywhere; }
.product-price-wrap { display: flex; align-items: baseline; gap: 12px; margin-bottom: 24px; }
.price-current { font-size: 1.8rem; font-weight: 600; color: var(--charcoal); font-family: var(--font-sans); }
.price-original { font-size: 1.2rem; color: var(--gray); text-decoration: line-through; font-family: var(--font-sans); }
.price-discount { background: var(--gold); color: var(--white); font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 2px; }

/* Accordion */
.product-accordion { border-top: 1px solid var(--gray-lt); }
.accordion-item { border-bottom: 1px solid var(--gray-lt); }
.accordion-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0; cursor: pointer; transition: var(--trans);
  font-size: 14px; font-weight: 600; color: var(--charcoal);
  letter-spacing: .04em;
}
.accordion-header:hover { color: var(--gold); }
.accordion-icon { font-size: 20px; transition: transform .3s; font-weight: 300; }
.accordion-item.open .accordion-icon { transform: rotate(45deg); }
.accordion-body { display: none; padding-bottom: 20px; }
.accordion-item.open .accordion-body { display: block; }
.accordion-body p { font-size: 14px; line-height: 1.9; color: var(--charcoal); margin: 0 0 1em 0; }
.accordion-body p:last-child { margin-bottom: 0; }

/* Notes / Tags */
.product-notes { margin: 24px 0; }
.product-notes-label { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--charcoal); margin-bottom: 12px; }
.notes-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.note-tag {
  padding: 5px 14px; border: 1px solid var(--gray-lt);
  border-radius: 50px; font-size: 12px; color: var(--charcoal);
  font-family: var(--font-sans);
}

/* Quantity */
.quantity-wrap { display: flex; align-items: center; gap: 16px; margin: 24px 0; }
.qty-control {
  display: flex; align-items: center;
  border: 1px solid var(--gray-lt); border-radius: var(--radius);
  overflow: hidden;
}
.qty-btn {
  width: 40px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; color: var(--charcoal);
  background: none; border: none; cursor: pointer;
  transition: var(--trans); font-weight: 300;
}
.qty-btn:hover { background: var(--cream); color: var(--gold); }
.qty-input {
  width: 50px; text-align: center;
  border: none; border-left: 1px solid var(--gray-lt); border-right: 1px solid var(--gray-lt);
  height: 48px; font-size: 16px; font-family: var(--font-sans);
  outline: none; color: var(--charcoal);
}

/* Product Action Buttons */
.product-actions-wrap { display: flex; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.product-actions-wrap .btn { flex: 1; min-width: 140px; justify-content: center; }

/* Delivery Info Card */
.delivery-card {
  margin-top: 28px;
  border: 1px solid var(--gray-lt);
  border-radius: var(--radius);
  overflow: hidden;
}
.delivery-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px;
  cursor: pointer;
  font-size: 14px; font-weight: 600; color: var(--charcoal);
}
.delivery-card-body { padding: 0 18px 18px; }
.delivery-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 16px; margin-top: 4px;
}
.delivery-item { display: flex; gap: 12px; align-items: flex-start; }
.delivery-item svg { width: 20px; flex-shrink: 0; color: var(--gold); margin-top: 2px; }
.delivery-item-label { font-size: 11px; color: var(--gray); text-transform: uppercase; letter-spacing: .06em; }
.delivery-item-value { font-size: 13px; font-weight: 500; color: var(--charcoal); margin-top: 2px; }
.delivery-cod-note { font-size: 11px; font-weight: 600; color: #c0392b; }

/* Related Products */
.related-section { padding: 64px 0; background: var(--cream2); }

/* ================================================
   WOOCOMMERCE WRAPPER RESET
   ================================================ */
/* WC wraps shortcodes in div.woocommerce — remove double spacing */
.woocommerce > .cart-page,
.woocommerce > .checkout-page { display: block; }

/* ================================================
   CART PAGE
   ================================================ */
.cart-page { padding: 48px 0 80px; }
.cart-page-title { font-size: 2.5rem; margin-bottom: 36px; }
.cart-layout { display: grid; grid-template-columns: 1fr 360px; gap: 36px; align-items: start; }
.cart-table { width: 100%; border-collapse: collapse; }
.cart-table th {
  text-align: left; font-size: 10px; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  padding: 0 16px 16px 0; border-bottom: 1px solid var(--gray-lt);
  color: var(--charcoal); white-space: nowrap;
}
.cart-table td {
  padding: 20px 16px 20px 0; border-bottom: 1px solid var(--gray-lt);
  vertical-align: middle;
}
.cart-qty-control {
  display: inline-flex; align-items: center;
  border: 1px solid var(--gray-lt); border-radius: 50px;
  overflow: hidden; background: #fff;
}
.cart-qty-control .qty-btn {
  width: 32px; height: 36px;
  font-size: 18px; line-height: 1;
  background: none; border: none; cursor: pointer;
  color: var(--charcoal); display: flex;
  align-items: center; justify-content: center;
  transition: var(--trans); flex-shrink: 0;
}
.cart-qty-control .qty-btn:hover { background: var(--cream); color: var(--gold); }
.cart-qty-control .cart-qty-input {
  width: 36px; height: 36px;
  border: none;
  border-left: 1px solid var(--gray-lt);
  border-right: 1px solid var(--gray-lt);
  text-align: center; font-size: 14px;
  font-family: var(--font-sans); color: var(--charcoal);
  outline: none; background: #fff;
  -moz-appearance: textfield;
}
.cart-qty-control .cart-qty-input::-webkit-outer-spin-button,
.cart-qty-control .cart-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cart-item-info { display: flex; align-items: center; gap: 16px; }
.cart-item-info a { flex-shrink: 0; display: block; }
.cart-item-info img { width: 90px; height: 110px; object-fit: cover; border-radius: 2px; display: block; }
.cart-item-name { font-family: var(--font-serif); font-size: 1.1rem; }
.cart-item-meta { font-size: 12px; color: var(--gray); margin-top: 4px; }
.cart-remove { color: var(--gray); font-size: 18px; cursor: pointer; }
.cart-remove:hover { color: var(--red); }
.cart-summary { background: var(--cream2); border-radius: var(--radius); padding: 28px; }
.cart-summary h3 { font-size: 1.4rem; margin-bottom: 20px; }
.cart-summary-row { display: flex; justify-content: space-between; padding: 10px 0; font-size: 14px; border-bottom: 1px solid var(--gray-lt); }
.cart-summary-row:last-of-type { border-bottom: none; font-size: 16px; font-weight: 600; }
.cart-coupon { margin: 16px 0; }
.cart-coupon input {
  width: 100%; padding: 12px 14px;
  border: 1px solid var(--gray-lt); border-radius: var(--radius);
  font-family: var(--font-sans); font-size: 14px; outline: none;
  margin-bottom: 10px;
}
.cart-coupon input:focus { border-color: var(--gold); }

/* ================================================
   CHECKOUT PAGE - ORAIMO + PICKABOO STYLE
   ================================================ */
.checkout-page { padding: 48px 0 80px; background: #f8f8f8; }
.checkout-page-title { font-size: 1.6rem; font-weight: 600; text-align: center; margin-bottom: 32px; font-family: var(--font-sans); }

/* Steps Progress */
.checkout-steps {
  display: flex; align-items: center; justify-content: center;
  gap: 0; margin-bottom: 32px;
}
.checkout-step { display: flex; align-items: center; gap: 8px; }
.step-num {
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 600;
  background: var(--gray-lt); color: var(--gray);
  transition: var(--trans);
}
.checkout-step.active .step-num { background: var(--gold); color: var(--white); }
.checkout-step.done .step-num { background: var(--charcoal); color: var(--white); }
.step-label { font-size: 12px; font-weight: 500; color: var(--gray); }
.checkout-step.active .step-label { color: var(--charcoal); }
.step-divider { width: 60px; height: 1px; background: var(--gray-lt); margin: 0 8px; }

.checkout-layout { display: grid; grid-template-columns: 1fr 380px; gap: 24px; align-items: start; }

/* Checkout Card */
.checkout-card {
  background: var(--white);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(0,0,0,.06);
  margin-bottom: 16px;
}
.checkout-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--gray-lt);
}
.checkout-card-header h3 { font-size: 15px; font-weight: 600; font-family: var(--font-sans); color: var(--charcoal); }
.checkout-card-header .edit-link { font-size: 12px; color: var(--gold); cursor: pointer; }
.checkout-card-body { padding: 20px; }

/* Form Fields */
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-row.single { grid-template-columns: 1fr; }
.form-group { margin-bottom: 16px; }
.form-group label {
  display: block; font-size: 12px; font-weight: 600;
  color: var(--charcoal); margin-bottom: 6px;
  letter-spacing: .03em;
}
.form-group label .req { color: var(--red); margin-left: 2px; }
.form-control {
  width: 100%; padding: 12px 14px;
  border: 1px solid #ddd; border-radius: 6px;
  font-size: 14px; font-family: var(--font-sans);
  color: var(--charcoal); background: var(--white);
  outline: none; transition: var(--trans);
  appearance: none;
}
.form-control:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(13,58,124,.12); }
.form-control.psb-select-locked,
select.psb-select-locked { background-color: #f0f0f0 !important; color: #999 !important; cursor: not-allowed !important; pointer-events: none; opacity: 1; }
.form-control.select-arrow { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.phone-group { display: flex; gap: 0; }
.phone-prefix {
  padding: 12px 14px;
  background: var(--cream); border: 1px solid #ddd; border-right: none;
  border-radius: 6px 0 0 6px; font-size: 14px; color: var(--charcoal);
  white-space: nowrap;
}
.phone-group .form-control { border-radius: 0 6px 6px 0; }

/* Mobile OTP Section */
.mobile-otp-section { text-align: center; padding: 20px 0; }
.mobile-otp-icon { font-size: 40px; margin-bottom: 16px; }
.mobile-otp-title { font-size: 18px; font-weight: 600; margin-bottom: 8px; font-family: var(--font-sans); }
.mobile-otp-sub { font-size: 14px; color: var(--gray); margin-bottom: 24px; }

/* OTP Input Boxes */
.otp-boxes { display: flex; gap: 12px; justify-content: center; margin-bottom: 24px; }
.otp-box {
  width: 56px; height: 64px;
  border: 2px solid var(--gray-lt); border-radius: 8px;
  text-align: center; font-size: 22px; font-weight: 600;
  color: var(--charcoal); font-family: var(--font-sans);
  outline: none; transition: var(--trans);
}
.otp-box:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(13,58,124,.18); }
.otp-box.filled { border-color: var(--gold); }
.resend-otp { font-size: 13px; color: var(--gray); }
.resend-otp a { color: var(--gold); font-weight: 500; }

/* Payment Methods */
.payment-methods { display: flex; flex-direction: column; gap: 12px; }
.payment-method {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  border: 2px solid var(--gray-lt); border-radius: 8px;
  cursor: pointer; transition: var(--trans);
}
.payment-method.selected { border-color: var(--gold); background: rgba(13,58,124,.06); }
.payment-method-left { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; }
.payment-method-icon {
  width: 44px; height: 30px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--cream); border-radius: 4px; font-size: 20px;
}
.payment-method-left > div:not(.payment-method-icon) { min-width: 0; }
.payment-method-name { font-size: 14px; font-weight: 600; color: var(--charcoal); word-break: break-word; overflow-wrap: break-word; }
.payment-method-sub { font-size: 12px; color: var(--gray); margin-top: 1px; word-break: break-word; overflow-wrap: break-word; }
.payment-radio {
  width: 20px; height: 20px; border-radius: 50%;
  border: 2px solid var(--gray-lt); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: var(--trans);
}
.payment-method.selected .payment-radio { border-color: var(--gold); }
.payment-method.selected .payment-radio::after {
  content: ''; width: 10px; height: 10px;
  background: var(--gold); border-radius: 50%;
}

/* Checkout Order Summary */
.checkout-order-summary .order-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--gray-lt);
}
.order-item-img { width: 52px; height: 52px; object-fit: cover; border-radius: 4px; flex-shrink: 0; background: var(--cream); }
.order-item-name { font-size: 13px; font-weight: 500; flex: 1; line-height: 1.4; }
.order-item-qty { font-size: 12px; color: var(--gray); }
.order-item-price { font-size: 14px; font-weight: 600; white-space: nowrap; }
.summary-totals { margin-top: 16px; }
.summary-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: 13px; }
.summary-row.total { border-top: 1px solid var(--gray-lt); padding-top: 14px; margin-top: 8px; font-weight: 700; font-size: 16px; }
.shipping-badge { font-size: 11px; color: var(--gray); }

/* Points & Rewards plugin UI */
.wc_points_rewards_earn_points,
.woocommerce-info.wc_points_redeem_earn_points {
  background: var(--cream); border-left: 4px solid var(--gold);
  padding: 14px 18px; font-size: 14px; margin-bottom: 20px;
  border-radius: var(--radius); line-height: 1.6;
}
.wc_points_rewards_earn_points::before,
.woocommerce-info.wc_points_redeem_earn_points::before { display: none; }
form.wc_points_rewards_apply_discount {
  display: flex; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap;
}
input.wc_points_rewards_apply_discount {
  flex: 1; min-width: 80px; padding: 8px 12px; font-size: 13px;
  border: 1px solid var(--gray-lt); border-radius: 6px;
  background: var(--white); color: var(--charcoal);
}
input.wc_points_rewards_apply_discount:focus {
  outline: none; border-color: var(--gold);
}
form.wc_points_rewards_apply_discount input[type="submit"],
form.wc_points_rewards_apply_discount button[type="submit"] {
  padding: 8px 16px; background: var(--gold); color: var(--white);
  border: none; border-radius: 6px; font-size: 13px; font-weight: 600;
  cursor: pointer; white-space: nowrap; transition: var(--trans);
}
form.wc_points_rewards_apply_discount input[type="submit"]:hover,
form.wc_points_rewards_apply_discount button[type="submit"]:hover {
  background: var(--charcoal);
}

/* Place Order Button */
.place-order-bar {
  position: sticky; bottom: 0;
  background: var(--white); padding: 16px 20px;
  border-top: 1px solid var(--gray-lt);
  display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 -4px 20px rgba(0,0,0,.08); gap: 16px;
}
.place-order-total { font-size: 13px; }
.place-order-total strong { font-size: 18px; display: block; }

/* ================================================
   THANK YOU / ORDER CONFIRMATION
   ================================================ */
.thankyou-page { padding: 64px 0; text-align: center; background: #f8f8f8; min-height: 80vh; }
.thankyou-icon { font-size: 64px; color: var(--gold); margin-bottom: 20px; display: block; }
.thankyou-icon.success svg { color: var(--gold); }
.thankyou-title { font-size: 2rem; font-family: var(--font-sans); font-weight: 700; margin-bottom: 8px; }
.thankyou-sub { font-size: 15px; color: var(--gray); max-width: 440px; margin: 0 auto 32px; line-height: 1.7; }
.order-number { font-size: 16px; margin-bottom: 6px; }
.order-number strong { color: var(--charcoal); }
.points-banner {
  background: var(--gold); color: var(--white);
  padding: 14px 24px; border-radius: var(--radius);
  margin: 20px auto; max-width: 480px;
  display: flex; align-items: center; gap: 10px;
  font-weight: 500; font-size: 14px;
  text-align: left;
}
.customer-info-card {
  background: var(--white); border-radius: 8px;
  padding: 24px; max-width: 480px; margin: 24px auto;
  text-align: left; box-shadow: 0 1px 6px rgba(0,0,0,.06);
}
.customer-info-card h3 { font-size: 15px; font-weight: 700; margin-bottom: 16px; font-family: var(--font-sans); }
.customer-info-row { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--gray-lt); font-size: 13px; }
.customer-info-row:last-child { border-bottom: none; }
.customer-info-label { font-weight: 600; min-width: 90px; color: var(--charcoal); }
.customer-info-value { color: var(--gray); flex: 1; }

/* ================================================
   MY ACCOUNT PAGE
   ================================================ */

/* --- Page header banner --- */
.account-page-header {
  background: var(--cream2);
  border-bottom: 1px solid #d4e3f5;
  text-align: center;
  padding: 52px 0 40px;
}
.account-header-eyebrow {
  font-size: 11px; font-weight: 600; letter-spacing: .2em;
  text-transform: uppercase; color: var(--gold);
  margin-bottom: 10px;
}
.account-page-header h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  color: var(--dark);
  margin-bottom: 8px;
}
.account-page-header h1 em { font-style: italic; font-weight: 400; color: var(--gold); }
.account-header-sub { font-size: 15px; color: var(--gray); }
.account-header-sub strong { color: var(--gold); font-weight: 600; }

/* --- Dashboard welcome panel --- */
.psb-dashboard { display: flex; flex-direction: column; gap: 32px; }
.psb-dash-eyebrow {
  font-size: 11px; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; color: var(--gold); margin-bottom: 8px;
}
.psb-dash-title { font-size: 1.6rem; font-weight: 300; color: var(--dark); margin-bottom: 10px; }
.psb-dash-copy { font-size: 14.5px; color: var(--gray); line-height: 1.75; max-width: 560px; overflow-wrap: break-word; }

/* Dashboard quick-link cards */
.psb-dashboard-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.psb-dash-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background: var(--cream2);
  border: 1px solid #dce8f5;
  border-radius: 10px;
  text-decoration: none;
  transition: border-color .2s, box-shadow .2s, transform .15s;
}
.psb-dash-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 16px rgba(13,26,46,.08);
  transform: translateY(-2px);
  text-decoration: none;
}
.psb-dash-card-icon {
  width: 44px; height: 44px; flex-shrink: 0;
  background: #fff; border: 1px solid #dce8f5;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
  transition: background .2s;
}
.psb-dash-card:hover .psb-dash-card-icon { background: var(--gold); color: #fff; border-color: var(--gold); }
.psb-dash-card-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.psb-dash-card-label { font-size: 13px; font-weight: 600; color: var(--dark); white-space: nowrap; }
.psb-dash-card-value { font-size: 12.5px; color: var(--gray); }
.psb-dash-card-action { font-size: 12px; color: var(--gold); font-weight: 500; margin-top: 4px; }

/* Dashboard explore CTA */
.psb-dashboard-explore {
  text-align: center;
  padding: 28px 24px;
  background: linear-gradient(135deg, var(--cream2), #deeaf8);
  border-radius: 12px;
  border: 1px solid #d0e2f4;
}
.psb-dashboard-explore p { font-size: 14px; color: var(--gray); margin-bottom: 14px; font-style: italic; }

@media (max-width: 520px) {
  .psb-dashboard-cards { grid-template-columns: 1fr; }
}

/* --- Two-column layout --- */
.myaccount-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  padding: 48px 0 64px;
  align-items: flex-start;
}

/* --- Sidebar nav --- */
.account-sidebar {
  position: sticky;
  top: 84px;
}
.psb-account-nav ul {
  list-style: none;
  margin: 0; padding: 0;
}
.psb-account-nav ul li a {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  font-size: 14px;
  color: var(--charcoal);
  border-radius: 8px;
  text-decoration: none;
  transition: background .18s, color .18s;
  margin-bottom: 3px;
  font-weight: 400;
}
.psb-account-nav ul li a svg {
  flex-shrink: 0;
  opacity: .6;
  transition: opacity .18s;
}
.psb-account-nav ul li a span { white-space: nowrap; }
.psb-account-nav ul li a:hover,
.psb-account-nav ul li.is-active a {
  background: var(--cream);
  color: var(--gold);
}
.psb-account-nav ul li a:hover svg,
.psb-account-nav ul li.is-active a svg { opacity: 1; }
.psb-account-nav ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
  color: #c0392b;
  margin-top: 12px;
  border-top: 1px solid var(--gray-lt);
  padding-top: 14px;
  border-radius: 0 0 8px 8px;
}
.psb-account-nav ul li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
  background: #fff3f3;
  color: #c0392b;
}

/* --- Main content panel --- */
.account-main {
  background: #fff;
  border: 1px solid #dce8f5;
  border-radius: 12px;
  padding: 36px 40px;
  min-width: 0;
}

/* WC dashboard greeting */
.woocommerce-MyAccount-content p:first-child {
  font-size: 15px;
  color: var(--charcoal);
  line-height: 1.7;
}
.woocommerce-MyAccount-content a {
  color: var(--gold);
  text-decoration: none;
}
.woocommerce-MyAccount-content a:hover { text-decoration: underline; }

/* Orders table */
.woocommerce-orders-table,
.woocommerce-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.woocommerce-orders-table thead th,
.woocommerce-table thead th {
  font-size: 11px; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; color: var(--gray);
  padding: 10px 14px; border-bottom: 2px solid var(--gray-lt);
  text-align: left;
}
.woocommerce-orders-table tbody td,
.woocommerce-table tbody td {
  padding: 14px 14px; border-bottom: 1px solid var(--gray-lt);
  color: var(--charcoal); vertical-align: middle;
}
.woocommerce-orders-table tbody tr:last-child td,
.woocommerce-table tbody tr:last-child td { border-bottom: none; }
.woocommerce-orders-table__cell-order-actions .button,
.woocommerce-button.button {
  background: var(--gold) !important;
  color: #fff !important;
  border: none !important;
  padding: 7px 16px !important;
  border-radius: 50px !important;
  font-size: 13px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  display: inline-block !important;
}
.woocommerce-orders-table__cell-order-actions .button:hover,
.woocommerce-button.button:hover { background: var(--gold-lt) !important; }

/* Order status badges */
.wc-item-meta, .woocommerce-order-details .woocommerce-table { font-size: 14px; }
mark.order-status { background: var(--cream); color: var(--gold); padding: 4px 10px; border-radius: 50px; font-size: 12px; font-weight: 500; }

/* Address cards */
.woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.woocommerce-Address-title h3 { font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--dark); }
.woocommerce-Address-title .edit { font-size: 13px; color: var(--gold); }
.woocommerce-Address address { font-style: normal; font-size: 14px; color: var(--charcoal); line-height: 1.7; }
.u-columns.wc-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.u-column1, .u-column2 {
  background: var(--cream2);
  border: 1px solid #dce8f5;
  border-radius: 10px;
  padding: 24px;
}
@media (max-width: 600px) {
  .u-columns.wc-columns { grid-template-columns: 1fr; }
}

/* Account forms (edit account / edit address) */
.woocommerce-EditAccountForm fieldset,
.woocommerce-address-fields fieldset {
  border: none; padding: 0; margin: 0 0 24px 0;
}
.woocommerce-EditAccountForm fieldset legend,
.woocommerce-address-fields fieldset legend {
  font-size: 13px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .08em; color: var(--dark);
  margin-bottom: 16px; padding-bottom: 10px;
  border-bottom: 1px solid var(--gray-lt); width: 100%;
}
/* ── WooCommerce form-row: undo the global grid rule, restore block flow ── */
.woocommerce .form-row,
.woocommerce-page .form-row {
  display: block !important;
  float: none;
  width: 100%;
  margin-bottom: 16px;
}

/* Two-column pairs: first-name / last-name side by side */
.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
  float: left !important;
  width: calc(50% - 8px) !important;
  clear: none;
}
.woocommerce form .form-row-first { margin-right: 16px !important; }
.woocommerce form .form-row-last  { float: right !important; margin-right: 0 !important; }
.woocommerce form .clear,
.woocommerce .clear { clear: both; display: block; }

/* Input wrapper span → block so input fills width */
.woocommerce .woocommerce-input-wrapper { display: block; }

/* Labels above inputs */
.woocommerce .form-row label {
  font-size: 13px; color: var(--charcoal); font-weight: 500;
  margin-bottom: 6px; display: block;
}

/* All WC inputs and selects */
.woocommerce .form-row input.input-text,
.woocommerce .form-row input.woocommerce-Input,
.woocommerce .form-row input[type="email"],
.woocommerce .form-row input[type="password"],
.woocommerce .form-row input[type="text"],
.woocommerce .form-row select {
  width: 100%; padding: 11px 14px;
  border: 1.5px solid #c8d8ef; border-radius: 8px;
  font-size: 14px; font-family: var(--font-sans);
  color: var(--charcoal); background: #fff; outline: none;
  transition: border-color .2s;
  box-sizing: border-box;
}
.woocommerce .form-row input.input-text:focus,
.woocommerce .form-row input[type="email"]:focus,
.woocommerce .form-row input[type="password"]:focus,
.woocommerce .form-row input[type="text"]:focus,
.woocommerce .form-row select:focus { border-color: var(--gold); }

/* Password show/hide toggle */
.woocommerce .woocommerce-Input--password + .show-password-input,
.woocommerce-Input--password + .show-password-input { top: 10px; right: 12px; }
.woocommerce .woocommerce-Button,
.woocommerce button[type="submit"]:not(.hdr-search-bar__btn),
.woocommerce input[type="submit"] {
  background: var(--gold) !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 28px !important;
  border-radius: 50px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  font-family: var(--font-sans) !important;
  cursor: pointer !important;
  transition: background .2s !important;
}
.woocommerce .woocommerce-Button:hover,
.woocommerce button[type="submit"]:not(.hdr-search-bar__btn):hover,
.woocommerce input[type="submit"]:hover { background: var(--gold-lt) !important; }

/* Login / Register (not-logged-in) */
.login-box { max-width: 440px; margin: 0 auto; }
.login-box-title { font-size: 1.8rem; text-align: center; margin-bottom: 8px; }
.login-box-sub { text-align: center; color: var(--gray); font-size: 14px; margin-bottom: 28px; }
.login-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; }
.login-divider::before, .login-divider::after { content: ''; flex: 1; height: 1px; background: var(--gray-lt); }
.login-divider span { color: var(--gray); font-size: 13px; white-space: nowrap; }
.social-login { display: flex; flex-direction: column; gap: 10px; }
.social-btn {
  display: flex; align-items: center; gap: 12px;
  padding: 13px 20px;
  border: 1px solid var(--gray-lt); border-radius: var(--radius);
  background: var(--white); font-size: 14px; font-weight: 500;
  color: var(--charcoal); transition: var(--trans); cursor: pointer;
  font-family: var(--font-sans); width: 100%;
}
.social-btn:hover { border-color: var(--charcoal); background: var(--cream); }
.social-btn img { width: 20px; }

/* WC not-logged-in form columns */
.woocommerce-account:not(.logged-in) .account-main .woocommerce { max-width: 100%; }
.woocommerce-account:not(.logged-in) .u-columns {
  display: grid; grid-template-columns: 1fr 1fr; gap: 36px;
}
@media (max-width: 640px) {
  .woocommerce-account:not(.logged-in) .u-columns { grid-template-columns: 1fr; }
}

/* ── Login/Register page desktop container ──────────────────────
   When WC renders via blocks (no classic shortcode), our myaccount
   template wrapper is bypassed. This provides the desktop layout. */
.psb-login-wrap {
  max-width: 640px;
  margin: 0 auto 64px;
  background: #fff;
  border: 1px solid #dce8f5;
  border-radius: 12px;
  padding: 36px 44px;
}
@media (max-width: 768px) {
  .psb-login-wrap {
    max-width: 100%;
    border: none; border-radius: 0;
    padding: 0;
    background: transparent;
    margin-bottom: 32px;
  }
}
/* On desktop, registration section inside the card needs no extra side padding */
@media (min-width: 769px) {
  .psb-login-wrap .psb-reg-section { padding: 0 0 12px !important; }
}

/* ================================================
   PAGE TEMPLATES
   ================================================ */
.page-hero-banner {
  position: relative;
  background: var(--cream2);
  text-align: center;
  padding: 56px 24px;
  border-bottom: 1px solid var(--gray-lt);
}
.page-hero-banner h1 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 300; }
.page-content { padding: 64px 0; }
.page-content .container { max-width: 800px; }
.page-content h2 { font-size: 1.8rem; margin: 32px 0 14px; color: var(--charcoal); }
.page-content p { margin-bottom: 16px; line-height: 1.9; color: #444; }
.page-content ul { padding-left: 20px; margin-bottom: 16px; }
.page-content ul li { margin-bottom: 8px; line-height: 1.8; }

/* ================================================
   BREADCRUMB
   ================================================ */
.psb-breadcrumb { padding: 14px 0; font-size: 12px; color: var(--gray); }
.psb-breadcrumb a:hover { color: var(--gold); }
.psb-breadcrumb span { margin: 0 6px; }

/* ================================================
   FLOATING CART (MOBILE)
   ================================================ */
.floating-cart {
  display: none;
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--dark); color: var(--white);
  padding: 14px 20px;
  align-items: center; justify-content: space-between;
  z-index: 200;
  box-shadow: 0 -4px 20px rgba(0,0,0,.2);
}

/* ================================================
   MOBILE STYLES
   ================================================ */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .psb-products-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .collections-grid { grid-template-columns: repeat(2, 1fr); }
  .checkout-layout { grid-template-columns: 1fr; }
  .checkout-layout .checkout-order-summary-wrap { order: -1; }
  .cart-layout { grid-template-columns: 1fr; }
  .single-product-layout { grid-template-columns: 1fr; gap: 36px; }
  .product-gallery { position: relative; top: 0; }
  .quick-cats-grid { grid-template-columns: repeat(2, 1fr); }
  /* Tablet: keep sidebar side-by-side, just narrower */
  .shop-layout { gap: 0; }
  .shop-sidebar { width: 180px; padding-right: 20px; }
  .shop-main { padding-left: 20px; }
  .shop-main .psb-products-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── My Account: 768–900px squeeze fix ───────────────────────────────────
   At this range the layout is still 2-column (220px sidebar + 1fr content)
   but the viewport is narrow, making the content column and its 40px
   horizontal padding feel cramped. Tighten spacing to reclaim ~40px. */
@media (max-width: 900px) {
  .myaccount-layout { gap: 20px; padding: 32px 0 48px; }
  .account-main { padding: 28px 24px; }
}

@media (max-width: 768px) {
  .main-nav { display: none; }
  .menu-toggle { display: flex; }
  .collections-grid { grid-template-columns: 1fr; }
  .promise-section { grid-template-columns: 1fr; }
  .promise-image { aspect-ratio: 16/9; }
  .psb-products-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .footer-grid { grid-template-columns: 1fr; }
  .hero-section { min-height: 70vh; }
  .hero-content { max-width: 100%; }
  .hero-title { font-size: clamp(2.2rem, 9vw, 3.5rem); }
  .newsletter-form { flex-direction: column; }
  .promise-content { padding: 40px 24px; }
  .checkout-steps .step-label { display: none; }
  .step-divider { width: 30px; }
  .form-row { grid-template-columns: 1fr; }
  /* WC form pairs collapse to full-width on mobile */
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last {
    float: none !important; width: 100% !important; margin-right: 0 !important;
  }
  .delivery-grid { grid-template-columns: 1fr; }
  .quick-cats-grid { grid-template-columns: repeat(2, 1fr); }
  .floating-cart { display: flex; }
  .single-product-layout { padding-bottom: 100px; }
  .product-actions-wrap { flex-direction: column; }
  .product-actions-wrap .btn { min-width: unset; }
  /* Gallery thumbs: smaller on mobile, horizontal scroll */
  .gallery-thumb { width: 64px; height: 64px; }
  /* Prevent description/accordion text from overflowing */
  .accordion-body,
  .accordion-body p,
  .accordion-body * { overflow-wrap: anywhere; word-break: break-word; max-width: 100%; }
  .myaccount-layout { grid-template-columns: 1fr; }
  .account-sidebar { position: relative; top: 0; }
  .account-main { padding: 24px 20px; }
  /* Pill nav: icons hidden on mobile — pills are compact, no room for SVG */
  .psb-account-nav ul { display: flex; flex-wrap: wrap; gap: 6px; }
  .psb-account-nav ul li a { padding: 8px 12px; font-size: 13px; margin-bottom: 0; gap: 7px; }
  .psb-account-nav ul li a svg { display: none; }
  .psb-account-nav ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
    margin-top: 0; border-top: none; padding-top: 8px;
  }
  .u-columns.wc-columns { grid-template-columns: 1fr; }

  /* ── Mobile shop: sidebar hidden, shown as bottom drawer ── */
  .shop-layout { flex-direction: column; gap: 0; padding: 20px 0; }

  /* Sidebar: removed from normal flow, becomes a fixed bottom sheet */
  .shop-sidebar {
    display: none;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    top: auto;
    width: 100% !important;
    max-height: 82dvh;
    overflow-y: auto;
    background: #fff;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -6px 48px rgba(0,0,0,.22);
    z-index: 1200;
    padding: 0 20px 40px;
    -webkit-overflow-scrolling: touch;
  }
  .shop-sidebar.psb-open { display: block; }

  /* Drag-handle bar at top of drawer */
  .shop-sidebar::before {
    content: '';
    display: block;
    width: 40px; height: 4px;
    background: #d0d8e8;
    border-radius: 4px;
    margin: 14px auto 20px;
  }

  /* Close × button inside drawer header */
  .psb-filter-drawer-head {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 14px;
    border-bottom: 1px solid #eef0f4;
    margin-bottom: 4px;
  }
  .psb-filter-drawer-head strong { font-size: 15px; color: #0d1a2e; }
  .psb-filter-close-btn {
    background: none; border: 1.5px solid #d0d8e8;
    border-radius: 50%; width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: #555; font-size: 18px; line-height: 1;
    padding: 0;
  }

  /* Dim overlay behind drawer */
  .psb-filter-overlay {
    display: none;
    position: fixed; inset: 0;
    background: rgba(13,26,46,.45);
    z-index: 1199;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .psb-filter-overlay.psb-open { display: block; }

  /* "Filters" button visible only on mobile */
  .mobile-filter-btn {
    display: inline-flex !important;
    align-items: center; gap: 6px;
    background: #0d1a2e; color: #fff;
    border: none; border-radius: 8px;
    padding: 9px 16px; font-size: 13px;
    font-weight: 600; cursor: pointer;
    letter-spacing: .02em; flex-shrink: 0;
  }
  .mobile-filter-btn svg { opacity: .85; }

  /* Shop toolbar adjustments on mobile */
  .shop-toolbar { flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }

  /* ── Mobile Cart: collapse 5-column table into stacked cards ── */
  .cart-table thead { display: none; }
  .cart-table,
  .cart-table tbody,
  .cart-table tr,
  .cart-table td { display: block !important; width: auto !important; }
  .cart-table tr {
    padding: 16px 0;
    border-bottom: 1px solid var(--gray-lt);
    position: relative;
  }
  .cart-table tr:last-child { border-bottom: none; }
  /* Product cell: full width at top of each row */
  .cart-table td:first-child { padding: 0 0 12px 0; border: none; }
  /* Price · Qty · Total · Remove: compact inline row */
  .cart-table td:not(:first-child) {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    padding: 4px 14px 4px 0;
    border: none;
    font-size: 14px;
  }
  /* "Remove" td: float to right side */
  .cart-table td:last-child {
    float: right;
    padding: 0;
    position: absolute;
    top: 16px;
    right: 0;
  }
  /* Column labels via pseudo-elements */
  .cart-table td:nth-child(2)::before { content: 'Price: '; font-size: 11px; color: var(--gray); }
  .cart-table td:nth-child(4)::before { content: 'Total: '; font-size: 11px; color: var(--gray); font-weight: 600; }
  /* Smaller product image on mobile */
  .cart-item-info img { width: 72px; height: 88px; }
  .cart-item-name { font-size: 0.95rem; line-height: 1.4; }
  /* Remove button: always right-aligned, clear of product name */
  .cart-remove { display: block; padding: 4px; }
  /* Qty control: compact on mobile */
  .cart-table .qty-control { min-width: unset; }
  .cart-table .qty-control input.qty { width: 40px; padding: 6px 4px; text-align: center; }
  /* Coupon row: full-width inputs on mobile */
  .cart-coupon-row { flex-direction: column !important; }
  .cart-coupon-row > div { width: 100% !important; }
  .cart-coupon-row input.form-control { max-width: 100% !important; }
}

@media (min-width: 769px) {
  /* Hide mobile-only elements on desktop/tablet */
  .mobile-filter-btn { display: none !important; }
  .psb-filter-overlay { display: none !important; }
  .psb-filter-drawer-head { display: none !important; }
}

@media (max-width: 480px) {
  .container { padding: 0 16px; }
  .psb-products-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .card-info .product-name { font-size: 0.95rem; }
  .card-info .price { font-size: 13px; }
  .otp-boxes { gap: 8px; }
  .otp-box { width: 50px; height: 58px; font-size: 20px; }
  .checkout-layout { padding: 16px; }
}

/* ================================================
   WOOCOMMERCE OVERRIDES (keep native)
   ================================================ */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info {
  background: var(--cream); border-left: 4px solid var(--gold);
  padding: 14px 18px; font-size: 14px; margin-bottom: 20px;
  border-radius: var(--radius); display: flex; align-items: center; gap: 10px;
}
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before { display: none; }
.woocommerce-notices-wrapper .woocommerce-message .button,
.woocommerce-notices-wrapper .woocommerce-info .button {
  flex-shrink: 0; margin-left: auto; background: var(--dark); color: var(--white);
  padding: 8px 16px; border-radius: 6px; font-size: 13px; font-weight: 500;
  text-decoration: none; white-space: nowrap;
}
.woocommerce-notices-wrapper .woocommerce-message .button:hover,
.woocommerce-notices-wrapper .woocommerce-info .button:hover { background: var(--gold); color: var(--dark); }
/* v2.18.4 — themed WooCommerce error notice.
   Works both inside .woocommerce-notices-wrapper AND standalone (the checkout
   shortcode prints "There are some issues with the items in your cart..."
   directly into page content with NO wrapper, so the wrapper-scoped rule
   below is intentionally redundant — keeping both for safety). */
.woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-error {
  max-width: 768px;
  margin: 32px auto 16px;
  padding: 18px 20px 18px 56px;
  background: #fff3f3;
  border: 1px solid #f5c2c7;
  border-left: 4px solid var(--red);
  border-radius: var(--radius);
  font-size: 14px;
  line-height: 1.55;
  color: #842029;
  list-style: none;
  position: relative;
  box-shadow: 0 2px 8px rgba(220,53,69,.06);
}
/* Warning icon (inline SVG, no extra HTTP request) */
.woocommerce-error::before {
  content: "";
  position: absolute;
  left: 18px; top: 18px;
  width: 22px; height: 22px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dc3545' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='12'/><line x1='12' y1='16' x2='12.01' y2='16'/></svg>") center/contain no-repeat;
  flex-shrink: 0;
}
.woocommerce-error li,
.woocommerce-notices-wrapper .woocommerce-error li {
  padding: 0; margin: 0; list-style: none;
}
.woocommerce-error li::before,
.woocommerce-notices-wrapper .woocommerce-error li::before { display: none; }

/* Themed "Return to cart" button — scoped strictly to the checkout-error
   sibling pattern WC emits: <ul.woocommerce-error> immediately followed by
   either <a.button.wc-backward> or <p><a.button.wc-backward></a></p>.
   This deliberately avoids the bare .wc-backward class so generic
   "back/return" links elsewhere (cart-empty, my-account, order-received)
   keep their existing styles. */
.woocommerce-error + a.button.wc-backward,
.woocommerce-error + p a.button.wc-backward {
  display: block;
  width: max-content;
  max-width: calc(100% - 32px);
  margin: 0 auto 48px;
  padding: 12px 22px;
  background: var(--dark);
  color: var(--white) !important;
  border: none;
  border-radius: 6px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: .2px;
  transition: var(--trans);
  cursor: pointer;
}
.woocommerce-error + a.button.wc-backward::before,
.woocommerce-error + p a.button.wc-backward::before {
  content: "←  ";
  white-space: pre;
}
.woocommerce-error + a.button.wc-backward:hover,
.woocommerce-error + p a.button.wc-backward:hover {
  background: var(--gold);
  color: var(--white) !important;
}
/* Centre the wrapping <p> if WC nested the link in one. */
.woocommerce-error + p {
  max-width: 768px;
  margin: 0 auto 48px;
  text-align: center;
}
.woocommerce-error + p a.button.wc-backward { margin-bottom: 0; }

/* Mobile tweaks */
@media (max-width: 600px) {
  .woocommerce-error,
  .woocommerce-notices-wrapper .woocommerce-error {
    margin: 20px 16px 12px;
    padding: 14px 16px 14px 48px;
    font-size: 13px;
  }
  .woocommerce-error::before { left: 14px; top: 16px; width: 20px; height: 20px; }
  .woocommerce-error + a.button.wc-backward,
  .woocommerce-error + p a.button.wc-backward {
    margin: 0 auto 32px;
    padding: 10px 18px;
    font-size: 13px;
  }
}
.woocommerce-form-login .form-row input,
.woocommerce-form-register .form-row input {
  width: 100%; padding: 12px 14px;
  border: 1px solid #ddd; border-radius: 6px;
  font-size: 14px; font-family: var(--font-sans);
  outline: none; transition: var(--trans);
}
.woocommerce-form-login .form-row input:focus { border-color: var(--gold); }

/* ================================================
   MOBILE OTP WIDGET
   ================================================ */
.mobile-otp-widget {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.6); z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.mobile-otp-modal {
  background: var(--white); border-radius: 12px;
  padding: 40px 32px; max-width: 420px; width: 100%;
  text-align: center;
}
.otp-modal-logo { font-family: var(--font-serif); font-size: 24px; margin-bottom: 24px; color: var(--charcoal); }
.otp-modal-logo span { color: var(--gold); }

/* Sticky Mobile Checkout Bar */
.sticky-checkout-bar {
  display: none;
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--white); padding: 12px 16px;
  box-shadow: 0 -4px 20px rgba(0,0,0,.1);
  z-index: 200; align-items: center; justify-content: space-between; gap: 12px;
}
@media (max-width: 768px) {
  .sticky-checkout-bar { display: flex; }
}
.sticky-price { font-family: var(--font-sans); }
.sticky-price .label { font-size: 11px; color: var(--gray); }
.sticky-price .amount { font-size: 20px; font-weight: 700; color: var(--charcoal); }

/* Loader */
.psb-loading {
  display: inline-block; width: 20px; height: 20px;
  border: 2px solid rgba(0,0,0,.1); border-top-color: var(--gold);
  border-radius: 50%; animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Toast Notification */
.psb-toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: var(--dark); color: var(--white);
  padding: 12px 24px; border-radius: var(--radius);
  font-size: 14px; z-index: 9999; white-space: nowrap;
  opacity: 0; transition: opacity .3s; pointer-events: none;
  display: flex; align-items: center; gap: 10px;
}
.psb-toast.show { opacity: 1; }
.psb-toast.success { background: #1a5c33; }
.psb-toast.error { background: #8b1a1a; }

/* ════════════════════════════════════════════════════════
   LIGHT HEADER — v1.4.0 brand redesign
   ════════════════════════════════════════════════════════ */

/* Header: white background */
#site-header {
  background: #ffffff !important;
  border-bottom: 1px solid rgba(0,0,0,.07) !important;
  box-shadow: 0 2px 16px rgba(0,0,0,.05) !important;
}

/* Logo: dark text */
.site-logo .text-logo { color: #0d0d0d !important; font-weight: 600; }
.site-logo .text-logo span { color: var(--gold) !important; }
.site-logo img { height: 36px; }

/* Nav: pill-shaped container with border */
.main-nav > ul {
  background: rgba(255,255,255,.9);
  border: 1.5px solid rgba(0,0,0,.10);
  border-radius: 50px;
  padding: 4px 8px;
}
.main-nav .menu-item > a {
  color: rgba(0,0,0,.62) !important;
  font-size: 13px !important;
  letter-spacing: .03em !important;
  text-transform: none !important;
  font-weight: 500 !important;
  border-radius: 50px;
}
.main-nav .menu-item > a:hover,
.main-nav .menu-item.current-menu-item > a {
  color: #0d0d0d !important;
  background: rgba(0,0,0,.05) !important;
}

/* Dropdown menus: white */
.main-nav .menu-item-has-children .sub-menu {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,.09) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.09) !important;
}
.main-nav .sub-menu .menu-item a { color: rgba(0,0,0,.65) !important; }
.main-nav .sub-menu .menu-item a:hover { color: #0d0d0d !important; background: rgba(0,0,0,.03) !important; }

/* Header action icons: dark */
.header-actions { gap: 10px !important; }
.header-actions > a,
.header-actions > button { color: rgba(0,0,0,.6) !important; }
.header-actions > a:hover,
.header-actions > button:hover { color: #0d0d0d !important; }

/* Icon-only button */
.hdr-icon-btn {
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  border: none; background: transparent;
  color: rgba(0,0,0,.6) !important;
  cursor: pointer;
  transition: background .2s, color .2s;
  padding: 0;
}
.hdr-icon-btn:hover { background: rgba(0,0,0,.06) !important; color: #0d0d0d !important; }

/* Cart button: pill with border */
.hdr-cart-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: transparent !important;
  border: 1.5px solid rgba(0,0,0,.14) !important;
  border-radius: 50px !important;
  padding: 7px 14px !important;
  color: rgba(0,0,0,.68) !important;
  font-size: 13px !important;
  font-family: var(--font-sans) !important;
  font-weight: 500 !important;
  transition: border-color .2s, color .2s !important;
  text-decoration: none !important;
  position: relative !important;
}
.hdr-cart-btn:hover { border-color: #0d0d0d !important; color: #0d0d0d !important; }
.hdr-cart-btn .cart-count {
  position: static !important;
  background: #0d0d0d !important;
  color: #fff !important;
  width: 16px !important; height: 16px !important;
  font-size: 9px !important;
}

/* ── Header inline search bar ── */
.hdr-search-bar {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: 262px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(100,140,210,.22);
  border-radius: 50px;
  padding: 5px 5px 5px 12px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: border-color .2s, box-shadow .2s;
  position: relative;
  z-index: 600;
}
.hdr-search-bar:focus-within {
  border-color: rgba(13,26,46,.35);
  box-shadow: 0 0 0 3px rgba(13,26,46,.07);
}
.hdr-search-bar__icon {
  flex-shrink: 0;
  color: #aaa;
  pointer-events: none;
}
.hdr-search-bar__input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 13px;
  color: #0d1a2e;
  padding: 4px 2px;
  outline: none;
  font-family: var(--font-sans);
  min-width: 0;
  /* suppress native browser search icon (magnifying glass / × button) */
  -webkit-appearance: none;
  appearance: none;
}
/* hide all browser-native search input decorations */
.hdr-search-bar__input::-webkit-search-decoration,
.hdr-search-bar__input::-webkit-search-cancel-button,
.hdr-search-bar__input::-webkit-search-results-button,
.hdr-search-bar__input::-webkit-search-results-decoration { display: none; -webkit-appearance: none; }
.hdr-search-bar__input::placeholder { color: #bbb; }
.hdr-search-bar__btn {
  flex-shrink: 0;
  background: #0d1a2e !important;
  border: none !important;
  color: #fff !important;
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  background-image: none !important;
  transition: background .18s;
}
.hdr-search-bar__btn svg {
  display: block !important;
  stroke: #ffffff !important;
  fill: none !important;
  overflow: visible !important;
  pointer-events: none;
}
.hdr-search-bar__btn:hover { background: #1a3050 !important; }
/* Reinforce on WooCommerce product pages (extra cascade protection) */
body.woocommerce .hdr-search-bar__btn,
body.woocommerce-page .hdr-search-bar__btn {
  background: #0d1a2e !important;
  border-radius: 50% !important;
  width: 30px !important;
  height: 30px !important;
  display: flex !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
}
body.woocommerce .hdr-search-bar__btn svg,
body.woocommerce-page .hdr-search-bar__btn svg {
  stroke: #ffffff !important;
  fill: none !important;
  display: block !important;
}
@media (max-width: 768px) {
  .hdr-search-bar { display: none !important; }
}

/* Register button — filled dark pill, always visible regardless of plugin CSS */
#site-header .header-actions a.hdr-register-btn,
#site-header .header-actions .hdr-register-btn {
  display: inline-flex !important;
  align-items: center !important;
  background-color: #0d1a2e !important;
  background: #0d1a2e !important;
  color: #ffffff !important;
  border: 1.5px solid #0d1a2e !important;
  border-radius: 50px !important;
  padding: 7px 16px !important;
  font-size: 13px !important;
  font-family: var(--font-sans) !important;
  font-weight: 500 !important;
  transition: background .2s, color .2s, opacity .2s !important;
  text-decoration: none !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
#site-header .header-actions a.hdr-register-btn:hover,
#site-header .header-actions .hdr-register-btn:hover {
  background-color: #1a3050 !important;
  background: #1a3050 !important;
  border-color: #1a3050 !important;
  color: #ffffff !important;
}

/* Account icon button */
.hdr-account-btn {
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  border: 1.5px solid rgba(0,0,0,.14);
  color: rgba(0,0,0,.6) !important;
  transition: border-color .2s, color .2s;
  text-decoration: none;
}
.hdr-account-btn:hover { border-color: #0d0d0d; color: #0d0d0d !important; }

/* Hamburger: dark */
.menu-toggle { color: rgba(0,0,0,.7) !important; }
.menu-toggle:hover { color: #0d0d0d !important; }

/* Search overlay: white/light */
.search-overlay {
  background: rgba(255,255,255,.97) !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
  backdrop-filter: blur(12px);
}
.search-form input[type="search"],
.search-form input[type="text"] {
  background: rgba(0,0,0,.04) !important;
  border: 1px solid rgba(0,0,0,.12) !important;
  color: #0d0d0d !important;
}
.search-form input::placeholder { color: rgba(0,0,0,.35) !important; }
#search-close { color: rgba(0,0,0,.4) !important; }

/* ════════════════════════════════════════════════════════
   GLOBAL LIGHT THEME — v1.4.0
   Updates CSS variables and section overrides so the
   entire site uses the light/minimal colour palette.
   ════════════════════════════════════════════════════════ */

/* Override CSS variables for light theme */
:root {
  --card-bg:  #ffffff;
  --border:   rgba(0,0,0,0.08);
}

/* ══════════════════════════════════════════════════════
   GLOBAL: replace EVERY gold accent with navy #0d1a2e
   ══════════════════════════════════════════════════════ */
body {
  --gold:    #0d1a2e;
  --gold-lt: #1a3050;
  --cream:   #f2f6fc;   /* very pale blue-white, matching demo sections */
  --cream2:  #f7f9fc;   /* near-white for alternating sections */
}

/* ── Global body: near-white with the barest cool tint, matching demo ── */
body {
  background-color: #f7f9fc !important;
}

/* Sections that should feel "content white" — product cards stay pure white */
.products-section {
  background: #f7f9fc !important;
}
.quick-categories {
  background: #f7f9fc !important;
}

/* Section heading colors update for light bg */
.section-title { color: #0d0d0d !important; }
.eyebrow       { color: #5c7fa8 !important; letter-spacing: .12em; text-transform: uppercase; font-size: 11px; font-weight: 600; }

/* Product cards on light bg — perfect for white-background product photos */
.psb-product-card {
  background: #fff !important;
}

/* Mini product card bg in hero — slightly more opaque on the blue bg */
.phl-mini-card {
  background: rgba(255,255,255,.90) !important;
}

/* Feature attar row — update to match page bg */
/* (inline style overridden via !important on section) */

/* Category section: slightly deeper tint for visual separation */
.quick-categories { background: #eef5fd !important; }

/* Related products section */
.related-section { background: #eef5fd !important; }

/* WC product page body bg */
.single-product { background: #f7f9fc !important; }

/* ── Logo: transparent-bg PNG — no filter, no dark pill needed ── */
.psb-logo-link,
#site-header .custom-logo-link {
  display:         inline-flex;
  align-items:     center;
  background:      transparent;
  text-decoration: none;
  line-height:     1;
}
.psb-logo-img,
#site-header .custom-logo-link .custom-logo {
  filter:    none !important;
  height:    44px;
  width:     auto;
  max-width: 200px;
  display:   block;
}
.custom-logo-link img { display: block; }

/* True nav centering — logo and actions each take equal flex space */
.header-inner {
  gap: 16px !important;
}
.site-logo {
  flex: 1 !important;
  min-width: 0;
}
.header-actions {
  flex: 1 !important;
  justify-content: flex-end !important;
  display: flex !important;
  align-items: center !important;
}

/* Trust badge used as a link — remove default link underline/colour */
a.phl-trust {
  text-decoration: none !important;
  transition: box-shadow .2s, transform .2s;
}
a.phl-trust:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(20,50,120,.10);
}

/* ── Section bg overrides for sections that used var(--black) ── */

/* Quick-category card — top-left layout: letter then label stacked */
.psb-cat-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  padding: 14px 14px 14px 16px !important;
}
.psb-cat-card .quick-cat-icon {
  position: static !important;
  display: block !important;
  font-size: 3rem !important;
  font-family: var(--font-serif, Georgia, serif) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  opacity: .42 !important;
  background: transparent !important;
  pointer-events: none !important;
  margin-bottom: 6px !important;
  padding: 0 !important;
}
.psb-cat-card .quick-cat-label {
  position: static !important;
  padding: 0 !important;
}

/* Best Sellers eyebrow */
.eyebrow { color: var(--charcoal); }

/* Products section separator */
.products-section { border-top: 1px solid rgba(0,0,0,0.05); }

/* Attar product thumbnails — border light */
.section-feature-thumbs img {
  border: 1px solid rgba(0,0,0,.07) !important;
}

/* Split section — keep image overlay depth, lightened gradients */
.psb-split-section { background: var(--white); }

/* Promise section trust boxes */
.promise-trust-box {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.07) !important;
}
.promise-trust-box h4 { color: var(--black) !important; }
.promise-trust-box p  { color: var(--gray) !important; }

/* Announcement bar stays gold — looks sharp against white header */
.announcement-bar { position: relative; z-index: 1001; }

/* Section eyebrows — use dark instead of gold where they appear on white bg */
.products-section .eyebrow { color: var(--charcoal); }

/* View-all link: dark, consistent */
.view-all-link { color: var(--charcoal); border-color: var(--charcoal); }
.view-all-link:hover { color: var(--black); border-color: var(--black); }

/* Product card: subtle shadow on white bg for depth */
.psb-product-card {
  border-radius: 12px;
  overflow: hidden;
  transition: transform .25s, box-shadow .25s;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.psb-product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(0,0,0,.10);
}
.psb-product-card .card-image { border-radius: 0; }

/* Product card info background — white */
.psb-product-card .card-info {
  background: #fff;
  padding: 14px 12px 16px;
  border-top: 1px solid rgba(0,0,0,.05);
}
.card-info .product-name a { color: var(--charcoal); }
.card-info .product-name a:hover { color: var(--black); }
.card-info .price { color: var(--black); font-weight: 600; }

/* "Add to cart" button on light cards */
.card-actions .add-to-cart-btn {
  background: rgba(0,0,0,.85) !important;
}
.card-actions .add-to-cart-btn:hover {
  background: #0d0d0d !important;
  color: #fff !important;
}

/* Newsletter section — light blue matching demo palette */
.newsletter-section {
  background: linear-gradient(135deg, #e4f0fd 0%, #ccdff8 100%) !important;
}
.newsletter-section h2 { color: #0d1a2e !important; }
.newsletter-section p  { color: rgba(13,26,46,.65) !important; }
.newsletter-form input {
  background: rgba(255,255,255,.85) !important;
  border: 1px solid rgba(100,150,220,.25) !important;
}
.newsletter-form button {
  background: #0d0d0d !important;
  color: #fff !important;
  border-radius: 50px !important;
}

/* Quick category tiles — light theme: dark text on light-tinted cards */
.quick-cat,
.psb-cat-card {
  background: var(--cat-bg, #d4e8f8) !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 16px rgba(20,50,120,.08) !important;
  transition: transform .25s, box-shadow .25s !important;
}
.psb-cat-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 10px 32px rgba(20,50,120,.14) !important;
}
/* Icon: colour only — layout/position come from the base rule above */
.psb-cat-card .quick-cat-icon {
  color: #0d1a2e !important;
  background: transparent !important;
}
/* Dark text on light tiles */
.psb-cat-card .quick-cat-label h4 { color: #1a1a2e !important; }
.psb-cat-card .quick-cat-label p  { color: rgba(13,26,46,.60) !important; }
.psb-cat-card .quick-cat-label    { z-index: 2 !important; }

/* Best Seller / default product badge — navy blue to match theme, not gold */
.psb-product-card .card-badge {
  background: #0d1a2e !important;
  color: #ffffff !important;
  border-radius: 50px !important;
}
/* Sale badge stays red */
.psb-product-card .card-badge.badge-sale {
  background: var(--red) !important;
  color: var(--white) !important;
}

/* ══════════════════════════════════════════
   FOOTER — light theme to match the page
   ══════════════════════════════════════════ */
.site-footer {
  background: #eef4ff !important;
  color: #3a4a6a !important;
}
.footer-top { border-bottom: 1px solid rgba(0,0,0,.08) !important; }
.footer-col h4 { color: #0d1a2e !important; }
.footer-col p  { color: #4a5a7a !important; }
.footer-col a  { color: #3a6090 !important; }
.footer-col a:hover { color: #0d1a2e !important; }
.footer-contact strong { color: #0d1a2e !important; }
.footer-delivery-info strong { color: #0d1a2e !important; }
.footer-bottom {
  color: #6a7a9a !important;
  border-top: 1px solid rgba(0,0,0,.06);
}
.footer-bottom a { color: #3a6090 !important; }
.footer-bottom a:hover { color: #0d1a2e !important; }
.social-links a {
  background: rgba(13,26,46,.08) !important;
  color: #0d1a2e !important;
}
.social-links a:hover {
  background: #0d1a2e !important;
  color: #fff !important;
}
.footer-payment-logos img { opacity: .75 !important; filter: none !important; }

/* ══════════════════════════════════════════
   ACTION BUTTONS — replace gold with navy
   ══════════════════════════════════════════ */
.btn-gold {
  background: #0d1a2e !important;
  color: #fff !important;
  border-color: #0d1a2e !important;
}
.btn-gold:hover {
  background: #1a3050 !important;
  color: #fff !important;
  border-color: #1a3050 !important;
}
/* Card add-to-cart hover */
.card-actions .add-to-cart-btn:hover {
  background: #0d1a2e !important;
  color: #fff !important;
}
/* Product page — qty/note focus accent */
.single-product-layout select:focus,
.single-product-layout input[type="number"]:focus { border-color: #0d1a2e !important; }
/* Gallery active thumb */
.gallery-thumb.active,
.gallery-thumb:hover { border-color: #0d1a2e !important; }
/* Discount badge on product page */
.price-discount { background: #0d1a2e !important; color: #fff !important; }
/* Checkout step active dot */
.checkout-steps .step-dot.active { background: #0d1a2e !important; }
/* Shop sidebar filter checkbox */
.filter-checkbox.checked { background: #0d1a2e !important; border-color: #0d1a2e !important; }
.sort-select:focus,
.price-range-inputs input:focus { border-color: #0d1a2e !important; }

/* ── btn-dark variant (light theme CTA) ── */
.btn-dark {
  background: var(--black) !important;
  color: var(--white) !important;
  border-color: var(--black) !important;
}
.btn-dark:hover {
  background: #2d2d2d !important;
  color: var(--white) !important;
}

/* ── Single Product page — light theme ── */
.single-product {
  background: #fff;
}
.psb-breadcrumb-wrap {
  background: #f8f9fb;
  padding: 14px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.psb-breadcrumb-wrap a, .psb-breadcrumb-wrap span {
  color: var(--gray) !important;
}
.psb-breadcrumb-wrap a:hover { color: var(--black) !important; }

.gallery-main {
  background: #f4f6fb !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}
.gallery-thumb {
  border-radius: 10px !important;
  background: #f4f6fb;
}
.gallery-thumb:hover, .gallery-thumb.active {
  border-color: var(--black) !important;
}

.product-title { color: var(--black) !important; }
.price-current { color: var(--black) !important; font-weight: 700 !important; }
.price-original { color: var(--gray) !important; }
.price-discount {
  background: #f0faf4 !important;
  color: #1a7a45 !important;
  border-radius: 50px !important;
  padding: 3px 12px !important;
}

.note-tag {
  background: #f4f6fb;
  border-color: rgba(0,0,0,0.07) !important;
  border-radius: 50px;
}
.note-tag:hover { background: var(--black); color: #fff; }

.accordion-header { color: var(--black) !important; font-weight: 600; }
.accordion-header:hover { color: var(--charcoal) !important; }
.accordion-item { border-color: rgba(0,0,0,0.08) !important; }
.product-accordion { border-color: rgba(0,0,0,0.08) !important; }
.accordion-body p { color: var(--charcoal) !important; }

.delivery-card {
  border-color: rgba(0,0,0,0.07) !important;
  border-radius: 12px !important;
  background: #f8f9fb;
}
.delivery-card-header { color: var(--black) !important; }

.qty-control {
  border-color: rgba(0,0,0,0.12) !important;
  border-radius: 50px !important;
}
.qty-btn:hover { background: #f4f6fb !important; color: var(--black) !important; }
.qty-input { background: #fff !important; color: var(--black) !important; }

/* Product ATB button — full-width pill on product page */
.product-actions-wrap .btn-primary,
.product-actions-wrap .btn-dark {
  border-radius: 50px !important;
  font-weight: 600 !important;
  letter-spacing: .04em;
}

/* Related products section — white bg */
.related-section { background: #f4f6fb !important; }
.related-section h2 { color: var(--black) !important; }

/* WC wrapper for cart/checkout/account — light bg */
.psb-wc-wrapper { background: #f8f9fb; min-height: 60vh; padding: 48px 0; }
.psb-wc-wrapper .woocommerce {
  background: #fff;
  padding: 40px;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.05);
}

/* ── Mobile nav: light on mobile too ── */
.mobile-nav {
  background: #fff !important;
}
.mobile-nav .menu-item a {
  color: rgba(0,0,0,.75) !important;
  border-bottom-color: rgba(0,0,0,.07) !important;
}
.mobile-nav .menu-item a:hover { color: #0d0d0d !important; }
.mobile-nav > div {
  border-top-color: rgba(0,0,0,.08) !important;
}
.mobile-nav > div a { color: rgba(0,0,0,.7) !important; }

/* ── Responsive: maintain pill nav on tablet ── */
@media (max-width: 768px) {
  .main-nav > ul {
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    display: none !important;
  }
}

/* ══════════════════════════════════════════════════════
   MOBILE BUTTON FIXES — all screens ≤768px
   ══════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* Product card add-to-cart: always visible on mobile */
  .card-actions {
    transform: translateY(0) !important;
    opacity: 1 !important;
    position: static !important;
    padding: 0 10px 10px !important;
    display: flex !important;
  }
  .card-actions .add-to-cart-btn {
    flex: 1 !important;
    width: auto !important;
    background: #0d1a2e !important;
    color: #fff !important;
    border-color: #0d1a2e !important;
    border-radius: 8px 0 0 8px !important;
    font-size: 13px !important;
    padding: 10px 14px !important;
  }
  .card-actions .add-to-cart-btn:hover { background: #1a3050 !important; }
  .card-actions .psb-qv-btn {
    border-radius: 0 8px 8px 0 !important;
    background: #0d1a2e !important;
    border-left: 1px solid rgba(255,255,255,.15) !important;
  }
  .card-actions .psb-qv-btn:hover { background: var(--gold) !important; }

  /* Product page action buttons: full width stacked */
  .product-actions-wrap { flex-direction: column !important; gap: 10px !important; }
  .product-actions-wrap .btn {
    width: 100% !important;
    justify-content: center !important;
    min-width: unset !important;
    background: #0d1a2e !important;
    color: #fff !important;
    border-color: #0d1a2e !important;
  }
  .product-actions-wrap .btn:hover {
    background: #1a3050 !important;
    border-color: #1a3050 !important;
  }

  /* Checkout / form submit buttons */
  .checkout-btn,
  .place-order-btn,
  .woocommerce-button,
  button[type="submit"] {
    background: #0d1a2e !important;
    color: #fff !important;
    border-color: #0d1a2e !important;
  }

  /* Hero CTA buttons: make sure they're navy, not gold */
  .phl-btn-primary {
    background: #0d0d0d !important;
    color: #fff !important;
    border-color: #0d0d0d !important;
  }

  /* View all / filter / sort links */
  .view-all-link { color: #0d1a2e !important; border-color: #0d1a2e !important; }
  .product-name a:hover { color: #0d1a2e !important; }

  /* Price discount badge */
  .price-discount { background: #0d1a2e !important; color: #fff !important; }

  /* Floating cart button */
  .floating-cart-btn {
    background: #0d1a2e !important;
    color: #fff !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   MOBILE HEADER — Containment fix (appended last for priority)
   Only logo + cart + hamburger on mobile. Everything else hidden.
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Prevent any element from causing horizontal overflow */
  html, body, #page-wrapper { max-width: 100vw; overflow-x: hidden; }
  .container, .container-sm { max-width: 100%; overflow: hidden; }
  /* Prevent My Account grid items from expanding the grid beyond viewport */
  .account-sidebar, .account-main { min-width: 0; }

  /* Strip the header down to: Logo | Cart | Hamburger */
  .hdr-search-bar   { display: none !important; }
  .hdr-register-btn { display: none !important; }
  .hdr-account-btn  { display: none !important; }
  .hdr-icon-btn     { display: none !important; }

  /* Tighten the actions wrapper */
  .header-actions { gap: 8px !important; flex-shrink: 0; }

  /* Ensure logo doesn't stretch */
  .site-logo { flex: 1 1 auto !important; min-width: 0; overflow: hidden; }
  .site-logo img, .site-logo .custom-logo { max-width: 180px !important; height: 44px !important; object-fit: contain; }
}

/* ══════════════════════════════════════════════════════════════
   LIVE SEARCH DROPDOWN
   ══════════════════════════════════════════════════════════════ */
.psb-search-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 7px);
  left: 0; right: 0;
  background: #fff;
  border: 1px solid rgba(13,26,46,.10);
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(13,26,46,.14);
  z-index: 99999;
  overflow: hidden;
  max-height: 380px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.psb-search-dropdown.psb-sd-open { display: block; }
.psb-sd-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 14px;
  text-decoration: none;
  color: #0d1a2e;
  border-bottom: 1px solid rgba(13,26,46,.05);
  transition: background .12s;
}
.psb-sd-item:last-child { border-bottom: none; }
.psb-sd-item:hover, .psb-sd-item.psb-sd-active { background: #f3f7fb; }
.psb-sd-img {
  width: 46px; height: 46px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
  border: 1px solid rgba(0,0,0,.06);
}
.psb-sd-img-ph {
  width: 46px; height: 46px;
  background: #eef2f7;
  border-radius: 8px;
  flex-shrink: 0;
}
.psb-sd-info { flex: 1; min-width: 0; }
.psb-sd-name {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #0d1a2e;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: var(--font-sans);
}
.psb-sd-price {
  display: block;
  font-size: 12px;
  color: #777;
  font-family: var(--font-sans);
  margin-top: 2px;
}
.psb-sd-loading, .psb-sd-empty {
  padding: 16px;
  font-size: 13px;
  color: #999;
  font-family: var(--font-sans);
  text-align: center;
}
.psb-sd-empty strong { color: #0d1a2e; }

/* ══════════════════════════════════════════════════════════════
   AUDIT FIXES v2.7.1 — Mobile-First corrections
   ══════════════════════════════════════════════════════════════ */

/* ── FIX 1: iOS Safari auto-zoom prevention ──────────────────
   iOS zooms the page when an input is focused with font-size < 16px.
   90% of visitors are on mobile — every form must avoid this.       */
@media (max-width: 768px) {
  input[type="text"],
  input[type="tel"],
  input[type="email"],
  input[type="search"],
  input[type="number"],
  input[type="password"],
  input[type="url"],
  select,
  textarea,
  .form-control,
  .newsletter-form input,
  .shop-search-input,
  .psb-msearch-input,
  .hdr-search-bar__input,
  .woocommerce .form-row input.input-text,
  .woocommerce .form-row input[type="text"],
  .woocommerce .form-row input[type="email"],
  .woocommerce .form-row input[type="password"],
  .woocommerce .form-row select { font-size: 16px !important; }
}

/* ── FIX 2: WooCommerce orders table — stacked cards on mobile ──
   The order history table has 5 columns (Order, Date, Status,
   Total, Actions) — on 360-400px phones it overflows. Collapse
   to a block-per-row layout.                                        */
@media (max-width: 640px) {
  .woocommerce-orders-table thead,
  .woocommerce-table thead { display: none; }

  .woocommerce-orders-table,
  .woocommerce-orders-table tbody,
  .woocommerce-orders-table tr,
  .woocommerce-orders-table td,
  .woocommerce-table,
  .woocommerce-table tbody,
  .woocommerce-table tr,
  .woocommerce-table td { display: block !important; width: auto !important; }

  .woocommerce-orders-table tr,
  .woocommerce-table tr {
    border: 1px solid var(--gray-lt);
    border-radius: 8px;
    margin-bottom: 12px;
    padding: 4px 0;
  }
  .woocommerce-orders-table td,
  .woocommerce-table td {
    padding: 8px 16px !important;
    border-bottom: 1px solid var(--gray-lt) !important;
    font-size: 14px;
    display: flex !important;
    justify-content: space-between;
    align-items: center;
  }
  .woocommerce-orders-table td:last-child,
  .woocommerce-table td:last-child { border-bottom: none !important; }

  .woocommerce-orders-table td::before,
  .woocommerce-table td::before {
    content: attr(data-title) ": ";
    font-size: 11px;
    font-weight: 600;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .08em;
    white-space: nowrap;
    margin-right: 8px;
  }
}

/* ── FIX 3: My Account — small screen layout fixes ─────────── */
@media (max-width: 520px) {
  /* Account main padding too large for 360px phones */
  .account-main { padding: 20px 16px !important; }

  /* Account sidebar: keep pills wrapping — no horizontal scroll (parent overflow:hidden kills it) */
  .myaccount-layout { gap: 16px !important; }
  .psb-account-nav ul { flex-wrap: wrap; overflow-x: visible; }
  .psb-account-nav ul li { flex-shrink: 1; }
  .psb-account-nav ul li a { padding: 8px 12px; font-size: 12.5px; }
}

/* ── FIX 4: Cart coupon row — full width stacked on small phones */
@media (max-width: 480px) {
  .cart-coupon-row { flex-direction: column !important; }
  .cart-coupon-row > div { width: 100% !important; flex: none !important; }
  .cart-coupon-row input.form-control { max-width: 100% !important; }
  .cart-coupon-row .btn { width: 100%; justify-content: center; }
}

/* ── Zone Selection Radio Tiles (Checkout) ─────────────────── */
.zone-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 6px;
}
.zone-option {
  position: relative;
  cursor: pointer;
}
.zone-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0; height: 0;
  pointer-events: none;
}
.zone-card {
  border: 2px solid var(--gray-lt);
  border-radius: 8px;
  padding: 12px 14px;
  transition: border-color .2s, background .2s, box-shadow .2s;
  background: var(--white);
  user-select: none;
}
.zone-option input[type="radio"]:checked + .zone-card,
.zone-option.selected .zone-card {
  border-color: var(--gold);
  background: rgba(13, 26, 46, 0.04);
  box-shadow: 0 0 0 3px rgba(13, 26, 46, 0.10);
}
.zone-card:hover {
  border-color: #9aafcb;
}
.zone-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}
.zone-card-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--charcoal);
  font-family: var(--font-sans);
}
.zone-card-price {
  font-size: 16px;
  font-weight: 700;
  color: var(--gold);
  font-family: var(--font-sans);
}
.zone-card-note {
  font-size: 11px;
  color: var(--gray);
  line-height: 1.4;
}
/* Mobile: stack vertically */
@media (max-width: 480px) {
  .zone-options { grid-template-columns: 1fr; }
}

/* ── OTP REGISTRATION FORM (my-account page) ──────────────────── */
.psb-reg-section,
body .psb-reg-section,
body.woocommerce-account .psb-reg-section {
  margin-top: 40px;
  padding: 0 20px 40px !important;
  box-sizing: border-box;
  width: 100%;
}
@media (min-width: 769px) {
  .psb-reg-section,
  body .psb-reg-section,
  body.woocommerce-account .psb-reg-section { padding: 0 0 40px !important; }
}
.psb-reg-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
  color: #888;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.psb-reg-divider::before,
.psb-reg-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #ddd;
}
.psb-reg-step { max-width: 420px; }
.psb-reg-intro {
  margin-bottom: 20px;
  color: #555;
  font-size: 14px;
  line-height: 1.6;
}
.psb-reg-btn {
  background: #0d1a2e !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 28px !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer;
  width: 100%;
  transition: background .18s;
}
.psb-reg-btn:hover { background: #1a3050 !important; }
.psb-reg-btn.alt,
#psb-reg-submit {
  background: var(--gold, #C9A84C) !important;
  color: #fff !important;
}
#psb-reg-submit:hover { opacity: .88; }
.psb-otp-boxes {
  display: flex;
  gap: 12px;
  margin: 16px 0;
}
.reg-otp-box {
  width: 52px !important;
  height: 56px !important;
  text-align: center;
  font-size: 22px !important;
  font-weight: 700;
  border: 1.5px solid #ccc !important;
  border-radius: 8px !important;
  background: #fafafa;
  color: #0d1a2e;
  transition: border-color .15s, box-shadow .15s;
  outline: none;
}
.reg-otp-box:focus { border-color: #0d1a2e !important; box-shadow: 0 0 0 3px rgba(13,26,46,.1); }
.reg-otp-box.filled { border-color: #C9A84C !important; background: #fff; }
.psb-reg-timer-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  font-size: 13px;
}
.psb-timer-text { color: #888; min-width: 36px; }
.psb-link-btn {
  background: none;
  border: none;
  color: #0d1a2e;
  font-size: 13px;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}
.psb-link-btn:hover { color: #C9A84C; }

/* ── Hide manual coupon input — Points & Rewards plugin handles discounts ── */
/* Cart page coupon row is removed from template; hide as safety net too */
.cart-coupon-row .form-control[name="coupon_code"],
.cart-coupon-row button[name="apply_coupon"] { display: none !important; }
/* Checkout page — WooCommerce coupon toggle + form (injected via hooks) */
.woocommerce-form-coupon-toggle,
.checkout_coupon,
.woocommerce-form-coupon { display: none !important; }

/* ── Checkout mobile overflow fix ─────────────────────────────────────────
   CSS Grid's 1fr = minmax(auto,1fr) — content can prevent shrinking.
   Force minmax(0,1fr) so the column truly fits the container. */
@media (max-width: 768px) {
  /* Reduce container-sm side padding */
  .container-sm { padding-left: 16px !important; padding-right: 16px !important; }

  /* minmax(0,1fr) forces the grid track to shrink to zero if needed,
     preventing the 380px desktop column from overflowing the viewport */
  .checkout-layout {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
    padding: 0 !important;
  }

  /* Children fill the track and don't expand it */
  .checkout-forms-col,
  .checkout-order-summary-wrap {
    min-width: 0 !important;
    width: 100% !important;
  }

  /* Checkout card fills its parent */
  .checkout-card,
  .checkout-card-header,
  .checkout-card-body { max-width: 100% !important; box-sizing: border-box !important; }

  /* Item row: name shrinks, price stays readable */
  .order-item-name { min-width: 0 !important; flex: 1 !important; overflow: hidden; word-break: break-word; }
  .order-item-price { flex-shrink: 0 !important; white-space: nowrap !important; }
}

/* ================================================
   VARIABLE PRODUCT — VARIATION FORM
   ================================================ */
.variations_form .variations { width: 100%; border-collapse: collapse; margin-bottom: 16px; }
.variations_form .variations tr { display: flex; flex-direction: column; margin-bottom: 14px; }
.variations_form .variations td.label { padding-bottom: 6px; }
.variations_form .variations td.label label {
  font-family: var(--font-sans); font-size: 13px; font-weight: 600;
  color: var(--charcoal); letter-spacing: 0.04em; text-transform: uppercase;
}
.variations_form .variations td.value { position: relative; }
.variations_form .variations td.value select {
  width: 100%; padding: 10px 14px; border: 1.5px solid var(--gray-lt);
  border-radius: 8px; font-family: var(--font-sans); font-size: 14px;
  color: var(--dark); background: var(--white); appearance: none;
  cursor: pointer; transition: border-color .2s;
}
.variations_form .variations td.value select:focus { border-color: var(--gold); outline: none; }
.variations_form .reset_variations {
  display: inline-block; margin-top: 6px; font-size: 12px; color: var(--gray);
  text-decoration: underline; cursor: pointer;
}
.woocommerce-variation.single_variation { margin: 12px 0; }
.woocommerce-variation-price .price { font-size: 22px; font-weight: 700; color: var(--dark); }
.woocommerce-variation-price .price ins { text-decoration: none; }
.woocommerce-variation-price .price del { color: var(--gray); font-size: 14px; margin-right: 8px; }
.woocommerce-variation-availability .stock { font-size: 13px; color: #2d7a2d; margin-top: 4px; }
.single_variation_wrap .woocommerce-variation-add-to-cart {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 12px;
}
.single_variation_wrap .quantity { display: flex; }
.single_variation_wrap .qty {
  width: 64px; padding: 10px 8px; border: 1.5px solid var(--gray-lt); border-radius: 8px;
  font-size: 15px; text-align: center; font-family: var(--font-sans);
}
.single_add_to_cart_button {
  flex: 1; padding: 14px 24px; background: var(--dark); color: var(--white);
  border: none; border-radius: 8px; font-family: var(--font-sans); font-size: 15px;
  font-weight: 600; cursor: pointer; transition: background .2s;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.single_add_to_cart_button:hover { background: var(--gold); color: var(--dark); }
.single_add_to_cart_button.disabled,
.single_add_to_cart_button:disabled { opacity: .5; cursor: not-allowed; }

/* ================================================
   BLOG — ARCHIVE, HOME & SINGLE POST
   ================================================ */

/* Hero */
.psb-blog-hero { text-align: center; }
.psb-blog-hero h1 {
  font-family: var(--font-serif); font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400; margin: 8px 0 12px;
}
.page-hero-sub { font-size: 15px; color: var(--gray); margin-top: 8px; }

/* Section */
.psb-blog-section { padding: 56px 0 80px; background: var(--white); }

/* Grid */
.psb-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

/* Post card */
.psb-post-card {
  background: var(--white);
  border: 1px solid var(--gray-lt);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .25s, transform .25s;
}
.psb-post-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.10);
  transform: translateY(-3px);
}

.post-card-img-wrap { display: block; overflow: hidden; }
.post-card-img {
  width: 100%; height: 200px; object-fit: cover;
  display: block; transition: transform .4s ease;
}
.psb-post-card:hover .post-card-img { transform: scale(1.04); }
.post-card-img--placeholder {
  width: 100%; height: 200px;
  background: linear-gradient(135deg, var(--cream) 0%, var(--cream2) 100%);
}

.post-card-body {
  padding: 20px;
  display: flex; flex-direction: column; flex: 1;
}

.post-card-category {
  display: inline-block; align-self: flex-start;
  font-family: var(--font-sans); font-size: 11px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--gold); background: var(--cream);
  padding: 4px 10px; border-radius: 20px; margin-bottom: 10px;
  transition: var(--trans);
}
.post-card-category:hover { background: var(--gold); color: var(--white); }

.post-card-title {
  font-family: var(--font-serif); font-size: 1.2rem; font-weight: 400;
  line-height: 1.35; margin-bottom: 10px; color: var(--charcoal);
}
.post-card-title a { color: inherit; }
.post-card-title a:hover { color: var(--gold); }

.post-card-excerpt {
  font-size: 13px; color: var(--gray); line-height: 1.7;
  margin-bottom: 16px; flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}

.post-card-footer {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: auto; padding-top: 12px;
  border-top: 1px solid var(--gray-lt);
}
.post-card-date { font-size: 12px; color: var(--gray); }
.post-card-cta {
  font-size: 12px; font-weight: 600; color: var(--gold);
  letter-spacing: .04em; transition: var(--trans);
}
.post-card-cta:hover { color: var(--charcoal); }

/* Pagination */
.blog-pagination { margin-top: 48px; display: flex; justify-content: center; }
.blog-pagination .nav-links {
  display: flex; gap: 8px; flex-wrap: wrap;
  align-items: center; justify-content: center;
}
.blog-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 14px;
  border: 1px solid var(--gray-lt); border-radius: 6px;
  font-size: 13px; color: var(--charcoal); transition: var(--trans);
}
.blog-pagination .page-numbers:hover,
.blog-pagination .page-numbers.current {
  background: var(--gold); border-color: var(--gold); color: var(--white);
}
.psb-blog-empty {
  text-align: center; padding: 80px 0; color: var(--gray); font-size: 15px;
}

/* ---- Single Post ---- */
.single-post-banner { width: 100%; max-height: 500px; overflow: hidden; }
.single-post-banner__img {
  width: 100%; height: 500px; object-fit: cover; display: block;
}
.single-post-wrap { padding: 36px 0 80px; }
.single-post-header {
  max-width: 760px; margin: 24px auto 36px;
}
.post-categories { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.post-category-pill {
  display: inline-block;
  font-family: var(--font-sans); font-size: 11px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--gold); background: var(--cream);
  padding: 4px 12px; border-radius: 20px; transition: var(--trans);
}
.post-category-pill:hover { background: var(--gold); color: var(--white); }
.single-post-title {
  font-family: var(--font-serif); font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 400; line-height: 1.25; color: var(--charcoal); margin-bottom: 16px;
}
.single-post-meta {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-size: 13px; color: var(--gray);
}
.post-meta-sep { opacity: .4; }
.reading-time { font-weight: 500; }

/* Blog prose */
.blog-prose { max-width: 760px; margin: 0 auto; font-size: 16px; line-height: 1.9; color: #3a3a3a; }
.blog-prose h2 {
  font-family: var(--font-serif); font-size: 1.7rem; font-weight: 400;
  margin: 40px 0 14px; color: var(--charcoal);
}
.blog-prose h3 {
  font-family: var(--font-serif); font-size: 1.3rem; font-weight: 400;
  margin: 32px 0 12px; color: var(--charcoal);
}
.blog-prose p { margin-bottom: 20px; }
.blog-prose ul, .blog-prose ol { padding-left: 24px; margin-bottom: 20px; }
.blog-prose li { margin-bottom: 8px; }
.blog-prose blockquote {
  border-left: 3px solid var(--gold); padding: 16px 24px;
  margin: 28px 0; background: var(--cream);
  font-family: var(--font-serif); font-size: 1.1rem;
  font-style: italic; color: var(--charcoal);
  border-radius: 0 4px 4px 0;
}
.blog-prose img { border-radius: 6px; margin: 28px auto; }
.blog-prose a { color: var(--gold); text-decoration: underline; }
.blog-prose a:hover { color: var(--charcoal); }
.blog-prose strong { font-weight: 600; color: var(--charcoal); }
.blog-prose table { width: 100%; border-collapse: collapse; margin-bottom: 24px; font-size: 14px; }
.blog-prose th, .blog-prose td { padding: 10px 14px; border: 1px solid var(--gray-lt); }
.blog-prose th { background: var(--cream); font-weight: 600; }

/* Related posts */
.related-posts-section {
  padding: 56px 0 80px; background: var(--cream2);
  border-top: 1px solid var(--gray-lt);
}
.related-posts-title {
  font-family: var(--font-serif); font-size: 1.8rem; font-weight: 400;
  text-align: center; margin-bottom: 32px; color: var(--charcoal);
}

/* Responsive — blog */
@media (max-width: 1024px) {
  .psb-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .psb-blog-grid { grid-template-columns: 1fr; }
  .single-post-banner__img { height: 260px; }
  .psb-blog-section { padding: 36px 0 56px; }
  .related-posts-section { padding: 40px 0 56px; }
  .single-post-wrap { padding: 24px 0 56px; }
}
/* ── NEWSLETTER BLOG ROTATORS ──────────────────────────────── */
.psb-nl-wrap {
  display: grid;
  grid-template-columns: 270px 1fr 270px;
  gap: 36px;
  align-items: center;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
}
.psb-nl-center { text-align: center; }
.psb-nl-center--full { grid-column: 1 / -1; }
.psb-nr-rotator {
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(100,150,220,0.18);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(20,50,120,0.08);
  transition: opacity 0.35s ease;
  min-height: 240px;
}
.psb-nr-rotator.is-fading { opacity: 0; }
.psb-nr-img { width: 100%; height: 160px; object-fit: cover; display: block; }
.psb-nr-img-placeholder {
  width: 100%; height: 160px;
  background: linear-gradient(135deg, rgba(201,168,76,0.13), rgba(13,26,46,0.07));
  display: flex; align-items: center; justify-content: center;
}
.psb-nr-body { padding: 14px 16px 18px; }
.psb-nr-title {
  font-family: var(--font-serif);
  font-size: 1rem; line-height: 1.35; color: #0d1a2e; margin: 0 0 10px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.psb-nr-link {
  font-size: 11px; font-family: var(--font-sans); color: #C9A84C;
  letter-spacing: .06em; text-transform: uppercase;
  text-decoration: none; font-weight: 600;
}
.psb-nr-link:hover { color: #0d1a2e; }
.psb-nr-rotator--top { display: none; margin-bottom: 24px; }
@media (max-width: 899px) {
  .psb-nl-wrap { display: block; max-width: 520px; margin: 0 auto; }
  .psb-nr-rotator--left, .psb-nr-rotator--right { display: none; }
  .psb-nr-rotator--top { display: block; }
}

/* ═══════════════════════════════════════════════════════════
   REVIEW INCENTIVE — earn-points badge, product reviews
   section, and thank-you page review card
   ═══════════════════════════════════════════════════════════ */

/* Small gold pill shown in product info col + above reviews */
.psb-review-earn-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, rgba(201,168,76,.12), rgba(201,168,76,.06));
  border: 1px solid rgba(201,168,76,.45);
  border-radius: 24px;
  padding: 7px 16px;
  font-size: 13px;
  font-weight: 500;
  color: #7a6020;
  text-decoration: none;
  transition: var(--trans);
}
.psb-review-earn-badge:hover {
  background: linear-gradient(135deg, rgba(201,168,76,.22), rgba(201,168,76,.12));
  color: #5a4410;
}

/* Full reviews section — cream background, after related products */
.psb-reviews-section {
  background: var(--cream2);
  padding: 56px 0 64px;
  margin-top: 0;
  border-top: 1px solid var(--gray-lt);
}
.psb-reviews-section .container { max-width: 880px; }
.psb-reviews-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.psb-reviews-section-header h2 {
  font-family: var(--font-serif);
  font-size: clamp(26px, 4vw, 36px);
  font-weight: 400;
  color: #0d1a2e;
  margin: 0;
}

/* Override WooCommerce review form colours for light background */
.psb-reviews-section .woocommerce-Reviews { margin: 0; }
.psb-reviews-section .commentlist { padding: 0; margin: 0 0 32px; }
.psb-reviews-section .commentlist li { background: #fff; border-radius: 8px;
  padding: 20px; margin-bottom: 16px; list-style: none;
  box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.psb-reviews-section #review_form_wrapper { background: #fff; border-radius: 8px;
  padding: 24px; box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.psb-reviews-section #review_form_wrapper h3 { font-family: var(--font-serif);
  font-size: 20px; font-weight: 400; margin-bottom: 16px; color: #0d1a2e; }
.psb-reviews-section .comment-form-rating { margin-bottom: 16px; }
.psb-reviews-section .comment-form-comment textarea {
  width: 100%; border: 1px solid var(--gray-lt); border-radius: 6px;
  padding: 10px 14px; font-family: var(--font-sans); font-size: 14px;
  resize: vertical; min-height: 100px; }
.psb-reviews-section .comment-form-author input,
.psb-reviews-section .comment-form-email input {
  width: 100%; border: 1px solid var(--gray-lt); border-radius: 6px;
  padding: 10px 14px; font-family: var(--font-sans); font-size: 14px; }
.psb-reviews-section #submit {
  background: #C9A84C; color: #fff; border: none; border-radius: 6px;
  padding: 12px 28px; font-family: var(--font-sans); font-size: 14px;
  font-weight: 600; cursor: pointer; transition: var(--trans); }
.psb-reviews-section #submit:hover { background: #b5943d; }

/* Thank-you page — review prompt card */
.psb-review-prompt {
  background: linear-gradient(135deg, #fffbf2, #fff8e8);
  border: 1px solid rgba(201,168,76,.35);
  border-radius: 12px;
  padding: 28px 24px 24px;
  margin-top: 28px;
  text-align: center;
}
.psb-review-prompt-icon { font-size: 40px; margin-bottom: 12px; }
.psb-review-prompt h3 {
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 400;
  color: #0d1a2e;
  margin: 0 0 6px;
}
.psb-review-prompt-sub {
  font-size: 13px;
  color: var(--gray);
  margin: 0 0 20px;
  line-height: 1.7;
}
.psb-review-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 0;
  border-top: 1px solid rgba(201,168,76,.2);
  text-align: left;
}
.psb-review-item-img {
  width: 52px; height: 52px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}
.psb-review-item-name {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  color: #0d1a2e;
  line-height: 1.4;
}
.psb-review-item-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #C9A84C;
  color: #fff;
  border-radius: 6px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--font-sans);
  text-decoration: none;
  white-space: nowrap;
  transition: var(--trans);
  flex-shrink: 0;
}
.psb-review-item-btn:hover { background: #b5943d; color: #fff; }
.psb-review-pts-pill {
  display: inline-block;
  background: rgba(255,255,255,.3);
  border-radius: 10px;
  padding: 1px 7px;
  font-size: 11px;
}
@media (max-width: 600px) {
  .psb-review-item { gap: 10px; }
  .psb-review-item-btn { padding: 7px 10px; font-size: 11px; }
}

/* ═══════════════════════════════════════════════════════════
   LOW STOCK URGENCY — product page
   ═══════════════════════════════════════════════════════════ */
.psb-low-stock-notice {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; color: #b94a00;
  margin: 12px 0 0; padding: 9px 14px;
  background: #fff5f0; border: 1px solid #ffd5c2;
  border-radius: 4px; line-height: 1.4;
}
.psb-low-stock-dot {
  display: inline-block; width: 8px; height: 8px;
  border-radius: 50%; background: #e05a00; flex-shrink: 0;
  animation: psb-pulse 1.4s ease-in-out infinite;
}
@keyframes psb-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .5; transform: scale(.85); }
}

/* ═══════════════════════════════════════════════════════════
   FREE DELIVERY THRESHOLD BAR — cart page
   ═══════════════════════════════════════════════════════════ */
.psb-shipping-bar-wrap { margin-bottom: 20px; }
.psb-shipping-bar {
  background: #fffbf0; border: 1px solid #f0dca0;
  border-radius: 6px; padding: 14px 18px;
}
.psb-shipping-bar-msg { font-size: 13px; color: #555; margin: 0 0 10px; }
.psb-shipping-bar-msg strong { color: #1a1a1a; }
.psb-shipping-progress {
  height: 7px; background: #f0e0b0;
  border-radius: 6px; overflow: hidden;
}
.psb-shipping-progress-fill {
  height: 100%; background: #C9A84C;
  border-radius: 6px; transition: width .4s ease;
}
.psb-shipping-bar.psb-shipping-unlocked {
  display: flex; align-items: center; gap: 10px;
  background: #f0fbf3; border-color: #a8d5b5;
  font-size: 13px; font-weight: 600; color: #1a5c30;
}
.psb-shipping-icon { font-size: 18px; line-height: 1; }

/* ══════════════════════════════════════════════════════════════════
   WISHLIST — v2.9.43
   ══════════════════════════════════════════════════════════════════ */

/* Header wishlist icon */
.hdr-wishlist-btn {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  transition: color .2s;
}
.hdr-wishlist-btn:hover { color: #C9A84C; }
.hdr-wishlist-count {
  position: absolute; top: -3px; right: -3px;
  background: #C9A84C; color: #fff;
  font-size: 10px; font-weight: 700;
  width: 16px; height: 16px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}

/* Wishlist button — filled/active state on product cards and single page */
.wishlist-btn.wishlisted svg,
.card-wishlist.wishlisted svg { fill: #C9A84C; stroke: #C9A84C; }
.card-wishlist.wishlisted { opacity: 1; color: #C9A84C; }

/* Wishlist page shortcode output */
.psb-wishlist-page { padding: 16px 0 40px; }
.psb-wishlist-heading {
  font-size: 1.6rem; font-weight: 700;
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 28px;
}
.psb-wishlist-count-badge {
  background: #C9A84C; color: #fff;
  font-size: 13px; font-weight: 700;
  padding: 2px 9px; border-radius: 12px;
}
.psb-wishlist-empty {
  text-align: center; padding: 60px 20px;
  color: var(--gray);
}
.psb-wishlist-empty p { font-size: 17px; margin-bottom: 20px; }

/* ══════════════════════════════════════════════════════════════════
   BACK-IN-STOCK NOTIFICATION — v2.9.43
   ══════════════════════════════════════════════════════════════════ */

.psb-stock-notify-wrap {
  margin-top: 20px;
  padding: 18px 20px;
  background: #fdf8ee;
  border: 1px solid #e8d9a0;
  border-radius: 10px;
}
.psb-stock-notify-intro {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; color: #5a4a1a;
  margin: 0 0 12px;
}
.psb-stock-notify-form {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.psb-stock-notify-email {
  flex: 1; min-width: 180px;
  border: 1px solid #d4b95a; border-radius: 6px;
  padding: 10px 14px; font-size: 14px;
  outline: none; background: #fff;
}
.psb-stock-notify-email:focus { border-color: #C9A84C; }
.psb-stock-notify-btn {
  background: #C9A84C; color: #fff;
  border: none; border-radius: 6px;
  padding: 10px 20px; font-size: 14px; font-weight: 600;
  cursor: pointer; white-space: nowrap;
  transition: background .2s;
}
.psb-stock-notify-btn:hover { background: #b0903e; }
.psb-stock-notify-msg {
  margin: 10px 0 0; font-size: 13px; font-weight: 500;
}
.psb-stock-notify-msg.success { color: #1a7a45; }
.psb-stock-notify-msg.error   { color: #b91c1c; }

/* ══════════════════════════════════════════════════════════════════
   CROSS-SELLS SECTION — v2.11.0
   ══════════════════════════════════════════════════════════════════ */

.psb-crosssells-section {
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid #e8e0d0;
}
.psb-crosssells-heading {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  color: var(--charcoal);
  text-align: center;
  margin-bottom: 32px;
  letter-spacing: .01em;
}
.psb-crosssells-grid {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 900px) {
  .psb-crosssells-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 480px) {
  .psb-crosssells-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ══════════════════════════════════════════════════════════════════
   OFF-CANVAS MINI CART DRAWER — v2.12.0
   ══════════════════════════════════════════════════════════════════ */

/* Overlay */
.psb-cart-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 1099;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.psb-cart-overlay.open {
  opacity: 1;
  pointer-events: all;
}

/* Drawer panel */
.psb-cart-drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: 380px;
  max-width: 100vw;
  background: #fff;
  z-index: 1100;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
  box-shadow: -4px 0 24px rgba(0,0,0,.12);
}
.psb-cart-drawer.open {
  transform: translateX(0);
}

/* Prevent body scroll when drawer is open */
body.psb-drawer-open {
  overflow: hidden;
}

/* Drawer header */
.psb-cart-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 20px 16px;
  border-bottom: 1px solid #eee;
  flex-shrink: 0;
}
.psb-cart-drawer-title {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  color: var(--charcoal);
  margin: 0;
  font-weight: 600;
}
.psb-cart-drawer-count {
  font-family: var(--font-sans);
  font-size: .95rem;
  font-weight: 400;
  color: var(--gray);
  margin-left: 4px;
}
.psb-cart-drawer-close {
  background: transparent;
  border: none;
  font-size: 26px;
  line-height: 1;
  color: var(--gray);
  cursor: pointer;
  padding: 0 4px;
  transition: color .2s;
}
.psb-cart-drawer-close:hover { color: var(--charcoal); }

/* Inner scroll area */
.psb-cart-drawer-inner {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Items list */
.psb-drawer-items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.psb-drawer-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid #f0f0f0;
  position: relative;
}
.psb-drawer-item-img-wrap {
  flex-shrink: 0;
  display: block;
  width: 72px; height: 72px;
  border-radius: 6px;
  overflow: hidden;
  background: #f8f6f2;
}
.psb-drawer-item-img-wrap img {
  width: 100%; height: 100%;
  object-fit: contain;
}
.psb-drawer-item-info {
  flex: 1;
  min-width: 0;
}
.psb-drawer-item-name {
  display: block;
  font-family: var(--font-serif);
  font-size: .95rem;
  color: var(--charcoal);
  line-height: 1.3;
  margin-bottom: 5px;
  text-decoration: none;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.psb-drawer-item-name:hover { color: var(--gold); }
.psb-drawer-item-meta {
  font-size: 12px;
  color: var(--gray);
  margin: 0 0 3px;
}
.psb-drawer-item-price {
  font-size: 13px;
  font-weight: 600;
  color: var(--charcoal);
  margin: 0;
}
.psb-drawer-item-price del { color: var(--gray); font-weight: 400; font-size: 11px; margin-right: 4px; }
.psb-drawer-item-price ins { text-decoration: none; }

/* Remove button */
.psb-drawer-remove {
  flex-shrink: 0;
  background: transparent;
  border: none;
  color: #bbb;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
  align-self: center;
  transition: color .2s;
}
.psb-drawer-remove:hover { color: var(--red, #b91c1c); }

/* Empty state */
.psb-drawer-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 60px 24px;
  text-align: center;
  color: var(--gray);
}
.psb-drawer-empty p { font-size: 16px; margin: 0; }

/* Footer: subtotal + CTAs */
.psb-drawer-footer {
  padding: 20px;
  border-top: 1px solid #eee;
  flex-shrink: 0;
  background: #fafaf8;
}
.psb-drawer-subtotal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 15px;
  font-weight: 600;
  color: var(--charcoal);
  margin-bottom: 4px;
}
.psb-drawer-subtotal span:last-child { font-size: 16px; }

/* Mobile: full width */
@media (max-width: 480px) {
  .psb-cart-drawer { width: 100%; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   QUICK VIEW MODAL — v2.13.0
   ══════════════════════════════════════════════════════════════════════════════ */

/* Overlay */
.psb-qv-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.52);
  z-index: 1200;
  opacity: 0; pointer-events: none;
  transition: opacity .28s ease;
}
.psb-qv-overlay.open { opacity: 1; pointer-events: all; }

/* Modal panel */
.psb-qv-modal {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -48%) scale(.97);
  opacity: 0; pointer-events: none;
  z-index: 1201;
  width: 860px; max-width: calc(100vw - 28px);
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,.22);
  transition: opacity .28s ease, transform .28s ease;
  display: flex; flex-direction: column;
  max-height: 90vh;
}
.psb-qv-modal.open {
  opacity: 1; pointer-events: all;
  transform: translate(-50%, -50%) scale(1);
}
body.psb-qv-open { overflow: hidden; }

/* Close button */
.psb-qv-close {
  position: absolute; top: 12px; right: 12px;
  z-index: 10;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,.92); border: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 21px; line-height: 1;
  color: var(--charcoal); cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  transition: background .18s;
}
.psb-qv-close:hover { background: #f0ede6; }

/* Body: two-column grid */
.psb-qv-body {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  min-height: 0;
}

/* Loading / error states */
.psb-qv-loading {
  grid-column: 1 / -1;
  display: flex; align-items: center; justify-content: center;
  min-height: 320px;
}
.psb-qv-error {
  grid-column: 1 / -1;
  padding: 48px 32px; text-align: center;
  color: var(--gray); font-size: 14px;
}

/* Image column */
.psb-qv-img-col {
  background: #f8f6f2;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.psb-qv-main-img {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 28px; min-height: 180px;
  overflow: hidden;
}
.psb-qv-main-img img {
  width: 100%; max-height: 320px;
  object-fit: contain;
  transition: opacity .18s ease;
}
.psb-qv-thumbs {
  display: flex; gap: 8px;
  padding: 10px 16px; flex-shrink: 0;
  overflow-x: auto; border-top: 1px solid rgba(0,0,0,.06);
}
.psb-qv-thumb {
  width: 56px; height: 56px; flex-shrink: 0;
  border: 2px solid transparent; border-radius: 6px;
  overflow: hidden; cursor: pointer; background: #fff;
  transition: border-color .18s;
}
.psb-qv-thumb img { width: 100%; height: 100%; object-fit: contain; }
.psb-qv-thumb.active { border-color: var(--gold); }
.psb-qv-thumb:hover  { border-color: var(--charcoal); }

/* Info column */
.psb-qv-info-col {
  padding: 32px 28px;
  display: flex; flex-direction: column; gap: 14px;
  overflow-y: auto;
}
.psb-qv-brand {
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gray); margin: 0;
}
.psb-qv-title {
  font-family: var(--font-serif); font-size: 1.45rem;
  color: var(--charcoal); margin: 0; line-height: 1.22;
}
.psb-qv-price { font-size: 1.15rem; font-weight: 700; color: var(--charcoal); }
.psb-qv-price del { color: var(--gray); font-weight: 400; font-size: .95rem; margin-right: 6px; }
.psb-qv-price ins { text-decoration: none; color: #b91c1c; }
.psb-qv-short-desc { font-size: 13px; line-height: 1.85; color: var(--gray); }
.psb-qv-notes { display: flex; flex-wrap: wrap; gap: 6px; }

/* Variation selects */
.psb-qv-atc-area { display: flex; flex-direction: column; gap: 10px; }
.psb-qv-var-row   { display: flex; flex-direction: column; gap: 5px; }
.psb-qv-var-label {
  font-size: 10px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--charcoal);
}
.psb-qv-attr-select {
  width: 100%; padding: 10px 34px 10px 12px;
  border: 1px solid #d0c9bb; border-radius: 7px;
  font-size: 13px; background: #fff; cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%23666' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
  transition: border-color .18s;
}
.psb-qv-attr-select:focus { outline: none; border-color: var(--gold); }

/* Full-width btn utility (used in modal) */
.btn.w-100 { width: 100%; justify-content: center; }

/* "View full details" link */
.psb-qv-full-link {
  display: inline-block; font-size: 12px;
  color: var(--gold); letter-spacing: .05em;
  text-decoration: none; margin-top: auto;
}
.psb-qv-full-link:hover { text-decoration: underline; }

/* ── Mobile: bottom sheet ──────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .psb-qv-modal {
    top: auto; bottom: 0; left: 0;
    transform: translateY(40px) scale(1);
    max-width: 100vw; width: 100%;
    border-radius: 18px 18px 0 0;
    max-height: 92vh;
  }
  .psb-qv-modal.open { transform: translateY(0) scale(1); }
  .psb-qv-body { grid-template-columns: 1fr; overflow-y: auto; }
  .psb-qv-img-col { max-height: 220px; flex-direction: row; }
  .psb-qv-main-img { padding: 16px; min-height: 0; }
  .psb-qv-main-img img { max-height: 180px; }
  .psb-qv-thumbs { display: none; }
  .psb-qv-info-col { padding: 20px 16px; overflow-y: unset; }
}

/* ============================================================
 * v2.20.7 — Locked field treatment for Division + District when
 * Dhaka City Delivery Fee is selected. The selects are set to
 * disabled (which on its own browser default looks like a bug,
 * not a deliberate lock), so this CSS makes the disabled state
 * read as "auto-filled from your fee choice — read-only here".
 * The submit handler re-enables them just before posting so the
 * values still travel with the form.
 * ============================================================ */
.form-control.psb-locked,
select.psb-locked {
  background-color: #f5f5f7 !important;
  color: #333 !important;
  opacity: 1 !important;
  border-style: dashed !important;
  border-color: #c9c9cf !important;
  cursor: not-allowed !important;
  -webkit-text-fill-color: #333 !important; /* iOS Safari overrides disabled text */
}
.form-control.psb-locked:focus,
select.psb-locked:focus {
  outline: none !important;
  box-shadow: none !important;
}
/* v2.21.0 — Tap-blocker overlay on locked field-groups (Android Chrome's
   native <select> picker can otherwise still open on a `disabled` select
   tap). Sits above the select with a not-allowed cursor; transparent so the
   .psb-locked dashed-border styling stays visible. */
.psb-locked-group { position: relative; }
.psb-locked-group::after {
  content: '';
  position: absolute;
  inset: 0;
  background: transparent;
  cursor: not-allowed;
  z-index: 3;
}
.psb-locked-group label,
.psb-locked-group .psb-locked-hint { z-index: 4; position: relative; }

/* v2.21.0 — Address-fields gate: until a Delivery Fee is picked, the address
   block (Division/District/Thana/Address/Notes) is dimmed and non-interactive.
   The banner above explains why; per-field disabling stops keyboard focus too. */
.psb-gate-blocked-group {
  opacity: .55;
  pointer-events: none;
  transition: opacity .2s ease;
}
.psb-gate-banner {
  margin: 0 0 14px;
  padding: 10px 14px;
  font-size: 13px;
  line-height: 1.45;
  color: #5a4500;
  background: #fff8e1;
  border: 1px dashed #e2c97e;
  border-radius: 8px;
  text-align: center;
  font-family: var(--font-sans);
}
@media (max-width: 480px) {
  .psb-gate-banner { font-size: 12px; padding: 8px 12px; }
}

.psb-locked-hint {
  margin-top: 6px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.4;
  color: #555;
  background: #f8f4e6;
  border: 1px solid #ecdfb8;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
@media (max-width: 480px) {
  .psb-locked-hint { font-size: 11px; padding: 5px 8px; }
}

/* ============================================================
   v2.21.12 — PWA Install Button + iOS Install Instructions
   (moved to BOTTOM-LEFT so it never overlaps LC Chat trigger
    which lives bottom-right with z-index:999999;
    refactored layout from v2.21.9)
   ============================================================ */
.psb-install-wrap {
  position: fixed;
  bottom: 20px;
  left: 20px;            /* bottom-left — opposite corner from LC Chat */
  right: auto;
  z-index: 1000000;      /* still above other widgets just in case */
  display: inline-flex;
  align-items: stretch;
  background: linear-gradient(135deg, #0d1a2e 0%, #1a3a5c 100%);
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(13, 26, 46, 0.4), 0 2px 6px rgba(0, 0, 0, 0.15);
  transform: translateY(120%) scale(0.92);
  opacity: 0;
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1),
              opacity 0.3s ease,
              box-shadow 0.2s ease,
              background 0.2s ease;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
.psb-install-wrap.show {
  transform: translateY(0) scale(1);
  opacity: 1;
}
.psb-install-wrap:hover {
  background: linear-gradient(135deg, #1a3a5c 0%, #2a5a8c 100%);
  box-shadow: 0 12px 28px rgba(13, 26, 46, 0.5), 0 2px 6px rgba(0, 0, 0, 0.2);
}
.psb-install-app,
.psb-install-close {
  background: transparent;
  border: none;
  color: #fff;
  font-family: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.psb-install-app {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 6px 10px 14px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.2px;
  border-top-left-radius: 999px;
  border-bottom-left-radius: 999px;
}
.psb-install-app.busy {
  pointer-events: none;
  opacity: 0.7;
}
.psb-install-app:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: -3px;
}
.psb-install-icon {
  font-size: 18px;
  line-height: 1;
}
.psb-install-text {
  white-space: nowrap;
}
.psb-install-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  padding: 0 10px 0 4px;
  font-size: 22px;
  line-height: 1;
  border-top-right-radius: 999px;
  border-bottom-right-radius: 999px;
  transition: background 0.15s ease;
}
.psb-install-close:hover,
.psb-install-close:focus-visible {
  background: rgba(255, 255, 255, 0.18);
  outline: none;
}
.psb-install-close:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: -3px;
}
@media (max-width: 480px) {
  .psb-install-wrap {
    bottom: 16px;
    left: 12px;
    right: auto;
  }
  .psb-install-app {
    padding: 9px 4px 9px 12px;
    font-size: 13px;
  }
  .psb-install-close {
    width: 30px;
    padding: 0 9px 0 4px;
  }
}
/* If a sticky bottom mobile-nav exists on the site, lift the button above it.
   LC Chat is on the right so it doesn't affect bottom positioning here. */
.has-bottom-nav .psb-install-wrap,
body.has-bottom-nav .psb-install-wrap {
  bottom: 76px;
}

/* iOS install instructions modal */
.psb-ios-install-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.psb-ios-install-overlay.show {
  opacity: 1;
  pointer-events: auto;
}
.psb-ios-install-modal {
  position: relative;
  background: #fff;
  border-radius: 16px;
  padding: 32px 24px 24px;
  max-width: 380px;
  width: 100%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.psb-ios-install-overlay.show .psb-ios-install-modal {
  transform: translateY(0) scale(1);
}
.psb-ios-install-x {
  position: absolute;
  top: 8px;
  right: 8px;
  background: transparent;
  border: none;
  font-size: 28px;
  line-height: 1;
  width: 36px;
  height: 36px;
  cursor: pointer;
  color: #666;
  border-radius: 50%;
  transition: background 0.15s ease;
}
.psb-ios-install-x:hover,
.psb-ios-install-x:focus-visible {
  background: rgba(0, 0, 0, 0.06);
  outline: none;
}
.psb-ios-install-icon {
  font-size: 48px;
  margin-bottom: 8px;
  line-height: 1;
}
.psb-ios-install-modal h3 {
  margin: 0 0 10px;
  font-size: 20px;
  color: #0d1a2e;
  font-weight: 700;
}
.psb-ios-install-modal p {
  margin: 0 0 18px;
  color: #555;
  font-size: 14px;
  line-height: 1.5;
}
.psb-ios-install-modal ol {
  text-align: left;
  padding-left: 22px;
  margin: 0;
  color: #222;
  font-size: 14px;
  line-height: 1.8;
}
.psb-ios-install-modal li {
  margin-bottom: 4px;
}
.psb-ios-share-glyph {
  display: inline-block;
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(13, 26, 46, 0.06);
  margin-left: 2px;
}

/* ── PSB Announcement / Promo Bar — v2.21.42 ────────────────────
   Sits as a plain block element above #site-header inside
   #page-wrapper. No fixed/sticky positioning — never hides nav. */
.psb-promo-bar {
  position: relative;
  width: 100%;
  z-index: 200;
  padding: 10px 48px 10px 16px;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .015em;
  box-sizing: border-box;
}
.psb-promo-bar__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}
.psb-promo-bar__cta {
  display: inline-block;
  font-weight: 700;
  text-decoration: underline;
  white-space: nowrap;
  opacity: .88;
  transition: opacity .15s;
}
.psb-promo-bar__cta:hover { opacity: 1; }
.psb-promo-bar__close {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 14px;
  opacity: .65;
  line-height: 1;
  padding: 5px 7px;
  border-radius: 3px;
  transition: opacity .15s, background .15s;
}
.psb-promo-bar__close:hover { opacity: 1; background: rgba(255,255,255,.12); }
@media (max-width: 600px) {
  .psb-promo-bar { font-size: 12px; padding: 9px 38px 9px 12px; }
  .psb-promo-bar__inner { gap: 6px; }
}
