/*
Theme Name: North West Apparel
Theme URI: https://1212751.sites.yacdaddy.com
Author: YacDaddy (built by Ember)
Author URI: https://yacdaddy.com
Description: Custom gothic-punk one-page theme for North West Apparel. Red / black / silver, blackletter display type, WooCommerce-powered listings, and a collar-snake mini game.
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: northwest
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  /* Core palette */
  --nw-black:   #0a0a0b;
  --nw-ink:     #131317;
  --nw-panel:   #17171c;
  --nw-blood:   #7e0d0d;   /* deep oxblood */
  --nw-red:     #e10600;   /* aggressive accent */
  --nw-red-hot: #ff2b1f;
  --nw-silver:  #c7cbd2;
  --nw-steel:   #8a8f99;
  --nw-bone:    #efece4;   /* off-white paper */

  /* Metallic silver gradient (for text/rules) */
  --nw-chrome: linear-gradient(180deg,#ffffff 0%,#c7cbd2 38%,#6e727b 55%,#c7cbd2 72%,#f4f6fa 100%);

  /* Type */
  --nw-display: "Pirata One", "UnifrakturCook", serif;   /* blackletter */
  --nw-cond:    "Oswald", "Arial Narrow", sans-serif;     /* condensed punk */
  --nw-body:    ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;

  --nw-maxw: 1200px;
}

/* ============================================================
   BASE
   ============================================================ */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--nw-black);
  color: var(--nw-bone);
  font-family: var(--nw-body);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  /* subtle film-grain / paper noise */
  background-image:
    radial-gradient(circle at 20% 10%, rgba(126,13,13,.18), transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(126,13,13,.12), transparent 45%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--nw-red); text-decoration: none; }
a:hover { color: var(--nw-red-hot); }

.nw-wrap { width: 100%; max-width: var(--nw-maxw); margin: 0 auto; padding: 0 24px; }

h1,h2,h3 { font-family: var(--nw-display); font-weight: 400; line-height: .95; letter-spacing: .5px; }

/* Chrome/metallic text helper */
.nw-chrome {
  background: var(--nw-chrome);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  -webkit-text-stroke: 1px rgba(0,0,0,.35);
}

/* Section rhythm */
.nw-section { padding: 96px 0; position: relative; }
.nw-section__kicker {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 4px;
  font-size: 13px; color: var(--nw-red); font-weight: 600; margin: 0 0 10px;
}
.nw-section__title { font-size: clamp(40px, 7vw, 84px); margin: 0 0 28px; }

/* ============================================================
   BUTTONS
   ============================================================ */
.nw-btn {
  display: inline-block; font-family: var(--nw-cond); text-transform: uppercase;
  letter-spacing: 2px; font-weight: 700; font-size: 15px;
  padding: 15px 30px; border: 2px solid var(--nw-bone); color: var(--nw-bone);
  background: transparent; cursor: pointer; transition: .15s ease;
  clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
}
.nw-btn:hover { background: var(--nw-bone); color: var(--nw-black); transform: translateY(-2px); }
.nw-btn--blood { border-color: var(--nw-red); color: #fff; background: var(--nw-blood); }
.nw-btn--blood:hover { background: var(--nw-red); color: #fff; }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.nw-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(10,10,11,.82); backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(199,203,210,.15);
}
.nw-header__inner { display: flex; align-items: center; justify-content: space-between; height: 66px; }
.nw-brand { font-family: var(--nw-display); font-size: 26px; color: var(--nw-bone); letter-spacing: 1px; }
.nw-nav { display: flex; gap: 26px; align-items: center; }
.nw-nav a {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px;
  font-size: 14px; color: var(--nw-silver);
}
.nw-nav a:hover { color: #fff; }
.nw-cart { display: inline-flex; align-items: center; gap: 6px; color: var(--nw-bone); }
.nw-cart__count {
  background: var(--nw-red); color:#fff; font-family: var(--nw-cond); font-size: 12px;
  min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
}
@media (max-width: 760px){ .nw-nav a:not(.nw-cart){ display:none; } }
@media (max-width: 620px){ .nw-brand{ font-size: 20px; } }

/* ============================================================
   HERO
   ============================================================ */
.nw-hero {
  min-height: calc(100vh - 66px); display: flex; align-items: center;
  text-align: center; position: relative; overflow: hidden;
  border-bottom: 1px solid rgba(199,203,210,.12);
}
.nw-hero::after { /* vignette */
  content:""; position:absolute; inset:0; pointer-events:none; z-index: 2;
  box-shadow: inset 0 0 220px 60px rgba(0,0,0,.9);
}
.nw-hero__inner { position: relative; z-index: 3; width:100%; }

/* Scattered gear collage */
.nw-hero__scatter { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.nw-scatter {
  position: absolute; aspect-ratio: 1; object-fit: cover; display: block;
  border: 3px solid var(--nw-bone); box-shadow: 0 14px 34px rgba(0,0,0,.6);
  filter: contrast(1.05) saturate(.9) brightness(.9);
  transform: rotate(var(--rot, 0deg));
  animation: nw-float 7s ease-in-out infinite;
}
@keyframes nw-float {
  0%, 100% { transform: translateY(0) rotate(var(--rot, 0deg)); }
  50% { transform: translateY(-16px) rotate(calc(var(--rot, 0deg) + 2.5deg)); }
}
@media (prefers-reduced-motion: reduce) { .nw-scatter { animation: none; } }

/* Tablet: fewer, smaller pieces */
@media (max-width: 1100px) { .nw-scatter { width: 118px !important; } .nw-scatter:nth-child(n+9) { display: none; } }
@media (max-width: 820px)  { .nw-scatter { width: 102px !important; } .nw-scatter:nth-child(n+7) { display: none; } }

/* Mobile: keep a 6-piece collage, banded top & bottom so the title stays clear */
@media (max-width: 680px) {
  .nw-hero__scatter { display: block; }
  .nw-scatter { width: 80px !important; animation-duration: 6s; }
  .nw-scatter:nth-child(n+7) { display: none !important; }
  .nw-scatter:nth-child(1) { top: 7% !important; left: 3% !important; right: auto !important; bottom: auto !important; }
  .nw-scatter:nth-child(2) { top: 5% !important; right: 3% !important; left: auto !important; bottom: auto !important; }
  .nw-scatter:nth-child(3) { top: 14% !important; left: 38% !important; right: auto !important; bottom: auto !important; width: 68px !important; }
  .nw-scatter:nth-child(4) { bottom: 15% !important; right: 4% !important; top: auto !important; left: auto !important; }
  .nw-scatter:nth-child(5) { bottom: 7% !important; left: 4% !important; top: auto !important; right: auto !important; }
  .nw-scatter:nth-child(6) { bottom: 6% !important; right: 36% !important; top: auto !important; left: auto !important; width: 68px !important; }
}
.nw-hero__eyebrow {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 8px;
  font-size: 14px; color: var(--nw-red); margin: 0 0 18px;
}
.nw-hero__title { font-size: clamp(64px, 15vw, 200px); margin: 0; line-height: .82; }
.nw-hero__title span { display: block; }
.nw-hero__sub {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 3px;
  font-size: clamp(14px, 2vw, 20px); color: var(--nw-silver); margin: 22px 0 34px;
}
.nw-hero__cta { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* Dog-tag easter egg */
.nw-dogtag {
  position: absolute; right: 26px; bottom: 22px; z-index: 3;
  font-family: var(--nw-cond); letter-spacing: 3px; font-size: 12px; color: var(--nw-steel);
  border: 1px solid var(--nw-steel); padding: 5px 12px; border-radius: 20px;
  transform: rotate(-4deg); opacity: .7;
}

/* ============================================================
   MARQUEE
   ============================================================ */
.nw-marquee {
  display: flex; overflow: hidden; background: var(--nw-red); color: var(--nw-black);
  border-top: 2px solid #000; border-bottom: 2px solid #000; padding: 10px 0;
}
.nw-marquee__group {
  flex-shrink: 0; min-width: 100%; display: flex; align-items: center; white-space: nowrap;
  animation: nw-scroll 30s linear infinite;
}
.nw-marquee:hover .nw-marquee__group { animation-play-state: paused; }
.nw-marquee span {
  font-family: var(--nw-display); font-size: 22px; padding: 0 24px; text-transform: uppercase;
}
@keyframes nw-scroll { from { transform: translateX(0); } to { transform: translateX(-100%); } }

/* ============================================================
   ABOUT
   ============================================================ */
.nw-about { background: var(--nw-ink); }
.nw-about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.nw-about p { color: var(--nw-silver); font-size: 18px; }
.nw-about__art { position: relative; padding-bottom: 24px; }
.nw-about__photo { display: block; border: 1px solid rgba(199,203,210,.15); }
.nw-about__photo--main {
  width: 84%; aspect-ratio: 4/5; object-fit: cover; object-position: center 22%;
  filter: grayscale(.15) contrast(1.05);
}
.nw-about__photo--accent {
  position: absolute; right: 0; bottom: 0; width: 46%; aspect-ratio: 1; object-fit: cover;
  border: 3px solid var(--nw-black); box-shadow: 0 12px 34px rgba(0,0,0,.55);
  transform: rotate(3deg);
}
@media (max-width: 820px){ .nw-about__grid{ grid-template-columns: 1fr; } }

/* ============================================================
   LISTINGS
   ============================================================ */
.nw-listings__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.nw-card {
  background: var(--nw-panel); border: 1px solid rgba(199,203,210,.14);
  transition: .18s ease; position: relative;
}
.nw-card:hover { border-color: var(--nw-red); transform: translateY(-4px); }
.nw-card__img { aspect-ratio: 1; background: #1d1d23; overflow: hidden; }
.nw-card__img img { width:100%; height:100%; object-fit: cover; }
.nw-card__body { padding: 16px; }
.nw-card__title { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing:1px; font-size: 16px; margin: 0 0 6px; color:#fff; }
.nw-card__price { font-family: var(--nw-cond); color: var(--nw-red); font-size: 18px; }
.nw-empty {
  grid-column: 1/-1; text-align:center; padding: 60px 20px; color: var(--nw-steel);
  border: 1px dashed rgba(199,203,210,.2); font-family: var(--nw-cond); letter-spacing: 2px; text-transform: uppercase;
}
@media (max-width: 900px){ .nw-listings__grid{ grid-template-columns: repeat(2,1fr); } }

/* SOLD / scarcity */
.nw-vault { background: var(--nw-ink); }
.nw-card__img { position: relative; }
.nw-card--sold .nw-card__img img { filter: grayscale(1) contrast(.9) brightness(.68); }
.nw-card--sold:hover { border-color: var(--nw-steel); }
.nw-card--sold .nw-card__price { color: var(--nw-steel); text-decoration: line-through; }
.nw-card__sold {
  position: absolute; top: 14px; left: 0; z-index: 2;
  background: var(--nw-red); color: #fff; font-family: var(--nw-cond); text-transform: uppercase;
  letter-spacing: 3px; font-weight: 700; font-size: 13px; padding: 6px 16px;
  box-shadow: 0 6px 16px rgba(0,0,0,.5);
  clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
}

/* WooCommerce loop: sold pieces */
.woocommerce ul.products li.product.outofstock { position: relative; }
.woocommerce ul.products li.product.outofstock a img { filter: grayscale(1) contrast(.9) brightness(.68); }
.woocommerce ul.products li.product.outofstock::after {
  content: "Sold"; position: absolute; top: 12px; left: 0; z-index: 3;
  background: var(--nw-red); color: #fff; font-family: var(--nw-cond); text-transform: uppercase;
  letter-spacing: 3px; font-weight: 700; font-size: 12px; padding: 6px 16px;
  clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
}
.woocommerce .stock.out-of-stock {
  color: var(--nw-red); font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; font-weight: 700;
}
/* Single product: sold */
.woocommerce div.product.outofstock .woocommerce-product-gallery { position: relative; }
.woocommerce div.product.outofstock .woocommerce-product-gallery__wrapper img { filter: grayscale(1) contrast(.92) brightness(.72); }
.woocommerce div.product.outofstock .woocommerce-product-gallery::after {
  content: "Sold - gone forever"; position: absolute; top: 18px; left: 0; z-index: 3;
  background: var(--nw-red); color: #fff; font-family: var(--nw-cond); text-transform: uppercase;
  letter-spacing: 2px; font-weight: 700; font-size: 13px; padding: 8px 18px;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}

/* ============================================================
   FEED / REELS WALL
   ============================================================ */
.nw-feed { background: var(--nw-black); text-align: center; }
.nw-feed__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.nw-reel {
  display: block; text-align: left; background: var(--nw-panel);
  border: 1px solid rgba(199,203,210,.14); transition: .18s ease;
}
.nw-reel:hover { border-color: var(--nw-red); transform: translateY(-4px); }
.nw-reel__thumb { position: relative; display: block; aspect-ratio: 1; overflow: hidden; }
.nw-reel__thumb img { width: 100%; height: 100%; object-fit: cover; }
.nw-reel__play {
  position: absolute; inset: 0; display: grid; place-items: center;
  color: #fff; font-size: 34px; text-shadow: 0 2px 14px rgba(0,0,0,.8); opacity: .92; transition: .15s ease;
}
.nw-reel:hover .nw-reel__play { transform: scale(1.15); color: var(--nw-red); }
.nw-reel__cap {
  padding: 12px 14px; color: var(--nw-silver); font-size: 13px; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
@media (max-width: 900px){ .nw-feed__grid { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   CUSTOM REQUEST
   ============================================================ */
.nw-custom { background: var(--nw-ink); text-align:center; }
.nw-form { max-width: 620px; margin: 0 auto; display: grid; gap: 16px; text-align: left; }
.nw-form label { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing:2px; font-size:13px; color: var(--nw-silver); }
.nw-form input, .nw-form textarea {
  width:100%; padding: 14px; background: var(--nw-black); border: 1px solid var(--nw-steel);
  color: var(--nw-bone); font-family: var(--nw-body); font-size: 16px;
}
.nw-form input:focus, .nw-form textarea:focus { outline: none; border-color: var(--nw-red); }
.nw-cursed-btn {
  margin-top: 10px; background: transparent; border: 1px solid var(--nw-steel); color: var(--nw-silver);
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; font-size: 12px;
  padding: 9px 16px; cursor: pointer; transition: .15s ease;
}
.nw-cursed-btn:hover { border-color: var(--nw-red); color: #fff; }

/* ============================================================
   CUSTOM SPIKE CURSOR (desktop pointers only)
   ============================================================ */
@media (hover: hover) and (pointer: fine) {
  body {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M2 2 L17 9 L10 10 L9 17 Z' fill='%23d7dbe2' stroke='%23303338' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2, auto;
  }
  a, button, .nw-btn, .nw-card, .nw-cursed-btn, [data-nw-game], [data-nw-game-close],
  [data-nw-game-restart], #nw-reward-code, .woocommerce a.button, .woocommerce button.button,
  select, label {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M2 2 L17 9 L10 10 L9 17 Z' fill='%23e10600' stroke='%23330000' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2, pointer;
  }
  input[type="text"], input[type="email"], input[type="tel"], input[type="search"],
  input[type="number"], input[type="password"], textarea { cursor: text; }
}

/* ============================================================
   404 - roast page
   ============================================================ */
.nw-404 { min-height: 70vh; display: grid; place-items: center; text-align: center; }
.nw-404__title { font-size: clamp(46px, 12vw, 140px); margin: 8px 0 18px; line-height: .9; }
.nw-404__sub { color: var(--nw-silver); max-width: 500px; margin: 0 auto 32px; font-size: 18px; }
.nw-404__cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   GAME
   ============================================================ */
.nw-game { background: var(--nw-black); text-align:center; border-top: 1px solid rgba(199,203,210,.12); }
.nw-game__stage {
  max-width: 460px; margin: 24px auto 0; background: #050506;
  border: 2px solid var(--nw-red); position: relative;
}
#nw-snake { width: 100%; display: block; image-rendering: pixelated; }
.nw-game__hud { font-family: var(--nw-cond); letter-spacing: 2px; color: var(--nw-silver); margin-top: 14px; text-transform: uppercase; }
.nw-game-launch { font-size: 16px; cursor: pointer; }
.nw-game-code { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; font-size: 13px; color: var(--nw-steel); margin: 0 0 26px; }

/* Game pop-up modal */
.nw-modal[hidden] { display: none; }
.nw-modal {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.nw-modal__backdrop { position: absolute; inset: 0; background: rgba(5,5,6,.86); backdrop-filter: blur(5px); }
.nw-modal__card {
  position: relative; z-index: 1; width: 100%; max-width: 500px; text-align: center;
  background: var(--nw-ink); border: 1px solid var(--nw-red); padding: 30px 24px 24px;
  box-shadow: 0 30px 90px rgba(0,0,0,.65); max-height: 94vh; overflow: auto;
}
.nw-modal__close {
  position: absolute; top: 8px; right: 12px; background: transparent; border: 0;
  color: var(--nw-silver); font-size: 30px; line-height: 1; cursor: pointer; padding: 4px 8px;
}
.nw-modal__close:hover { color: var(--nw-red); }
.nw-modal__title { font-size: clamp(34px, 6vw, 52px); margin: 6px 0 8px; }
.nw-modal__sub { color: var(--nw-silver); max-width: 420px; margin: 0 auto 18px; font-size: 15px; }

/* Game-over panel (overlays the stage) */
.nw-gameover[hidden] { display: none; }
.nw-gameover {
  position: absolute; inset: 0; background: rgba(5,5,6,.94);
  display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 16px;
}
.nw-gameover__dead { font-family: var(--nw-display); font-size: clamp(30px,7vw,40px); margin: 0; }
.nw-gameover__score { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; color: var(--nw-silver); margin: 2px 0 16px; }
.nw-gameover__cta { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; font-size: 12px; color: var(--nw-red); margin: 0 0 10px; }
.nw-gameover__products { display: flex; gap: 10px; justify-content: center; margin-bottom: 18px; }
.nw-gameover__product { width: 82px; text-align: center; }
.nw-gameover__product img { width: 82px; height: 82px; object-fit: cover; border: 1px solid rgba(199,203,210,.2); }
.nw-gameover__product:hover img { border-color: var(--nw-red); }
.nw-gameover__name { display: block; font-family: var(--nw-cond); text-transform: uppercase; font-size: 9px; letter-spacing: .5px; color: #fff; margin-top: 5px; line-height: 1.2; }
.nw-gameover__price { display: block; font-family: var(--nw-cond); font-size: 11px; color: var(--nw-red); }
.nw-gameover__price del { color: var(--nw-steel); font-size: 10px; }
.nw-gameover .nw-btn { margin-top: 2px; }

/* Snake reward (discount code) */
.nw-gameover__nudge { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; font-size: 12px; color: var(--nw-silver); margin: 0 0 14px; }
.nw-gameover__nudge strong { color: var(--nw-red); }
.nw-reward[hidden] { display: none; }
.nw-reward { margin: 2px 0 16px; }
.nw-reward__label { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; font-size: 12px; color: var(--nw-silver); margin: 0 0 8px; }
.nw-reward__desc { color: var(--nw-red); }
.nw-reward__code {
  font-family: var(--nw-display); font-size: 28px; letter-spacing: 3px; color: var(--nw-bone);
  background: rgba(126,13,13,.35); border: 2px dashed var(--nw-red); padding: 6px 22px; cursor: pointer; transition: .15s ease;
}
.nw-reward__code:hover { background: var(--nw-blood); color: #fff; }
.nw-reward__hint { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; font-size: 10px; color: var(--nw-steel); margin: 6px 0 0; }

/* ============================================================
   FOOTER
   ============================================================ */
.nw-footer { background: var(--nw-ink); border-top: 1px solid rgba(199,203,210,.15); padding: 60px 0 40px; }
.nw-footer-feed { text-align: center; padding-bottom: 40px; margin-bottom: 44px; border-bottom: 1px solid rgba(199,203,210,.12); }
.nw-footer-feed span { display: block; font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 4px; color: var(--nw-steel); font-size: 12px; margin-bottom: 10px; }
.nw-footer-feed a { font-family: var(--nw-display); font-size: clamp(26px, 4vw, 38px); color: var(--nw-bone); }
.nw-footer-feed a:hover { color: var(--nw-red); }
.nw-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; }
.nw-footer__brand { font-family: var(--nw-display); font-size: 34px; color: var(--nw-bone); }
.nw-footer h4 { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing:2px; color: var(--nw-red); font-size: 14px; margin: 0 0 14px; }
.nw-footer ul { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.nw-footer a { color: var(--nw-silver); font-family: var(--nw-cond); letter-spacing:1px; text-transform: uppercase; font-size: 14px; }
.nw-footer__legal { margin-top: 40px; text-align:center; color: var(--nw-steel); font-size: 13px; }
.nw-footer__legal a { color: var(--nw-silver); }
.nw-footer__legal a:hover { color: var(--nw-red); }
@media (max-width: 820px){ .nw-footer__grid{ grid-template-columns: 1fr; } }

/* ============================================================
   WOOCOMMERCE - shop archive, single product, related, cart notices
   Re-skins WooCommerce defaults to the gothic system above.
   ============================================================ */

/* Constrain + pad WooCommerce content (default WC wrappers run edge-to-edge) */
.woocommerce #primary.content-area,
.woocommerce-page #primary.content-area {
  max-width: var(--nw-maxw);
  margin: 0 auto;
  padding: 46px 24px 90px;
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px;
  font-size: 12px; color: var(--nw-steel); margin-bottom: 22px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--nw-silver); }

/* Shop header: title, result count, ordering */
.woocommerce .woocommerce-products-header__title,
.woocommerce-page h1.entry-title {
  font-family: var(--nw-display); font-weight: 400; color: var(--nw-bone);
  font-size: clamp(40px, 6vw, 76px); line-height: .95; margin: 0 0 10px;
}
.woocommerce .woocommerce-result-count {
  color: var(--nw-steel); font-family: var(--nw-cond); letter-spacing: 1px;
  text-transform: uppercase; font-size: 13px;
}
.woocommerce .woocommerce-ordering select {
  background: var(--nw-panel); color: var(--nw-bone); border: 1px solid var(--nw-steel);
  font-family: var(--nw-cond); padding: 9px 12px;
}

/* ---- Product grid (archive + related + upsells) ---- */
.woocommerce ul.products {
  display: grid !important; gap: 22px; margin: 26px 0 40px !important; padding: 0; list-style: none;
}
/* WooCommerce adds clearfix ::before/::after that become stray grid items - remove them */
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.woocommerce ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important; padding: 0 0 18px;
  background: var(--nw-panel); border: 1px solid rgba(199,203,210,.14);
  transition: .18s ease; position: relative; text-align: left;
}
.woocommerce ul.products li.product:hover { border-color: var(--nw-red); transform: translateY(-4px); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img,
.woocommerce ul.products li.product a img {
  margin: 0 0 14px; aspect-ratio: 1; object-fit: cover; width: 100%;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px;
  font-size: 15px; color: #fff; padding: 0 16px; line-height: 1.25; font-weight: 600;
}
.woocommerce ul.products li.product .price {
  color: var(--nw-red) !important; font-family: var(--nw-cond); font-size: 17px;
  padding: 6px 16px 0; display: block;
}
.woocommerce ul.products li.product .price del { color: var(--nw-steel); opacity: .65; font-size: 14px; margin-right: 6px; font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* Buttons (loop add-to-cart + generic) */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce ul.products li.product .button {
  background: var(--nw-blood); color: #fff; border: 1px solid var(--nw-red); border-radius: 0;
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; font-weight: 700;
  font-size: 13px; padding: 11px 20px; margin-top: 12px; margin-left: 16px;
  clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%); transition: .15s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce ul.products li.product .button:hover {
  background: var(--nw-red); color: #fff;
}
/* Primary (.alt) buttons - WooCommerce colors these with its purple accent; override */
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit.alt, .woocommerce .single_add_to_cart_button.button {
  background: var(--nw-blood); color: #fff; border: 1px solid var(--nw-red);
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover, .woocommerce .single_add_to_cart_button.button:hover {
  background: var(--nw-red); color: #fff;
}
.woocommerce ul.products li.product .added_to_cart {
  display: inline-block; margin: 8px 0 0 16px; font-family: var(--nw-cond);
  text-transform: uppercase; letter-spacing: 1px; font-size: 12px; color: var(--nw-silver);
}

/* Sale badge */
.woocommerce span.onsale {
  background: var(--nw-red); color: #fff; font-family: var(--nw-cond); text-transform: uppercase;
  letter-spacing: 1px; font-weight: 700; border-radius: 0; min-height: auto; min-width: auto;
  line-height: 1; padding: 6px 12px; top: 8px; left: 8px; right: auto; margin: 0;
  clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
}

/* ---- Single product ---- */
.woocommerce div.product { display: grid !important; grid-template-columns: 1fr 1fr; gap: 48px; }
.woocommerce div.product .woocommerce-product-gallery { width: 100% !important; margin: 0 !important; float: none !important; }
.woocommerce div.product .summary { width: 100% !important; margin: 0 !important; float: none !important; }
.woocommerce div.product .product_title {
  font-family: var(--nw-display); font-weight: 400; color: var(--nw-bone);
  font-size: clamp(30px, 3.6vw, 52px); line-height: 1; letter-spacing: .5px; margin: 0 0 14px;
}
.woocommerce div.product p.price, .woocommerce div.product span.price {
  color: var(--nw-red); font-family: var(--nw-cond); font-size: 26px; font-weight: 600;
}
.woocommerce div.product p.price del, .woocommerce div.product span.price del { color: var(--nw-steel); font-size: 18px; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce div.product .stock {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px;
  font-size: 13px; color: var(--nw-silver);
}
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--nw-silver); }
.woocommerce .quantity input.qty {
  background: var(--nw-black); border: 1px solid var(--nw-steel); color: var(--nw-bone);
  padding: 12px 8px; width: 68px; font-family: var(--nw-cond); font-size: 16px;
}
.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
  font-size: 15px; padding: 15px 30px; margin-left: 0;
}
.woocommerce div.product .product_meta {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; font-size: 13px;
  color: var(--nw-steel); border-top: 1px solid rgba(199,203,210,.14); padding-top: 16px; margin-top: 22px;
}
.woocommerce div.product .product_meta a { color: var(--nw-red); }
.woocommerce div.product .flex-control-thumbs { margin-top: 12px; }
.woocommerce div.product .flex-control-thumbs li { margin: 0 8px 8px 0; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: 20px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 18px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: rgba(199,203,210,.14); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent; border: 1px solid rgba(199,203,210,.14); border-radius: 0; margin: 0 6px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; font-weight: 600; color: var(--nw-silver);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--nw-panel); border-color: var(--nw-red); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce div.product .woocommerce-Tabs-panel { color: var(--nw-silver); }
.woocommerce div.product .woocommerce-Tabs-panel h2 { font-family: var(--nw-display); font-weight: 400; color: var(--nw-bone); }

/* Related / upsells heading */
.woocommerce .related > h2, .woocommerce .upsells > h2 {
  font-family: var(--nw-display); font-weight: 400; color: var(--nw-bone);
  font-size: clamp(28px, 4vw, 44px); margin: 10px 0 4px;
}
.woocommerce .related, .woocommerce .upsells { grid-column: 1 / -1; margin-top: 30px; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  background: var(--nw-panel); color: var(--nw-silver); font-family: var(--nw-cond);
  border: 1px solid rgba(199,203,210,.14); padding: 12px 8px;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--nw-red); color: #fff; border-color: var(--nw-red); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
  background: var(--nw-panel); border-top: 3px solid var(--nw-red); color: var(--nw-bone);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--nw-red); }

/* Responsive */
@media (max-width: 900px){
  .woocommerce ul.products.columns-4,
  .woocommerce ul.products.columns-3,
  .woocommerce .related ul.products,
  .woocommerce .upsells ul.products { grid-template-columns: repeat(2, 1fr); }
  .woocommerce div.product { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 480px){
  .woocommerce ul.products.columns-4 { grid-template-columns: 1fr 1fr; gap: 12px; }
}

/* ---- Cart & Checkout ---- */
.woocommerce table.shop_table {
  border: 1px solid rgba(199,203,210,.14); border-radius: 0; background: var(--nw-panel); border-collapse: collapse;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
  border-top: 1px solid rgba(199,203,210,.10); color: var(--nw-bone); padding: 16px 14px;
}
.woocommerce table.shop_table thead th {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; font-size: 13px;
  color: var(--nw-silver); background: var(--nw-ink);
}
.woocommerce table.cart img { width: 66px; border: 1px solid rgba(199,203,210,.14); }
.woocommerce table.cart td.product-name a { color: #fff; font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: .5px; }
.woocommerce table.cart td.product-name a:hover { color: var(--nw-red); }
.woocommerce .cart .product-subtotal, .woocommerce .cart .product-price, .woocommerce .cart .amount {
  color: var(--nw-red); font-family: var(--nw-cond);
}
.woocommerce a.remove {
  color: var(--nw-red) !important; border: 1px solid var(--nw-red); border-radius: 0; font-weight: 700;
}
.woocommerce a.remove:hover { background: var(--nw-red) !important; color: #fff !important; }

/* Coupon + totals */
.woocommerce .cart input.input-text, .woocommerce #coupon_code {
  background: var(--nw-black); border: 1px solid var(--nw-steel); color: var(--nw-bone); padding: 12px;
}
.woocommerce .cart-collaterals .cart_totals {
  background: var(--nw-panel); border: 1px solid rgba(199,203,210,.14); padding: 24px;
}
.woocommerce .cart_totals h2 { font-family: var(--nw-display); font-weight: 400; color: var(--nw-bone); }
.woocommerce .cart_totals table th { color: var(--nw-silver); font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; }
.woocommerce .cart_totals .order-total .amount { color: var(--nw-red); font-size: 20px; }

/* Checkout form */
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading {
  font-family: var(--nw-display); font-weight: 400; color: var(--nw-bone); font-size: clamp(24px,3vw,34px);
}
.woocommerce form .form-row label, .woocommerce-checkout label {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; font-size: 13px; color: var(--nw-silver);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce .select2-container--default .select2-selection--single {
  background: var(--nw-black) !important; border: 1px solid var(--nw-steel) !important; color: var(--nw-bone) !important;
  padding: 12px; border-radius: 0; height: auto;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--nw-bone); line-height: 1.4; padding: 0; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { border-color: var(--nw-red); outline: none; }
.select2-dropdown { background: var(--nw-ink); border-color: var(--nw-steel); }
.select2-container--default .select2-results__option { color: var(--nw-bone); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--nw-blood); }

/* Payment / order review */
.woocommerce-checkout #payment { background: var(--nw-panel); border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid rgba(199,203,210,.14); }
.woocommerce-checkout #payment div.payment_box { background: var(--nw-ink); color: var(--nw-silver); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--nw-ink); }
.woocommerce-checkout #order_review .order-total .amount { color: var(--nw-red); }

/* Info / empty states */
.woocommerce .cart-empty, .woocommerce-info, .woocommerce-form-login, .woocommerce-form-coupon {
  background: var(--nw-panel); color: var(--nw-bone);
}
.woocommerce .return-to-shop .button { display: inline-block; }

/* Empty cart - judgmental cat */
.nw-empty-cart { text-align: center; margin: 0 auto 32px; }
.nw-empty-cart img { width: 260px; max-width: 72%; margin: 0 auto; display: block; border: 3px solid var(--nw-bone); box-shadow: 0 14px 34px rgba(0,0,0,.55); }
.nw-empty-cart__msg { font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; color: var(--nw-silver); font-size: 14px; margin-top: 16px; }
/* Hide WooCommerce's default empty-cart emoji + heading (the cat replaces it) */
.wc-block-cart__empty-cart__title { display: none; }

/* ---- WooCommerce Blocks (block-based Cart & Checkout) ---- */
.wc-block-components-button.contained,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  background: var(--nw-blood) !important; color: #fff !important; border-radius: 0 !important;
  border: 1px solid var(--nw-red) !important;
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 2px; font-weight: 700;
}
.wc-block-components-button.contained:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--nw-red) !important; }

/* Block headings / titles / totals */
.wp-block-woocommerce-cart .wc-block-cart__totals-title,
.wc-block-components-title, .wc-block-checkout__main h2 {
  font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: 1px; color: var(--nw-silver);
}
.wc-block-components-product-name { color: #fff !important; font-family: var(--nw-cond); text-transform: uppercase; letter-spacing: .5px; }
.wc-block-components-product-name:hover { color: var(--nw-red) !important; }
.wc-block-components-totals-item__value, .wc-block-formatted-money-amount { font-family: var(--nw-cond); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--nw-red) !important; }
.wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
  background: var(--nw-panel); border: 1px solid rgba(199,203,210,.14);
}
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img {
  border: 1px solid rgba(199,203,210,.14);
}

/* Block form inputs */
.wc-block-components-text-input input,
.wc-block-checkout__form input[type="text"],
.wc-block-checkout__form input[type="email"],
.wc-block-checkout__form input[type="tel"],
.wc-block-checkout__form select,
.wc-block-components-select .components-form-token-field__input {
  background: var(--nw-black) !important; border: 1px solid var(--nw-steel) !important;
  color: var(--nw-bone) !important; border-radius: 0 !important;
}
.wc-block-components-text-input input:focus { border-color: var(--nw-red) !important; box-shadow: none !important; }
.wc-block-components-text-input label, .wc-block-checkout__form label { color: var(--nw-silver) !important; }
.wc-block-checkout__main, .wc-block-checkout__sidebar { color: var(--nw-bone); }
.wc-block-components-checkout-step__title { font-family: var(--nw-display); font-weight: 400; color: var(--nw-bone); }
.wc-block-components-panel, .wc-block-checkout__payment-method { background: var(--nw-panel); }
