/*
Theme Name:  Neshka Savera Beauty
Theme URI:   https://neshkasavera.com
Author:      Neshka Savera Luxury Lifestyle LLP
Author URI:  https://neshkasavera.com
Description: Premium editorial WooCommerce theme for Neshka Savera Beauty. Inspired by Indian mythology, Manam-style dark layout with gold accents, full WooCommerce integration and Customizer controls.
Version:     1.0.3
Requires at least: 6.0
Requires PHP: 8.0
License:     GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: neshka-savera
Tags:        e-commerce, woocommerce, beauty, dark, editorial, one-column, two-columns, custom-logo, custom-menu, featured-images, full-width-template, sticky-post, theme-options
*/

/* =============================================
   1. CSS CUSTOM PROPERTIES
   ============================================= */
:root {
  --clr-dark:    #0d0508;
  --clr-dark-2:  #1a0b10;
  --clr-dark-3:  #2a1218;
  --clr-gold:    #c9a55a;
  --clr-gold-lt: #e6c980;
  --clr-cream:   #f7f2ed;
  --clr-blush:   #d4a0a0;
  --clr-rose:    #8b3a52;
  --clr-rose-lt: #c47a92;
  --clr-gray:    #888080;
  --clr-white:   #ffffff;

  --ff-serif: 'Cormorant Garamond', Georgia, serif;
  --ff-sans:  'Jost', 'Inter', system-ui, sans-serif;

  --fw-light:   300;
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-bold:    700;

  --ease:       cubic-bezier(0.22, 1, 0.36, 1);
  --transition: 0.4s var(--ease);
  --radius:     0px;
}

/* =============================================
   2. RESET & BASE
   ============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--ff-sans);
  font-weight: var(--fw-light);
  background: var(--clr-dark);
  color: var(--clr-cream);
  line-height: 1.7;
  overflow-x: hidden;
}
a   { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; font-size: inherit; }
input, textarea, select { font-family: inherit; }
::selection { background: rgba(201,165,90,.35); color: var(--clr-cream); }

/* =============================================
   3. TYPOGRAPHY
   ============================================= */
h1,h2,h3,h4,h5,h6 { font-family: var(--ff-serif); font-weight: var(--fw-regular); line-height: 1.12; }
h1 { font-size: clamp(2.4rem, 6vw,  5.5rem); }
h2 { font-size: clamp(1.7rem, 4vw,  3.5rem); }
h3 { font-size: clamp(1.1rem, 2.5vw, 2rem); }
h4 { font-size: clamp(1rem,   1.8vw, 1.4rem); }

.eyebrow {
  font-family: var(--ff-sans);
  font-size: .68rem;
  font-weight: var(--fw-medium);
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--clr-gold);
  display: block;
}

/* =============================================
   4. LAYOUT UTILITIES
   ============================================= */
.container       { max-width: 1300px; margin: 0 auto; padding: 0 2rem; }
.container--wide { max-width: 1580px; margin: 0 auto; padding: 0 2rem; }
.section-pad     { padding: 6rem 0; }
.section-pad--lg { padding: 9rem 0; }
.text-center     { text-align: center; }
.text-gold       { color: var(--clr-gold); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

/* =============================================
   5. ANNOUNCEMENT BAR
   ============================================= */
.announcement-bar {
  background: var(--clr-dark-2);
  border-bottom: 1px solid rgba(201,165,90,.2);
  padding: .55rem 0;
  text-align: center;
  font-size: .68rem;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--clr-gold);
  position: relative;
  z-index: 10001;
}

/* =============================================
   6. HEADER
   ============================================= */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  transition: background var(--transition), backdrop-filter var(--transition);
}
/* push body down so content starts below fixed header+bar */
body { padding-top: var(--nsb-header-offset, 96px); }

.site-header.scrolled {
  background: rgba(13,5,8,.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.site-header__bar {
  background: var(--clr-dark-2);
  border-bottom: 1px solid rgba(201,165,90,.18);
  padding: .55rem 0;
  text-align: center;
  font-size: .68rem;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--clr-gold);
}

.site-header__nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 1rem 2.5rem;
  gap: 1rem;
}

.nav-left  { display: flex; gap: 2rem; align-items: center; }
.nav-right { display: flex; gap: 2rem; align-items: center; justify-content: flex-end; }

.site-logo { justify-self: center; display: flex; align-items: center; }
.site-logo img { height: 46px; width: auto; }

.nav-link {
  font-size: .68rem;
  font-weight: var(--fw-medium);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(247,242,237,.78);
  position: relative;
  transition: color var(--transition);
  white-space: nowrap;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 1px;
  background: var(--clr-gold);
  transition: width var(--transition);
}
.nav-link:hover, .nav-link[aria-current="page"] { color: var(--clr-gold); }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { width: 100%; }

.nav-cart {
  display: flex; align-items: center; gap: .4rem;
  font-size: .68rem; font-weight: var(--fw-medium);
  letter-spacing: .15em; text-transform: uppercase;
  color: rgba(247,242,237,.85); transition: color var(--transition);
}
.nav-cart:hover { color: var(--clr-gold); }
.nav-cart svg { width: 18px; height: 18px; stroke: var(--clr-gold); flex-shrink: 0; }
.cart-count { color: var(--clr-gold); }

.nav-hamburger {
  display: none; flex-direction: column; gap: 5px;
  padding: 5px; margin-left: .5rem;
}
.nav-hamburger span {
  display: block; width: 24px; height: 1.5px;
  background: var(--clr-cream);
  transition: transform var(--transition), opacity var(--transition);
}

/* =============================================
   7. MOBILE MENU
   ============================================= */
.mobile-menu {
  position: fixed; inset: 0; z-index: 10002;
  background: var(--clr-dark);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 2.2rem;
  transform: translateX(100%);
  transition: transform .55s var(--ease);
}
.mobile-menu.is-open { transform: translateX(0); }
.mobile-menu__close {
  position: absolute; top: 1.5rem; right: 1.8rem;
  font-size: 2rem; color: var(--clr-cream); line-height: 1;
  transition: color var(--transition);
}
.mobile-menu__close:hover { color: var(--clr-gold); }
.mobile-menu a {
  font-family: var(--ff-serif); font-size: 2.2rem;
  color: var(--clr-cream); transition: color var(--transition);
}
.mobile-menu a:hover { color: var(--clr-gold); }

/* =============================================
   8. BUTTONS
   ============================================= */
.btn {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .85rem 2rem;
  font-family: var(--ff-sans); font-size: .68rem;
  font-weight: var(--fw-medium); letter-spacing: .22em;
  text-transform: uppercase; cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
}
.btn--primary { background: var(--clr-gold); color: var(--clr-dark); }
.btn--primary:hover { background: var(--clr-gold-lt); transform: translateY(-2px); }
.btn--outline { border: 1px solid rgba(247,242,237,.38); color: var(--clr-cream); }
.btn--outline:hover { border-color: var(--clr-gold); color: var(--clr-gold); transform: translateY(-2px); }
.btn--rose   { background: var(--clr-rose); color: var(--clr-cream); }
.btn--rose:hover { background: #a04060; transform: translateY(-2px); }

/* =============================================
   9. MARQUEE / TICKER
   ============================================= */
.marquee-section { background: var(--clr-gold); padding: .95rem 0; overflow: hidden; }
.marquee-track   { display: flex; white-space: nowrap; animation: nsb-marquee 30s linear infinite; }
.marquee-track:hover { animation-play-state: paused; }
.marquee-item {
  display: inline-flex; align-items: center; gap: 1.2rem; flex-shrink: 0;
  padding: 0 1.4rem;
  font-size: .68rem; font-weight: var(--fw-bold);
  letter-spacing: .22em; text-transform: uppercase; color: var(--clr-dark);
}
.marquee-item .dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--clr-dark); flex-shrink: 0; }
@keyframes nsb-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* =============================================
   10. HERO
   ============================================= */
.hero {
  position: relative; min-height: calc(100vh - 96px);
  display: flex; align-items: flex-end; padding-bottom: 6rem;
  overflow: hidden; margin-top: -96px; /* bleed behind header */
}
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(13,5,8,.25) 0%, rgba(13,5,8,.05) 45%, rgba(13,5,8,.88) 100%);
}
.hero__content { position: relative; z-index: 1; max-width: 900px; padding: 0 2.5rem; }
.hero__eyebrow { margin-bottom: 1.1rem; }
.hero__title {
  font-family: var(--ff-serif);
  font-size: clamp(2.6rem, 7vw, 6rem);
  font-weight: var(--fw-light); font-style: italic;
  color: var(--clr-cream); line-height: 1.06; margin-bottom: 1.4rem;
}
.hero__desc {
  font-size: .95rem; color: rgba(247,242,237,.78);
  max-width: 480px; margin-bottom: 2.2rem; line-height: 1.85;
}
.hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }

/* =============================================
   11. COLLECTIONS GRID
   ============================================= */
.collections-section { padding: 7rem 0 5rem; }
.section-header {
  display: flex; justify-content: space-between;
  align-items: flex-end; gap: 1.5rem; margin-bottom: 3.5rem;
}
.section-header .eyebrow { margin-bottom: .5rem; }

.collections-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-rows: repeat(2, minmax(260px,1fr));
  gap: 1rem;
  min-height: 580px;
}
.col-card { position: relative; overflow: hidden; }
.col-card--large { grid-row: span 2; }
.col-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.col-card:hover .col-card__img { transform: scale(1.05); }
.col-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(13,5,8,.78) 0%, transparent 55%); }
.col-card__body { position: absolute; bottom: 0; left: 0; padding: 1.8rem; width: 100%; }
.col-card__label { font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: var(--clr-gold); margin-bottom: .4rem; }
.col-card__title { font-family: var(--ff-serif); font-size: clamp(1.1rem,2.5vw,2rem); color: var(--clr-cream); margin-bottom: .8rem; }
.col-card__link { display: inline-flex; align-items: center; gap: .45rem; font-size: .62rem; font-weight: var(--fw-medium); letter-spacing: .2em; text-transform: uppercase; color: var(--clr-gold); transition: gap var(--transition); }
.col-card__link:hover { gap: .75rem; }
.col-card__link svg { width: 13px; height: 13px; }

/* =============================================
   12. ABOUT SPLIT
   ============================================= */
.about-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 82vh; }
.about-split__media { overflow: hidden; }
.about-split__media img { width: 100%; height: 100%; object-fit: cover; }
.about-split__body {
  background: var(--clr-dark-2);
  display: flex; flex-direction: column; justify-content: center;
  padding: 6rem 5rem;
}
.about-split__title { font-family: var(--ff-serif); font-size: clamp(1.7rem,3.5vw,3rem); font-weight: var(--fw-light); color: var(--clr-cream); margin: .8rem 0 1.5rem; line-height: 1.18; }
.about-split__title em { font-style: italic; color: var(--clr-gold); }
.about-split__text { font-size: .93rem; color: rgba(247,242,237,.68); line-height: 1.9; margin-bottom: 2.2rem; max-width: 500px; }
.about-split__text strong { color: var(--clr-cream); font-weight: var(--fw-medium); }

/* =============================================
   13. PRODUCTS GRID
   ============================================= */
.products-section { padding: 7rem 0; }
.products-tabs {
  display: flex; border-bottom: 1px solid rgba(201,165,90,.18); margin-bottom: 3rem;
}
.products-tab {
  padding: .6rem 1.5rem;
  font-size: .67rem; font-weight: var(--fw-medium); letter-spacing: .18em; text-transform: uppercase;
  color: rgba(247,242,237,.4); border-bottom: 2px solid transparent;
  cursor: pointer; transition: all var(--transition);
}
.products-tab.is-active, .products-tab:focus-visible { color: var(--clr-gold); border-bottom-color: var(--clr-gold); outline: none; }
.products-tab:hover { color: var(--clr-cream); }

.products-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem; }

.product-card { display: flex; flex-direction: column; }
.product-card__media { position: relative; overflow: hidden; aspect-ratio: 3/4; background: var(--clr-dark-2); margin-bottom: 1rem; }
.product-card__img  { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.product-card:hover .product-card__img { transform: scale(1.05); }
.product-card__badge { position: absolute; top: .7rem; left: .7rem; padding: .22rem .6rem; background: var(--clr-rose); color: var(--clr-cream); font-size: .58rem; font-weight: var(--fw-medium); letter-spacing: .14em; text-transform: uppercase; }
.product-card__cta {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: .8rem; background: var(--clr-gold); color: var(--clr-dark);
  font-size: .62rem; font-weight: var(--fw-bold); letter-spacing: .2em; text-transform: uppercase; text-align: center;
  transform: translateY(100%); transition: transform var(--transition);
}
.product-card:hover .product-card__cta { transform: translateY(0); }
.product-card__name  { font-family: var(--ff-serif); font-size: 1.02rem; color: var(--clr-cream); margin-bottom: .25rem; }
.product-card__shade { font-size: .72rem; color: var(--clr-gray); margin-bottom: .4rem; }
.product-card__price { font-size: .88rem; color: var(--clr-gold); font-weight: var(--fw-medium); }
.product-card__name a { color: inherit; }
.product-card__name a:hover { color: var(--clr-gold); }

/* =============================================
   14. RITUAL STEPS
   ============================================= */
.ritual-section { background: var(--clr-dark-2); padding: 8rem 0; }
.ritual-header { text-align: center; margin-bottom: 5rem; }
.ritual-header p.eyebrow { margin-bottom: .8rem; }
.ritual-header h2 { color: var(--clr-cream); margin-bottom: 1rem; }
.ritual-header .lead { max-width: 480px; margin: 0 auto; font-size: .9rem; color: rgba(247,242,237,.55); line-height: 1.85; }
.ritual-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; }
.ritual-step__media { position: relative; aspect-ratio: 3/4; overflow: hidden; background: var(--clr-dark-3); margin-bottom: 1.4rem; }
.ritual-step__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.ritual-step:hover .ritual-step__media img { transform: scale(1.05); }
.ritual-step__num { position: absolute; top: .8rem; left: .8rem; font-family: var(--ff-serif); font-size: 2rem; color: rgba(201,165,90,.3); font-weight: var(--fw-light); line-height: 1; }
.ritual-step__title { font-family: var(--ff-serif); font-size: 1.25rem; color: var(--clr-cream); margin-bottom: .5rem; }
.ritual-step__desc { font-size: .82rem; color: rgba(247,242,237,.55); line-height: 1.75; }

/* =============================================
   15. INGREDIENTS
   ============================================= */
.ingredients-section { padding: 7rem 0; }
.ingredients-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 6rem; align-items: center; }
.ingredients-img img { width: 100%; }
.ingredients-body .eyebrow { margin-bottom: .8rem; }
.ingredients-body h2 { color: var(--clr-cream); margin-bottom: 1.4rem; }
.ingredients-body h2 em { font-style: italic; color: var(--clr-gold); }
.ingredients-body p { font-size: .93rem; color: rgba(247,242,237,.65); line-height: 1.9; margin-bottom: 2.2rem; }
.ingredients-body p strong { color: var(--clr-cream); }
.ingredients-list { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 2rem; margin-bottom: 2.5rem; }
.ingredient-item { display: flex; align-items: center; gap: .6rem; font-size: .85rem; color: var(--clr-cream); }
.ingredient-item::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--clr-gold); flex-shrink: 0; }

/* =============================================
   16. TRUST BAR
   ============================================= */
.trust-bar { background: var(--clr-dark-2); border-top: 1px solid rgba(201,165,90,.12); border-bottom: 1px solid rgba(201,165,90,.12); padding: 3rem 0; }
.trust-bar__inner { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; text-align: center; }
.trust-num   { font-family: var(--ff-serif); font-size: clamp(2.5rem,5vw,4rem); color: var(--clr-gold); line-height: 1; margin-bottom: .35rem; }
.trust-label { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(247,242,237,.45); }

/* =============================================
   17. TESTIMONIALS
   ============================================= */
.testimonials-section { padding: 8rem 0; overflow: hidden; }
.testimonials-header { text-align: center; margin-bottom: 4rem; }
.testimonials-header .eyebrow { margin-bottom: .8rem; }
.testimonials-header h2 { color: var(--clr-cream); }
.testimonials-slider {
  display: flex; gap: 1.4rem; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; padding: 0 2rem 1.5rem; -ms-overflow-style: none;
}
.testimonials-slider::-webkit-scrollbar { display: none; }
.testimonial-card {
  flex: 0 0 370px; background: var(--clr-dark-2);
  border: 1px solid rgba(201,165,90,.13); padding: 2.4rem;
  scroll-snap-align: start; transition: border-color var(--transition);
}
.testimonial-card:hover { border-color: rgba(201,165,90,.4); }
.testimonial-stars { color: var(--clr-gold); letter-spacing: 2px; font-size: .9rem; margin-bottom: 1.1rem; }
.testimonial-quote { font-family: var(--ff-serif); font-style: italic; font-size: 1.02rem; color: var(--clr-cream); line-height: 1.6; margin-bottom: 1.4rem; }
.testimonial-author { font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; color: var(--clr-gold); }
.testimonial-location { font-size: .7rem; color: var(--clr-gray); margin-top: .2rem; }

/* =============================================
   18. PRESS
   ============================================= */
.press-section { background: var(--clr-dark-2); border-top: 1px solid rgba(201,165,90,.12); padding: 4.5rem 0; }
.press-section .eyebrow { text-align: center; margin-bottom: 2.5rem; }
.press-logos { display: flex; gap: 3rem; align-items: center; flex-wrap: wrap; justify-content: center; }
.press-logo {
  font-family: var(--ff-serif); font-size: 1.1rem; font-style: italic;
  color: rgba(247,242,237,.28); font-weight: var(--fw-light); letter-spacing: .04em;
  transition: color var(--transition);
}
.press-logo:hover { color: rgba(247,242,237,.65); }

/* =============================================
   19. FULL-BLEED EXPERIENCE BANNER
   ============================================= */
.experience-section {
  position: relative; min-height: 68vh;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.experience-section__bg { position: absolute; inset: 0; }
.experience-section__bg img { width: 100%; height: 100%; object-fit: cover; }
.experience-section__overlay { position: absolute; inset: 0; background: rgba(13,5,8,.58); }
.experience-section__body { position: relative; z-index: 1; text-align: center; padding: 3rem 2rem; max-width: 700px; }
.experience-section__body h2 { color: var(--clr-cream); margin-bottom: 1.1rem; }
.experience-location { font-size: .7rem; letter-spacing: .25em; text-transform: uppercase; color: var(--clr-gold); margin: .6rem 0 1.4rem; }
.experience-section__body p { color: rgba(247,242,237,.72); font-size: .95rem; line-height: 1.85; margin-bottom: 2rem; }

/* =============================================
   20. OFFER BANNER
   ============================================= */
.offer-banner { background: var(--clr-rose); padding: 5.5rem 0; text-align: center; }
.offer-banner .eyebrow { color: rgba(247,242,237,.6); margin-bottom: .8rem; }
.offer-banner h2 { color: var(--clr-cream); margin-bottom: .8rem; }
.offer-banner p { color: rgba(247,242,237,.78); margin-bottom: 2.2rem; font-size: .92rem; }
.offer-banner strong { color: var(--clr-cream); font-weight: var(--fw-bold); }
.offer-banner .btn--primary { background: var(--clr-cream); color: var(--clr-rose); }
.offer-banner .btn--primary:hover { background: var(--clr-gold-lt); color: var(--clr-dark); }

/* =============================================
   21. NEWSLETTER
   ============================================= */
.newsletter-section { padding: 5rem 0; border-top: 1px solid rgba(201,165,90,.12); text-align: center; }
.newsletter-section .eyebrow { margin-bottom: .8rem; }
.newsletter-section h3 { font-family: var(--ff-serif); font-size: 1.8rem; color: var(--clr-cream); margin-bottom: .6rem; }
.newsletter-section > .container > p { color: rgba(247,242,237,.5); font-size: .88rem; margin-bottom: 2rem; }
.newsletter-form { display: flex; max-width: 480px; margin: 0 auto; }
.newsletter-form input {
  flex: 1; padding: .82rem 1.1rem;
  background: var(--clr-dark-2); border: 1px solid rgba(201,165,90,.22);
  border-right: none; color: var(--clr-cream); font-family: var(--ff-sans); font-size: .88rem; outline: none;
  transition: border-color var(--transition);
}
.newsletter-form input::placeholder { color: rgba(247,242,237,.28); }
.newsletter-form input:focus { border-color: rgba(201,165,90,.5); }
.newsletter-form button {
  padding: 0 1.8rem; background: var(--clr-gold); color: var(--clr-dark);
  font-family: var(--ff-sans); font-size: .68rem; font-weight: var(--fw-bold);
  letter-spacing: .2em; text-transform: uppercase; transition: background var(--transition);
  white-space: nowrap;
}
.newsletter-form button:hover { background: var(--clr-gold-lt); }

/* =============================================
   22. FOOTER
   ============================================= */
.site-footer { background: var(--clr-dark-2); border-top: 1px solid rgba(201,165,90,.1); padding: 5rem 0 2rem; }
.footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 3rem; padding-bottom: 4rem; border-bottom: 1px solid rgba(201,165,90,.09); }
.footer-brand img { height: 42px; margin-bottom: 1.4rem; }
.footer-brand p { font-size: .82rem; color: rgba(247,242,237,.45); line-height: 1.8; max-width: 240px; margin-bottom: 1.5rem; }
.footer-social { display: flex; gap: .8rem; }
.footer-social a {
  width: 34px; height: 34px; border: 1px solid rgba(201,165,90,.28);
  display: flex; align-items: center; justify-content: center;
  color: var(--clr-gold); font-size: .8rem; transition: all var(--transition);
}
.footer-social a:hover { background: var(--clr-gold); color: var(--clr-dark); border-color: var(--clr-gold); }
.footer-social svg { width: 14px; height: 14px; }
.footer-col h5 { font-family: var(--ff-sans); font-size: .63rem; font-weight: var(--fw-bold); letter-spacing: .25em; text-transform: uppercase; color: var(--clr-gold); margin-bottom: 1.4rem; }
.footer-col ul { display: flex; flex-direction: column; gap: .7rem; }
.footer-col a { font-size: .82rem; color: rgba(247,242,237,.45); transition: color var(--transition); }
.footer-col a:hover { color: var(--clr-cream); }
.footer-contact-item { display: flex; gap: .55rem; align-items: flex-start; font-size: .82rem; color: rgba(247,242,237,.45); margin-bottom: .75rem; line-height: 1.5; }
.footer-contact-item svg { width: 14px; height: 14px; stroke: var(--clr-gold); flex-shrink: 0; margin-top: 2px; }
.footer-contact-item a { color: rgba(247,242,237,.45); transition: color var(--transition); }
.footer-contact-item a:hover { color: var(--clr-cream); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 2rem; flex-wrap: wrap; gap: 1rem; }
.footer-copy { font-size: .7rem; color: rgba(247,242,237,.28); letter-spacing: .07em; }
.footer-legal { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.footer-legal a { font-size: .67rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(247,242,237,.3); transition: color var(--transition); }
.footer-legal a:hover { color: var(--clr-gold); }

/* =============================================
   23. PAGE TEMPLATES (generic)
   ============================================= */
.page-hero { padding: 5.5rem 0 3rem; background: var(--clr-dark-2); border-bottom: 1px solid rgba(201,165,90,.1); }
.page-hero .eyebrow { margin-bottom: .7rem; }
.page-hero h1 { color: var(--clr-cream); }
.page-body { padding: 5rem 0; background: var(--clr-dark); }
.page-body--narrow { max-width: 800px; }
.page-body p, .entry-content p { font-size: .95rem; color: rgba(247,242,237,.72); line-height: 1.9; margin-bottom: 1.2rem; }
.page-body h2, .page-body h3, .entry-content h2, .entry-content h3 { font-family: var(--ff-serif); color: var(--clr-cream); margin: 2rem 0 1rem; }
.page-body ul, .page-body ol, .entry-content ul, .entry-content ol { padding-left: 1.5rem; margin-bottom: 1.2rem; }
.page-body li, .entry-content li { margin-bottom: .5rem; font-size: .93rem; color: rgba(247,242,237,.65); }
.page-body strong, .entry-content strong { color: var(--clr-cream); }
.page-body a, .entry-content a { color: var(--clr-gold); text-decoration-line: underline; text-underline-offset: 3px; }

/* =============================================
   24. WOOCOMMERCE OVERRIDES
   ============================================= */
.woocommerce-page { background: var(--clr-dark); }

/* Shop page title */
.woo-page-hero { background: var(--clr-dark-2); border-bottom: 1px solid rgba(201,165,90,.1); padding: 5rem 0 3rem; }
.woo-page-hero h1 { font-family: var(--ff-serif); color: var(--clr-cream); }

/* WC breadcrumb */
.nsb-breadcrumb { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(247,242,237,.35); margin-bottom: 2rem; }
.nsb-breadcrumb a { color: rgba(247,242,237,.35); transition: color var(--transition); }
.nsb-breadcrumb a:hover { color: var(--clr-gold); }
.nsb-breadcrumb .sep { margin: 0 .45rem; }

/* WC product loop (fallback) */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4,1fr) !important; gap: 1.2rem !important; float: none !important; }
.woocommerce ul.products li.product { float: none !important; width: 100% !important; margin: 0 !important; background: var(--clr-dark-2); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--ff-serif) !important; color: var(--clr-cream) !important; font-size: 1rem !important; padding: 1rem 1rem .3rem !important; }
.woocommerce ul.products li.product .price { color: var(--clr-gold) !important; font-size: .9rem !important; padding: 0 1rem .8rem !important; }
.woocommerce ul.products li.product .button { background: transparent !important; border: 1px solid rgba(201,165,90,.28) !important; color: var(--clr-gold) !important; font-size: .62rem !important; letter-spacing: .18em !important; text-transform: uppercase !important; font-family: var(--ff-sans) !important; margin: 0 1rem 1rem !important; padding: .55rem 1rem !important; transition: all var(--transition) !important; }
.woocommerce ul.products li.product .button:hover { background: var(--clr-gold) !important; color: var(--clr-dark) !important; }

/* WC single product */
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--clr-gold) !important; font-size: 1.4rem !important; }
.woocommerce div.product .product_title { font-family: var(--ff-serif) !important; color: var(--clr-cream) !important; font-size: clamp(1.8rem,3vw,3rem) !important; }
.woocommerce div.product .woocommerce-product-details__short-description { color: rgba(247,242,237,.65) !important; font-size: .93rem !important; line-height: 1.85 !important; }
.woocommerce div.product form.cart .single_add_to_cart_button { background: var(--clr-gold) !important; color: var(--clr-dark) !important; font-family: var(--ff-sans) !important; font-size: .68rem !important; font-weight: var(--fw-bold) !important; letter-spacing: .22em !important; text-transform: uppercase !important; border-radius: 0 !important; padding: 1rem 2rem !important; transition: background var(--transition) !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--clr-gold-lt) !important; }

/* WC notices */
.woocommerce-message, .woocommerce-info { background: var(--clr-dark-2) !important; border-top-color: var(--clr-gold) !important; color: var(--clr-cream) !important; }
.woocommerce-error { background: var(--clr-dark-2) !important; border-top-color: var(--clr-rose) !important; color: var(--clr-cream) !important; }

/* Cart & Checkout */
.woocommerce-cart table.cart td, .woocommerce-cart table.cart th { color: var(--clr-cream) !important; border-color: rgba(201,165,90,.12) !important; }
.woocommerce-cart table.cart { background: var(--clr-dark-2) !important; }
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-checkout h3 { font-family: var(--ff-serif) !important; color: var(--clr-cream) !important; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { background: var(--clr-gold) !important; color: var(--clr-dark) !important; font-family: var(--ff-sans) !important; letter-spacing: .18em !important; text-transform: uppercase !important; border-radius: 0 !important; }
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background: var(--clr-gold-lt) !important; }

/* WC form fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea { background: var(--clr-dark-2) !important; border-color: rgba(201,165,90,.22) !important; color: var(--clr-cream) !important; border-radius: 0 !important; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--clr-gold) !important; box-shadow: none !important; }
.woocommerce form .form-row label { color: rgba(247,242,237,.55) !important; font-size: .72rem !important; letter-spacing: .12em !important; text-transform: uppercase !important; }

/* =============================================
   25. SINGLE PRODUCT PAGE COMPONENTS
   ============================================= */
.nsb-product-wrap { padding: 4rem 0 8rem; min-height: 100vh; }
.nsb-product-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: flex-start; }

/* Gallery */
.nsb-gallery-main  { position: relative; overflow: hidden; aspect-ratio: 1/1; background: var(--clr-dark-2); margin-bottom: .8rem; cursor: zoom-in; }
.nsb-gallery-main img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.nsb-gallery-main:hover img { transform: scale(1.04); }
.nsb-gallery-thumbs { display: grid; grid-template-columns: repeat(4,1fr); gap: .6rem; }
.nsb-gallery-thumb { aspect-ratio: 1/1; overflow: hidden; cursor: pointer; border: 2px solid transparent; transition: border-color var(--transition); }
.nsb-gallery-thumb.is-active { border-color: var(--clr-gold); }
.nsb-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Product info */
.nsb-product-cat   { font-size: .67rem; letter-spacing: .2em; text-transform: uppercase; color: var(--clr-gold); margin-bottom: .5rem; }
.nsb-product-title { font-family: var(--ff-serif); font-size: clamp(1.9rem,3.5vw,3rem); font-weight: var(--fw-light); color: var(--clr-cream); line-height: 1.1; margin-bottom: .3rem; }
.nsb-product-brand { font-family: var(--ff-serif); font-style: italic; font-size: 1rem; color: rgba(247,242,237,.45); margin-bottom: 1.3rem; }
.nsb-rating        { display: flex; align-items: center; gap: .55rem; margin-bottom: 1.4rem; }
.nsb-stars         { color: var(--clr-gold); letter-spacing: 2px; font-size: .88rem; }
.nsb-rating span   { font-size: .72rem; color: rgba(247,242,237,.4); }
.nsb-product-price { font-family: var(--ff-serif); font-size: 2rem; color: var(--clr-gold); margin-bottom: 1.4rem; line-height: 1; }
.nsb-product-price del { color: rgba(201,165,90,.45); font-size: 1.2rem; margin-right: .6rem; }
.nsb-divider       { height: 1px; background: rgba(201,165,90,.12); margin: 1.4rem 0; }
.nsb-product-desc  { font-size: .92rem; color: rgba(247,242,237,.62); line-height: 1.85; margin-bottom: 1.6rem; }

/* Shade swatches */
.nsb-shade-wrap    { margin-bottom: 1.8rem; }
.nsb-shade-label   { font-size: .67rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(247,242,237,.5); margin-bottom: .7rem; }
.nsb-shade-label strong { color: var(--clr-cream); }
.nsb-swatches      { display: flex; gap: .65rem; flex-wrap: wrap; }
.nsb-swatch {
  width: 36px; height: 36px; border-radius: 50%; cursor: pointer;
  border: 2px solid transparent; transition: all .25s; position: relative;
}
.nsb-swatch::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid transparent; transition: border-color .25s; }
.nsb-swatch:hover  { transform: scale(1.1); }
.nsb-swatch.is-active::after { border-color: var(--clr-gold); }
.nsb-swatch[data-shade="m01"] { background: #e8a0a0; }
.nsb-swatch[data-shade="m02"] { background: #a83248; }
.nsb-swatch[data-shade="m03"] { background: #6b3070; }
.nsb-swatch[data-shade="m04"] { background: #7c5240; }

/* Qty + Add to cart */
.nsb-form-row      { display: flex; gap: .8rem; align-items: center; margin-bottom: 1.4rem; flex-wrap: wrap; }
.nsb-qty           { display: flex; align-items: center; border: 1px solid rgba(201,165,90,.28); }
.nsb-qty button    { width: 40px; height: 48px; display: flex; align-items: center; justify-content: center; color: var(--clr-cream); font-size: 1.3rem; transition: background .25s; }
.nsb-qty button:hover { background: rgba(201,165,90,.1); }
.nsb-qty input     { width: 52px; height: 48px; text-align: center; background: transparent; border: none; border-left: 1px solid rgba(201,165,90,.18); border-right: 1px solid rgba(201,165,90,.18); color: var(--clr-cream); font-family: var(--ff-sans); font-size: .92rem; outline: none; -moz-appearance: textfield; }
.nsb-qty input::-webkit-outer-spin-button, .nsb-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.nsb-add-btn       { flex: 1; min-width: 180px; height: 48px; padding: 0 1.8rem; background: var(--clr-gold); color: var(--clr-dark); font-family: var(--ff-sans); font-size: .68rem; font-weight: var(--fw-bold); letter-spacing: .22em; text-transform: uppercase; transition: background var(--transition), transform var(--transition); }
.nsb-add-btn:hover { background: var(--clr-gold-lt); transform: translateY(-1px); }
.nsb-add-btn:disabled { opacity: .65; transform: none; cursor: wait; }
.nsb-wish-btn      { width: 48px; height: 48px; border: 1px solid rgba(201,165,90,.28); display: flex; align-items: center; justify-content: center; color: var(--clr-gold); transition: all .25s; flex-shrink: 0; }
.nsb-wish-btn:hover { background: var(--clr-rose); border-color: var(--clr-rose); color: #fff; }
.nsb-wish-btn svg  { width: 18px; height: 18px; }

/* Guarantees */
.nsb-guarantees    { display: grid; grid-template-columns: repeat(3,1fr); gap: .7rem; margin-bottom: 1.8rem; }
.nsb-guarantee     { display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: .9rem .5rem; background: var(--clr-dark-2); text-align: center; }
.nsb-guarantee svg { width: 18px; height: 18px; stroke: var(--clr-gold); }
.nsb-guarantee span { font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(247,242,237,.45); }

/* Accordion */
.nsb-accordion-item { border-bottom: 1px solid rgba(201,165,90,.12); }
.nsb-accordion-trigger { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; font-size: .68rem; font-weight: var(--fw-medium); letter-spacing: .18em; text-transform: uppercase; color: var(--clr-cream); transition: color var(--transition); }
.nsb-accordion-trigger:hover { color: var(--clr-gold); }
.nsb-accordion-icon { width: 14px; height: 14px; stroke: var(--clr-gold); transition: transform .35s; flex-shrink: 0; }
.nsb-accordion-item.is-open .nsb-accordion-icon { transform: rotate(45deg); }
.nsb-accordion-body { max-height: 0; overflow: hidden; transition: max-height .4s var(--ease); }
.nsb-accordion-item.is-open .nsb-accordion-body { max-height: 600px; }
.nsb-accordion-body__inner { padding: 0 0 1.4rem; font-size: .88rem; color: rgba(247,242,237,.58); line-height: 1.85; }
.nsb-accordion-body__inner ul { padding-left: 1rem; margin-top: .4rem; }
.nsb-accordion-body__inner li { margin-bottom: .4rem; position: relative; padding-left: .9rem; list-style: none; }
.nsb-accordion-body__inner li::before { content: ''; position: absolute; left: 0; top: .55em; width: 5px; height: 5px; border-radius: 50%; background: var(--clr-gold); }
.nsb-accordion-body__inner strong { color: var(--clr-cream); }

/* Related */
.nsb-related { padding: 6rem 0; background: var(--clr-dark-2); border-top: 1px solid rgba(201,165,90,.1); }
.nsb-related-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 3rem; }
.nsb-related-header .eyebrow { margin-bottom: .4rem; }

/* =============================================
   26. CONTACT & ABOUT PAGES
   ============================================= */
.contact-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 5rem; align-items: flex-start; }
.contact-detail { display: flex; gap: .9rem; align-items: flex-start; margin-bottom: 1.6rem; padding-bottom: 1.6rem; border-bottom: 1px solid rgba(201,165,90,.1); }
.contact-detail:last-of-type { border-bottom: none; }
.contact-detail svg { width: 20px; height: 20px; stroke: var(--clr-gold); flex-shrink: 0; margin-top: 2px; }
.contact-detail h4 { font-family: var(--ff-sans); font-size: .63rem; font-weight: var(--fw-bold); letter-spacing: .22em; text-transform: uppercase; color: var(--clr-gold); margin-bottom: .35rem; }
.contact-detail p, .contact-detail a { font-size: .88rem; color: rgba(247,242,237,.6); line-height: 1.6; }
.contact-detail a:hover { color: var(--clr-cream); }
.contact-hours { padding: 1.5rem; background: var(--clr-dark-2); border: 1px solid rgba(201,165,90,.1); margin-top: 1.8rem; }
.contact-hours h4 { font-family: var(--ff-sans); font-size: .63rem; font-weight: var(--fw-bold); letter-spacing: .22em; text-transform: uppercase; color: var(--clr-gold); margin-bottom: .7rem; }
.contact-hours p { font-size: .84rem; color: rgba(247,242,237,.5); margin-bottom: .3rem; }
.contact-form-wrap { background: var(--clr-dark-2); padding: 3rem; border: 1px solid rgba(201,165,90,.1); }
.contact-form-wrap h2 { font-family: var(--ff-serif); font-size: 1.7rem; color: var(--clr-cream); margin-bottom: .4rem; }
.contact-form-wrap > p { font-size: .84rem; color: rgba(247,242,237,.4); margin-bottom: 2rem; }
.nsb-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.nsb-field { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1rem; }
.nsb-field label { font-size: .63rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(247,242,237,.45); }
.nsb-field label .req { color: var(--clr-rose); margin-left: .2rem; }
.nsb-field input, .nsb-field textarea, .nsb-field select { background: var(--clr-dark); border: 1px solid rgba(201,165,90,.18); padding: .8rem 1rem; color: var(--clr-cream); font-family: var(--ff-sans); font-size: .88rem; outline: none; width: 100%; transition: border-color var(--transition); -webkit-appearance: none; }
.nsb-field input::placeholder, .nsb-field textarea::placeholder { color: rgba(247,242,237,.22); }
.nsb-field input:focus, .nsb-field textarea:focus, .nsb-field select:focus { border-color: rgba(201,165,90,.5); }
.nsb-field textarea { min-height: 130px; resize: vertical; }
.nsb-field select option { background: #1a0b10; }
.form-notice { padding: .7rem 1rem; font-size: .82rem; border: 1px solid; margin-bottom: 1.5rem; }
.form-notice--success { border-color: rgba(42,110,63,.5); background: rgba(42,110,63,.12); color: #7ee8a2; }
.form-notice--error   { border-color: rgba(139,58,82,.5); background: rgba(139,58,82,.12); color: var(--clr-rose-lt); }

/* About page */
.about-values-grid  { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; }
.about-value-card   { background: var(--clr-dark); border: 1px solid rgba(201,165,90,.1); padding: 2.5rem 2rem; text-align: center; transition: border-color var(--transition); }
.about-value-card:hover { border-color: rgba(201,165,90,.38); }
.about-value-card__icon { font-size: 2.2rem; display: block; margin-bottom: 1.1rem; }
.about-value-card h3 { font-family: var(--ff-serif); font-size: 1.3rem; color: var(--clr-cream); margin-bottom: .7rem; }
.about-value-card p  { font-size: .87rem; color: rgba(247,242,237,.52); line-height: 1.75; }

/* =============================================
   27. SCROLL REVEAL ANIMATION
   ============================================= */
.nsb-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.nsb-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* =============================================
   28. RESPONSIVE
   ============================================= */
@media (max-width: 1100px) {
  .products-grid   { grid-template-columns: repeat(3,1fr); }
  .ritual-steps    { grid-template-columns: repeat(2,1fr); }
  .footer-top      { grid-template-columns: 1fr 1fr; }
  .woocommerce ul.products { grid-template-columns: repeat(3,1fr) !important; }
}

@media (max-width: 900px) {
  .about-split     { grid-template-columns: 1fr; }
  .about-split__media { height: 55vw; }
  .about-split__body  { padding: 4rem 2.5rem; }
  .ingredients-grid   { grid-template-columns: 1fr; }
  .trust-bar__inner   { grid-template-columns: 1fr 1fr; }
  .collections-grid   { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .col-card--large    { grid-row: span 1; }
  .nsb-product-layout { grid-template-columns: 1fr; gap: 3rem; }
  .contact-grid       { grid-template-columns: 1fr; gap: 3rem; }
  .about-values-grid  { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  body              { padding-top: var(--nsb-header-offset, 96px); }
  .site-header__nav { grid-template-columns: auto 1fr auto; padding: .9rem 1.2rem; }
  .nav-left, .nav-right { display: none; }
  .nav-hamburger    { display: flex; }
  .site-logo        { justify-self: center; grid-column: 2; }
  .collections-grid { grid-template-columns: 1fr; }
  .col-card         { aspect-ratio: 4/3; }
  .products-grid    { grid-template-columns: repeat(2,1fr); }
  .footer-top       { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom    { flex-direction: column; text-align: center; }
  .trust-bar__inner { grid-template-columns: 1fr; gap: 2rem; }
  .section-pad, .section-pad--lg { padding: 4.5rem 0; }
  .contact-form-wrap { padding: 2rem 1.5rem; }
  .nsb-field-row    { grid-template-columns: 1fr; }
  .woocommerce ul.products { grid-template-columns: repeat(2,1fr) !important; }
}

@media (max-width: 480px) {
  .products-grid    { grid-template-columns: 1fr; }
  .newsletter-form  { flex-direction: column; }
  .newsletter-form input { border-right: 1px solid rgba(201,165,90,.22); border-bottom: none; }
  .hero__actions    { flex-direction: column; align-items: flex-start; }
  .nsb-guarantees   { grid-template-columns: 1fr 1fr; }
  .woocommerce ul.products { grid-template-columns: 1fr !important; }
}
/* =============================================
   29. PHASE 1 - NATIVE WOOCOMMERCE PRODUCT FIX
   Preserves Neshka visual style while restoring native gallery,
   variations, product tabs, reviews, notices and related products.
   ============================================= */
.nsb-single-product .summary,
.nsb-single-product .woocommerce-product-gallery {
  float: none !important;
  width: 100% !important;
}

.nsb-product-gallery-column .woocommerce-product-gallery {
  position: relative;
  margin: 0;
}

.nsb-product-gallery-column .woocommerce-product-gallery__wrapper {
  margin: 0;
}

.nsb-product-gallery-column .woocommerce-product-gallery__image {
  background: var(--clr-dark-2);
  overflow: hidden;
}

.nsb-product-gallery-column .woocommerce-product-gallery__image:first-child {
  aspect-ratio: 1 / 1;
}

.nsb-product-gallery-column .woocommerce-product-gallery__image img {
  width: 100%;
  height: auto;
  display: block;
}

.nsb-product-gallery-column .woocommerce-product-gallery__image:first-child img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nsb-product-gallery-column .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .6rem;
  margin: .8rem 0 0;
  padding: 0;
  list-style: none;
}

.nsb-product-gallery-column .flex-control-thumbs li {
  width: 100% !important;
  float: none !important;
  overflow: hidden;
  background: var(--clr-dark-2);
  border: 2px solid transparent;
  transition: border-color var(--transition);
}

.nsb-product-gallery-column .flex-control-thumbs li:has(img.flex-active) {
  border-color: var(--clr-gold);
}

.nsb-product-gallery-column .flex-control-thumbs img {
  width: 100%;
  height: auto;
  display: block;
  opacity: .72;
  transition: opacity var(--transition), transform var(--transition);
}

.nsb-product-gallery-column .flex-control-thumbs img.flex-active,
.nsb-product-gallery-column .flex-control-thumbs img:hover {
  opacity: 1;
}

.nsb-single-product.product-type-simple form.cart,
.nsb-single-product.product-type-variable form.cart {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin: 1.6rem 0 1.4rem;
  flex-wrap: wrap;
}

.nsb-single-product.product-type-grouped form.cart,
.nsb-single-product.product-type-external form.cart {
  margin: 1.6rem 0 1.4rem;
}

.nsb-single-product form.cart .quantity {
  display: flex;
  align-items: center;
  border: 1px solid rgba(201,165,90,.28);
}

.nsb-single-product form.cart .qty {
  width: 72px;
  height: 48px;
  background: transparent;
  border: none;
  color: var(--clr-cream);
  text-align: center;
  font-family: var(--ff-sans);
  font-size: .92rem;
  outline: none;
}

.nsb-single-product form.cart .single_add_to_cart_button,
.nsb-single-product form.cart .button {
  min-height: 48px;
  padding: 0 1.8rem !important;
  border: 1px solid var(--clr-gold) !important;
  background: var(--clr-gold) !important;
  color: var(--clr-dark) !important;
  font-family: var(--ff-sans) !important;
  font-size: .68rem !important;
  font-weight: var(--fw-bold) !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  transition: background var(--transition), transform var(--transition), color var(--transition) !important;
}

.nsb-single-product form.cart .single_add_to_cart_button:hover,
.nsb-single-product form.cart .button:hover {
  background: var(--clr-gold-lt) !important;
  color: var(--clr-dark) !important;
  transform: translateY(-1px);
}

.nsb-single-product form.cart .variations {
  width: 100%;
  margin-bottom: 1rem;
  border: 0;
}

.nsb-single-product form.cart .variations th,
.nsb-single-product form.cart .variations td {
  display: block;
  padding: 0 0 .7rem;
  text-align: left;
  border: 0;
}

.nsb-single-product form.cart .variations label {
  font-size: .67rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(247,242,237,.5);
  font-weight: var(--fw-medium);
}

.nsb-single-product form.cart .variations select {
  width: 100%;
  min-height: 48px;
  background: var(--clr-dark-2);
  border: 1px solid rgba(201,165,90,.25);
  color: var(--clr-cream);
  padding: 0 1rem;
  border-radius: 0;
}

.nsb-single-product .reset_variations {
  display: inline-block;
  margin-top: .6rem;
  color: var(--clr-gold);
  font-size: .78rem;
  letter-spacing: .08em;
}

.nsb-single-product .single_variation_wrap {
  width: 100%;
}

.nsb-single-product .woocommerce-variation-price {
  margin: 1rem 0;
  color: var(--clr-gold);
  font-family: var(--ff-serif);
  font-size: 1.4rem;
}

.nsb-single-product .stock {
  margin: 1rem 0;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nsb-single-product .stock.in-stock { color: var(--clr-gold); }
.nsb-single-product .stock.out-of-stock { color: var(--clr-rose-lt); }

.nsb-single-product .product_meta {
  display: block;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(201,165,90,.15);
  font-size: .78rem;
  color: rgba(247,242,237,.48);
  line-height: 1.8;
}

.nsb-single-product .product_meta > span {
  display: block;
  margin-bottom: .35rem;
}

.nsb-single-product .product_meta a { color: var(--clr-gold); }

.nsb-single-product .woocommerce-product-rating .star-rating {
  color: var(--clr-gold);
}

.nsb-single-product .woocommerce-review-link {
  color: rgba(247,242,237,.45);
  font-size: .72rem;
}

.nsb-single-product .woocommerce-tabs {
  margin-top: 5rem;
  padding-top: 3rem;
  border-top: 1px solid rgba(201,165,90,.12);
}

.nsb-single-product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  padding: 0 !important;
  margin: 0 0 2rem !important;
  list-style: none;
}

.nsb-single-product .woocommerce-tabs ul.tabs::before,
.nsb-single-product .woocommerce-tabs ul.tabs li::before,
.nsb-single-product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

.nsb-single-product .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.nsb-single-product .woocommerce-tabs ul.tabs li a {
  display: inline-flex;
  padding: .75rem 1.1rem !important;
  border: 1px solid rgba(201,165,90,.25);
  color: var(--clr-cream) !important;
  font-size: .67rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: var(--fw-medium);
}

.nsb-single-product .woocommerce-tabs ul.tabs li.active a,
.nsb-single-product .woocommerce-tabs ul.tabs li a:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold) !important;
}

.nsb-single-product .woocommerce-Tabs-panel {
  color: rgba(247,242,237,.68);
  line-height: 1.85;
}

.nsb-single-product .woocommerce-Tabs-panel h2 {
  font-family: var(--ff-serif);
  color: var(--clr-cream);
  margin-bottom: 1rem;
}

.nsb-single-product #reviews,
.nsb-single-product #comments,
.nsb-single-product #review_form_wrapper {
  color: rgba(247,242,237,.68);
}

.nsb-single-product .comment-reply-title,
.nsb-single-product .woocommerce-Reviews-title {
  font-family: var(--ff-serif);
  color: var(--clr-cream);
}

.nsb-single-product .related.products,
.nsb-single-product .upsells.products {
  margin-top: 5rem;
  padding-top: 3rem;
  border-top: 1px solid rgba(201,165,90,.1);
}

.nsb-single-product .related.products > h2,
.nsb-single-product .upsells.products > h2 {
  font-family: var(--ff-serif);
  font-size: clamp(2rem,4vw,3rem);
  font-weight: var(--fw-light);
  color: var(--clr-cream);
  margin-bottom: 2rem;
}

/* Fix related products left gap caused by WooCommerce clearfix pseudo elements */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  content: none !important;
  display: none !important;
}

.nsb-single-product .related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.2rem !important;
  margin: 0 !important;
  padding: 0 !important;
}

.nsb-single-product .related.products ul.products li.product {
  margin: 0 !important;
  width: 100% !important;
  float: none !important;
}

.woocommerce-notices-wrapper {
  margin-bottom: 1.5rem;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: var(--clr-dark-2) !important;
  color: var(--clr-cream) !important;
  border-top-color: var(--clr-gold) !important;
}

.woocommerce-error { border-top-color: var(--clr-rose) !important; }
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a { color: var(--clr-gold) !important; }

@media (max-width: 768px) {
  .nsb-single-product.product-type-simple form.cart,
  .nsb-single-product.product-type-variable form.cart {
    display: block;
  }

  .nsb-single-product form.cart .quantity {
    margin-bottom: 1rem;
    width: max-content;
  }

  .nsb-single-product form.cart .single_add_to_cart_button,
  .nsb-single-product form.cart .button {
    width: 100%;
  }

  .nsb-product-gallery-column .flex-control-thumbs {
    grid-template-columns: repeat(4, 1fr);
  }
}


/* =============================================
   PHASE 1 #2 - LINKED SHADE PRODUCT SWATCHES
   ============================================= */
.nsb-linked-shades .nsb-swatches {
  align-items: center;
}

.nsb-linked-swatch {
  display: inline-block;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--nsb-shade-color, var(--clr-gold));
  border: 2px solid transparent;
  position: relative;
  transition: transform .25s ease, opacity .25s ease;
}

.nsb-linked-swatch::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1px solid transparent;
  transition: border-color .25s ease;
}

.nsb-linked-swatch:hover {
  transform: scale(1.1);
}

.nsb-linked-swatch.is-active::after,
.nsb-linked-swatch[aria-current="true"]::after {
  border-color: var(--clr-gold);
}

.nsb-linked-swatch.is-unavailable {
  opacity: .45;
}

.nsb-linked-swatch:focus-visible {
  outline: 2px solid var(--clr-gold);
  outline-offset: 6px;
}

/* =============================================
   PHASE 1 #3 - RESPONSIVE HARDENING
   ============================================= */

/* Global small-screen safety */
@media (max-width: 480px) {
  .container,
  .container--wide {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  h1 {
    font-size: clamp(2rem, 13vw, 3.2rem);
  }

  h2 {
    font-size: clamp(1.6rem, 10vw, 2.4rem);
  }

  .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* Homepage hero mobile refinement */
@media (max-width: 768px) {
  .hero {
    min-height: calc(100vh - 76px);
    padding-bottom: 4rem;
  }

  .hero__content {
    padding-left: 1.2rem;
    padding-right: 1.2rem;
  }

  .hero__desc {
    max-width: 100%;
  }
}

@media (max-width: 414px) {
  .hero {
    min-height: auto;
    padding-top: 8rem;
    padding-bottom: 4rem;
  }

  .hero__title {
    font-size: clamp(2.2rem, 14vw, 3.4rem);
  }
}

/* Mobile menu overflow safety */
@media (max-width: 768px) {
  .mobile-menu {
    overflow-y: auto;
    padding: 6rem 1.5rem 3rem;
    justify-content: flex-start;
  }

  .mobile-menu a {
    font-size: clamp(1.8rem, 9vw, 2.4rem);
    text-align: center;
  }
}

/* Product page responsive tightening */
@media (max-width: 900px) {
  .nsb-product-wrap {
    padding-top: 3rem;
    padding-bottom: 5rem;
  }

  .nsb-product-layout {
    gap: 2.5rem;
  }
}

@media (max-width: 480px) {
  .nsb-product-wrap {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }

  .nsb-product-title {
    font-size: clamp(1.8rem, 11vw, 2.6rem);
  }

  .nsb-product-price {
    font-size: 1.65rem;
  }

  .nsb-guarantees {
    grid-template-columns: 1fr;
  }

  .nsb-linked-swatch,
  .nsb-swatch {
    width: 40px;
    height: 40px;
  }
}

/* Shop and related product grid hardening */
@media (max-width: 1024px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem !important;
  }
}

@media (max-width: 480px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products {
    grid-template-columns: 1fr !important;
  }

  .woocommerce ul.products li.product .button {
    width: calc(100% - 2rem);
    text-align: center;
  }
}

/* Cart mobile fix */
@media (max-width: 768px) {
  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart tbody,
  .woocommerce-cart table.cart tr,
  .woocommerce-cart table.cart td {
    display: block;
    width: 100%;
  }

  .woocommerce-cart table.cart thead {
    display: none;
  }

  .woocommerce-cart table.cart tr {
    border-bottom: 1px solid rgba(201,165,90,.15);
    padding: 1rem;
  }

  .woocommerce-cart table.cart td {
    text-align: left !important;
    padding: .75rem 0 !important;
    border: 0 !important;
  }

  .woocommerce-cart table.cart td::before {
    content: attr(data-title);
    display: block;
    font-size: .65rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--clr-gold);
    margin-bottom: .35rem;
  }

  .woocommerce-cart .coupon {
    display: flex;
    flex-direction: column;
    gap: .75rem;
  }

  .woocommerce-cart .coupon input,
  .woocommerce-cart .coupon button {
    width: 100% !important;
  }

  .woocommerce .cart-collaterals,
  .woocommerce .cart-collaterals .cart_totals {
    width: 100% !important;
    float: none !important;
  }
}

/* Checkout mobile fix */
@media (max-width: 768px) {
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce-checkout-review-order,
  .woocommerce-checkout-payment {
    width: 100%;
  }

  .woocommerce-checkout #payment {
    background: var(--clr-dark-2);
    border: 1px solid rgba(201,165,90,.15);
  }

  .woocommerce-checkout #place_order {
    width: 100%;
    margin-top: 1rem;
  }
}

/* My Account mobile fix */
@media (max-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: 1fr;
    gap: .5rem;
    margin-bottom: 2rem;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: .85rem 1rem;
    background: var(--clr-dark-2);
    border: 1px solid rgba(201,165,90,.15);
    color: var(--clr-cream);
  }

  .woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
  .woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
    color: var(--clr-gold);
    border-color: var(--clr-gold);
  }
}

/* Tablet layout refinement */
@media (min-width: 769px) and (max-width: 1024px) {
  .container,
  .container--wide {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .nsb-product-layout {
    gap: 3rem;
  }

  .collections-grid {
    min-height: 500px;
  }
}

/* =============================================
   PHASE 1 #3B - FINAL RESPONSIVE POLISH
   Preserves approved Neshka Savera visual design.
   ============================================= */


/* Shop filter / ordering improvements */
@media (max-width: 768px) {
  .woocommerce-result-count,
  .woocommerce-ordering {
    float: none !important;
    width: 100% !important;
    display: block;
    margin: 0 0 1rem !important;
    text-align: left;
  }

  .woocommerce-result-count {
    color: rgba(247,242,237,.65);
    font-size: .82rem;
    line-height: 1.6;
  }

  .woocommerce-ordering select {
    width: 100% !important;
    min-height: 44px;
    background: var(--clr-dark-2);
    border: 1px solid rgba(201,165,90,.28);
    color: var(--clr-cream);
    padding: 0 .85rem;
    border-radius: 0;
  }
}

/* Cart spacing and sale badge improvements */
@media (max-width: 768px) {
  .woocommerce-cart .page-body,
  .woocommerce-cart .entry-content,
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals {
    margin-top: 0;
  }

  .woocommerce-cart table.cart tr {
    padding: 1.1rem 0 !important;
  }

  .woocommerce-cart table.cart td.product-thumbnail,
  .woocommerce-cart table.cart td.product-name,
  .woocommerce-cart table.cart td.product-price,
  .woocommerce-cart table.cart td.product-subtotal,
  .woocommerce-cart table.cart td.product-quantity,
  .woocommerce-cart table.cart td.product-remove {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 72px;
    max-width: 72px;
    height: auto;
  }

  .woocommerce-cart table.cart td.product-name a {
    color: var(--clr-gold);
    line-height: 1.35;
  }

  .woocommerce-cart table.cart td.product-price,
  .woocommerce-cart table.cart td.product-subtotal {
    display: block;
    margin-top: .25rem;
    text-align: left !important;
  }

  .woocommerce-cart table.cart .onsale,
  .woocommerce-cart .product-price .onsale,
  .woocommerce-cart .product-subtotal .onsale {
    position: static !important;
    display: inline-block;
    margin-top: .45rem;
    margin-left: 0;
    padding: .2rem .45rem;
    line-height: 1.2;
  }

  .woocommerce-cart .cart-collaterals {
    margin-top: 1.4rem;
  }

  .woocommerce-cart .cart_totals {
    padding-top: .5rem;
  }

  .woocommerce-cart .wc-proceed-to-checkout {
    padding-top: 1rem;
  }
}

@media (min-width: 769px) {
  .woocommerce-cart .cart-collaterals {
    margin-left: auto;
  }
}

/* Footer spacing improvements */
@media (max-width: 768px) {
  .site-footer {
    padding-top: 4rem;
  }

  .footer-top {
    gap: 2rem;
    padding-bottom: 3rem;
  }

  .footer-brand p {
    margin-bottom: 1.1rem;
  }

  .footer-col h5 {
    margin-bottom: 1rem;
  }

  .footer-col ul {
    gap: .55rem;
  }

  .footer-contact-item {
    margin-bottom: .55rem;
  }

  .footer-bottom {
    padding-top: 1.6rem;
    gap: 1.1rem;
  }
}

@media (max-width: 480px) {
  .site-footer {
    padding-top: 3.5rem;
  }

  .footer-top {
    gap: 1.65rem;
  }

  .footer-legal {
    row-gap: .8rem;
    justify-content: flex-start;
  }
}

/* Product title wrapping */
@media (max-width: 480px) {
  .nsb-product-title,
  .woocommerce div.product .product_title {
    max-width: 100%;
    line-height: 1.15 !important;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
  }

  .nsb-product-brand {
    margin-bottom: 1rem;
  }
}

/* Hero height optimization */
@media (max-width: 768px) {
  .hero {
    min-height: 88vh;
    padding-bottom: 3rem;
  }

  .hero__content {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .hero {
    min-height: 82vh;
    padding-top: 7rem;
    padding-bottom: 2.5rem;
  }

  .hero__title {
    font-size: clamp(2.25rem, 13vw, 3.25rem);
    line-height: 1.05;
  }

  .hero__desc {
    font-size: .88rem;
    line-height: 1.75;
    margin-bottom: 1.6rem;
  }

  .hero__actions {
    gap: .75rem;
  }
}

@media (max-width: 360px) {
  .hero {
    min-height: 78vh;
    padding-top: 6.5rem;
  }

  .hero__title {
    font-size: clamp(2rem, 12vw, 2.8rem);
  }
}

/* Checkout form dark luxury styling fix */
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
  background: var(--clr-dark-2) !important;
  border: 1px solid rgba(201,165,90,.28) !important;
  color: var(--clr-cream) !important;
  border-radius: 0 !important;
}

.woocommerce-checkout input.input-text::placeholder,
.woocommerce-checkout textarea::placeholder {
  color: rgba(247,242,237,.35) !important;
}

.woocommerce-checkout .select2-selection__rendered {
  color: var(--clr-cream) !important;
}

.woocommerce-checkout .select2-selection__arrow b {
  border-color: var(--clr-gold) transparent transparent transparent !important;
}

.woocommerce-checkout label {
  color: var(--clr-gold) !important;
}

.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-text-input label,
.woocommerce-checkout .wc-block-components-select .wc-block-components-select__select,
.woocommerce-checkout .wc-block-components-combobox input {
  color: var(--clr-cream) !important;
}

.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-select .wc-block-components-select__select,
.woocommerce-checkout .wc-block-components-combobox input {
  background: var(--clr-dark-2) !important;
  border: 1px solid rgba(201,165,90,.28) !important;
}

.woocommerce-checkout .wc-block-components-text-input label,
.woocommerce-checkout .wc-block-components-combobox label {
  color: rgba(247,242,237,.55) !important;
}

/* =========================================================
   FINAL MOBILE HEADER & MENU LAYOUT
   One authoritative mobile layout to avoid conflicting rules.
   ========================================================= */
@media (max-width: 768px) {
  /* Header: hamburger | centred logo | cart */
  .site-header__nav {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 0;
    padding: .9rem 1.2rem;
  }

  .nav-left {
    display: none !important;
  }

  .nav-hamburger {
    grid-column: 1;
    grid-row: 1;
    display: flex !important;
    justify-self: start;
    margin: 0;
    padding: 5px 0;
    z-index: 2;
  }

  .site-logo {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
  }

  .site-logo img {
    height: 44px;
    width: auto;
  }

  .nav-right {
    grid-column: 3;
    grid-row: 1;
    display: flex !important;
    justify-content: flex-end;
    align-items: center;
    min-width: 44px;
  }

  /* Keep Account in the mobile menu so the header stays uncluttered. */
  .nav-right .nav-link,
  .nav-right .nav-account {
    display: none !important;
  }

  .nav-right .nav-cart {
    display: inline-flex !important;
    position: relative;
    align-items: center;
    justify-content: center;
    font-size: 0;
  }

  .nav-right .nav-cart svg {
    width: 22px;
    height: 22px;
  }

  .nav-right .nav-cart .cart-count {
    position: absolute;
    top: -8px;
    right: -9px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--clr-gold);
    color: var(--clr-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .65rem;
    font-weight: var(--fw-bold);
    line-height: 18px;
    text-align: center;
    letter-spacing: 0;
  }

  /* Mobile menu: full-screen layer above the fixed header, with real top breathing room. */
  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 10002;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    min-height: 100vh;
    height: 100dvh;
    box-sizing: border-box;
    gap: 1.5rem;
    padding: calc(env(safe-area-inset-top) + 6.75rem) 2rem 3rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .mobile-menu__close {
    top: calc(env(safe-area-inset-top) + 1.15rem);
    right: 1.5rem;
  }

  .mobile-menu a {
    font-size: clamp(1.9rem, 8vw, 2.35rem);
    line-height: 1.15;
    text-align: center;
  }
}

@media (max-width: 360px) {
  .mobile-menu {
    gap: 1.25rem;
    padding-top: calc(env(safe-area-inset-top) + 6rem);
  }

  .mobile-menu a {
    font-size: clamp(1.75rem, 8vw, 2.1rem);
  }
}

/* FINAL HOMEPAGE HERO RESPONSIVE FIX */
@media (max-width: 1100px) {
  .hero {
    margin-top: 0;
    min-height: auto;
    padding-top: 6rem;
    padding-bottom: 4rem;
  }

  .hero__content {
    padding-top: 2rem;
  }

  .hero__title {
    font-size: clamp(3.2rem, 7vw, 5rem);
    max-width: 850px;
  }
}

@media (max-width: 768px) {
  .hero {
    padding-top: 7.5rem;
    padding-bottom: 3rem;
    min-height: auto;
  }

  .hero__bg img {
    object-position: center top;
  }

  .hero__content {
    padding: 0 1.8rem;
  }

  .hero__eyebrow,
  .hero .eyebrow {
    margin-top: 1rem;
    margin-bottom: 1.2rem;
    font-size: .62rem;
    line-height: 1.7;
    letter-spacing: .22em;
  }

  .hero__title {
    font-size: clamp(3rem, 12vw, 4.4rem);
    line-height: 1.05;
    max-width: 100%;
  }

  .hero__desc {
    font-size: .95rem;
    line-height: 1.75;
  }

  .site-logo img {
    height: 42px;
  }
}

@media (max-width: 480px) {
  .hero {
    padding-top: 7rem;
    padding-bottom: 2.5rem;
  }

  .hero__content {
    padding-left: 1.45rem;
    padding-right: 1.45rem;
  }

  .hero__title {
    font-size: clamp(2.7rem, 13vw, 3.7rem);
    line-height: 1.08;
  }

  .hero__desc {
    font-size: .92rem;
    line-height: 1.75;
  }

  .hero__actions .btn {
    width: 100%;
  }

  .marquee-section {
    overflow: hidden;
  }

  .marquee-item {
    font-size: .62rem;
    letter-spacing: .18em;
  }
}

@media (max-width: 380px) {
  .hero__title {
    font-size: clamp(2.45rem, 13vw, 3.25rem);
  }

  .hero__content {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .hero__eyebrow,
  .hero .eyebrow {
    font-size: .58rem;
    letter-spacing: .2em;
  }
}

/* =============================================
   HOMEPAGE HERO SLIDER - IMAGE + MP4 SUPPORT
   Append at the very bottom of style.css
   ============================================= */
.hero--slider {
  position: relative;
  overflow: hidden;
}

.hero-slider__slides,
.hero-slide {
  position: absolute;
  inset: 0;
}

.hero-slide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .85s var(--ease), visibility .85s var(--ease);
}

.hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}

.hero-slide .hero__bg picture,
.hero-slide .hero__bg img,
.hero-slide__video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
}

.hero-slide__video--mobile {
  display: none;
}

.hero--slider .hero__overlay {
  background: rgba(13,5,8,var(--nsb-hero-overlay-opacity, .58));
}

.hero--slider .hero__content {
  z-index: 3;
}

.hero-slider__controls {
  position: absolute;
  left: 2.5rem;
  right: 2.5rem;
  bottom: 2rem;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}

.hero-slider__arrow,
.hero-slider__dot {
  pointer-events: auto;
}

.hero-slider__arrow {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(201,165,90,.35);
  color: var(--clr-gold);
  background: rgba(13,5,8,.45);
  font-size: 1.6rem;
  line-height: 1;
  transition: all var(--transition);
}

.hero-slider__arrow:hover,
.hero-slider__arrow:focus-visible {
  background: var(--clr-gold);
  color: var(--clr-dark);
  outline: none;
}

.hero-slider__dots {
  display: flex;
  gap: .55rem;
  align-items: center;
  justify-content: center;
  padding: .45rem .7rem;
  background: rgba(13,5,8,.38);
}

.hero-slider__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(247,242,237,.38);
  transition: all var(--transition);
}

.hero-slider__dot.is-active,
.hero-slider__dot:hover,
.hero-slider__dot:focus-visible {
  background: var(--clr-gold);
  transform: scale(1.25);
  outline: none;
}

@media (max-width: 768px) {
  .hero-slide__video--desktop {
    display: none;
  }

  .hero-slide__video--mobile {
    display: block;
  }

  .hero-slider__controls {
    left: 1.2rem;
    right: 1.2rem;
    bottom: 1.3rem;
  }

  .hero-slider__arrow {
    width: 34px;
    height: 34px;
    font-size: 1.35rem;
  }
}


/* =============================================
   HERO SLIDER FINAL POLISH - content, responsive, behavior
   ============================================= */
.hero--slider {
  min-height: calc(100vh - 96px);
  display: block;
  padding: 0;
  margin-top: -96px;
  background: var(--clr-dark);
}

.hero--slider .hero-slider__slides {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.hero--slider .hero-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 0 0 6rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .85s var(--ease), visibility .85s var(--ease);
}

.hero--slider .hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 2;
}

.hero--slider .hero__bg,
.hero--slider .hero__bg picture,
.hero--slider .hero__bg img,
.hero--slider .hero-slide__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero--slider .hero__bg img,
.hero--slider .hero-slide__video {
  object-fit: cover;
  object-position: center center;
}

.hero--slider .hero__overlay {
  z-index: 1;
  background: rgba(13,5,8,var(--nsb-hero-overlay-opacity, .58));
}

.hero--slider .hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 900px;
  padding: 0 2.5rem;
}

.hero--slider .hero__title,
.hero--slider .hero__desc,
.hero--slider .hero__eyebrow,
.hero--slider .hero__actions {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .65s var(--ease), transform .65s var(--ease);
}

.hero--slider .hero-slide.is-active .hero__title,
.hero--slider .hero-slide.is-active .hero__desc,
.hero--slider .hero-slide.is-active .hero__eyebrow,
.hero--slider .hero-slide.is-active .hero__actions {
  opacity: 1;
  transform: translateY(0);
}

.hero--slider .hero-slide.is-active .hero__title { transition-delay: .08s; }
.hero--slider .hero-slide.is-active .hero__desc { transition-delay: .14s; }
.hero--slider .hero-slide.is-active .hero__actions { transition-delay: .2s; }

.hero--slider .hero-slider__controls {
  z-index: 6;
}

.hero--slider .hero-slider__dot:focus-visible,
.hero--slider .hero-slider__arrow:focus-visible {
  outline: 2px solid var(--clr-gold);
  outline-offset: 4px;
}

@media (max-width: 1100px) {
  .hero--slider {
    margin-top: 0;
    min-height: 88vh;
  }

  .hero--slider .hero-slide {
    padding-bottom: 4.5rem;
  }

  .hero--slider .hero__content {
    padding-top: 0;
  }
}

@media (max-width: 768px) {
  .hero--slider {
    min-height: 760px;
    padding: 0;
  }

  .hero--slider .hero-slide {
    align-items: flex-end;
    padding: 7.5rem 0 5.4rem;
  }

  .hero--slider .hero__bg img,
  .hero--slider .hero-slide__video {
    object-position: center top;
  }

  .hero--slider .hero__content {
    max-width: 100%;
    padding: 0 1.8rem;
  }

  .hero--slider .hero__eyebrow,
  .hero--slider .hero .eyebrow {
    margin-top: 0;
    margin-bottom: 1.1rem;
    font-size: .62rem;
    line-height: 1.6;
    letter-spacing: .22em;
  }

  .hero--slider .hero__title {
    font-size: clamp(2.7rem, 12vw, 4.1rem);
    line-height: 1.05;
    max-width: 100%;
  }

  .hero--slider .hero__desc {
    font-size: .92rem;
    line-height: 1.75;
    max-width: 100%;
    margin-bottom: 1.6rem;
  }

  .hero--slider .hero__actions {
    gap: .75rem;
  }

  .hero--slider .hero__actions .btn {
    width: 100%;
    justify-content: center;
  }

  .hero--slider .hero-slider__controls {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
  }

  .hero--slider .hero-slider__dots {
    max-width: calc(100vw - 7.2rem);
    overflow: hidden;
  }
}

@media (max-width: 480px) {
  .hero--slider {
    min-height: 720px;
  }

  .hero--slider .hero-slide {
    padding-top: 6.8rem;
    padding-bottom: 5rem;
  }

  .hero--slider .hero__content {
    padding-left: 1.45rem;
    padding-right: 1.45rem;
  }

  .hero--slider .hero__title {
    font-size: clamp(2.35rem, 12.5vw, 3.35rem);
    line-height: 1.08;
  }

  .hero--slider .hero__desc {
    font-size: .9rem;
    line-height: 1.7;
  }
}

@media (max-width: 380px) {
  .hero--slider {
    min-height: 690px;
  }

  .hero--slider .hero__title {
    font-size: clamp(2.15rem, 12vw, 3rem);
  }

  .hero--slider .hero__content {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .hero--slider .hero__eyebrow,
  .hero--slider .hero .eyebrow {
    font-size: .56rem;
    letter-spacing: .18em;
  }
}
/* =========================================================
   PHASE 1B - CUSTOMER ACCOUNT HEADER ENTRY
   ========================================================= */

.nav-account {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .68rem;
  font-weight: var(--fw-medium);
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(247,242,237,.85);
  transition: color var(--transition);
  white-space: nowrap;
}

.nav-account:hover {
  color: var(--clr-gold);
}

.nav-account svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--clr-gold);
}



/* =========================================================
   PHASE 1C - CUSTOMER DASHBOARD
   Root dashboard only. WooCommerce endpoints remain native.
   ========================================================= */

/* Hide only the default WooCommerce dashboard introduction on
   the root My Account page. Orders, addresses and account-detail
   endpoints are not affected. */
.nsb-account-dashboard .woocommerce-MyAccount-navigation {
  display: none;
}

.nsb-account-dashboard .woocommerce-MyAccount-content {
  width: 100% !important;
  float: none !important;
}

.nsb-account-dashboard .woocommerce-MyAccount-content > p:nth-of-type(-n+2) {
  display: none;
}

.nsb-account-overview {
  max-width: 1080px;
  margin: 0 auto;
  padding: 1.5rem 0 3rem;
}

.nsb-account-welcome {
  padding: 2rem 0 2.25rem;
  border-bottom: 1px solid rgba(201,165,90,.18);
}

.nsb-account-eyebrow {
  margin: 0 0 .8rem;
  color: var(--clr-gold);
  font-size: .66rem;
  font-weight: var(--fw-medium);
  letter-spacing: .2em;
  text-transform: uppercase;
}

.nsb-account-welcome h2 {
  margin: 0 0 .75rem;
  color: var(--clr-cream);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: var(--fw-normal);
  line-height: 1.05;
}

.nsb-account-welcome > p:last-child {
  margin: 0;
  color: rgba(247,242,237,.7);
}

.nsb-account-stats {
  display: grid;
  grid-template-columns: minmax(180px, 240px);
  margin: 2rem 0;
}

.nsb-account-stat {
  padding: 1.5rem 1.75rem;
  border: 1px solid rgba(201,165,90,.22);
  background: rgba(255,255,255,.015);
}

.nsb-account-stat__number {
  display: block;
  margin-bottom: .35rem;
  color: var(--clr-gold);
  font-size: 2.1rem;
}

.nsb-account-stat__label {
  display: block;
  color: rgba(247,242,237,.68);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.nsb-account-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 2rem 0 3rem;
}

.nsb-account-action {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  min-height: 118px;
  padding: 1.4rem 1.5rem;
  border: 1px solid rgba(201,165,90,.2);
  color: var(--clr-cream);
  background: rgba(255,255,255,.012);
  transition: border-color var(--transition), transform var(--transition), background var(--transition);
}

.nsb-account-action:hover {
  color: var(--clr-cream);
  border-color: var(--clr-gold);
  background: rgba(201,165,90,.055);
  transform: translateY(-2px);
}

.nsb-account-action span {
  color: var(--clr-cream);
  font-family: var(--ff-serif);
  font-size: 1.45rem;
}

.nsb-account-action small {
  color: rgba(247,242,237,.58);
  font-size: .82rem;
}

.nsb-account-action--logout {
  border-color: rgba(201,165,90,.32);
}

.nsb-account-recent-orders {
  padding-top: 2.25rem;
  border-top: 1px solid rgba(201,165,90,.18);
}

.nsb-account-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.nsb-account-section-heading h3 {
  margin: 0;
  color: var(--clr-cream);
  font-size: 2rem;
  font-weight: var(--fw-normal);
}

.nsb-account-section-heading a {
  color: var(--clr-gold);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.nsb-account-order-list {
  border-top: 1px solid rgba(201,165,90,.14);
}

.nsb-account-order {
  display: grid;
  grid-template-columns: 1fr 1.4fr 1fr auto;
  gap: 1rem;
  align-items: center;
  padding: 1.15rem 0;
  border-bottom: 1px solid rgba(201,165,90,.14);
  color: rgba(247,242,237,.8);
}

.nsb-account-order:hover {
  color: var(--clr-gold);
}

.nsb-account-order__number {
  color: var(--clr-cream);
  font-weight: var(--fw-medium);
}

.nsb-account-order__date,
.nsb-account-order__status {
  color: rgba(247,242,237,.6);
  font-size: .86rem;
}

.nsb-account-order__total {
  color: var(--clr-gold);
  white-space: nowrap;
}

.nsb-account-empty-orders {
  padding: 1.75rem 0 0;
}

.nsb-account-empty-orders p {
  color: rgba(247,242,237,.65);
}

@media (max-width: 768px) {
  .nsb-account-overview {
    padding: .5rem 0 2rem;
  }

  .nsb-account-welcome {
    padding: 1.5rem 0 1.75rem;
  }

  .nsb-account-welcome h2 {
    font-size: clamp(2.35rem, 12vw, 3.5rem);
  }

  .nsb-account-stats {
    grid-template-columns: 1fr;
    margin: 1.5rem 0;
  }

  .nsb-account-actions {
    grid-template-columns: 1fr;
    margin: 1.5rem 0 2.25rem;
  }

  .nsb-account-order {
    grid-template-columns: 1fr 1fr;
    gap: .55rem 1rem;
  }

  .nsb-account-order__total {
    text-align: right;
  }
}


/* =========================================================
   PHASE 1C - CUSTOMER ACCOUNT ENDPOINTS
   Orders, Addresses and Account Details
   Keeps WooCommerce functionality intact.
   ========================================================= */

/* Keep WooCommerce's real endpoint navigation and content, but
   present them inside the Neshka Savera account design system. */
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation {
  width: 24%;
  float: left;
  padding: 1.25rem;
  border: 1px solid rgba(201,165,90,.20);
  background: rgba(255,255,255,.012);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation li {
  margin: 0;
  border-bottom: 1px solid rgba(201,165,90,.13);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation a {
  display: block;
  padding: .95rem .8rem;
  color: rgba(247,242,237,.72);
  font-size: .68rem;
  font-weight: var(--fw-medium);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation .is-active a {
  color: var(--clr-gold);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content {
  width: 70%;
  float: right;
  padding: 0;
}

/* Common endpoint typography */
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content > p,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-addresses > p {
  color: rgba(247,242,237,.68);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content h2,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content h3 {
  color: var(--clr-cream);
  font-family: var(--ff-serif);
  font-weight: var(--fw-normal);
  letter-spacing: .01em;
}

/* Buttons */
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .button,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content button.button,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content input.button {
  border: 1px solid var(--clr-gold);
  border-radius: 0;
  padding: .85rem 1.2rem;
  background: transparent;
  color: var(--clr-gold);
  font-size: .67rem;
  font-weight: var(--fw-medium);
  letter-spacing: .14em;
  line-height: 1.2;
  text-transform: uppercase;
  box-shadow: none;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .button:hover,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content button.button:hover,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content input.button:hover {
  background: var(--clr-gold);
  color: #15110d;
}

/* ---------------- ORDERS ---------------- */
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table {
  width: 100%;
  margin: 0;
  border: 1px solid rgba(201,165,90,.20);
  border-collapse: collapse;
  background: rgba(255,255,255,.012);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table th,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table td {
  padding: 1rem 1.1rem;
  border: 0;
  border-bottom: 1px solid rgba(201,165,90,.13);
  text-align: left;
  vertical-align: middle;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table th {
  color: var(--clr-gold);
  font-size: .62rem;
  font-weight: var(--fw-medium);
  letter-spacing: .14em;
  text-transform: uppercase;
  background: rgba(201,165,90,.035);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table td {
  color: rgba(247,242,237,.78);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table tr:last-child td { border-bottom: 0; }
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table a:not(.button) { color: var(--clr-gold); }

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table__cell-order-status {
  color: var(--clr-gold);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table .button { white-space: nowrap; }

/* ---------------- ADDRESSES ---------------- */
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Address {
  width: auto !important;
  float: none !important;
  min-height: 220px;
  margin: 0 !important;
  padding: 1.5rem;
  border: 1px solid rgba(201,165,90,.20);
  background: rgba(255,255,255,.012);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Address-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.4rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(201,165,90,.14);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Address-title h3 {
  margin: 0;
  font-size: 1.65rem;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Address-title .edit {
  color: var(--clr-gold);
  font-size: .65rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Address address {
  margin: 0;
  color: rgba(247,242,237,.68);
  font-style: normal;
  line-height: 1.8;
}

/* ---------------- ACCOUNT DETAILS / EDIT ADDRESS FORMS ---------------- */
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-EditAccountForm,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-address-fields {
  padding: 1.75rem;
  border: 1px solid rgba(201,165,90,.20);
  background: rgba(255,255,255,.012);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row label,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-address-fields label {
  margin-bottom: .55rem;
  color: rgba(247,242,237,.82);
  font-size: .67rem;
  font-weight: var(--fw-medium);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row input.input-text,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row select,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row textarea,
.woocommerce-account:not(.nsb-account-dashboard) .select2-container--default .select2-selection--single {
  min-height: 48px;
  border: 1px solid rgba(201,165,90,.25);
  border-radius: 0;
  background: rgba(0,0,0,.14);
  color: var(--clr-cream);
  box-shadow: none;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row input.input-text,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row textarea {
  padding: .75rem .9rem;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row textarea { min-height: 110px; }

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row input.input-text:focus,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row textarea:focus,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-form-row select:focus {
  border-color: var(--clr-gold);
  outline: none;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-EditAccountForm fieldset {
  margin: 2rem 0 1.5rem;
  padding: 1.5rem 0 0;
  border: 0;
  border-top: 1px solid rgba(201,165,90,.18);
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-EditAccountForm legend {
  padding: 0;
  color: var(--clr-gold);
  font-family: var(--ff-serif);
  font-size: 1.45rem;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-EditAccountForm > p:last-child,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-address-fields > p:last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content {
    width: 100%;
    float: none;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation {
    margin-bottom: 1.5rem;
    padding: .5rem;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation li {
    border-bottom: 0;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-navigation a {
    padding: .8rem .7rem;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content { padding: 0; }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table tbody,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table tr,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table td {
    display: block;
    width: 100%;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table thead { display: none; }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table tr {
    padding: .65rem 0;
    border-bottom: 1px solid rgba(201,165,90,.18);
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table tr:last-child { border-bottom: 0; }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 1rem;
    border: 0;
    text-align: right;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-orders-table td::before {
    content: attr(data-title);
    color: var(--clr-gold);
    font-size: .58rem;
    font-weight: var(--fw-medium);
    letter-spacing: .12em;
    text-transform: uppercase;
    text-align: left;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Addresses { grid-template-columns: 1fr; }
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-Address { min-height: 0; }
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-EditAccountForm,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-address-fields { padding: 1.2rem; }
}

/* =========================================================
   PHASE 1C FINAL FIX - MY ACCOUNT ADDRESSES LAYOUT
   Force WooCommerce Billing/Shipping columns into a clean grid.
   ========================================================= */
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .u-columns.woocommerce-Addresses,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .col2-set.woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .woocommerce-Address,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .u-column1,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .u-column2,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .col-1,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .col-2 {
  grid-column: auto !important;
  grid-row: auto !important;
  position: static !important;
  float: none !important;
  clear: none !important;
  width: auto !important;
  max-width: none !important;
  min-height: 220px !important;
  margin: 0 !important;
  padding: 1.5rem !important;
  border: 1px solid rgba(201,165,90,.20) !important;
  background: rgba(255,255,255,.012) !important;
  box-sizing: border-box !important;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .woocommerce-Address::before,
.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .woocommerce-Address::after {
  content: none !important;
  display: none !important;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address-title {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  width: 100% !important;
  margin: 0 0 1.4rem !important;
  padding: 0 0 1rem !important;
  border-bottom: 1px solid rgba(201,165,90,.14) !important;
  box-sizing: border-box !important;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address-title h3 {
  flex: 1 1 auto !important;
  margin: 0 !important;
  font-size: 1.65rem !important;
  line-height: 1.15 !important;
}

.woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address-title .edit {
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: 130px !important;
  margin: .2rem 0 0 !important;
  text-align: right !important;
  white-space: normal !important;
  line-height: 1.45 !important;
}

@media (max-width: 768px) {
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .u-columns.woocommerce-Addresses,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .col2-set.woocommerce-Addresses {
    grid-template-columns: 1fr !important;
  }

  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .woocommerce-Address,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .u-column1,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .u-column2,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .col-1,
  .woocommerce-account:not(.nsb-account-dashboard) .woocommerce-MyAccount-content .woocommerce-Addresses > .col-2 {
    min-height: 0 !important;
    padding: 1.2rem !important;
  }
}

/* =========================================================
   MY ACCOUNT – ADDRESS PAGE COMPLETE FINAL FIX
   ========================================================= */

/* Main WooCommerce address container */
.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .u-columns.woocommerce-Addresses,
.woocommerce-account .woocommerce-Addresses.addresses {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 40px 0 0 !important;
    padding: 0 !important;

    clear: both !important;
}

/* Remove WooCommerce column floats */
.woocommerce-account .woocommerce-Addresses > .col-1,
.woocommerce-account .woocommerce-Addresses > .col-2,
.woocommerce-account .woocommerce-Addresses > .u-column1,
.woocommerce-account .woocommerce-Addresses > .u-column2 {
    float: none !important;
    clear: none !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}

/* Address cards */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
    position: relative !important;

    float: none !important;
    clear: none !important;

    width: 100% !important;
    max-width: none !important;
    min-height: 270px !important;

    box-sizing: border-box !important;

    margin: 0 !important;
    padding: 34px !important;

    border: 1px solid rgba(201, 169, 110, 0.22) !important;
    background: rgba(255, 255, 255, 0.015) !important;
}

/* Address title area */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title {
    position: relative !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;

    gap: 20px !important;

    margin: 0 0 28px !important;
    padding: 0 0 24px !important;

    border-bottom: 1px solid rgba(201, 169, 110, 0.16) !important;
}

/* Address heading */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title h2 {
    margin: 0 !important;
    padding: 0 !important;

    color: #e8e2dc !important;

    line-height: 1.15 !important;
}

/* Edit / Add address link */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title .edit {
    position: static !important;

    float: none !important;

    display: inline-block !important;

    flex: 0 0 auto !important;

    margin: 6px 0 0 !important;
    padding: 0 !important;

    color: #c9a96e !important;

    white-space: nowrap !important;
}

/* Address information */
.woocommerce-account .woocommerce-Addresses address {
    margin: 0 !important;

    color: #b9b2ad !important;

    font-style: normal !important;
    line-height: 1.8 !important;
}


/* =========================================================
   MOBILE ADDRESS LAYOUT
   ========================================================= */

@media (max-width: 767px) {

    .woocommerce-account .woocommerce-Addresses,
    .woocommerce-account .u-columns.woocommerce-Addresses,
    .woocommerce-account .woocommerce-Addresses.addresses {
        grid-template-columns: 1fr !important;

        gap: 20px !important;

        margin-top: 30px !important;
    }

    .woocommerce-account .woocommerce-Addresses .woocommerce-Address {
        min-height: auto !important;

        padding: 28px 24px !important;
    }

    .woocommerce-account .woocommerce-Addresses .woocommerce-Address-title {
        gap: 12px !important;

        margin-bottom: 22px !important;
        padding-bottom: 20px !important;
    }

    .woocommerce-account .woocommerce-Addresses .woocommerce-Address-title .edit {
        white-space: normal !important;

        text-align: right !important;
    }

}
/* =========================================================
   NSB – FINAL ADDRESS PAGE OVERRIDE
   MUST REMAIN AT THE VERY END OF STYLE.CSS
   ========================================================= */

/* ---------------------------------------------------------
   1. Remove WooCommerce clearfix pseudo-elements.
   They become unwanted grid items and cause:
   Billing = column 2
   Shipping = next row
--------------------------------------------------------- */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses::before,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses::after,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.u-columns.woocommerce-Addresses::before,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.u-columns.woocommerce-Addresses::after,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.col2-set.woocommerce-Addresses::before,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.col2-set.woocommerce-Addresses::after {
    content: none !important;
    display: none !important;
}


/* ---------------------------------------------------------
   2. Two equal address cards
--------------------------------------------------------- */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;

    width: 100% !important;
    margin: 40px 0 0 !important;
    padding: 0 !important;

    float: none !important;
    clear: both !important;
}


/* ---------------------------------------------------------
   3. Address columns / cards
--------------------------------------------------------- */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses > .col-1,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses > .col-2,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses > .u-column1,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses > .u-column2,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses > .woocommerce-Address {
    grid-column: auto !important;
    grid-row: auto !important;

    position: relative !important;

    float: none !important;
    clear: none !important;

    width: 100% !important;
    max-width: none !important;
    min-height: 270px !important;

    margin: 0 !important;
    padding: 34px !important;

    box-sizing: border-box !important;

    border: 1px solid rgba(201, 169, 110, 0.22) !important;
    background: rgba(255, 255, 255, 0.015) !important;
}


/* ---------------------------------------------------------
   4. Address heading
--------------------------------------------------------- */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title {
    position: relative !important;

    display: block !important;

    float: none !important;
    clear: both !important;

    width: 100% !important;
    margin: 0 0 28px !important;
    padding: 0 0 24px !important;

    box-sizing: border-box !important;

    border-bottom: 1px solid rgba(201, 169, 110, 0.16) !important;
}


/* ---------------------------------------------------------
   5. Billing / Shipping title
--------------------------------------------------------- */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title h2,

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title h3 {
    display: block !important;

    margin: 0 !important;
    padding: 0 !important;

    padding-right: 130px !important;

    color: #e8e2dc !important;

    font-family: var(--ff-serif) !important;
    font-weight: var(--fw-normal) !important;

    line-height: 1.15 !important;
}


/* ---------------------------------------------------------
   6. Edit / Add Address links
   Lock them inside their respective cards
--------------------------------------------------------- */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title .edit {
    position: absolute !important;

    top: 0 !important;
    right: 0 !important;

    float: none !important;

    display: block !important;

    width: auto !important;
    max-width: 110px !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #c9a96e !important;

    font-size: 0.65rem !important;
    font-weight: var(--fw-medium) !important;

    line-height: 1.5 !important;

    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;

    text-align: right !important;
    text-decoration: none !important;

    white-space: normal !important;

    z-index: 5 !important;
}

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title .edit:hover {
    color: #e0c68f !important;
}


/* ---------------------------------------------------------
   7. Address text
--------------------------------------------------------- */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses address {
    margin: 0 !important;

    color: #b9b2ad !important;

    font-style: normal !important;
    line-height: 1.8 !important;
}


/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 767px) {

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses > .col-1,

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses > .col-2,

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses > .u-column1,

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses > .u-column2,

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses > .woocommerce-Address {
        min-height: auto !important;
        padding: 28px 24px !important;
    }

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses
    .woocommerce-Address-title h2,

    .woocommerce-account:not(.nsb-account-dashboard)
    .woocommerce-MyAccount-content
    .woocommerce-Addresses
    .woocommerce-Address-title h3 {
        padding-right: 110px !important;
    }
}

/* =========================================================
   FINAL ADDRESS CARD TITLE / ACTION LAYOUT
   ========================================================= */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}


/* Address action links */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title .edit {

    position: static !important;

    display: inline-block !important;

    order: 2 !important;

    margin-top: 18px !important;
    margin-bottom: 0 !important;

    padding: 9px 14px !important;

    border: 1px solid rgba(201, 169, 110, 0.55) !important;

    color: #c9a96e !important;

    font-size: 10px !important;
    line-height: 1.3 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;

    text-align: center !important;

    max-width: none !important;
    width: auto !important;
}


/* Heading remains first */

.woocommerce-account:not(.nsb-account-dashboard)
.woocommerce-MyAccount-content
.woocommerce-Addresses
.woocommerce-Address-title h2 {

    order: 1 !important;

    padding-right: 0 !important;

    margin: 0 !important;
}

/* =========================================================
   PHASE 2 - PROFESSIONAL ORDER JOURNEY
   ========================================================= */

.nsb-order-journey {
  margin: 3rem 0 4rem;
  padding: 2.5rem;
  border: 1px solid rgba(201,165,90,.18);
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.018),
      rgba(255,255,255,0)
    );
}

.nsb-order-journey__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 2rem;
  margin-bottom: 2.5rem;
  border-bottom: 1px solid rgba(201,165,90,.15);
}

.nsb-order-journey__eyebrow {
  display: block;
  margin-bottom: .75rem;
  color: var(--clr-gold);
  font-family: var(--ff-sans);
  font-size: .68rem;
  font-weight: var(--fw-medium);
  letter-spacing: .18em;
  text-transform: uppercase;
}

.nsb-order-journey h2 {
  margin: 0;
  color: var(--clr-cream);
  font-size: clamp(2.4rem,4.2vw,4rem);
  font-weight: var(--fw-normal);
  line-height: 1.05;
}

.nsb-order-journey__current {
  min-width: 180px;
  padding-left: 1.5rem;
  border-left: 1px solid rgba(201,165,90,.25);
}

.nsb-order-journey__current span {
  display: block;
  margin-bottom: .4rem;
  color: rgba(247,242,237,.48);
  font-family: var(--ff-sans);
  font-size: .62rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.nsb-order-journey__current strong {
  color: var(--clr-gold);
  font-family: var(--ff-sans);
  font-size: .82rem;
  font-weight: var(--fw-medium);
  letter-spacing: .06em;
}


/* TIMELINE */

.nsb-order-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
}

.nsb-order-timeline::before {
  content: "";
  position: absolute;
  top: 22px;
  left: 10%;
  right: 10%;
  height: 1px;
  background: rgba(201,165,90,.20);
}


/* STEP */

.nsb-order-step {
  position: relative;
  z-index: 1;
  text-align: center;
}

.nsb-order-step__marker {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 auto 1.25rem;
  border: 1px solid rgba(247,242,237,.22);
  border-radius: 50%;
  background: #12080d;
  color: rgba(247,242,237,.55);
  font-family: var(--ff-sans);
  font-size: .75rem;
}

.nsb-order-step__number,
.nsb-order-step__check {
  line-height: 1;
}

.nsb-order-step__check {
  color: #12080d;
  font-size: 1rem;
  font-weight: 700;
}


/* TEXT */

.nsb-order-step__content h3 {
  margin: 0 0 .55rem;
  color: rgba(247,242,237,.55);
  font-family: var(--ff-serif);
  font-size: 1.4rem;
  font-weight: var(--fw-normal);
  line-height: 1;
}

.nsb-order-step__date,
.nsb-order-step__pending {
  margin: 0;
  color: rgba(247,242,237,.38);
  font-family: var(--ff-sans);
  font-size: .68rem;
  line-height: 1.5;
}

.nsb-order-step__pending {
  font-style: italic;
}


/* COMPLETED */

.nsb-order-step.is-completed .nsb-order-step__marker {
  border-color: var(--clr-gold);
  background: var(--clr-gold);
}

.nsb-order-step.is-completed .nsb-order-step__content h3 {
  color: var(--clr-cream);
}

.nsb-order-step.is-completed .nsb-order-step__date {
  color: rgba(247,242,237,.58);
}


/* CURRENT */

.nsb-order-step.is-current .nsb-order-step__marker {
  width: 52px;
  height: 52px;
  margin-top: -4px;
  margin-bottom: 1.21rem;
  border: 1px solid var(--clr-gold);
  background: #1a0c12;
  box-shadow:
    0 0 0 6px rgba(201,165,90,.07);
  color: var(--clr-gold);
}

.nsb-order-step.is-current .nsb-order-step__content h3 {
  color: var(--clr-gold);
}

.nsb-order-step.is-current .nsb-order-step__date {
  color: rgba(247,242,237,.7);
}


/* FUTURE */

.nsb-order-step.is-future .nsb-order-step__marker {
  opacity: .55;
}

.nsb-order-step.is-future .nsb-order-step__content {
  opacity: .48;
}


/* EXCEPTION */

.nsb-order-journey--exception {
  max-width: 720px;
}

.nsb-order-journey--exception p {
  margin: 1rem 0 0;
  color: rgba(247,242,237,.62);
}


/* TABLET */

@media (max-width: 900px) {

  .nsb-order-journey {
    padding: 2rem 1.5rem;
  }

  .nsb-order-journey__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .nsb-order-journey__current {
    padding-left: 0;
    border-left: 0;
  }

  .nsb-order-timeline {
    grid-template-columns: repeat(5, minmax(110px, 1fr));
    overflow-x: auto;
    padding-bottom: 1rem;
  }

  .nsb-order-step {
    min-width: 110px;
  }

}


/* MOBILE */

@media (max-width: 640px) {

  .nsb-order-journey {
    margin: 2rem 0 3rem;
    padding: 1.5rem 1.25rem;
  }

  .nsb-order-journey h2 {
    font-size: 2.5rem;
  }

  .nsb-order-timeline {
    display: block;
    overflow: visible;
    padding: 0;
  }

  .nsb-order-timeline::before {
    top: 22px;
    bottom: 22px;
    left: 21px;
    right: auto;
    width: 1px;
    height: auto;
  }

  .nsb-order-step {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    min-width: 0;
    margin-bottom: 2rem;
    text-align: left;
  }

  .nsb-order-step:last-child {
    margin-bottom: 0;
  }

  .nsb-order-step__marker {
    flex: 0 0 44px;
    margin: 0;
  }

  .nsb-order-step.is-current .nsb-order-step__marker {
    flex-basis: 52px;
    margin: -4px 0 0 -4px;
  }

  .nsb-order-step__content {
    padding-top: .25rem;
  }

  .nsb-order-step__content h3 {
    font-size: 1.65rem;
  }

}

/* =========================================================
   PHASE 3B — CAMPAIGN OFFER EXPERIENCE
   ========================================================= */


/* ---------------------------------------------------------
   CAMPAIGN WRAPPER
   --------------------------------------------------------- */

.nsb-campaign-offers {
  margin: 2.8rem 0 2rem;
  padding-top: 2.8rem;
  border-top: 1px solid rgba(201,165,90,.18);
}

.nsb-campaign-heading {
  margin-bottom: 1.8rem;
}

.nsb-campaign-eyebrow {
  margin-bottom: .55rem;
  color: var(--clr-gold);
  font-size: .65rem;
  font-weight: var(--fw-medium);
  letter-spacing: .22em;
  text-transform: uppercase;
}

.nsb-campaign-heading h2 {
  margin: 0 0 .65rem;
  color: var(--clr-cream);
  font-family: var(--ff-serif);
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: var(--fw-light);
  line-height: 1;
}

.nsb-campaign-heading > p:last-child {
  max-width: 600px;
  color: rgba(247,242,237,.58);
  font-size: .88rem;
  line-height: 1.75;
}


/* ---------------------------------------------------------
   OFFER CARD
   --------------------------------------------------------- */

.nsb-campaign-card {
  position: relative;
  margin-top: 1.2rem;
  padding: 1.5rem;
  overflow: hidden;
  border: 1px solid rgba(201,165,90,.20);
  background:
    linear-gradient(
      135deg,
      rgba(201,165,90,.08),
      rgba(26,11,16,.55)
    );
}

.nsb-campaign-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 90px;
  height: 1px;
  background: var(--clr-gold);
}

.nsb-campaign-card--collection {
  background:
    linear-gradient(
      135deg,
      rgba(139,58,82,.15),
      rgba(26,11,16,.65)
    );
}


/* ---------------------------------------------------------
   CARD TOP
   --------------------------------------------------------- */

.nsb-campaign-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.nsb-campaign-label {
  display: inline-block;
  margin-bottom: .5rem;
  color: var(--clr-gold);
  font-size: .62rem;
  font-weight: var(--fw-bold);
  letter-spacing: .2em;
  text-transform: uppercase;
}

.nsb-campaign-card h3 {
  margin: 0 0 .4rem;
  color: var(--clr-cream);
  font-family: var(--ff-serif);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: var(--fw-light);
  line-height: 1.05;
}

.nsb-campaign-card-top p {
  margin: 0;
  color: rgba(247,242,237,.58);
  font-size: .82rem;
  line-height: 1.65;
}


/* ---------------------------------------------------------
   PRICE
   --------------------------------------------------------- */

.nsb-campaign-price {
  min-width: 115px;
  text-align: right;
}

.nsb-campaign-price del {
  display: block;
  margin-bottom: .15rem;
  color: rgba(247,242,237,.35);
  font-size: .78rem;
}

.nsb-campaign-price strong {
  display: block;
  color: var(--clr-gold);
  font-family: var(--ff-serif);
  font-size: 2.2rem;
  font-weight: var(--fw-light);
  line-height: 1;
}

.nsb-campaign-price span {
  display: block;
  margin-top: .3rem;
  color: rgba(247,242,237,.42);
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}


/* ---------------------------------------------------------
   DUO SHADE SELECTION
   --------------------------------------------------------- */

.nsb-campaign-shades {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
}

.nsb-campaign-shade {
  position: relative;
  min-height: 135px;
  padding: .35rem;
  overflow: hidden;
  border: 1px solid rgba(201,165,90,.14);
  background: rgba(13,5,8,.45);
  color: var(--clr-cream);
  text-align: left;
  transition:
    border-color var(--transition),
    transform var(--transition),
    background var(--transition);
}

.nsb-campaign-shade img {
  width: 100%;
  aspect-ratio: 1 / 1;
  margin-bottom: .55rem;
  object-fit: cover;
}

.nsb-campaign-shade span {
  display: block;
  padding: 0 .25rem .3rem;
  font-size: .58rem;
  line-height: 1.35;
  letter-spacing: .04em;
}

.nsb-campaign-shade:hover {
  border-color: rgba(201,165,90,.65);
  transform: translateY(-2px);
}

.nsb-campaign-shade.is-selected {
  border-color: var(--clr-gold);
  background: rgba(201,165,90,.09);
}

.nsb-campaign-shade.is-selected::after {
  content: '✓';
  position: absolute;
  top: .55rem;
  right: .55rem;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--clr-gold);
  color: var(--clr-dark);
  font-size: .78rem;
  font-weight: var(--fw-bold);
}

.nsb-campaign-shade:focus-visible {
  outline: 2px solid var(--clr-gold);
  outline-offset: 3px;
}


/* ---------------------------------------------------------
   SELECTION STATUS
   --------------------------------------------------------- */

.nsb-campaign-selection-status {
  margin: 1.2rem 0 .9rem;
  color: rgba(247,242,237,.52);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nsb-campaign-selection-count {
  color: var(--clr-gold);
  font-weight: var(--fw-bold);
}


/* ---------------------------------------------------------
   COMPLETE COLLECTION
   --------------------------------------------------------- */

.nsb-campaign-collection-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
}

.nsb-campaign-collection-item {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(201,165,90,.15);
  background: var(--clr-dark);
}

.nsb-campaign-collection-item::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  transition: border-color var(--transition);
}

.nsb-campaign-collection-item:hover::after {
  border-color: var(--clr-gold);
}

.nsb-campaign-collection-item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}


/* ---------------------------------------------------------
   CAMPAIGN BUTTON
   --------------------------------------------------------- */

.nsb-campaign-add-btn {
  width: 100%;
  min-height: 52px;
  margin-top: .25rem;
  padding: 0 1.2rem;
  border: 1px solid var(--clr-gold);
  background: var(--clr-gold);
  color: var(--clr-dark);
  font-family: var(--ff-sans);
  font-size: .67rem;
  font-weight: var(--fw-bold);
  letter-spacing: .18em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  transition:
    background var(--transition),
    color var(--transition),
    transform var(--transition),
    opacity var(--transition);
}

.nsb-campaign-add-btn:hover:not(:disabled) {
  background: var(--clr-gold-lt);
  transform: translateY(-1px);
}

.nsb-campaign-add-btn:disabled {
  border-color: rgba(247,242,237,.14);
  background: rgba(247,242,237,.06);
  color: rgba(247,242,237,.30);
  cursor: not-allowed;
}

.nsb-campaign-add-btn:focus-visible {
  outline: 2px solid var(--clr-gold);
  outline-offset: 4px;
}


/* ---------------------------------------------------------
   AJAX MESSAGE
   --------------------------------------------------------- */

.nsb-campaign-message {
  min-height: 22px;
  margin-top: .75rem;
  color: var(--clr-gold);
  font-size: .75rem;
  line-height: 1.5;
}

.nsb-campaign-message:empty {
  display: none;
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 768px) {

  .nsb-campaign-offers {
    margin-top: 2.3rem;
    padding-top: 2.3rem;
  }

  .nsb-campaign-card {
    padding: 1.2rem;
  }

  .nsb-campaign-shades,
  .nsb-campaign-collection-list {
    gap: .5rem;
  }

  .nsb-campaign-shade {
    min-height: 105px;
  }

  .nsb-campaign-shade span {
    font-size: .52rem;
  }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 540px) {

  .nsb-campaign-heading h2 {
    font-size: 2rem;
  }

  .nsb-campaign-card-top {
    flex-direction: column;
    gap: 1rem;
  }

  .nsb-campaign-price {
    width: 100%;
    text-align: left;
  }

  .nsb-campaign-price strong {
    font-size: 2rem;
  }

  .nsb-campaign-shades {
    grid-template-columns: repeat(2, 1fr);
  }

  .nsb-campaign-shade {
    min-height: auto;
  }

  .nsb-campaign-shade span {
    padding-bottom: .45rem;
    font-size: .65rem;
  }

  .nsb-campaign-collection-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .nsb-campaign-add-btn {
    min-height: 54px;
    font-size: .62rem;
  }

}
/* =========================================================
   PHASE 3D — PREMIUM CAMPAIGN BUNDLE GROUPING
   ========================================================= */


/* ---------------------------------------------------------
   FULL WIDTH CAMPAIGN ROW
--------------------------------------------------------- */

.woocommerce-cart-form
tr.nsb-campaign-table-row {

    border: 0 !important;

    background: transparent !important;

}


.woocommerce-cart-form
tr.nsb-campaign-table-row td {

    padding:
        2rem 1rem 1rem !important;

    border: 0 !important;

    background: transparent !important;

}


/* ---------------------------------------------------------
   CAMPAIGN CARD
--------------------------------------------------------- */

.woocommerce-cart-form
.nsb-cart-campaign-bundle {

    position: relative;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 2rem;

    width: 100%;

    padding:
        1.15rem 1.35rem;

    border:
        1px solid rgba(201, 169, 110, 0.45);

    background:
        linear-gradient(
            90deg,
            rgba(201, 169, 110, 0.10),
            rgba(201, 169, 110, 0.025)
        );

    box-sizing: border-box;

}


/* ---------------------------------------------------------
   GOLD LEFT ACCENT
--------------------------------------------------------- */

.woocommerce-cart-form
.nsb-cart-campaign-bundle::before {

    content: "";

    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;

    width: 3px;

    background:
        var(--clr-gold);

}


/* ---------------------------------------------------------
   LEFT CONTENT
--------------------------------------------------------- */

.woocommerce-cart-form
.nsb-cart-campaign-bundle__left {

    display: flex;

    flex-direction: column;

    gap: 0.4rem;

}


/* ---------------------------------------------------------
   CAMPAIGN LABEL
--------------------------------------------------------- */

.woocommerce-cart-form
.nsb-cart-campaign-bundle__eyebrow {

    color:
        var(--clr-gold);

    font-size:
        0.6rem;

    font-weight:
        var(--fw-bold);

    letter-spacing:
        0.16em;

    text-transform:
        uppercase;

}


/* ---------------------------------------------------------
   OFFER NAME
--------------------------------------------------------- */

.woocommerce-cart-form
.nsb-cart-campaign-bundle__offer {

    color:
        var(--clr-cream);

    font-family:
        var(--ff-serif);

    font-size:
        1.35rem;

    font-weight:
        var(--fw-normal);

    line-height:
        1.2;

}


/* ---------------------------------------------------------
   BUNDLE PRICE
--------------------------------------------------------- */

.woocommerce-cart-form
.nsb-cart-campaign-bundle__price {

    color:
        var(--clr-gold);

    font-family:
        var(--ff-serif);

    font-size:
        1.2rem;

    white-space:
        nowrap;

}


/* ---------------------------------------------------------
   PRODUCT ROWS INSIDE BUNDLE
--------------------------------------------------------- */

.woocommerce-cart-form
.cart_item.nsb-cart-bundle-item {

    background:
        rgba(201, 169, 110, 0.018);

}


.woocommerce-cart-form
.cart_item.nsb-cart-bundle-item td {

    border-top:
        0 !important;

}


/* ---------------------------------------------------------
   FIRST PRODUCT AFTER CAMPAIGN HEADER
--------------------------------------------------------- */

.woocommerce-cart-form
tr.nsb-campaign-table-row
+ tr.cart_item td {

    padding-top:
        1.5rem !important;

}


/* ---------------------------------------------------------
   LAST PRODUCT IN BUNDLE
--------------------------------------------------------- */

.woocommerce-cart-form
.cart_item.nsb-cart-bundle-last td {

    padding-bottom:
        1.5rem !important;

}


.woocommerce-cart-form
.cart_item.nsb-cart-bundle-last {

    border-bottom:
        1px solid
        rgba(201, 169, 110, 0.25) !important;

}


/* ---------------------------------------------------------
   REMOVE EXTRA SPACING ON NORMAL FIRST ITEM
--------------------------------------------------------- */

.woocommerce-cart-form
.nsb-cart-campaign-bundle
.product-name {

    padding-top: 0;

}


/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 767px) {

    .woocommerce-cart-form
    tr.nsb-campaign-table-row td {

        padding:
            1.25rem 0.5rem 0.75rem !important;

    }


    .woocommerce-cart-form
    .nsb-cart-campaign-bundle {

        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            0.75rem;

        padding:
            1rem;

    }


    .woocommerce-cart-form
    .nsb-cart-campaign-bundle__offer {

        font-size:
            1.1rem;

    }


    .woocommerce-cart-form
    .nsb-cart-campaign-bundle__price {

        font-size:
            1.05rem;

    }

}

/* =========================================================
   CART – COUPON AREA FIX
========================================================= */

.woocommerce-cart-form table.cart td.actions {
    padding: 18px 14px !important;
}

/* Coupon wrapper */
.woocommerce-cart-form table.cart td.actions .coupon {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    float: left !important;
}

/* Coupon input */
.woocommerce-cart-form table.cart td.actions .coupon .input-text {
    width: 260px !important;
    min-width: 260px !important;
    height: 46px !important;

    margin: 0 !important;
    padding: 0 16px !important;

    background: #12090b !important;
    color: #ffffff !important;

    border: 1px solid rgba(201, 177, 112, 0.45) !important;
    border-radius: 0 !important;

    font-size: 13px !important;
    box-sizing: border-box !important;
}

/* Placeholder */
.woocommerce-cart-form table.cart td.actions .coupon .input-text::placeholder {
    color: rgba(255, 255, 255, 0.45) !important;
    opacity: 1 !important;
}

/* Apply coupon button */
.woocommerce-cart-form table.cart td.actions .coupon button {
    width: auto !important;
    min-width: 145px !important;
    height: 46px !important;

    padding: 0 22px !important;

    background: #c7ad70 !important;
    color: #1a1010 !important;

    border: none !important;
    border-radius: 0 !important;

    font-size: 11px !important;
    font-weight: 700 !important;

    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;

    white-space: nowrap !important;
}

/* Update cart button */
.woocommerce-cart-form table.cart td.actions > button {
    height: 46px !important;
    padding: 0 22px !important;

    background: transparent !important;
    border: 1px solid rgba(201, 177, 112, 0.35) !important;

    color: #c7ad70 !important;

    border-radius: 0 !important;
}

/* Mobile */
@media (max-width: 768px) {

    .woocommerce-cart-form table.cart td.actions .coupon {
        width: 100% !important;
        float: none !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .woocommerce-cart-form table.cart td.actions .coupon .input-text {
        width: 100% !important;
        min-width: 100% !important;
    }

    .woocommerce-cart-form table.cart td.actions .coupon button {
        width: 100% !important;
    }

}

/* =========================================
   CHECKOUT – PAYMENT METHOD BOX
========================================= */

.woocommerce-checkout #payment div.payment_box,
.woocommerce-checkout .wc_payment_method .payment_box {
    background: #1d1014 !important;
    border: 1px solid rgba(197, 171, 105, 0.25) !important;
    color: #d8d1cc !important;
    box-shadow: none !important;
}

.woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: #1d1014 !important;
}

.woocommerce-checkout #payment div.payment_box p,
.woocommerce-checkout .payment_box p {
    color: #d8d1cc !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* Payment method labels */
.woocommerce-checkout #payment .wc_payment_method label {
    color: #c9ae70 !important;
}

/* Radio button spacing */
.woocommerce-checkout #payment input[type="radio"] {
    margin-right: 8px;
}


/* =========================================================
   NESHKA SAVERA – INFLUENCER COLLABORATION APPLICATION
   Authoritative styling for [nsb_influencer_application]
   ========================================================= */

.nsb-ioms-application {
  width: 100% !important;
  max-width: 980px !important;
  margin: 0 auto !important;
  color: var(--clr-cream) !important;
}

.nsb-ioms-application form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 24px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 2.25rem !important;
  border: 1px solid rgba(201,165,90,.20) !important;
  background: rgba(255,255,255,.012) !important;
}

.nsb-ioms-application form > h3 {
  grid-column: 1 / -1 !important;
  margin: 1.75rem 0 1.15rem !important;
  padding: 0 0 .8rem !important;
  border-bottom: 1px solid rgba(201,165,90,.16) !important;
  color: var(--clr-gold) !important;
  font-family: var(--ff-serif) !important;
  font-size: 1.8rem !important;
  font-weight: var(--fw-light) !important;
  line-height: 1.15 !important;
}

.nsb-ioms-application form > h3:first-of-type {
  margin-top: 0 !important;
}

.nsb-ioms-application form > p {
  width: 100% !important;
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
}

.nsb-ioms-application .nsb-ioms-field--full {
  grid-column: 1 / -1 !important;
}

.nsb-ioms-application form > p > label {
  display: block !important;
  width: 100% !important;
  margin: 0 0 .5rem !important;
  color: rgba(247,242,237,.82) !important;
  font-family: var(--ff-sans) !important;
  font-size: .68rem !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: .12em !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
}

.nsb-ioms-application form > p > input[type="text"],
.nsb-ioms-application form > p > input[type="email"],
.nsb-ioms-application form > p > input[type="tel"],
.nsb-ioms-application form > p > input[type="url"],
.nsb-ioms-application form > p > input[type="number"],
.nsb-ioms-application form > p > select,
.nsb-ioms-application form > p > textarea {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 50px !important;
  margin: 0 !important;
  padding: .78rem .9rem !important;
  border: 1px solid rgba(201,165,90,.28) !important;
  border-radius: 0 !important;
  outline: none !important;
  background: rgba(0,0,0,.18) !important;
  color: var(--clr-cream) !important;
  font-family: var(--ff-sans) !important;
  font-size: .86rem !important;
  font-weight: var(--fw-regular) !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.nsb-ioms-application form > p > textarea {
  min-height: 125px !important;
  resize: vertical !important;
}

.nsb-ioms-application form > p > select {
  background-image:
    linear-gradient(45deg, transparent 50%, var(--clr-gold) 50%),
    linear-gradient(135deg, var(--clr-gold) 50%, transparent 50%) !important;
  background-position:
    calc(100% - 18px) 21px,
    calc(100% - 12px) 21px !important;
  background-size: 6px 6px, 6px 6px !important;
  background-repeat: no-repeat !important;
  padding-right: 2.5rem !important;
}

.nsb-ioms-application form > p > input::placeholder,
.nsb-ioms-application form > p > textarea::placeholder {
  color: rgba(247,242,237,.34) !important;
  opacity: 1 !important;
}

.nsb-ioms-application form > p > input:focus,
.nsb-ioms-application form > p > select:focus,
.nsb-ioms-application form > p > textarea:focus {
  border-color: var(--clr-gold) !important;
  background: rgba(0,0,0,.24) !important;
}

.nsb-ioms-application .nsb-ioms-consent {
  margin-top: .15rem !important;
  margin-bottom: 1.25rem !important;
}

.nsb-ioms-application .nsb-ioms-consent label {
  display: flex !important;
  align-items: flex-start !important;
  gap: .7rem !important;
  margin: 0 !important;
  color: rgba(247,242,237,.68) !important;
  font-size: .78rem !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: 0 !important;
  line-height: 1.55 !important;
  text-transform: none !important;
}

.nsb-ioms-application .nsb-ioms-consent input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  margin: 1px 0 0 !important;
  accent-color: var(--clr-gold) !important;
}

.nsb-ioms-application .nsb-ioms-submit-wrap {
  margin: .25rem 0 0 !important;
}

.nsb-ioms-application .nsb-ioms-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 220px !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 15px 30px !important;
  border: 1px solid var(--clr-gold) !important;
  border-radius: 0 !important;
  background: var(--clr-gold) !important;
  color: var(--clr-dark) !important;
  font-family: var(--ff-sans) !important;
  font-size: .68rem !important;
  font-weight: var(--fw-bold) !important;
  letter-spacing: .18em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition: all var(--transition) !important;
}

.nsb-ioms-application .nsb-ioms-submit:hover,
.nsb-ioms-application .nsb-ioms-submit:focus {
  background: var(--clr-dark) !important;
  color: var(--clr-gold) !important;
  border-color: var(--clr-gold) !important;
  outline: none !important;
}

.nsb-ioms-application .nsb-ioms-message {
  width: 100% !important;
  margin: 0 0 1.5rem !important;
  padding: 1rem 1.2rem !important;
  border: 1px solid rgba(201,165,90,.25) !important;
  background: rgba(255,255,255,.012) !important;
  color: rgba(247,242,237,.78) !important;
}

.nsb-ioms-application .nsb-ioms-login-button {
  display: inline-block !important;
  padding: .75rem 1.25rem !important;
  border: 1px solid var(--clr-gold) !important;
  color: var(--clr-gold) !important;
}

@media (max-width: 700px) {
  .nsb-ioms-application form {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 1.35rem !important;
  }

  .nsb-ioms-application form > h3,
  .nsb-ioms-application .nsb-ioms-field--full {
    grid-column: 1 !important;
  }

  .nsb-ioms-application form > h3 {
    font-size: 1.55rem !important;
  }

  .nsb-ioms-application .nsb-ioms-submit {
    width: 100% !important;
  }
}



/* ========================================================================
   NESHKA RESPONSIVE CONTROL LAYER — 2026-09-28
   Final production-safe responsive normalization.
   This layer intentionally sits last so historical patch blocks above do
   not compete at runtime. Existing visual design/functionality preserved.
   ======================================================================== */

/* --- Global overflow / sizing safety ----------------------------------- */
html { overflow-x: hidden; }
body { overflow-x: clip; }
img, video, svg { max-width: 100%; }
*, *::before, *::after { min-width: 0; }

/* --- Header: one source of truth for page offset ----------------------- */
.site-header { width: 100%; }
body { padding-top: var(--nsb-header-offset, 96px); }

/* Desktop: hero starts at viewport top beneath the fixed-header overlap. */
@media (min-width: 1101px) {
  .hero:not(.hero--slider) {
    margin-top: calc(-1 * var(--nsb-header-offset, 96px));
    min-height: 100svh;
  }
  .hero.hero--slider {
    margin-top: calc(-1 * var(--nsb-header-offset, 96px));
    min-height: 100svh;
  }
}

/* --- Compact desktop / tablet ------------------------------------------ */
@media (min-width: 769px) and (max-width: 1100px) {
  .container, .container--wide {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .site-header__nav {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .hero:not(.hero--slider),
  .hero.hero--slider {
    margin-top: 0;
    min-height: auto;
    padding-top: clamp(4rem, 7vw, 6rem);
    padding-bottom: 4rem;
  }

  .hero__content { padding-top: 1rem; }

  .products-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .ritual-steps { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .footer-top { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .nsb-product-layout { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 3rem; }
}

/* --- Tablet ------------------------------------------------------------- */
@media (min-width: 541px) and (max-width: 768px) {
  .container, .container--wide {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .site-header__nav {
    grid-template-columns: 44px minmax(0,1fr) 44px;
    padding: .8rem 1.1rem;
  }

  .nav-left { display: none !important; }
  .nav-hamburger {
    grid-column: 1;
    display: flex !important;
    justify-self: start;
  }
  .site-logo { grid-column: 2; justify-self: center; }
  .nav-right {
    grid-column: 3;
    display: flex !important;
    justify-content: flex-end;
  }
  .nav-right .nav-link,
  .nav-right .nav-account { display: none !important; }
  .nav-right .nav-cart { display: inline-flex !important; }

  .hero:not(.hero--slider),
  .hero.hero--slider {
    margin-top: 0;
    min-height: calc(100svh - var(--nsb-header-offset, 76px));
    padding-top: 6rem;
    padding-bottom: 3.5rem;
  }

  .hero__content { padding-left: 1.25rem; padding-right: 1.25rem; }
  .hero__title { max-width: 100%; }

  .products-grid,
  .woocommerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .collections-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-split { grid-template-columns: 1fr; }
  .ingredients-grid { grid-template-columns: 1fr; }
  .nsb-product-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer-top { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* --- Mobile ------------------------------------------------------------- */
@media (max-width: 540px) {
  .container, .container--wide {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .site-header__nav {
    grid-template-columns: 42px minmax(0,1fr) 42px;
    padding: .75rem 1rem;
  }

  .nav-left { display: none !important; }
  .nav-hamburger {
    grid-column: 1;
    grid-row: 1;
    display: flex !important;
    justify-self: start;
  }
  .site-logo { grid-column: 2; grid-row: 1; justify-self: center; }
  .site-logo img { height: 42px; width: auto; }
  .nav-right {
    grid-column: 3;
    grid-row: 1;
    display: flex !important;
    justify-content: flex-end;
    align-items: center;
  }
  .nav-right .nav-link,
  .nav-right .nav-account { display: none !important; }
  .nav-right .nav-cart {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    font-size: 0;
  }

  /* Header-aware hero. No fixed 76/96px assumptions. */
  .hero:not(.hero--slider),
  .hero.hero--slider {
    margin-top: 0;
    min-height: calc(100svh - var(--nsb-header-offset, 76px));
    height: auto;
    padding-top: 5.75rem;
    padding-bottom: 4rem;
  }

  .hero__content,
  .hero.hero--slider .hero__content {
    width: 100%;
    max-width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .hero__title { max-width: 100%; overflow-wrap: break-word; }
  .hero__desc { max-width: 100%; }
  .hero__actions { flex-direction: column; align-items: stretch; gap: .75rem; }
  .hero__actions .btn { width: 100%; justify-content: center; }

  /* Slider: remove the old 720/690px hard stops. */
  .hero--slider { min-height: calc(100svh - var(--nsb-header-offset, 76px)) !important; }
  .hero--slider .hero-slide {
    min-height: 100%;
    padding-top: 5.75rem;
    padding-bottom: 4.5rem;
  }
  .hero--slider .hero__title {
    max-width: 100%;
    font-size: clamp(2.2rem, 11.5vw, 3.35rem);
    line-height: 1.08;
  }
  .hero--slider .hero__desc { font-size: .9rem; line-height: 1.7; }
  .hero--slider .hero-slider__controls { left: 1rem; right: 1rem; bottom: 1rem; }
  .hero--slider .hero-slider__dots { max-width: calc(100vw - 7rem); overflow: hidden; }

  .products-grid,
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 1rem !important;
  }

  .collections-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .col-card { aspect-ratio: 4 / 3; }
  .about-split { grid-template-columns: 1fr; }
  .about-split__media { height: 72vw; }
  .ingredients-grid { grid-template-columns: 1fr; }
  .trust-bar__inner { grid-template-columns: 1fr; }
  .ritual-steps { grid-template-columns: 1fr 1fr; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; }

  .nsb-product-layout { grid-template-columns: 1fr; gap: 2rem; }
  .nsb-gallery-main { width: 100%; }
  .nsb-gallery-thumbs { grid-template-columns: repeat(4,minmax(0,1fr)); }

  .woocommerce-result-count,
  .woocommerce-ordering { width: 100% !important; float: none !important; }
  .woocommerce-ordering select { width: 100% !important; }

  .woocommerce-checkout .col2-set,
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2,
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart tbody,
  .woocommerce-cart table.cart tr,
  .woocommerce-cart table.cart td { width: 100%; }
}

/* --- Small mobile ------------------------------------------------------- */
@media (max-width: 414px) {
  .container, .container--wide { padding-left: .9rem; padding-right: .9rem; }

  .hero:not(.hero--slider),
  .hero.hero--slider {
    min-height: auto;
    padding-top: 5rem;
    padding-bottom: 3.5rem;
  }

  .hero--slider { min-height: auto !important; }
  .hero--slider .hero-slide { padding-top: 5rem; padding-bottom: 4.5rem; }
  .hero--slider .hero__title { font-size: clamp(2.05rem, 11.5vw, 3rem); }

  .hero__title { font-size: clamp(2.1rem, 12vw, 3.1rem); }
  .hero__desc { font-size: .88rem; }

  .products-grid,
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products {
    grid-template-columns: 1fr !important;
  }

  .ritual-steps { grid-template-columns: 1fr; }
  .nsb-guarantees { grid-template-columns: 1fr; }
  .nsb-linked-swatch, .nsb-swatch { width: 40px; height: 40px; }

  .product-card__name { overflow-wrap: anywhere; }
  .woocommerce ul.products li.product .button { width: 100%; margin-left: 0; margin-right: 0; }
}

/* --- Very small screens ------------------------------------------------- */
@media (max-width: 374px) {
  .site-header__nav { grid-template-columns: 38px minmax(0,1fr) 38px; padding-left: .8rem; padding-right: .8rem; }
  .site-logo img { height: 38px; }

  .mobile-menu { padding-left: 1rem; padding-right: 1rem; }
  .mobile-menu a { font-size: clamp(1.6rem, 8vw, 2rem); }

  .hero__title { font-size: clamp(1.95rem, 12vw, 2.7rem); }
  .hero__content,
  .hero.hero--slider .hero__content { padding-left: .9rem; padding-right: .9rem; }
}

/* --- Mobile menu: one authoritative geometry --------------------------- */
@media (max-width: 768px) {
  .mobile-menu {
    inset: 0;
    min-height: 100dvh;
    height: 100dvh;
    padding-top: calc(env(safe-area-inset-top) + 6rem);
    padding-bottom: calc(env(safe-area-inset-bottom) + 2.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

/* --- Prevent global mobile button rule from distorting compact controls - */
@media (max-width: 480px) {
  .btn { max-width: 100%; }
  .woocommerce .quantity .qty { max-width: 100%; }
}

/* --- WooCommerce grids: final single source of truth ------------------- */
@media (min-width: 1101px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
}
@media (min-width: 769px) and (max-width: 1100px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media (min-width: 541px) and (max-width: 768px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 540px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 414px) {
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products { grid-template-columns: 1fr !important; }
}

/* ========================================================================
   NESHKA RESPONSIVE CONTROL LAYER — 2026-09-28 / PASS 2
   Mobile viewport containment + adaptive hero + header/cart hardening.
   ======================================================================== */

/* Never allow the document or fixed header to become wider than the viewport. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden !important;
  overscroll-behavior-x: none;
}

.site,
.site-content,
main {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}

/* Slider owns the horizontal gesture. JS handles the slide change; the page
   itself must never pan sideways and reveal a background gap. */
.hero--slider,
.nsb-hero-slider,
.hero-slider__slides,
.hero-slide {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.hero--slider {
  touch-action: pan-y;
  overscroll-behavior-x: contain;
  left: 0;
  right: 0;
}

.hero-slider__slides,
.hero-slide {
  inset-inline: 0;
}

.hero-slide .hero__bg,
.hero-slide .hero__bg picture,
.hero-slide .hero__bg img,
.hero-slide__video {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
}

/* Mobile header: reserve an actual 42px right column for the cart so the
   icon can never be pushed/cropped by intrinsic nav content. */
@media (max-width: 768px) {
  .site-header,
  .site-header__nav {
    width: 100%;
    max-width: 100vw;
    min-width: 0;
  }

  .site-header__nav {
    overflow: hidden;
  }

  .nav-right {
    min-width: 0 !important;
    width: 42px !important;
    max-width: 42px !important;
    overflow: visible;
    gap: 0 !important;
  }

  .nav-right .nav-cart {
    width: 42px !important;
    max-width: 42px !important;
    min-width: 42px !important;
    height: 42px;
    padding: 0;
    margin: 0;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
  }

  .nav-right .nav-cart svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
  }
}

/* Very small phones: keep the same three-column geometry, just tighten the
   side controls so the logo remains centred without horizontal overflow. */
@media (max-width: 374px) {
  .nav-right,
  .nav-right .nav-cart {
    width: 38px !important;
    max-width: 38px !important;
    min-width: 38px !important;
    flex-basis: 38px;
  }

  .nav-right .nav-cart {
    height: 38px;
  }

  .nav-right .nav-cart svg {
    width: 19px;
    height: 19px;
    flex-basis: 19px;
  }
}

/* ------------------------------------------------------------------------
   Adaptive hero geometry
   The hero always occupies the usable viewport below the real fixed header.
   Width is 100% of the viewport; height follows the viewport automatically.
   ------------------------------------------------------------------------ */
@media (max-width: 1100px) {
  .hero.hero--slider {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .hero.hero--slider {
    min-height: calc(100svh - var(--nsb-header-offset, 76px)) !important;
    height: calc(100svh - var(--nsb-header-offset, 76px));
    max-height: none;
  }

  .hero.hero--slider .hero-slide {
    height: 100%;
    min-height: 100%;
    max-height: none;
  }

  .hero.hero--slider .hero__bg,
  .hero.hero--slider .hero__bg picture,
  .hero.hero--slider .hero__bg img,
  .hero.hero--slider .hero-slide__video {
    height: 100% !important;
  }
}

@media (max-width: 414px) {
  .hero.hero--slider {
    min-height: calc(100svh - var(--nsb-header-offset, 76px)) !important;
    height: calc(100svh - var(--nsb-header-offset, 76px));
  }

  .hero.hero--slider .hero-slide {
    height: 100%;
    min-height: 100%;
    padding-top: 0;
    padding-bottom: 0;
  }
}

/* ------------------------------------------------------------------------
   Full-width offer/promo overlays: if the popup is supplied by the site
   promo layer/plugin, these common wrappers stay inside the viewport.
   ------------------------------------------------------------------------ */
@media (max-width: 540px) {
  .nsb-offer-popup,
  .nsb-offer-modal,
  .nsb-popup,
  .nsb-modal,
  .offer-popup,
  .offer-modal,
  .promo-popup,
  .promo-modal,
  [role="dialog"].nsb-offer,
  [role="dialog"].offer-popup {
    width: min(100vw, 100%) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden auto !important;
    box-sizing: border-box !important;
  }

  .nsb-offer-popup img,
  .nsb-offer-modal img,
  .nsb-popup img,
  .nsb-modal img,
  .offer-popup img,
  .offer-modal img,
  .promo-popup img,
  .promo-modal img {
    max-width: 100% !important;
    height: auto;
  }
}

/* ========================================================================
   NESHKA MOBILE HORIZONTAL PAN LOCK — FINAL
   Prevent the document itself from becoming a horizontal touch surface.
   The hero slider keeps its own controlled swipe handling.
   ======================================================================== */
html,
body {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow-x: hidden !important;
  overscroll-behavior-x: none !important;
}

body {
  position: relative;
  left: 0 !important;
  right: auto !important;
  touch-action: pan-y;
}

#page,
.site-content,
#content {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow-x: clip !important;
  overscroll-behavior-x: none !important;
}

.site-header {
  left: 0 !important;
  right: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.site-header__nav {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 768px) {
  .site-header__nav {
    overflow: hidden !important;
    touch-action: pan-y;
  }

  .nav-hamburger,
  .nav-right,
  .nav-right .nav-cart,
  .site-logo {
    min-width: 0 !important;
  }

  .nav-hamburger {
    width: 42px !important;
    max-width: 42px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .nav-right,
  .nav-right .nav-cart {
    width: 42px !important;
    max-width: 42px !important;
  }

  .site-logo {
    width: auto !important;
    max-width: 100% !important;
    justify-self: center !important;
  }

  .hero.hero--slider {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: 0 !important;
    right: auto !important;
    transform: none !important;
    touch-action: pan-y;
  }
}

@media (max-width: 374px) {
  .nav-hamburger {
    width: 38px !important;
    max-width: 38px !important;
  }
}


/* ========================================================================
   NESHKA RESPONSIVE SYSTEM — FINAL FLUID PASS / 2026-09-28
   The previous responsive blocks remain intact. This final layer makes the
   actual component geometry fluid instead of relying on device-specific
   breakpoints.
   ======================================================================== */

/* ---------- true viewport/container sizing ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip !important;
  overscroll-behavior-x: none !important;
}
body { margin: 0; }
#page, #content, .site-content, main {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* ---------- header: fluid three-zone geometry ---------- */
@media (max-width: 768px) {
  .site-header,
  .site-header__nav {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .site-header__nav {
    grid-template-columns:
      clamp(36px, 11vw, 44px)
      minmax(0, 1fr)
      clamp(36px, 11vw, 44px) !important;
    column-gap: 0 !important;
    padding-inline: clamp(.65rem, 3.8vw, 1.2rem) !important;
    overflow: hidden !important;
  }

  .nav-hamburger {
    width: clamp(36px, 11vw, 44px) !important;
    max-width: clamp(36px, 11vw, 44px) !important;
    margin: 0 !important;
    padding: 5px 0 !important;
    justify-self: start !important;
    overflow: visible !important;
  }

  .site-logo {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-self: center !important;
    overflow: hidden;
  }

  .site-logo img {
    display: block;
    width: min(38vw, 150px) !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 44px;
    object-fit: contain;
  }

  .nav-right {
    width: clamp(36px, 11vw, 44px) !important;
    max-width: clamp(36px, 11vw, 44px) !important;
    min-width: 0 !important;
    justify-self: end !important;
    overflow: visible !important;
  }

  .nav-right .nav-cart {
    width: clamp(36px, 11vw, 44px) !important;
    max-width: clamp(36px, 11vw, 44px) !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
    margin: 0 !important;
    justify-content: center !important;
  }

  .nav-right .nav-cart svg {
    width: clamp(18px, 5.3vw, 22px) !important;
    height: clamp(18px, 5.3vw, 22px) !important;
  }
}

/* ---------- fluid section headers ---------- */
.section-header,
.nsb-related-header {
  min-width: 0;
}
.section-header > *,
.nsb-related-header > * { min-width: 0; }

@media (max-width: 700px) {
  .section-header,
  .nsb-related-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 1.25rem !important;
    margin-bottom: clamp(2rem, 7vw, 3rem) !important;
  }

  .section-header .btn,
  .nsb-related-header .btn {
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-self: start !important;
    white-space: normal !important;
    text-align: center;
  }
}

/* ---------- tabs scale with the available width ---------- */
.products-tabs {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.products-tab {
  min-width: 0;
  white-space: nowrap;
}
@media (max-width: 420px) {
  .products-tabs { gap: 0; }
  .products-tab {
    flex: 1 1 0;
    padding-inline: clamp(.55rem, 3vw, 1rem);
    font-size: clamp(.56rem, 2.5vw, .67rem);
  }
}

/* ---------- products: fluid columns rather than fixed device sizes ---------- */
.products-grid {
  width: 100%;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.product-card,
.product-card__media { min-width: 0; }
.product-card__name,
.product-card__name a { overflow-wrap: anywhere; }

@media (max-width: 900px) {
  .products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 680px) {
  .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: clamp(.65rem, 3vw, 1rem) !important; }
}
@media (max-width: 380px) {
  .products-grid { grid-template-columns: 1fr !important; }
}

/* ---------- hero: one adaptive formula for every phone/tablet ---------- */
.hero.hero--slider {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.hero.hero--slider .hero-slider__slides,
.hero.hero--slider .hero-slide,
.hero.hero--slider .hero__bg,
.hero.hero--slider .hero__bg picture,
.hero.hero--slider .hero__bg img,
.hero.hero--slider .hero-slide__video {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 1100px) {
  .hero.hero--slider {
    min-height: calc(100svh - var(--nsb-header-offset, 96px)) !important;
    height: calc(100svh - var(--nsb-header-offset, 96px)) !important;
  }
  .hero.hero--slider .hero-slide {
    min-height: 100% !important;
    height: 100% !important;
  }
}

/* ---------- offer popup: scale from viewport, not a fixed phone width ---------- */
#nsb-offers-popup {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  padding: clamp(10px, 3vw, 28px) !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden auto !important;
  overscroll-behavior: contain;
}

#nsb-offers-popup .nsb-offers-popup__inner,
#nsb-offers-popup .nsb-offers-popup__content,
#nsb-offers-popup .nsb-offers-popup__panel,
#nsb-offers-popup .nsb-offers-popup__card,
#nsb-offers-popup > div {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

#nsb-offers-popup .nsb-offers-popup__inner,
#nsb-offers-popup .nsb-offers-popup__content,
#nsb-offers-popup .nsb-offers-popup__panel,
#nsb-offers-popup .nsb-offers-popup__card {
  width: min(100%, 560px);
  margin-inline: auto;
}

#nsb-offers-popup img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain;
}

@media (max-width: 600px) {
  #nsb-offers-popup {
    padding: clamp(8px, 2.2vw, 14px) !important;
  }

  #nsb-offers-popup .nsb-offers-popup__inner,
  #nsb-offers-popup .nsb-offers-popup__content,
  #nsb-offers-popup .nsb-offers-popup__panel,
  #nsb-offers-popup .nsb-offers-popup__card,
  #nsb-offers-popup > div {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 380px) {
  #nsb-offers-popup { padding: 6px !important; }
}

/* ---------- popup typography/buttons also scale with available width ---------- */
#nsb-offers-popup h1,
#nsb-offers-popup h2,
#nsb-offers-popup h3,
#nsb-offers-popup p,
#nsb-offers-popup button,
#nsb-offers-popup a {
  max-width: 100%;
  overflow-wrap: anywhere;
}
#nsb-offers-popup button,
#nsb-offers-popup a {
  min-width: 0;
}

/* ---------- lazy images: reserve intrinsic space without distorting content ---------- */
.ingredients-img,
.ritual-step__img,
.col-card__img,
.product-card__img {
  display: block;
}

/* ---------- eliminate accidental horizontal scroll surfaces ---------- */
.site-header,
.site-header__bar,
.site-header__nav,
.site-content,
section,
footer {
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 700px) {
  .container,
  .container--wide {
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: clamp(.8rem, 4vw, 1rem) !important;
  }
}
