/*
Theme Name: Newmarket Dark
Theme URI: https://example.com
Description: Dark Art Nouveau child theme for Newmarket Tattoo Convention, built on Blocksy.
Author: Your Name
Template: blocksy
Version: 1.1.1
Text Domain: newmarket-dark
*/

:root {
  --nm-bg: #15100c;
  --nm-bg-deep: #090705;
  --nm-bg-soft: #201811;
  --nm-panel: #241a12;
  --nm-panel-deep: #100c08;
  --nm-green: #4d5b3e;
  --nm-green-soft: #7f8d69;
  --nm-gold: #d99a45;
  --nm-gold-soft: #f1bd65;
  --nm-cream: #f3e1bd;
  --nm-muted: #c8b48e;
  --nm-line: rgba(217, 154, 69, .45);
  --nm-line-soft: rgba(217, 154, 69, .22);
  --nm-shadow: 0 18px 50px rgba(0, 0, 0, .45);
  --nm-serif: Georgia, 'Times New Roman', serif;
  --nm-sans: Arial, Helvetica, sans-serif;
}

html {
  scroll-behavior: smooth;
}

body,
#main-container,
.site-main,
.ct-container,
.ct-container-full,
[data-vertical-spacing*='top'],
[data-vertical-spacing*='bottom'] {
  background: transparent !important;
}

body {
  color: var(--nm-cream);
  background:
    radial-gradient(circle at 20% 0%, rgba(217, 154, 69, .10), transparent 28rem),
    radial-gradient(circle at 85% 15%, rgba(77, 91, 62, .30), transparent 30rem),
    linear-gradient(135deg, #0f0b08 0%, var(--nm-bg) 48%, #0a0806 100%) !important;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .28;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 42px 42px;
  mix-blend-mode: overlay;
  z-index: 0;
}

body > * {
  position: relative;
  z-index: 1;
}

/* Blocksy header/footer dark treatment */
#header,
.ct-header,
[data-header*='type-1'] .ct-header [data-row*='middle'],
[data-header*='type-1'] .ct-header [data-row*='top'],
[data-header*='type-1'] .ct-header [data-row*='bottom'] {
  background: rgba(15, 11, 8, .92) !important;
  border-bottom: 1px solid var(--nm-line-soft);
  backdrop-filter: blur(14px);
}

.site-title,
.site-title a,
.ct-header a,
.ct-header [data-menu] > ul > li > a,
.ct-header .ct-label,
.ct-header .ct-icon {
  color: var(--nm-cream) !important;
}

.site-title,
.site-title a {
  color: var(--nm-gold) !important;
  font-family: var(--nm-serif);
  font-weight: 800;
  letter-spacing: .06em;
  line-height: .95;
  text-transform: uppercase;
  text-shadow: 0 0 16px rgba(217,154,69,.22);
}

.ct-header [data-menu] > ul > li > a {
  font-family: var(--nm-serif);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ct-header a:hover,
.ct-header [data-menu] > ul > li > a:hover {
  color: var(--nm-gold-soft) !important;
}

.ct-footer,
[data-footer*='type-1'] .ct-footer [data-row] {
  background: rgba(9, 7, 5, .98) !important;
  border-top: 1px solid var(--nm-line-soft);
  color: var(--nm-muted) !important;
}

.ct-footer a,
.ct-footer p,
.ct-footer li {
  color: var(--nm-muted) !important;
}

/* General typography */
a {
  color: var(--nm-gold-soft);
}

a:hover,
a:focus {
  color: var(--nm-cream);
}

h1,
h2,
h3,
h4,
h5,
h6,
.entry-content h1,
.entry-content h2,
.entry-content h3 {
  color: var(--nm-gold);
  font-family: var(--nm-serif);
  font-weight: 500;
  letter-spacing: .045em;
  line-height: .95;
  text-transform: uppercase;
}

/* Front page shell */
.nm-child-home {
  color: var(--nm-cream);
  overflow: hidden;
  padding: 34px 0 60px;
}

.nm-shell {
  width: min(1480px, calc(100% - 32px));
  margin: 0 auto;
  border-left: 1px solid rgba(217,154,69,.28);
  border-right: 1px solid rgba(217,154,69,.28);
  min-height: 100vh;
  padding: 44px;
  position: relative;
}

.nm-shell::before,
.nm-shell::after {
  content: '';
  position: absolute;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: rgba(127, 141, 105, .45);
  pointer-events: none;
}

.nm-shell::before { left: 12px; }
.nm-shell::after { right: 12px; }

.nm-section-frame {
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0)),
    var(--nm-panel-deep);
  border: 1px solid var(--nm-line);
  box-shadow: inset 0 0 0 1px rgba(127,141,105,.16), var(--nm-shadow);
  position: relative;
}

.nm-section-frame::before,
.nm-section-frame::after {
  border: 1px solid rgba(127,141,105,.35);
  content: '';
  inset: 10px;
  pointer-events: none;
  position: absolute;
}

.nm-section-frame::after {
  inset: 18px;
  border-color: rgba(217,154,69,.12);
}

.nm-hero-section {
  display: grid;
  grid-template-columns: minmax(280px, 560px) 1fr;
  gap: clamp(28px, 5vw, 90px);
  align-items: center;
  min-height: 670px;
  overflow: hidden;
  padding: clamp(28px, 5vw, 72px);
}

.nm-hero-section > * {
  position: relative;
  z-index: 2;
}

.nm-hero-section::before {
  content: '';
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 26% 50%, rgba(217,154,69,.18), transparent 20rem),
    radial-gradient(circle at 75% 15%, rgba(77,91,62,.20), transparent 24rem);
  pointer-events: none;
}

.nm-poster-frame {
  background: rgba(217,154,69,.08);
  border: 1px solid rgba(217,154,69,.35);
  box-shadow: 0 0 45px rgba(217,154,69,.18), 0 26px 60px rgba(0,0,0,.5);
  margin: 0 auto;
  max-width: 530px;
  padding: 14px;
  transform: rotate(0deg);
}

.nm-poster-frame img {
  display: block;
  width: 100%;
}

.nm-eyebrow {
  color: var(--nm-gold-soft);
  font-family: var(--nm-serif);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .22em;
  margin: 0 0 .75rem;
  text-transform: uppercase;
}

.nm-hero-copy {
  max-width: 720px;
}

.nm-hero-copy h1 {
  font-size: clamp(2.5rem, 6vw, 5.8rem);
  margin: 0 0 1rem;
  text-shadow: 0 0 22px rgba(217,154,69,.16);
}

.nm-hero-meta {
  color: var(--nm-cream);
  display: grid;
  font-family: var(--nm-serif);
  font-size: clamp(1.2rem, 2.2vw, 2rem);
  gap: .2rem;
  letter-spacing: .12em;
  margin: 1.4rem 0;
  text-transform: uppercase;
}

.nm-hero-intro {
  color: var(--nm-muted);
  font-family: var(--nm-serif);
  font-size: 1.08rem;
  max-width: 620px;
}

.nm-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 2rem;
}

.nm-button,
.nm-button:visited,
.wp-block-button__link,
button,
input[type='submit'],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: transparent;
  border: 1px solid var(--nm-line);
  color: var(--nm-cream) !important;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--nm-serif);
  font-size: .9rem;
  font-weight: 800;
  justify-content: center;
  letter-spacing: .1em;
  line-height: 1;
  min-width: 170px;
  padding: 1rem 1.25rem;
  position: relative;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}

.nm-button:hover,
.wp-block-button__link:hover,
button:hover,
input[type='submit']:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  transform: translateY(-2px);
}

.nm-button-gold,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--nm-gold) !important;
  color: var(--nm-bg) !important;
}

.nm-button-green {
  background: var(--nm-green) !important;
  color: var(--nm-cream) !important;
}

.nm-button-outline {
  background: transparent !important;
  color: var(--nm-gold-soft) !important;
}

.nm-info-strip {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 32px;
  padding: 28px;
}

.nm-info-strip article {
  border-right: 1px solid rgba(217,154,69,.25);
  padding: 16px 28px;
}

.nm-info-strip article:last-child {
  border-right: 0;
}

.nm-info-strip strong,
.nm-info-strip span,
.nm-info-strip small {
  display: block;
}

.nm-info-strip strong {
  color: var(--nm-gold);
  font-family: var(--nm-serif);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nm-info-strip span {
  color: var(--nm-cream);
  font-weight: 700;
}

.nm-info-strip small {
  color: var(--nm-muted);
}

.nm-section-heading {
  align-items: end;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 58px 0 22px;
}

.nm-section-heading h2,
.nm-card h2,
.nm-newsletter h2 {
  font-size: clamp(2rem, 4vw, 3.2rem);
  margin: 0 0 1rem;
}

.nm-section-heading a,
.nm-link {
  font-family: var(--nm-serif);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nm-placeholder-products,
.woocommerce ul.products {
  display: grid !important;
  gap: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}

.woocommerce ul.products li.product,
.nm-placeholder-card {
  background: linear-gradient(180deg, rgba(217,154,69,.08), rgba(0,0,0,.08)), var(--nm-panel) !important;
  border: 1px solid var(--nm-line) !important;
  box-shadow: inset 0 0 0 1px rgba(127,141,105,.14);
  float: none !important;
  margin: 0 !important;
  padding: 18px !important;
  width: auto !important;
}

.woocommerce ul.products li.product a img {
  background: rgba(0,0,0,.18);
  margin: 0 0 1rem !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title,
.nm-placeholder-card h3 {
  color: var(--nm-cream) !important;
  font-family: var(--nm-serif);
  font-size: 1rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--nm-gold-soft) !important;
  font-weight: 700;
}

.woocommerce span.onsale {
  background: var(--nm-gold) !important;
  color: var(--nm-bg) !important;
  font-family: var(--nm-serif);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nm-placeholder-image {
  aspect-ratio: 1 / 1;
  background:
    radial-gradient(circle, rgba(217,154,69,.18), transparent 45%),
    linear-gradient(135deg, rgba(77,91,62,.5), rgba(0,0,0,.25));
  border: 1px solid rgba(217,154,69,.22);
  margin-bottom: 1rem;
}

.nm-placeholder-card p,
.nm-card p,
.nm-newsletter p {
  color: var(--nm-muted);
}

.nm-application-grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 42px;
}

.nm-card {
  padding: clamp(28px, 4vw, 46px);
}

.nm-card-wide {
  grid-column: 1 / -1;
}

.nm-newsletter {
  align-items: center;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  margin-top: 42px;
  padding: clamp(28px, 4vw, 46px);
}

.nm-newsletter p {
  max-width: 780px;
}

/* Dark WooCommerce pages outside the homepage */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-result-count,
.woocommerce-ordering,
.woocommerce .product_meta,
.woocommerce .woocommerce-tabs,
.entry-content p,
.entry-content li {
  color: var(--nm-muted) !important;
}

.woocommerce table.shop_table,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #payment,
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.entry-content input,
.entry-content textarea,
.entry-content select,
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select {
  background: rgba(0,0,0,.28) !important;
  border-color: var(--nm-line) !important;
  color: var(--nm-cream) !important;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: rgba(217,154,69,.22) !important;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: rgba(77,91,62,.35) !important;
  border-top-color: var(--nm-gold) !important;
  color: var(--nm-cream) !important;
}

.woocommerce div.product div.images img {
  border: 1px solid var(--nm-line);
}

@media (max-width: 1100px) {
  .nm-hero-section {
    grid-template-columns: 1fr;
  }

  .nm-hero-art {
    order: 2;
  }

  .nm-info-strip {
    grid-template-columns: repeat(2, 1fr);
  }

  .nm-info-strip article:nth-child(2) {
    border-right: 0;
  }

  .nm-placeholder-products,
  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .nm-child-home {
    padding-top: 0;
  }

  .nm-shell {
    width: 100%;
    border: 0;
    padding: 18px;
  }

  .nm-hero-section {
    min-height: auto;
    padding: 28px;
  }

  .nm-hero-copy h1 {
    font-size: clamp(2.4rem, 16vw, 4rem);
  }

  .nm-button {
    width: 100%;
  }

  .nm-info-strip,
  .nm-application-grid,
  .nm-placeholder-products,
  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

  .nm-info-strip article {
    border-right: 0;
    border-bottom: 1px solid rgba(217,154,69,.22);
  }

  .nm-info-strip article:last-child {
    border-bottom: 0;
  }

  .nm-section-heading,
  .nm-newsletter {
    align-items: flex-start;
    flex-direction: column;
  }
}
/* Hide Blocksy header search icon */
.ct-header [data-id="search"],
.ct-header .ct-search-trigger {
  display: none !important;
}
/* Mobile cropping fix */
@media (max-width: 720px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

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

  .nm-child-home {
    overflow: visible;
    padding-top: 0;
  }

  .nm-shell {
    width: 100%;
    max-width: 100%;
    padding: 14px;
    overflow: hidden;
  }

  .nm-hero-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 18px;
    overflow: visible;
  }

  .nm-hero-copy {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .nm-hero-copy h1 {
    font-size: clamp(2rem, 12vw, 3.2rem) !important;
    line-height: 0.95;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .nm-hero-meta {
    font-size: 1rem !important;
    line-height: 1.4;
    max-width: 100%;
  }

  .nm-hero-intro {
    font-size: 0.95rem !important;
    line-height: 1.55;
    max-width: 100%;
  }

  .nm-button-row {
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .nm-button,
  .nm-button:visited,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0.95rem 1rem;
    font-size: 0.82rem !important;
    white-space: normal;
  }

  .nm-poster-frame {
    max-width: 100%;
  }

  .nm-poster-frame img {
    max-width: 100%;
    height: auto;
  }
}
/* FINAL mobile menu layering fix */
@media (max-width: 999px) {
  /* Stop page content sitting above the mobile menu */
  #main-container,
  .site-main,
  .nm-child-home,
  .nm-shell,
  .nm-section-frame,
  .nm-hero-section {
    position: relative !important;
    z-index: 0 !important;
  }

  /* Keep header above the normal page */
  #header,
  .ct-header {
    position: relative !important;
    z-index: 100000 !important;
  }

  /* Force Blocksy off-canvas above everything */
  #offcanvas,
  .ct-panel,
  .ct-drawer-canvas,
  .ct-drawer-inner {
    position: fixed !important;
    z-index: 2147483647 !important;
  }

  /* Make the off-canvas panel visible and dark */
  #offcanvas,
  .ct-panel {
    background: rgba(9, 7, 5, 0.99) !important;
    color: var(--nm-cream) !important;
  }

  #offcanvas .ct-panel-inner,
  #offcanvas .ct-panel-content,
  .ct-panel .ct-panel-inner,
  .ct-panel .ct-panel-content {
    background: rgba(9, 7, 5, 0.99) !important;
    color: var(--nm-cream) !important;
    position: relative !important;
    z-index: 2147483647 !important;
    padding: 32px 28px !important;
  }

  /* Mobile menu itself */
  #offcanvas [data-id="mobile-menu"],
  .ct-panel [data-id="mobile-menu"],
  #offcanvas .mobile-menu,
  .ct-panel .mobile-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 2147483647 !important;
    width: 100% !important;
    background: transparent !important;
  }

  /* Menu list */
  #offcanvas [data-id="mobile-menu"] ul,
  .ct-panel [data-id="mobile-menu"] ul,
  #offcanvas .mobile-menu ul,
  .ct-panel .mobile-menu ul {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  /* Menu items */
  #offcanvas [data-id="mobile-menu"] li,
  .ct-panel [data-id="mobile-menu"] li,
  #offcanvas .mobile-menu li,
  .ct-panel .mobile-menu li {
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid rgba(217, 154, 69, 0.3) !important;
  }

  /* Menu links */
  #offcanvas [data-id="mobile-menu"] a,
  .ct-panel [data-id="mobile-menu"] a,
  #offcanvas .mobile-menu a,
  .ct-panel .mobile-menu a {
    display: block !important;
    width: 100% !important;
    padding: 18px 0 !important;
    color: var(--nm-cream) !important;
    background: transparent !important;
    font-family: var(--nm-serif) !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.12em !important;
    text-align: left !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
  }

  #offcanvas [data-id="mobile-menu"] a:hover,
  .ct-panel [data-id="mobile-menu"] a:hover,
  #offcanvas .mobile-menu a:hover,
  .ct-panel .mobile-menu a:hover {
    color: var(--nm-gold-soft) !important;
  }
}
/* Footer link hover styling */
.ct-footer a,
.ct-footer a:visited,
[data-footer] a,
[data-footer] a:visited {
  color: var(--nm-muted) !important;
  text-decoration: none;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.ct-footer a:hover,
.ct-footer a:focus,
[data-footer] a:hover,
[data-footer] a:focus {
  color: var(--nm-gold-soft) !important;
  text-decoration: underline;
  text-underline-offset: 4px;
}
/* Fix hero title breaking awkwardly on smaller screens */
@media (max-width: 720px) {
  .nm-hero-copy h1 {
    font-size: clamp(1.75rem, 9.5vw, 3rem) !important;
    line-height: 0.95 !important;
    letter-spacing: 0.035em !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }
}
/* =========================================================
   FINAL WooCommerce dark page override
   Applies Newmarket styling to Basket, Checkout, Account,
   Shop and Product pages.
   Paste at the very bottom of style.css.
   ========================================================= */

/* Force WooCommerce pages to use the main dark site background */
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.post-type-archive-product,
body.single-product {
  color: var(--nm-cream) !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(217, 154, 69, .10), transparent 28rem),
    radial-gradient(circle at 85% 15%, rgba(77, 91, 62, .30), transparent 30rem),
    linear-gradient(135deg, #0f0b08 0%, var(--nm-bg) 48%, #0a0806 100%) !important;
}

/* Remove the white Blocksy/WooCommerce content background */
body.woocommerce-page #main-container,
body.woocommerce-page .site-main,
body.woocommerce-page .ct-container,
body.woocommerce-page .ct-container-full,
body.woocommerce-page .content-area,
body.woocommerce-page article,
body.woocommerce-page .entry-content,
body.woocommerce-page .hero-section,
body.woocommerce-page [data-vertical-spacing],
body.woocommerce-page [data-structure],
body.woocommerce-page .ct-default-gallery,
body.woocommerce-cart #main-container,
body.woocommerce-cart .site-main,
body.woocommerce-cart .ct-container,
body.woocommerce-cart .ct-container-full,
body.woocommerce-cart .content-area,
body.woocommerce-cart article,
body.woocommerce-cart .entry-content,
body.woocommerce-cart [data-vertical-spacing],
body.woocommerce-checkout #main-container,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout .ct-container,
body.woocommerce-checkout .ct-container-full,
body.woocommerce-checkout .content-area,
body.woocommerce-checkout article,
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout [data-vertical-spacing],
body.woocommerce-account #main-container,
body.woocommerce-account .site-main,
body.woocommerce-account .ct-container,
body.woocommerce-account .ct-container-full,
body.woocommerce-account .content-area,
body.woocommerce-account article,
body.woocommerce-account .entry-content,
body.woocommerce-account [data-vertical-spacing] {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--nm-cream) !important;
}

/* Make WooCommerce page content feel like the Artists page */
body.woocommerce-page .site-main,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main,
body.post-type-archive-product .site-main,
body.single-product .site-main {
  padding-top: 60px !important;
  padding-bottom: 80px !important;
}

/* Limit WooCommerce content width to match inner pages */
body.woocommerce-page .ct-container,
body.woocommerce-cart .ct-container,
body.woocommerce-checkout .ct-container,
body.woocommerce-account .ct-container,
body.post-type-archive-product .ct-container,
body.single-product .ct-container {
  max-width: 1180px !important;
}

/* Page titles */
body.woocommerce-page .entry-title,
body.woocommerce-page .page-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .entry-title,
body.post-type-archive-product .page-title,
body.single-product .product_title {
  color: var(--nm-gold) !important;
  font-family: var(--nm-serif) !important;
  font-weight: 500 !important;
  letter-spacing: .045em !important;
  line-height: .95 !important;
  text-transform: uppercase !important;
}

/* Basket empty message and WooCommerce notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce .cart-empty {
  background: rgba(77, 91, 62, .35) !important;
  border: 1px solid var(--nm-line) !important;
  border-top: 3px solid var(--nm-gold) !important;
  color: var(--nm-cream) !important;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
  color: var(--nm-gold-soft) !important;
}

/* Basket, checkout, account and order panels */
.woocommerce table.shop_table,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #payment,
.woocommerce-checkout .woocommerce-checkout-review-order,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-order,
.woocommerce-customer-details,
.woocommerce-order-details,
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
  background: rgba(16, 12, 8, .86) !important;
  border: 1px solid var(--nm-line) !important;
  color: var(--nm-cream) !important;
}

/* Table text and borders */
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: rgba(217, 154, 69, .22) !important;
  color: var(--nm-cream) !important;
}

/* General WooCommerce text */
.woocommerce-page p,
.woocommerce-page li,
.woocommerce-page label,
.woocommerce-page span,
.woocommerce-page small,
.woocommerce-page strong,
.woocommerce-page .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-result-count,
.woocommerce-page .product_meta,
.woocommerce-page .woocommerce-tabs,
.woocommerce-page .woocommerce-Tabs-panel {
  color: var(--nm-muted) !important;
}

/* WooCommerce links */
.woocommerce-page a {
  color: var(--nm-gold-soft) !important;
}

.woocommerce-page a:hover,
.woocommerce-page a:focus {
  color: var(--nm-cream) !important;
}

/* WooCommerce buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce #payment #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-page .button {
  background: var(--nm-gold) !important;
  border: 1px solid var(--nm-gold) !important;
  border-radius: 0 !important;
  color: var(--nm-bg) !important;
  font-family: var(--nm-serif) !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  padding: 1rem 1.25rem !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #payment #place_order:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-page .button:hover {
  background: transparent !important;
  color: var(--nm-gold-soft) !important;
}

/* Checkout and account form fields */
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"],
.woocommerce-page textarea,
.woocommerce-page select {
  background: rgba(0, 0, 0, .32) !important;
  border: 1px solid var(--nm-line) !important;
  border-radius: 0 !important;
  color: var(--nm-cream) !important;
}

.woocommerce input.input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus,
.woocommerce-page input:focus,
.woocommerce-page textarea:focus,
.woocommerce-page select:focus {
  border-color: var(--nm-gold-soft) !important;
  outline: none !important;
}

/* Placeholder text */
.woocommerce input::placeholder,
.woocommerce textarea::placeholder {
  color: rgba(243, 225, 189, .55) !important;
}

/* Product grid on shop/archive pages */
.woocommerce ul.products {
  display: grid !important;
  gap: 22px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  margin-top: 30px !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
}

.woocommerce ul.products li.product {
  background:
    linear-gradient(180deg, rgba(217, 154, 69, .08), rgba(0, 0, 0, .08)),
    var(--nm-panel) !important;
  border: 1px solid var(--nm-line) !important;
  box-shadow: inset 0 0 0 1px rgba(127, 141, 105, .14), var(--nm-shadow) !important;
  float: none !important;
  margin: 0 !important;
  padding: 18px !important;
  text-align: center !important;
  width: auto !important;
}

.woocommerce ul.products li.product a img {
  background: rgba(0, 0, 0, .18) !important;
  border: 1px solid rgba(217, 154, 69, .22) !important;
  margin: 0 0 1rem !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: var(--nm-cream) !important;
  font-family: var(--nm-serif) !important;
  font-size: 1rem !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--nm-gold-soft) !important;
  font-weight: 700 !important;
}

/* Mobile WooCommerce layout */
@media (max-width: 900px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }

  .woocommerce ul.products li.product {
    padding: 16px !important;
  }

  .woocommerce div.product .product_title {
    font-size: 2rem !important;
  }

  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .woocommerce #payment #place_order,
  .woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
  }
}
