/* <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>MERCH — LIST OF SWITCHES</title>
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap" rel="stylesheet" />
  <link rel="stylesheet" href="css/style.css" />
</head>
<body>

  <div class="grain" aria-hidden="true"></div>

  <nav id="navbar">
    <a href="index.html" class="nav-logo">LIST OF SWITCHES</a>
    <ul class="nav-links" id="navLinks">
      <li><a href="index.html#about">ABOUT</a></li>
      <li><a href="index.html#photos">PHOTOS</a></li>
      <li><a href="index.html#shows">SHOWS</a></li>
      <li><a href="merch.html" class="active">MERCH</a></li>
      <li><a href="index.html#contact">CONTACT</a></li>
    </ul>
    <button class="nav-toggle" id="navToggle" aria-label="Toggle menu">&#9776;</button>
  </nav>

  <!-- Page Header -->
  <header class="page-header">
    <div class="page-header-bg">
      <img src="images/merch-header-bg.jpg" alt=""
           onerror="this.style.display='none'" />
    </div>
    <div class="page-header-content">
      <p class="hero-eyebrow">LIST OF SWITCHES</p>
      <h1 class="hero-title small">MERCH</h1>
      <p class="hero-genre">WEAR THE SIGNAL</p>
    </div>
  </header>

  <!-- Full Merch Store -->
  <section id="merch-store">
    <div class="store-filters">
      <button class="filter-btn active" data-filter="all">ALL</button>
      <button class="filter-btn" data-filter="tees">TEES</button>
      <button class="filter-btn" data-filter="tops">TOPS</button>
      <button class="filter-btn" data-filter="accessories">ACCESSORIES</button>
    </div>

    <div class="store-grid">

      <!-- ── TEE 1 ── -->
      <div class="store-card" data-category="tees">
        <div class="store-img-wrap">
          <img src="images/merch-logo-tee.jpg" alt="Logo Tee"
               onerror="this.parentElement.classList.add('img-fallback')" />
          <div class="store-badge">NEW</div>
        </div>
        <div class="store-info">
          <p class="store-name">LOGO TEE</p>
          <p class="store-desc">100% cotton, unisex fit. Available S–XXL.</p>
          <p class="store-price">$25.00</p>
          <button class="btn-add-cart" onclick="addToCart('Logo Tee', 25)">ADD TO CART</button>
        </div>
      </div>

      <!-- ── TEE 2 ── -->
      <div class="store-card" data-category="tees">
        <div class="store-img-wrap">
          <img src="images/merch-graphic-tee.jpg" alt="Graphic Tee"
               onerror="this.parentElement.classList.add('img-fallback')" />
        </div>
        <div class="store-info">
          <p class="store-name">GRAPHIC TEE</p>
          <p class="store-desc">Heavy-washed. Band art print. Unisex S–XXL.</p>
          <p class="store-price">$25.00</p>
          <button class="btn-add-cart" onclick="addToCart('Graphic Tee', 25)">ADD TO CART</button>
        </div>
      </div>

      <!-- ── EXCLUSIVE TEE ── -->
      <div class="store-card" data-category="tees">
        <div class="store-img-wrap">
          <img src="images/merch-exclusive-tee.jpg" alt="Exclusive Tee"
               onerror="this.parentElement.classList.add('img-fallback')" />
          <div class="store-badge">EXCLUSIVE</div>
        </div>
        <div class="store-info">
          <p class="store-name">EXCLUSIVE SHOW TEE</p>
          <p class="store-desc">Limited run. Only available at shows &amp; online while supplies last.</p>
          <p class="store-price">$30.00</p>
          <button class="btn-add-cart" onclick="addToCart('Exclusive Show Tee', 30)">ADD TO CART</button>
        </div>
      </div>

      <!-- ── HOODIE ── -->
      <div class="store-card" data-category="tops">
        <div class="store-img-wrap">
          <img src="images/merch-hoodie.jpg" alt="Hoodie"
               onerror="this.parentElement.classList.add('img-fallback')" />
        </div>
        <div class="store-info">
          <p class="store-name">PULLOVER HOODIE</p>
          <p class="store-desc">Heavyweight fleece. Front print. S–XXL.</p>
          <p class="store-price">$45.00</p>
          <button class="btn-add-cart" onclick="addToCart('Hoodie', 45)">ADD TO CART</button>
        </div>
      </div>

      <!-- ── STICKER PACK ── -->
      <div class="store-card" data-category="accessories">
        <div class="store-img-wrap">
          <img src="images/merch-sticker-pack.jpg" alt="Sticker Pack"
               onerror="this.parentElement.classList.add('img-fallback')" />
        </div>
        <div class="store-info">
          <p class="store-name">STICKER PACK</p>
          <p class="store-desc">5-pack of die-cut vinyl stickers.</p>
          <p class="store-price">$10.00</p>
          <button class="btn-add-cart" onclick="addToCart('Sticker Pack', 10)">ADD TO CART</button>
        </div>
      </div>

      <!-- ── PATCH ── -->
      <div class="store-card" data-category="accessories">
        <div class="store-img-wrap">
          <img src="images/merch-patch.jpg" alt="Embroidered Patch"
               onerror="this.parentElement.classList.add('img-fallback')" />
        </div>
        <div class="store-info">
          <p class="store-name">EMBROIDERED PATCH</p>
          <p class="store-desc">Iron-on / sew-on. 3 inch.</p>
          <p class="store-price">$8.00</p>
          <button class="btn-add-cart" onclick="addToCart('Embroidered Patch', 8)">ADD TO CART</button>
        </div>
      </div>

    </div><!-- /store-grid -->

    <!-- Cart -->
    <div id="cart-drawer" class="cart-drawer" aria-live="polite">
      <div class="cart-header">
        <span class="cart-title">CART (<span id="cart-count">0</span>)</span>
        <button class="cart-close" id="cartClose">&times;</button>
      </div>
      <div id="cart-items"></div>
      <div class="cart-total">TOTAL: $<span id="cart-total">0.00</span></div>
      <a href="mailto:listofswitches@gmail.com?subject=Merch%20Order" class="btn-primary full-width">
        ORDER VIA EMAIL &rarr;
      </a>
      <p class="cart-note">
        We'll reply within 24 hours with payment &amp; shipping details.
      </p>
    </div>
    <button class="cart-fab" id="cartFab" aria-label="Open cart">
      CART &nbsp;<span id="cart-fab-count">0</span>
    </button>

  </section>

  <footer>
    <p>&copy; 2026 LIST OF SWITCHES &mdash; ALL RIGHTS RESERVED</p>
    <p class="footer-loc">McKINNEY, TX</p>
  </footer>

  <script src="js/main.js"></script>
  <script src="js/cart.js"></script>
</body> 
</html>*/
/* ══════════════════════════════════════════════════════
   CHECKOUT MODAL — Stripe
══════════════════════════════════════════════════════ */
.co-noscroll { overflow: hidden; }

#checkout-overlay {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,0.82);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  opacity: 0; visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}
#checkout-overlay.open { opacity: 1; visibility: visible; }

.co-modal {
  display: grid;
  grid-template-columns: 280px 1fr;
  width: 100%; max-width: 920px;
  max-height: 92vh;
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
  position: relative;
}

/* ── CLOSE ── */
.co-close {
  position: absolute; top: 1.2rem; right: 1.4rem; z-index: 10;
  background: none; border: none; color: var(--tan);
  font-size: 1.6rem; cursor: pointer; line-height: 1;
  transition: color var(--transition);
}
.co-close:hover { color: var(--cream); }

/* ── SIDEBAR ── */
.co-sidebar {
  background: #0d0d0d;
  border-right: 1px solid var(--border);
  padding: 2.5rem 1.8rem;
  display: flex; flex-direction: column; gap: 1rem;
  overflow-y: auto;
}
.co-sidebar-heading {
  font-size: 0.58rem; letter-spacing: 0.35em;
  color: var(--tan); margin-bottom: 0.5rem;
}
.co-sidebar-items { flex: 1; }
.co-sidebar-item {
  display: flex; justify-content: space-between;
  font-size: 0.65rem; letter-spacing: 0.1em;
  padding: 0.6rem 0; border-bottom: 1px solid var(--border);
  color: rgba(240,235,224,0.75);
}
.co-sidebar-total {
  font-family: var(--ff-display);
  font-size: 1.15rem; letter-spacing: 0.12em;
  color: var(--cream);
  padding-top: 0.8rem;
  border-top: 1px solid var(--border);
}
.co-sidebar-ig {
  font-size: 0.55rem; letter-spacing: 0.2em;
  color: var(--tan); margin-top: auto;
  transition: color var(--transition);
}
.co-sidebar-ig:hover { color: var(--cream); }
.co-empty-note { font-size: 0.6rem; letter-spacing: 0.15em; color: var(--tan); }

/* ── MAIN ── */
.co-main {
  padding: 2.5rem 2.8rem;
  overflow-y: auto;
  max-height: 92vh;
}

/* ── STEPS BAR ── */
.co-steps {
  display: flex; align-items: center; gap: 0.8rem;
  margin-bottom: 2.2rem;
}
.co-step {
  display: flex; align-items: center; gap: 0.55rem;
  font-size: 0.58rem; letter-spacing: 0.22em; color: var(--tan);
  transition: color var(--transition);
}
.co-step span {
  display: flex; align-items: center; justify-content: center;
  width: 22px; height: 22px;
  border: 1px solid currentColor;
  font-size: 0.65rem;
}
.co-step.active { color: var(--cream); }
.co-step-divider {
  flex: 1; height: 1px;
  background: var(--border);
}

/* ── PANES ── */
.co-pane.hidden { display: none; }
.co-heading {
  font-family: var(--ff-display);
  font-size: 2rem; letter-spacing: 0.12em;
  margin-bottom: 1.8rem; color: var(--cream);
}
.co-heading.co-centered { text-align: center; }

/* ── FORM ── */
.co-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
  margin-bottom: 1rem;
}
.co-field {
  display: flex; flex-direction: column; gap: 0.45rem;
}
.co-field label {
  font-size: 0.55rem; letter-spacing: 0.25em; color: var(--tan);
}
.co-field input {
  background: #181818;
  border: 1px solid rgba(200,184,154,0.25);
  color: var(--cream);
  font-family: var(--ff-mono); font-size: 0.78rem;
  padding: 0.7rem 0.85rem;
  outline: none;
  transition: border-color var(--transition);
}
.co-field input:focus { border-color: var(--cream); }
.co-field input.invalid { border-color: var(--red); }
.co-full { grid-column: 1 / -1; margin-bottom: 1rem; }
.co-narrow { max-width: 90px; }

.co-btn-next,
.co-btn-pay { margin-top: 1.5rem; }

.co-error {
  font-size: 0.62rem; letter-spacing: 0.1em;
  color: var(--red); min-height: 1.2em;
  margin: 0.5rem 0;
}

/* ── PAYMENT ELEMENT ── */
.co-payment-element { margin: 1.2rem 0; min-height: 120px; }

.co-ship-summary {
  font-size: 0.62rem; letter-spacing: 0.1em;
  color: var(--tan); margin-bottom: 1.2rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
}
.co-ship-label { color: var(--cream); margin-right: 0.6rem; }

.co-back-btn {
  background: none; border: none;
  color: var(--tan); font-family: var(--ff-mono);
  font-size: 0.58rem; letter-spacing: 0.18em;
  cursor: pointer; margin-top: 1rem;
  transition: color var(--transition);
}
.co-back-btn:hover { color: var(--cream); }

/* ── SPINNER ── */
.co-spinner {
  display: inline-block;
  width: 16px; height: 16px;
  border: 2px solid rgba(8,8,8,0.3);
  border-top-color: var(--bg);
  border-radius: 50%;
  animation: co-spin 0.7s linear infinite;
  vertical-align: middle;
}
.co-spinner.hidden { display: none; }
@keyframes co-spin { to { transform: rotate(360deg); } }

/* ── SUCCESS ── */
.co-success-icon {
  font-size: 3rem; text-align: center;
  color: var(--cream); margin-bottom: 1rem;
}
.co-success-text {
  font-family: var(--ff-serif);
  text-align: center; line-height: 1.9;
  color: rgba(240,235,224,0.7);
  margin: 0 auto 2.5rem; max-width: 400px;
}

/* ── CART EMPTY ── */
.cart-empty {
  font-size: 0.62rem; letter-spacing: 0.15em;
  color: var(--tan); padding: 0.5rem 0;
}

/* ── RESPONSIVE MODAL ── */
@media (max-width: 700px) {
  .co-modal {
    grid-template-columns: 1fr;
    max-height: 100vh;
    height: 100%;
  }
  .co-sidebar { display: none; }
  .co-main { padding: 2rem 1.4rem; max-height: 100vh; }
  .co-row { grid-template-columns: 1fr; }
  .co-narrow { max-width: 100%; }
}
