/* =========================================================================
   Neshka Savera — responsive-fixes.css  (phase 2, 2026-10)
   Loaded on every page AFTER style.css (handle: nsb-responsive-fixes,
   see inc/phase2.php). Delete the enqueue to roll back.

   A. Header: hamburger/drawer up to 1199px (+ JS fallback .nsb-nav-compact)
   B. Newsletter form
   C. Single product page
   D. Product grids
   E. Home hero slider (mobile controls, dots, readability)
   F. WooCommerce cart, notices, empty cart, My Account forms
   G. Readable text sizes (≥12px) + WCAG AA contrast on dark backgrounds
   H. Elementor pages (About / Contact / Collaborate) fonts + padding
   I. Media sizing
   ========================================================================= */

:root {
  --nsb-text-muted: rgba(247,242,237,.68);   /* ≥ 7:1 on --clr-dark  */
  --nsb-text-subtle: rgba(247,242,237,.6);   /* ≥ 5.5:1 on dark/dark-2/dark-3 */
  --nsb-tap: 44px;
}

/* =========================================================================
   A. HEADER
   Desktop nav (6 left links + Contact/Account/Cart) overlapped the logo
   between 769px and ~1250px. Up to 1199px the header now uses the same
   hamburger + drawer as mobile; main.js adds .nsb-nav-compact on wider
   screens if a long menu still would not fit.
   ========================================================================= */

/* Shared drawer/hamburger polish (all widths where it shows) */
.nav-hamburger {
  min-width: var(--nsb-tap);
  min-height: var(--nsb-tap);
  align-items: center;
  justify-content: center;
}
.mobile-menu__close {
  width: var(--nsb-tap);
  height: var(--nsb-tap);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
}
.mobile-menu a {
  padding: .15rem .5rem;
}

@media (min-width: 769px) and (max-width: 1199px) {
  .site-header__nav {
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
    padding: .85rem 1.5rem !important;
  }
  .site-header .nav-left { display: none !important; }
  .site-header .nav-hamburger {
    display: flex !important;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    margin: 0 !important;
    padding: 0 !important;
  }
  .site-header .site-logo { grid-column: 2; grid-row: 1; justify-self: center; }
  .site-header .nav-right {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    gap: 1.5rem;
  }
  .site-header .nav-right .nav-link { display: none !important; }
}

.site-header.nsb-nav-compact .site-header__nav {
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
}
.site-header.nsb-nav-compact .nav-left { display: none !important; }
.site-header.nsb-nav-compact .nav-hamburger {
  display: flex !important;
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  margin: 0 !important;
  padding: 0 !important;
}
.site-header.nsb-nav-compact .site-logo { grid-column: 2; grid-row: 1; justify-self: center; }
.site-header.nsb-nav-compact .nav-right { grid-column: 3; grid-row: 1; justify-self: end; gap: 1.5rem; }
.site-header.nsb-nav-compact .nav-right .nav-link { display: none !important; }

/* Desktop: slightly tighter link spacing so the full menu fits from 1200px */
@media (min-width: 1200px) and (max-width: 1599px) {
  .site-header__nav { padding-left: 1.75rem; padding-right: 1.75rem; }
  .nav-left, .nav-right { gap: 1.35rem; }
}

/* Phones: centre the logo in its column (it sat left-aligned) */
@media (max-width: 768px) {
  .site-header .site-logo { justify-content: center !important; }
}

/* Announcement bar: only rendered when it has text (header.php), but never
   leave an empty padded strip if a cached template still prints it. */
.site-header__bar:empty { display: none !important; }

/* =========================================================================
   B. NEWSLETTER
   ========================================================================= */
.newsletter-form input,
.newsletter-form button {
  min-height: 48px;
}
.newsletter-form button {
  font-size: .78rem !important;
  letter-spacing: .18em;
  padding: 0 1.8rem;
}
.newsletter-form input::placeholder { color: rgba(247,242,237,.55); }

@media (max-width: 600px) {
  .newsletter-form {
    flex-direction: column !important;
    gap: .75rem;
    width: 100%;
  }
  .newsletter-form input {
    width: 100% !important;
    border-right: 1px solid rgba(201,165,90,.22) !important;
    border-bottom: 1px solid rgba(201,165,90,.22) !important;
  }
  .newsletter-form button {
    width: 100% !important;
    height: auto !important;
    min-height: 48px !important;
    padding: .9rem 1.5rem !important;
    line-height: 1.2 !important;
  }
}

/* =========================================================================
   C. SINGLE PRODUCT
   ========================================================================= */
.nsb-single-wrap {
  padding: 4rem 0 8rem;
  min-height: 100vh;
  background: var(--clr-dark);
}
@media (max-width: 768px) {
  .nsb-single-wrap { padding: 1rem 0 4rem; min-height: 0; }
  .nsb-single-wrap .nsb-breadcrumb { margin-bottom: 1rem; }
}

/* Main CTA row sits directly under the description now */
.nsb-form-row { flex-wrap: nowrap; margin: 1.6rem 0 1.8rem; }
.nsb-form-row .nsb-add-btn { min-width: 0; }
.nsb-qty button { width: var(--nsb-tap); }
@media (max-width: 380px) {
  .nsb-qty button { width: 38px; }
  .nsb-qty input  { width: 42px; }
  .nsb-add-btn    { padding: 0 1rem !important; letter-spacing: .14em !important; }
}

/* Non-functional wishlist heart (removed from template; hide if cached) */
.nsb-form-row .nsb-wish-btn { display: none !important; }

/* Rating link (only printed when real reviews exist) */
a.nsb-rating { display: inline-flex; gap: .5rem; align-items: center; text-decoration: none; }
a.nsb-rating .nsb-stars { color: var(--clr-gold); letter-spacing: .1em; }

/* Accordion links */
.nsb-accordion-body__inner a { color: var(--clr-gold); text-decoration: underline; text-underline-offset: 3px; }

/* Guarantees: allow wrapping on narrow phones */
.nsb-guarantee span { line-height: 1.35; }

/* ---- Reviews block (WooCommerce single-product-reviews.php) ---- */
.nsb-product-reviews {
  margin-top: 4.5rem;
  padding-top: 3rem;
  border-top: 1px solid rgba(201,165,90,.14);
  max-width: 860px;
}
.nsb-product-reviews #reviews h2,
.nsb-product-reviews .woocommerce-Reviews-title,
.nsb-product-reviews #reply-title {
  display: block;
  font-family: var(--ff-serif);
  font-weight: var(--fw-regular);
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  color: var(--clr-cream);
  margin: 0 0 1.2rem;
}
.nsb-product-reviews .woocommerce-noreviews {
  color: var(--nsb-text-subtle);
  font-size: .95rem;
  margin-bottom: 2rem;
}
.nsb-product-reviews ol.commentlist { list-style: none; margin: 0 0 2.5rem; padding: 0; }
.nsb-product-reviews ol.commentlist li {
  padding: 1.4rem 0;
  border-bottom: 1px solid rgba(201,165,90,.12);
}
.nsb-product-reviews .comment_container { display: flex; gap: 1rem; }
.nsb-product-reviews .comment_container img.avatar {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(201,165,90,.3);
  flex-shrink: 0;
}
.nsb-product-reviews .comment-text { flex: 1; min-width: 0; }
.nsb-product-reviews .comment-text .meta { font-size: .82rem; color: var(--nsb-text-subtle); margin: .3rem 0 .5rem; }
.nsb-product-reviews .comment-text .meta strong { color: var(--clr-cream); font-weight: var(--fw-medium); }
.nsb-product-reviews .description p { color: rgba(247,242,237,.85); line-height: 1.75; }
.nsb-product-reviews .star-rating { color: var(--clr-gold); }
#review_form_wrapper {
  background: var(--clr-dark-2);
  border: 1px solid rgba(201,165,90,.18);
  padding: clamp(1.25rem, 4vw, 2.2rem);
}
#review_form .comment-notes,
#review_form .comment-form-cookies-consent label { color: var(--nsb-text-subtle); font-size: .85rem; }
#review_form label {
  display: block;
  font-size: .75rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--clr-gold);
  margin-bottom: .45rem;
}
#review_form .comment-form-cookies-consent { display: flex; gap: .6rem; align-items: flex-start; }
#review_form .comment-form-cookies-consent label { text-transform: none; letter-spacing: 0; color: var(--nsb-text-subtle); }
#review_form p { margin-bottom: 1.2rem; }
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea,
#review_form select {
  width: 100%;
  min-height: 48px;
  padding: .75rem 1rem;
  background: var(--clr-dark);
  border: 1px solid rgba(201,165,90,.28);
  color: var(--clr-cream);
  font-family: var(--ff-sans);
  font-size: 1rem;
  border-radius: 0;
}
#review_form textarea { min-height: 140px; }
#review_form input:focus,
#review_form textarea:focus,
#review_form select:focus { outline: 2px solid var(--clr-gold); outline-offset: 1px; border-color: var(--clr-gold); }
#review_form p.stars a { color: var(--clr-gold); }
#review_form p.stars { margin: .2rem 0 0; }
#review_form p.stars span { display: inline-flex; gap: .2rem; }
#review_form p.stars a { width: 1.6em; height: 1.6em; }
#review_form .form-submit input[type="submit"],
#review_form #submit {
  min-height: 48px;
  padding: .9rem 2.2rem;
  background: var(--clr-gold);
  color: var(--clr-dark);
  border: 0;
  border-radius: 0;
  font-family: var(--ff-sans);
  font-size: .78rem;
  font-weight: var(--fw-bold);
  letter-spacing: .2em;
  text-transform: uppercase;
  cursor: pointer;
}
#review_form #submit:hover { background: var(--clr-gold-lt); }

/* =========================================================================
   D. PRODUCT GRIDS
   2 columns on phones (incl. 360–380px), 2 on tablets (4 products = 2×2),
   4 on desktop. Related products: columns = number of items.
   ========================================================================= */
.products-grid,
.woocommerce ul.products {
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
}
@media (max-width: 1024px) {
  .products-grid,
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: clamp(.75rem, 2.5vw, 1.5rem) !important;
  }
}
@media (max-width: 600px) {
  .products-grid,
  .woocommerce ul.products,
  .nsb-single-product .related.products ul.products {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: .75rem !important;
  }
  .product-card__name { font-size: .98rem; line-height: 1.25; }
}

/* Related products (single-product.php adds --count-N) */
.products-grid--related.products-grid--count-1 { grid-template-columns: minmax(0, 320px) !important; }
@media (min-width: 1025px) {
  .products-grid--related.products-grid--count-2 { grid-template-columns: repeat(2, minmax(0, 340px)) !important; }
  .products-grid--related.products-grid--count-3 { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
}
@media (max-width: 1024px) {
  .products-grid--related.products-grid--count-3 > :last-child:nth-child(odd) { grid-column: 1 / -1; max-width: 50%; justify-self: center; }
}

/* Touch screens: the hover-only "View Product" bar is always visible */
@media (hover: none) {
  .product-card__cta { transform: none !important; position: static; display: block; }
}

/* =========================================================================
   E. HOME HERO SLIDER
   ========================================================================= */

/* Readability: gradient behind slide text (only slides that have text) */
.hero--slider .hero-slide:has(.hero__title, .hero__desc, .hero__eyebrow, .hero__actions a) .hero__overlay {
  background:
    linear-gradient(0deg, rgba(13,5,8,.88) 0%, rgba(13,5,8,.55) 32%, rgba(13,5,8,0) 62%),
    linear-gradient(90deg, rgba(13,5,8,.55) 0%, rgba(13,5,8,0) 55%) !important;
  opacity: 1 !important;
}
.hero--slider .hero__title,
.hero--slider .hero__desc,
.hero--slider .hero__eyebrow {
  text-shadow: 0 1px 14px rgba(13,5,8,.65);
}

/* Bigger dot tap targets (24×24) with a visible 10px dot */
.hero-slider__dots { gap: .15rem !important; padding: .1rem .35rem !important; }
.hero-slider__dot,
.hero--slider .hero-slider__dot {
  position: relative;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  transform: none !important;
  flex-shrink: 0;
}
.hero-slider__dot::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border-radius: 50%;
  background: rgba(247,242,237,.6);
  transition: background var(--transition), transform var(--transition);
}
.hero-slider__dot.is-active::before,
.hero-slider__dot:hover::before,
.hero-slider__dot:focus-visible::before {
  background: var(--clr-gold);
  transform: scale(1.3);
}
.hero-slider__arrow { width: var(--nsb-tap) !important; height: var(--nsb-tap) !important; }

/* Phones/tablets: keep slider controls clear of the slide buttons
   ("Explore Collection" / "Our Story"). */
@media (max-width: 1100px) {
  .hero.hero--slider .hero-slide:has(.hero__actions a) .hero__content {
    padding-bottom: calc(var(--nsb-tap) + 1.75rem) !important;
  }
}
@media (max-width: 768px) {
  .hero.hero--slider .hero-slider__controls {
    left: .75rem !important;
    right: .75rem !important;
    bottom: .75rem !important;
  }
  .hero.hero--slider .hero-slider__dots { max-width: calc(100vw - 8rem) !important; }
  .hero.hero--slider .hero__actions .btn { min-height: 48px; }
}

/* =========================================================================
   F. WOOCOMMERCE: CART, NOTICES, EMPTY CART, MY ACCOUNT
   ========================================================================= */

/* ---- Buttons (classic templates) ---- */
.woocommerce-cart .woocommerce .button,
.woocommerce-account .woocommerce .button,
.woocommerce-checkout .woocommerce .button,
.woocommerce-notices-wrapper .button,
.woocommerce .return-to-shop .button,
.woocommerce .wc-proceed-to-checkout .checkout-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .85rem 1.8rem !important;
  background: var(--clr-gold) !important;
  color: var(--clr-dark) !important;
  border: 1px solid var(--clr-gold) !important;
  border-radius: 0 !important;
  font-family: var(--ff-sans) !important;
  font-size: .78rem !important;
  font-weight: var(--fw-bold) !important;
  letter-spacing: .18em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.woocommerce-cart .woocommerce .button:hover,
.woocommerce-account .woocommerce .button:hover,
.woocommerce-checkout .woocommerce .button:hover,
.woocommerce-notices-wrapper .button:hover,
.woocommerce .return-to-shop .button:hover,
.woocommerce .wc-proceed-to-checkout .checkout-button:hover {
  background: var(--clr-gold-lt) !important;
  border-color: var(--clr-gold-lt) !important;
  color: var(--clr-dark) !important;
}
/* Secondary buttons */
.woocommerce-cart .woocommerce button[name="update_cart"],
.woocommerce-notices-wrapper .button.wc-forward,
.woocommerce-message .button {
  background: transparent !important;
  color: var(--clr-gold) !important;
  border-color: rgba(201,165,90,.55) !important;
}
.woocommerce-cart .woocommerce button[name="update_cart"]:hover,
.woocommerce-notices-wrapper .button.wc-forward:hover,
.woocommerce-message .button:hover {
  background: var(--clr-gold) !important;
  color: var(--clr-dark) !important;
}
.woocommerce-cart .woocommerce button[name="update_cart"]:disabled,
.woocommerce-cart .woocommerce button[name="update_cart"][disabled] {
  opacity: .45 !important;
  cursor: default;
}
.woocommerce-cart .woocommerce button[name="update_cart"]:disabled:hover {
  background: transparent !important;
  color: var(--clr-gold) !important;
}

/* ---- Notices ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1.25rem;
  margin: 0 0 1.5rem !important;
  padding: 1rem 1.25rem 1rem 3rem !important;
  background: var(--clr-dark-2) !important;
  border: 1px solid rgba(201,165,90,.25) !important;
  border-top: 2px solid var(--clr-gold) !important;
  border-radius: 0 !important;
  color: var(--clr-cream) !important;
  font-family: var(--ff-sans);
  font-size: .95rem;
  line-height: 1.55;
  list-style: none;
}
.woocommerce-error { border-top-color: var(--clr-rose-lt) !important; }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { color: var(--clr-gold) !important; top: 1.05rem !important; left: 1.15rem !important; }
.woocommerce-error::before { color: var(--clr-rose-lt) !important; }
.woocommerce-message::after,
.woocommerce-info::after { display: none !important; }
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) { color: var(--clr-gold); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-message .button,
.woocommerce-info .button { order: 2; margin: 0 !important; min-height: 44px; padding: .6rem 1.2rem !important; font-size: .75rem !important; }

/* ---- Cart layout ---- */
.woocommerce-cart .woocommerce {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
/* Two columns (items | totals) only when the cart container itself is wide
   enough — works inside the theme page template and inside Elementor. */
.woocommerce-cart .woocommerce {
  container-type: inline-size;
  container-name: nsbcart;
}
.woocommerce-cart .woocommerce::after { content: ''; display: table; clear: both; }
@container nsbcart (min-width: 900px) {
  .woocommerce-cart .woocommerce .woocommerce-cart-form { float: left; width: calc(100% - 392px) !important; }
  .woocommerce-cart .woocommerce .cart-collaterals { float: right; width: 360px !important; }
  .woocommerce-notices-wrapper,
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error { clear: both; }
}
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart-collaterals .cart_totals {
  width: 100% !important;
  float: none !important;
}

/* ---- Cart table ---- */
.woocommerce-cart table.shop_table.cart {
  width: 100%;
  border: 1px solid rgba(201,165,90,.18) !important;
  border-collapse: collapse !important;
  border-radius: 0 !important;
  background: var(--clr-dark-2);
  margin: 0 0 2rem !important;
  font-family: var(--ff-sans);
}
.woocommerce-cart table.shop_table.cart th {
  padding: 1rem !important;
  font-size: .75rem !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--clr-gold) !important;
  border-bottom: 1px solid rgba(201,165,90,.18) !important;
  background: transparent !important;
  text-align: left;
}
.woocommerce-cart table.shop_table.cart td {
  padding: 1rem !important;
  border-top: 1px solid rgba(201,165,90,.1) !important;
  color: var(--clr-cream) !important;
  vertical-align: middle !important;
  background: transparent !important;
}
.woocommerce-cart table.cart td.product-thumbnail { width: 96px; }
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.cart img {
  display: block;
  width: 72px !important;
  height: 96px !important;
  max-width: none !important;
  object-fit: cover;
  border: 1px solid rgba(201,165,90,.18);
  background: var(--clr-dark);
}
.woocommerce-cart table.cart td.product-name a {
  color: var(--clr-cream) !important;
  font-family: var(--ff-serif);
  font-size: 1.15rem;
  line-height: 1.3;
  text-decoration: none !important;
}
.woocommerce-cart table.cart td.product-name a:hover { color: var(--clr-gold) !important; }
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal { font-size: 1rem; white-space: nowrap; }
.woocommerce-cart table.cart td.product-subtotal { color: var(--clr-gold) !important; font-weight: var(--fw-medium); }

/* Remove (×) */
.woocommerce-cart table.cart td.product-remove { width: 52px; }
.woocommerce-cart table.cart a.remove {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(201,165,90,.35);
  color: var(--clr-gold) !important;
  font-size: 1.3rem !important;
  font-weight: var(--fw-light) !important;
  line-height: 1 !important;
  background: transparent !important;
}
.woocommerce-cart table.cart a.remove:hover {
  background: var(--clr-rose) !important;
  border-color: var(--clr-rose);
  color: var(--clr-cream) !important;
}

/* Quantity: dark / gold */
.woocommerce-cart .quantity .qty,
.woocommerce .quantity input.qty {
  width: 76px !important;
  height: 44px !important;
  padding: 0 .5rem !important;
  background: var(--clr-dark) !important;
  border: 1px solid rgba(201,165,90,.45) !important;
  border-radius: 0 !important;
  color: var(--clr-cream) !important;
  font-family: var(--ff-sans) !important;
  font-size: 1rem !important;
  text-align: center;
  -moz-appearance: textfield;
}
.woocommerce .quantity input.qty:focus { outline: 2px solid var(--clr-gold); outline-offset: 1px; }
.nsb-bundle-qty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  border: 1px dashed rgba(201,165,90,.35);
  color: var(--nsb-text-muted);
}

/* Coupon + actions row */
.woocommerce-cart table.cart td.actions {
  padding: 1.25rem 1rem !important;
  background: rgba(13,5,8,.35) !important;
}
.woocommerce-cart table.cart td.actions .coupon {
  display: flex;
  gap: .6rem;
  align-items: stretch;
}
.woocommerce-cart table.cart td.actions .coupon .input-text,
.woocommerce-cart #coupon_code {
  width: 220px !important;
  min-height: 48px;
  padding: .7rem 1rem !important;
  background: var(--clr-dark) !important;
  border: 1px solid rgba(201,165,90,.35) !important;
  border-radius: 0 !important;
  color: var(--clr-cream) !important;
  font-family: var(--ff-sans);
  font-size: .95rem !important;
}
.woocommerce-cart #coupon_code::placeholder { color: rgba(247,242,237,.55); }

/* Campaign bundle heading row (functions.php PHASE 3D) */
.woocommerce-cart table.cart tr.nsb-campaign-table-row td {
  padding: 1rem 1rem .25rem !important;
  border-top: 1px solid rgba(201,165,90,.18) !important;
}
.woocommerce-cart table.cart tr.nsb-campaign-table-row td::before {
  content: none !important;
  display: none !important;
}
.nsb-cart-campaign-bundle__eyebrow { font-size: .75rem !important; letter-spacing: .16em !important; }

/* ---- Cart totals ---- */
.woocommerce-cart .cart_totals {
  background: var(--clr-dark-2);
  border: 1px solid rgba(201,165,90,.18);
  padding: 1.5rem;
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--ff-serif);
  font-weight: var(--fw-regular);
  font-size: 1.9rem;
  color: var(--clr-cream);
  margin: 0 0 1rem;
}
.woocommerce-cart .cart_totals table.shop_table {
  border: 0 !important;
  margin: 0 0 1.2rem !important;
  background: transparent;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
  padding: .85rem 0 !important;
  border-top: 1px solid rgba(201,165,90,.14) !important;
  background: transparent !important;
  color: var(--clr-cream) !important;
  font-size: .95rem;
  vertical-align: top;
}
.woocommerce-cart .cart_totals table.shop_table th {
  font-weight: var(--fw-medium) !important;
  font-size: .78rem !important;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nsb-text-muted) !important;
  width: 38%;
}
.woocommerce-cart .cart_totals .order-total td,
.woocommerce-cart .cart_totals .order-total .amount { color: var(--clr-gold) !important; font-size: 1.15rem; font-weight: var(--fw-medium); }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
.woocommerce-cart .cart_totals .woocommerce-shipping-methods { color: var(--nsb-text-muted); font-size: .9rem; }
.woocommerce-cart .cart_totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-cart .cart_totals .shipping-calculator-button { color: var(--clr-gold) !important; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: flex !important;
  width: 100% !important;
  min-height: 56px;
  margin: 0 !important;
  font-size: .85rem !important;
}

/* ---- Cart: phones / small tablets (stacked cards) ---- */
@media (max-width: 768px) {
  .woocommerce-cart table.shop_table.cart,
  .woocommerce-cart table.shop_table.cart tbody { display: block; width: 100%; }
  .woocommerce-cart table.shop_table.cart thead { display: none !important; }

  .woocommerce-cart table.cart tr.cart_item {
    display: grid !important;
    grid-template-columns: 76px minmax(0,1fr) 44px;
    grid-template-areas:
      "thumb name remove"
      "thumb price price"
      "thumb qty qty"
      "thumb sub sub";
    column-gap: .9rem;
    row-gap: .25rem;
    padding: 1rem !important;
    border-top: 1px solid rgba(201,165,90,.12);
  }
  .woocommerce-cart table.cart tr.cart_item td {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: auto !important;
    padding: .2rem 0 !important;
    border: 0 !important;
    text-align: left !important;
    background: transparent !important;
  }
  .woocommerce-cart table.cart tr.cart_item td::before {
    float: none !important;
    content: attr(data-title) !important;
    display: inline-block !important;
    margin: 0 .75rem 0 0 !important;
    font-size: .75rem !important;
    font-weight: var(--fw-medium) !important;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--nsb-text-muted) !important;
  }
  .woocommerce-cart table.cart tr.cart_item td.product-thumbnail {
    grid-area: thumb;
    display: block !important;
    align-self: start;
  }
  .woocommerce-cart table.cart tr.cart_item td.product-thumbnail img { width: 76px !important; height: 100px !important; }
  .woocommerce-cart table.cart tr.cart_item td.product-name { grid-area: name; display: block !important; }
  .woocommerce-cart table.cart tr.cart_item td.product-name a { font-size: 1.1rem; }
  .woocommerce-cart table.cart tr.cart_item td.product-remove {
    grid-area: remove;
    justify-content: flex-end;
    align-self: start;
  }
  .woocommerce-cart table.cart tr.cart_item td.product-price { grid-area: price; }
  .woocommerce-cart table.cart tr.cart_item td.product-quantity { grid-area: qty; }
  .woocommerce-cart table.cart tr.cart_item td.product-subtotal { grid-area: sub; }
  .woocommerce-cart table.cart tr.cart_item td.product-thumbnail::before,
  .woocommerce-cart table.cart tr.cart_item td.product-name::before,
  .woocommerce-cart table.cart tr.cart_item td.product-remove::before { content: none !important; display: none !important; }
  .woocommerce-cart table.cart a.remove { width: 40px !important; height: 40px !important; }

  /* Bundle heading row + actions row */
  .woocommerce-cart table.cart tr.nsb-campaign-table-row,
  .woocommerce-cart table.cart tr:not(.cart_item) { display: block !important; }
  .woocommerce-cart table.cart tr.nsb-campaign-table-row td,
  .woocommerce-cart table.cart tr:not(.cart_item) td { display: block !important; width: 100% !important; }
  .woocommerce-cart table.cart td.actions::before { content: none !important; display: none !important; }
  .woocommerce-cart table.cart td.actions { padding: 1rem !important; }
  .woocommerce-cart table.cart td.actions .coupon {
    flex-direction: column;
    width: 100%;
    float: none !important;
    margin-bottom: .75rem;
  }
  .woocommerce-cart table.cart td.actions .coupon .input-text,
  .woocommerce-cart #coupon_code,
  .woocommerce-cart table.cart td.actions .button { width: 100% !important; margin: 0 !important; float: none !important; }
  .woocommerce-cart .cart_totals { padding: 1.25rem 1rem; }
  .woocommerce-cart .cart_totals table.shop_table tr { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(201,165,90,.14); }
  .woocommerce-cart .cart_totals table.shop_table th,
  .woocommerce-cart .cart_totals table.shop_table td { display: block !important; border: 0 !important; width: auto !important; text-align: right !important; }
  .woocommerce-cart .cart_totals table.shop_table th { text-align: left !important; }
  .woocommerce-cart .cart_totals table.shop_table td::before { content: none !important; display: none !important; }
}

/* ---- Empty cart ---- */
.woocommerce-cart .wc-empty-cart-message { margin: 1rem 0 0; }
.woocommerce-cart .cart-empty.woocommerce-info {
  display: block;
  padding: 3.5rem 1.5rem 1rem !important;
  border: 0 !important;
  background: transparent !important;
  text-align: center;
  font-family: var(--ff-serif);
  font-size: clamp(1.6rem, 4vw, 2.3rem);
  font-weight: var(--fw-light);
  color: var(--clr-cream) !important;
}
.woocommerce-cart .cart-empty.woocommerce-info::before {
  content: '' !important;
  position: static !important;
  display: block !important;
  width: 56px;
  height: 56px;
  margin: 0 auto 1.4rem;
  border: 1px solid rgba(201,165,90,.45);
  border-radius: 50%;
  background: no-repeat center / 24px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a55a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 01-8 0'/%3E%3C/svg%3E");
}
.woocommerce-cart .return-to-shop { text-align: center; margin: 1.5rem 0 3rem; }

/* ---- Cross-sells (if any) ---- */
.woocommerce-cart .cross-sells h2 { font-family: var(--ff-serif); color: var(--clr-cream); }

/* ---- My Account: login / register ---- */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account .woocommerce-ResetPassword {
  background: var(--clr-dark-2) !important;
  border: 1px solid rgba(201,165,90,.2) !important;
  border-radius: 0 !important;
  padding: clamp(1.25rem, 4vw, 2rem) !important;
}
.woocommerce-account #customer_login h2,
.woocommerce-account .woocommerce > h2 {
  font-family: var(--ff-serif);
  font-weight: var(--fw-regular);
  color: var(--clr-cream);
}
.woocommerce-account .woocommerce form .form-row label {
  font-size: .75rem !important;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nsb-text-muted);
}
.woocommerce-account .woocommerce form .form-row .required { color: var(--clr-gold); }
.woocommerce-account .woocommerce form .form-row input.input-text,
.woocommerce-account .woocommerce form .form-row select {
  min-height: 48px;
  background: var(--clr-dark) !important;
  border: 1px solid rgba(201,165,90,.3) !important;
  border-radius: 0 !important;
  color: var(--clr-cream) !important;
  font-size: 1rem !important;
  padding: .7rem 1rem !important;
}
.woocommerce-account .woocommerce-form-login__rememberme {
  display: inline-flex !important;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  font-size: .9rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--nsb-text-muted) !important;
  margin: 0 0 .75rem !important;
}
.woocommerce-account .woocommerce-form-login__rememberme input { width: 18px; height: 18px; accent-color: var(--clr-gold); }
.woocommerce-account .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit,
.woocommerce-account .woocommerce-ResetPassword .button {
  float: none !important;
  width: 100%;
  max-width: 320px;
  margin: .25rem 0 0 !important;
}
.woocommerce-account .lost_password a,
.woocommerce-account .woocommerce-privacy-policy-text a { color: var(--clr-gold) !important; }
.woocommerce-account .woocommerce-privacy-policy-text,
.woocommerce-account .woocommerce-privacy-policy-text p { color: var(--nsb-text-muted) !important; font-size: .9rem; }
.woocommerce-account .lost_password { margin-top: 1rem; }
.woocommerce-account .lost_password a { display: inline-block; padding: .5rem 0; }

/* =========================================================================
   G. READABLE TEXT (≥12px) + CONTRAST (WCAG AA on dark backgrounds)
   ========================================================================= */
.eyebrow,
.hero--slider .hero__eyebrow,
.hero--slider .hero .eyebrow { font-size: .75rem !important; }
.btn { font-size: .75rem !important; }
@media (min-width: 769px) {
  .nav-link,
  .nav-cart,
  .nav-account,
  .nav-account span,
  .cart-count { font-size: .75rem !important; letter-spacing: .14em !important; }
}
@media (max-width: 768px) {
  /* icon-only cart; keep the count badge readable */
  .nav-right .nav-cart .cart-count { font-size: .75rem !important; }
}
.marquee-item { font-size: .75rem !important; }
.products-tab { font-size: .75rem !important; color: var(--nsb-text-subtle); min-height: var(--nsb-tap); }
.product-card__badge { font-size: .75rem !important; letter-spacing: .1em !important; padding: .25rem .6rem !important; }
.product-card__cta { font-size: .75rem !important; letter-spacing: .16em !important; min-height: var(--nsb-tap); }
.product-card__shade { font-size: .78rem !important; }
.trust-label { font-size: .75rem !important; color: var(--nsb-text-muted) !important; }
.testimonial-author,
.testimonial-location { font-size: .78rem !important; }
.testimonial-location { color: var(--nsb-text-subtle) !important; }
.footer-col h5 { font-size: .78rem !important; letter-spacing: .2em !important; }
.footer-brand p,
.footer-col a,
.footer-contact-item,
.footer-contact-item a { color: var(--nsb-text-muted) !important; }
.footer-col a:hover,
.footer-contact-item a:hover { color: var(--clr-gold) !important; }
.footer-col li { margin-bottom: .35rem; }
.footer-col li a { display: inline-block; padding: .2rem 0; }
.footer-copy { font-size: .78rem !important; color: var(--nsb-text-subtle) !important; }
.footer-legal { gap: .5rem 1.25rem; flex-wrap: wrap; }
.footer-legal a { font-size: .75rem !important; color: var(--nsb-text-subtle) !important; display: inline-block; padding: .35rem 0; }
.footer-legal a:hover { color: var(--clr-gold) !important; }
.footer-social a { min-width: var(--nsb-tap); min-height: var(--nsb-tap); }
.nsb-breadcrumb,
.nsb-breadcrumb a,
.woocommerce-breadcrumb,
.woocommerce-breadcrumb a { font-size: .75rem !important; color: var(--nsb-text-subtle) !important; }
.nsb-breadcrumb a:hover { color: var(--clr-gold) !important; }
.nsb-product-cat { font-size: .75rem !important; }
.nsb-product-brand { color: var(--nsb-text-subtle) !important; }
.nsb-rating span { font-size: .8rem !important; color: var(--nsb-text-subtle) !important; }
.nsb-guarantee span { font-size: .75rem !important; letter-spacing: .08em !important; color: var(--nsb-text-muted) !important; }
.nsb-accordion-trigger { font-size: .8rem !important; min-height: var(--nsb-tap); }
.nsb-add-btn { font-size: .78rem !important; }
.nsb-campaign-label,
.nsb-campaign-eyebrow { font-size: .75rem !important; }
.nsb-field label { font-size: .75rem !important; color: var(--nsb-text-muted) !important; }
.nsb-field input::placeholder,
.nsb-field textarea::placeholder { color: rgba(247,242,237,.55) !important; }
.contact-form-wrap > p { color: var(--nsb-text-subtle) !important; }
.site-header__bar { font-size: .75rem !important; }
.newsletter-section > .container > p { color: var(--nsb-text-muted) !important; }
.woocommerce form .form-row label,
.woocommerce label { font-size: max(.75rem, 1em); }

/* =========================================================================
   H. ELEMENTOR PAGES (About 55, Contact 62, Collaborate 242)
   The Elementor kit sets Roboto / Roboto Slab; map them to the brand fonts.
   (inc/phase2.php also stops Elementor printing the Roboto Google Fonts link.)
   ========================================================================= */
body[class*="elementor-kit-"] {
  --e-global-typography-primary-font-family: 'Cormorant Garamond';
  --e-global-typography-secondary-font-family: 'Cormorant Garamond';
  --e-global-typography-text-font-family: 'Jost';
  --e-global-typography-accent-font-family: 'Jost';
}
.elementor-page .elementor {
  font-family: var(--ff-sans);
}
.elementor-page .elementor :is(p, li, label, input, textarea, select, button, blockquote,
  .e-paragraph-base, .elementor-widget-text-editor, .elementor-button, .elementor-icon-list-text) {
  font-family: var(--ff-sans) !important;
}
.elementor-page .elementor :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title, .e-heading-base) {
  font-family: var(--ff-serif) !important;
}
/* Collaborate page title used Georgia + grey (#7A7A7A, low contrast) */
.elementor-page .elementor-widget-heading .elementor-heading-title[class] {
  letter-spacing: .12em;
}
.page-id-242 .elementor-widget-heading .elementor-heading-title {
  color: var(--clr-gold) !important;
  font-weight: var(--fw-regular) !important;
  font-size: clamp(1.6rem, 5vw, 2.6rem) !important;
  letter-spacing: .14em !important;
  text-align: center;
}
/* Contact page HTML widget */
body .nsv-contact-page,
body .nsv-contact-page .nsv-contact-value,
body .nsv-contact-page .nsv-contact-link { font-family: var(--ff-sans) !important; }
body .nsv-contact-page .nsv-contact-title { font-family: var(--ff-serif) !important; font-size: 1.35rem !important; }
body .nsv-contact-page .nsv-contact-value,
body .nsv-contact-page .nsv-contact-link { font-size: .95rem !important; color: var(--nsb-text-muted) !important; }
body .nsv-contact-page .nsv-contact-link:hover { color: var(--clr-gold) !important; }

/* Collaborate: side padding for intro + application form on phones */
@media (max-width: 768px) {
  .page-id-242 .elementor > .e-con > .e-con-inner,
  .page-id-242 .elementor > .e-con.e-con-full,
  .page-id-242 .elementor > .elementor-section > .elementor-container {
    padding-left: max(1rem, env(safe-area-inset-left)) !important;
    padding-right: max(1rem, env(safe-area-inset-right)) !important;
  }
  .page-id-242 .nsb-ioms-application form {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  .page-id-242 .nsb-ioms-application form button.nsb-ioms-submit,
  .page-id-242 .nsb-ioms-application form input[type="submit"].nsb-ioms-submit {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* =========================================================================
   I. MEDIA SIZING (pairs with width/height attributes in templates)
   ========================================================================= */
.nsb-gallery-main img,
.nsb-gallery-thumb img,
.product-card__img { height: auto; }
.product-card__media .product-card__img { height: 100%; }
.nsb-gallery-main img { aspect-ratio: auto; max-width: 100%; }

/* Reduced motion: stop the marquee + hero transitions */
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none !important; }
  .hero-slide, .hero-slide * { transition: none !important; }
}

/* ---- Campaign offer cards (product page + Offers page) ---- */
.nsb-campaign-price > span { font-size: .75rem !important; }
.nsb-campaign-price del { color: rgba(247,242,237,.58) !important; }
.nsb-campaign-shade span { font-size: .75rem !important; line-height: 1.35; }
.nsb-campaign-selection-status { font-size: .82rem !important; color: var(--nsb-text-muted) !important; }
.nsb-campaign-add-btn { font-size: .78rem !important; min-height: 48px; }
.nsb-campaign-add-btn:disabled { color: rgba(247,242,237,.55) !important; }
.nsb-campaign-saving { font-size: .78rem !important; }
.nsb-campaign-collection-name { font-size: .75rem !important; }
.nsb-offers-jump__item span { font-size: .75rem !important; color: var(--nsb-text-muted) !important; }
.nsb-offers-single__add { font-size: .75rem !important; }
.nsb-campaign-price > span { color: var(--nsb-text-muted) !important; }
.offer-banner .eyebrow { color: rgba(247,242,237,.88) !important; }

/* ---- Cart: coupon button size + bundle heading on phones ---- */
.woocommerce-cart-form table.cart td.actions .coupon button,
.woocommerce-cart-form table.cart td.actions button[name="update_cart"] {
  font-size: .78rem !important;
  min-height: 48px !important;
  height: auto !important;
}
@media (max-width: 768px) {
  .woocommerce-cart-form .nsb-cart-campaign-bundle {
    flex-direction: column;
    align-items: stretch;
    gap: .35rem;
    padding: 1rem 1rem 1rem 1.25rem;
  }
  .woocommerce-cart-form .nsb-cart-campaign-bundle__top {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .25rem 1rem;
    text-align: left;
  }
  .woocommerce-cart-form .nsb-cart-campaign-bundle__offer { font-size: 1.3rem; text-align: left; }
}

/* ---- My Account: remember-me + show-password tap targets ---- */
.woocommerce-account .woocommerce form .form-row label.woocommerce-form-login__rememberme {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: .9rem !important;
}
.woocommerce form .password-input .show-password-input {
  top: 50% !important;
  right: 2px !important;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.woocommerce form .password-input .show-password-input::after { margin: 0 !important; }

/* Final review fixes (2026-10-08) */
/* Long campaign button labels wrap to 2 lines on phones — give them room. */
.nsb-campaign-add-btn {
  height: auto;
  min-height: 52px;
  padding: .8rem 1rem;
  line-height: 1.4;
}
/* Mobile cart: the campaign heading row had an empty band above its card. */
@media (max-width: 768px) {
  .woocommerce-cart table.cart tr.nsb-campaign-table-row,
  .woocommerce table.shop_table_responsive tr.nsb-campaign-table-row {
    padding: 0 !important;
    border-top: 0 !important;
  }
  .woocommerce-cart table.cart tr.nsb-campaign-table-row td {
    border-top: 0 !important;
    padding: 1rem !important;
  }
}
/* Mobile: tighter gap between the page hero and the content (was 80px + heading margin). */
@media (max-width: 768px) {
  .page-body { padding-top: 3rem; }
  .woocommerce-account #customer_login .col-1 > h2:first-child,
  .woocommerce-account #customer_login .col-2 > h2:first-child { margin-top: 0; }
}
/* Product reviews: replace WooCommerce's light-grey review box. */
.woocommerce .nsb-product-reviews #reviews #comments ol.commentlist li .comment-text {
  border: 1px solid rgba(201,165,90,.22);
  border-radius: 0;
  background: var(--clr-dark-2);
  padding: 1rem 1.1rem .4rem;
  margin: 0;
}
.woocommerce .nsb-product-reviews #reviews #comments ol.commentlist li img.avatar {
  position: static;
  width: 44px;
  height: 44px;
  background: rgba(201,165,90,.12);
  border: 1px solid rgba(201,165,90,.25);
  padding: 0;
}

/* =========================================================
   Homepage testimonials — "Read More Stories" button (2026-10-08)
   The button sat at the container's left edge; centre it under the
   full-bleed carousel. Phones: full width with the container's side gutters,
   and the cards snap to the same gutters so card and button line up.
   ========================================================= */
.testimonials-section .testimonials-more {
  display: flex;
  justify-content: center;
  margin-top: 1.5rem;
  text-align: center;
}
.testimonials-section .testimonials-more .btn {
  justify-content: center;
  min-height: 48px;
  margin: 0;
}
@media (max-width: 600px) {
  /* Same gutter as .container on phones (style.css: clamp(.8rem, 4vw, 1rem)) */
  .testimonials-section { --nsb-gutter: clamp(.8rem, 4vw, 1rem); }
  .testimonials-section .testimonials-slider {
    padding-left: var(--nsb-gutter);
    padding-right: var(--nsb-gutter);
    scroll-padding-inline: var(--nsb-gutter);
    gap: 1rem;
  }
  .testimonials-section .testimonial-card {
    flex: 0 0 min(420px, calc(100vw - 2 * var(--nsb-gutter)));
    padding: 2rem 1.5rem;
  }
}
@media (max-width: 480px) {
  /* Card and button share the same left/right edges */
  .testimonials-section .testimonial-card { flex-basis: calc(100vw - 2 * var(--nsb-gutter)); }
  .testimonials-section .testimonials-more .btn { width: 100%; max-width: none; }
}
/* /testimonials/ "Write a Review" CTA — same rule as the homepage button */
.nsb-share-cta .btn { justify-content: center; }
@media (max-width: 480px) {
  .nsb-share-cta .btn { width: 100%; }
}
