/*
Theme Name: Ridgeline Craft Co.
Theme URI: https://ridgelinecraftco.com
Author: Ridgeline Craft Co.
Description: Custom WooCommerce theme for Ridgeline Craft Co. — handmade incense burner stands, Lawrence KS.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
WC requires at least: 8.0
WC tested up to: 9.0
License: GNU General Public License v2 or later
Text Domain: ridgeline
*/

/* ══════════════════════════════════════════════
   DESIGN TOKENS  (match ridgelinecraftco.html)
══════════════════════════════════════════════ */
:root {
  --bark:        #1a1208;
  --deep:        #0d0b07;
  --ember:       #c4601a;
  --amber:       #b85515;
  --gold:        #9a6e28;
  --gold-bright: #e8b84b;
  --gold-mid:    #d4a435;
  --gold-dark:   #9a6e28;
  --smoke:       #6b5e4e;
  --parchment:   #e8dcc8;
  --cream:       #f5efe3;
  --linen:       #f0e8d8;
  --sand:        #e8dece;
  --pine:        #2a3d2e;
  --moss:        #4a5c3e;
  --near-black:  #0d0b07;
  --text-dark:   #2a1f14;
  --text-mid:    #5a4a38;
  --text-light:  #8a7560;
  --text-heading:#2a1f14;
  --text-body:   #5a4a38;
  --text-muted:  #8a7560;
  --light-border:rgba(160,120,80,0.2);
}

/* ══════════════════════════════════════════════
   RESET & BASE
══════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  background-color: var(--cream);
  color: var(--text-dark);
  font-family: 'Crimson Pro', Georgia, serif;
  font-size: 18px;
  line-height: 1.7;
  overflow-x: hidden;
}

/* Subtle noise texture overlay */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 9999;
}

a { color: inherit; text-decoration: none; transition: color 0.3s; }
img { display: block; max-width: 100%; height: auto; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }
input, select, textarea { font: inherit; }

/* ══════════════════════════════════════════════
   TYPOGRAPHY
══════════════════════════════════════════════ */
.section-label {
  font-family: 'Cinzel', serif;
  font-size: 0.68rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--ember);
  display: block;
  margin-bottom: 1rem;
}

.section-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--text-dark);
}

.section-title em { font-style: italic; color: var(--amber); }
h1, h2, h3, h4 { font-family: 'Playfair Display', serif; line-height: 1.2; }

/* ══════════════════════════════════════════════
   LAYOUT
══════════════════════════════════════════════ */
.site-wrapper  { display: flex; flex-direction: column; min-height: 100vh; }
.site-main     { flex: 1; }
.container     { max-width: 1280px; margin: 0 auto; padding: 0 4rem; }
.section-inner { max-width: 1100px; margin: 0 auto; }
section        { padding: 7rem 2rem; }

.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }

/* ══════════════════════════════════════════════
   HEADER / NAV
══════════════════════════════════════════════ */
#site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 0.35rem 3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: linear-gradient(to bottom, rgba(13,11,7,0.97), transparent);
  transition: background 0.3s;
}

#site-header.scrolled {
  background: rgba(13,11,7,0.98);
  box-shadow: 0 2px 20px rgba(0,0,0,0.4);
}

.site-logo a {
  font-family: 'Cinzel', serif;
  font-size: 0.85rem;
  letter-spacing: 0.25em;
  color: var(--gold-bright);
  font-weight: 600;
  text-transform: uppercase;
}

.primary-nav ul { display: flex; gap: 2.5rem; list-style: none; }

.primary-nav a {
  font-family: 'Cinzel', serif;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--parchment);
  position: relative;
  transition: color 0.3s;
}

.primary-nav a::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0; right: 0;
  height: 1px;
  background: var(--gold-bright);
  transform: scaleX(0);
  transition: transform 0.3s ease;
}

.primary-nav a:hover { color: var(--gold-bright); text-shadow: 0 0 12px rgba(232,184,75,0.5); }
.primary-nav a:hover::after { transform: scaleX(1); }

/* Dropdown — pure CSS :hover, no JS needed */
nav ul li { position: relative; }

.primary-nav ul li ul {
  display: none;
  position: absolute;
  top: 100%; left: 0;
  min-width: 200px;
  background: rgba(13,11,7,0.98);
  border: 1px solid rgba(232,184,75,0.15);
  padding: 0.5rem 0;
  flex-direction: column;
  gap: 0;
}

.primary-nav ul li:hover > ul { display: flex; }

.primary-nav ul li ul li a {
  display: block;
  padding: 0.6rem 1.2rem;
  white-space: nowrap;
  letter-spacing: 0.12em;
}

.primary-nav ul li ul li a::after { display: none; }

/* WooCommerce sets current-menu-item on <li>, not <a> */
nav ul li.current-menu-item > a,
nav ul li.current_page_item > a { color: var(--gold-bright); }

nav ul li.current-menu-item > a::after,
nav ul li.current_page_item > a::after { transform: scaleX(0); }

nav ul li.current-menu-item > a:hover::after,
nav ul li.current_page_item > a:hover::after { transform: scaleX(1); }

nav ul li.menu-item-has-children.current-menu-item > a::after { display: none; }

nav ul li.current-menu-item > a.active::after,
nav ul li.current_page_item > a.active::after { transform: scaleX(0); }

nav ul li.current-menu-item > a.active:hover::after,
nav ul li.current_page_item > a.active:hover::after { transform: scaleX(1); }

/* Header utility links */
.header-inner {
  flex-direction: row;
  justify-content: center;
  align-items: center;
  position: relative;
}

.header-utils {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  position: absolute;
  right: 40px;
  top: 20%;
  transform: translateY(-50%);
}

.header-utils a {
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--parchment);
  transition: color 0.3s;
}

.header-utils a:hover { color: var(--gold-bright); }

.cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2rem; height: 1.2rem;
  background: var(--ember);
  color: #fff;
  border-radius: 50%;
  font-size: 0.58rem;
  font-family: sans-serif;
  font-weight: 700;
  margin-left: 0.3rem;
  vertical-align: middle;
}

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 0.5rem;
}

.nav-toggle span {
  display: block;
  width: 24px; height: 2px;
  background: var(--parchment);
  transition: all 0.3s;
}

/* ══════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════ */
.btn,
button.button,
a.button,
input[type="submit"],
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 0.85rem 2.2rem;
  font-family: 'Cinzel', serif;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.3s;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--gold-bright);
  color: var(--gold-bright);
  background: transparent;
}

.btn::before, .woocommerce .button::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gold-bright);
  transform: translateX(-100%);
  transition: transform 0.35s ease;
  z-index: -1;
}

.btn:hover, .woocommerce .button:hover,
button.button:hover, a.button:hover,
input[type="submit"]:hover { color: var(--deep); }

.btn:hover::before, .woocommerce .button:hover::before { transform: translateX(0); }

/* Solid ember button */
.btn-primary,
.woocommerce .button.alt,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
#place_order,
.single_add_to_cart_button {
  background: linear-gradient(135deg, var(--ember), var(--amber)) !important;
  border-color: var(--ember) !important;
  color: var(--cream) !important;
}

.btn-primary:hover,
.woocommerce .button.alt:hover,
#place_order:hover,
.single_add_to_cart_button:hover {
  background: linear-gradient(135deg, var(--amber), var(--ember)) !important;
  color: var(--cream) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(196,96,26,0.3);
}

/* Add to cart on shop grid — gold gradient */
.woocommerce ul.products li.product .button {
  font-family: 'Cinzel', serif !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--near-black) !important;
  border: none !important;
  padding: 0.55rem 1.1rem !important;
  background: linear-gradient(135deg, var(--gold-mid), var(--gold-bright), var(--gold-mid)) !important;
  font-weight: 400 !important;
  cursor: pointer;
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin-top: 12px !important;
  box-sizing: border-box !important;
  transition: all 0.3s;
}

.woocommerce ul.products li.product .button:hover {
  background: linear-gradient(135deg, var(--gold-bright), var(--gold-mid), var(--gold-bright)) !important;
  box-shadow: 0 4px 20px rgba(200,168,75,0.4) !important;
}

/* ══════════════════════════════════════════════
   DIVIDER
══════════════════════════════════════════════ */
.divider {
  display: flex; align-items: center; gap: 1.5rem;
  padding: 0 3rem; margin: 0 auto; max-width: 900px;
}
.divider-line { flex: 1; height: 1px; background: linear-gradient(to right, transparent, var(--smoke), transparent); }
.divider-icon { color: var(--ember); font-size: 1.2rem; }

/* ══════════════════════════════════════════════
   WOO PAGE HEADERS
══════════════════════════════════════════════ */
.woo-page-header {
  background:
    radial-gradient(ellipse 60% 80% at 50% 110%, rgba(196,96,26,0.18) 0%, transparent 60%),
    linear-gradient(160deg, #0d1510 0%, #0d0b07 40%, #1a0e04 100%);
  padding: 10rem 4rem 4rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.woo-page-header::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(232,184,75,0.4), transparent);
}

.woo-page-header .section-label { color: var(--gold-bright); }
.woo-page-header h1 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 900;
  color: var(--cream);
  margin: 0;
}
.woo-page-header h1 em { font-style: italic; color: var(--gold); }

.woocommerce-breadcrumb {
  font-family: 'Cinzel', serif;
  font-size: 0.62rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-light);
  padding: 1.2rem 4rem;
  max-width: 1280px;
  margin: 0 auto;
}
.woocommerce-breadcrumb a { color: var(--text-light); }
.woocommerce-breadcrumb a:hover { color: var(--ember); }

/* ══════════════════════════════════════════════
   SHOP / ARCHIVE
══════════════════════════════════════════════ */
.woocommerce-main-wrapper {
  max-width: 1280px;
  margin: 0 auto;
  padding: 3rem 4rem 6rem;
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 4rem;
  align-items: start;
}

.woocommerce-sidebar { position: sticky; top: 6rem; }

.widget-area .widget {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(160,120,80,0.15);
}

.widget-area .widget-title {
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ember);
  margin-bottom: 1.2rem;
  font-weight: 400;
}

.widget-area ul li a {
  font-size: 0.92rem;
  color: var(--text-mid);
  display: block;
  padding: 0.3rem 0;
  transition: color 0.2s;
}

.widget-area ul li a:hover { color: var(--ember); }
.widget-area ul li .count { font-family: 'Cinzel', serif; font-size: 0.6rem; color: var(--text-light); float: right; }

.woocommerce-result-count {
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-light);
}

.woocommerce-ordering select {
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid rgba(160,120,80,0.3);
  background: #fff;
  padding: 0.5rem 1rem;
  color: var(--text-dark);
}

/* Product grid */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2px !important;
  margin: 0 !important; padding: 0 !important;
  list-style: none !important;
  float: none !important;
  width: 100% !important;
}

.woocommerce ul.products li.product {
  position: relative;
  background: #ffffff;
  padding: 2.5rem 2rem 3rem;
  border: 1px solid rgba(160,120,80,0.12);
  overflow: hidden;
  cursor: pointer;
  transition: background 0.4s;
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.woocommerce ul.products li.product::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--ember), transparent);
  transform: scaleX(0);
  transition: transform 0.4s ease;
}

.woocommerce ul.products li.product:hover { background: #fff8ef; }
.woocommerce ul.products li.product:hover::after { transform: scaleX(1); }

.woocommerce ul.products li.product a img {
  width: 100%; height: 220px;
  object-fit: cover;
  margin-bottom: 1.5rem;
  border: 1px solid rgba(160,120,80,0.1);
  display: block;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.3rem !important;
  font-weight: 700;
  color: var(--text-heading) !important;
  margin-bottom: 0.5rem;
  line-height: 1.2;
}

.woocommerce ul.products li.product .price {
  font-family: Georgia, serif;
  font-size: 1.05rem;
  color: var(--text-body) !important;
  display: block;
  margin-bottom: 0.5rem;
  font-variant-numeric: lining-nums;
}

.woocommerce ul.products li.product .price del { color: var(--text-muted) !important; font-size: 0.85rem; margin-right: 0.4rem; }
.woocommerce ul.products li.product .price ins { color: var(--gold-dark) !important; text-decoration: none; }

/* Sale badge — shop grid */
.woocommerce ul.products li.product .onsale {
  position: absolute !important;
  top: 12px !important; left: 12px !important;
  margin: 0 !important;
  z-index: 10;
  background: var(--near-black);
  color: var(--gold-bright);
  border: 1px solid var(--gold-dark);
  font-family: 'Cinzel', serif;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.3rem 0.7rem;
  border-radius: 0;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1.4;
}

/* ══════════════════════════════════════════════
   SINGLE PRODUCT
   Note: WooCommerce renders .summary before
   .woocommerce-product-gallery in the DOM.
   Always set explicit grid-column/row on both.
══════════════════════════════════════════════ */
.single-product div.product {
  display: grid !important;
  grid-template-columns: 55% 40% !important;
  gap: 48px !important;
  max-width: 1280px;
  margin: 0 auto;
  padding: 8rem 4rem 4rem;
  position: relative !important;
  align-items: start;
}

.single-product .woocommerce-product-gallery {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  position: sticky;
  top: 5rem;
}

.single-product .summary {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
}

.single-product .woocommerce-tabs,
.single-product .related.products { grid-column: 1 / -1 !important; }

.single-product .woocommerce-product-gallery img { width: 100%; border: 1px solid rgba(160,120,80,0.15); }

.single-product .product_title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 900;
  color: var(--text-dark);
  line-height: 1.15;
  margin-bottom: 0.8rem;
}

.single-product p.price,
.single-product span.price {
  font-family: Georgia, serif;
  font-size: 1.5rem;
  color: var(--amber);
  margin-bottom: 1.5rem;
  display: block;
  font-variant-numeric: lining-nums;
}

.single-product p.price del,
.single-product span.price del { color: var(--text-light); font-size: 1rem; margin-right: 0.5rem; }

.single-product .woocommerce-product-details__short-description {
  font-size: 1rem;
  color: var(--text-mid);
  font-style: italic;
  line-height: 1.7;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(160,120,80,0.15);
}

/* Sale badge — .onsale is a DOM sibling of the gallery, not inside it.
   Use pixel offsets to visually place it on the image. */
.single-product span.onsale {
  position: absolute !important;
  top: 136px !important;
  left: 50px !important;
  margin: 0 !important;
  z-index: 10;
  background: var(--near-black);
  color: var(--gold-bright);
  border: 1px solid var(--gold-dark);
  font-family: 'Cinzel', serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.3rem 0.7rem;
  border-radius: 0;
  min-height: auto !important;
  line-height: 1.4;
}

/* Cursor fixes */
.single-product * { cursor: auto; }
.single-product a,
.single-product button,
.single-product input[type="submit"],
.single-product .add_to_cart_button,
.single-product .single_add_to_cart_button { cursor: pointer !important; }
.single-product .quantity input { cursor: text !important; }

/* Variable product */
.single-product .variations select {
  font-family: 'Cinzel', serif;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  border: 1px solid rgba(160,120,80,0.35);
  background: #fff;
  padding: 0.6rem 1rem;
  color: var(--text-dark);
  width: 100%;
  margin-bottom: 0.5rem;
}

.single-product .variations label {
  font-family: 'Cinzel', serif;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-light);
  display: block;
  margin-bottom: 0.4rem;
}

.single-product .variations_button {
  display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; flex-wrap: wrap;
}
.single-product .variations_button .single_add_to_cart_button { flex: 1; }

.single-product .quantity .qty {
  width: 64px;
  font-family: Georgia, serif;
  font-variant-numeric: lining-nums;
  text-align: center;
  border: 1px solid rgba(160,120,80,0.35);
  padding: 0.7rem; font-size: 1rem; color: var(--text-dark); background: #fff;
}

/* Tabs */
.woocommerce-tabs ul.tabs {
  display: flex; gap: 0; list-style: none; padding: 0; margin-top: 3rem;
  border-bottom: 1px solid rgba(160,120,80,0.2);
}

.woocommerce-tabs ul.tabs li a {
  display: block;
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-light);
  padding: 0.8rem 1.5rem;
  border-bottom: 2px solid transparent;
  transition: all 0.2s;
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover { color: var(--ember); border-bottom-color: var(--ember); }

.woocommerce-tabs .panel {
  padding: 2rem 0;
  font-size: 0.95rem;
  color: var(--text-mid);
  line-height: 1.7;
}

/* Related products */
.related.products { padding: 4rem 0; border-top: 1px solid rgba(160,120,80,0.15); }

.related.products > h2 {
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem; font-weight: 700;
  color: var(--text-dark); margin-bottom: 2rem;
}

.related ul.products li.product span.onsale { display: none !important; }

.related ul.products li.product.sale .woocommerce-loop-product__link {
  position: relative !important; display: block !important;
}

.related ul.products li.product.sale .woocommerce-loop-product__link::before {
  content: 'SALE';
  position: absolute; top: 12px; left: 12px;
  background: var(--near-black); color: var(--gold-bright);
  border: 1px solid var(--gold-dark);
  font-family: 'Cinzel', serif; font-size: 0.58rem; font-weight: 600;
  letter-spacing: 0.18em; padding: 0.3rem 0.7rem; z-index: 10;
}

.related ul.products li.product img { width: 100% !important; display: block !important; }
.related ul.products { gap: 80px !important; }

.star-rating span::before, .star-rating::before { color: var(--gold-bright); }

/* ══════════════════════════════════════════════
   CART  (WooCommerce Blocks — React)
   CRITICAL: page-cart.php must use the_content()
   NOT woocommerce_content()
══════════════════════════════════════════════ */
.woocommerce-cart .site-main { background: var(--cream); padding-top: 7rem; }

.woocommerce-cart .wp-block-woocommerce-cart { padding: 0 180px !important; }

.wp-block-woocommerce-proceed-to-checkout-block a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 1rem 2rem !important;
  font-family: 'Cinzel', serif !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  background: linear-gradient(135deg, var(--gold-mid), var(--gold-bright), var(--gold-mid)) !important;
  color: var(--near-black) !important;
  border: none !important;
  transition: all 0.3s !important;
}

.wp-block-woocommerce-proceed-to-checkout-block a:hover {
  background: linear-gradient(135deg, var(--gold-bright), var(--gold-mid), var(--gold-bright)) !important;
  box-shadow: 0 4px 20px rgba(200,168,75,0.4) !important;
}

/* Classic cart fallback */
.woocommerce-cart-form table.shop_table { width: 100%; border-collapse: collapse; }

.woocommerce-cart-form table.shop_table th {
  font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--text-light); padding: 1rem;
  border-bottom: 1px solid rgba(160,120,80,0.2); text-align: left; font-weight: 400;
}

.woocommerce-cart-form table.shop_table td {
  padding: 1.5rem 1rem; border-bottom: 1px solid rgba(160,120,80,0.1);
  color: var(--text-dark); vertical-align: middle; font-variant-numeric: lining-nums;
}

.woocommerce-cart-form table.shop_table .product-name a {
  font-family: 'Playfair Display', serif; font-size: 1.05rem;
  font-weight: 700; color: var(--text-dark);
}

.cart_totals h2 {
  font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.3em;
  text-transform: uppercase; color: var(--text-light); margin-bottom: 1.5rem; font-weight: 400;
}

/* ══════════════════════════════════════════════
   CHECKOUT  (WooCommerce Blocks — React)
   CRITICAL: page-checkout.php must use the_content()
══════════════════════════════════════════════ */
.woocommerce-checkout .site-main { background: var(--cream); padding-top: 7rem; }

.woocommerce-checkout .wp-block-woocommerce-checkout { padding: 0 180px !important; }

.woocommerce form .form-row label {
  font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--text-light); display: block; margin-bottom: 0.4rem;
}

.woocommerce form .form-row input[type="text"],
.woocommerce form .form-row input[type="email"],
.woocommerce form .form-row input[type="tel"],
.woocommerce form .form-row input[type="password"],
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  width: 100%; border: 1px solid rgba(160,120,80,0.35);
  background: #fff; padding: 0.7rem 1rem;
  font-family: 'Crimson Pro', serif; font-size: 1rem; color: var(--text-dark);
  transition: border-color 0.2s;
}

.woocommerce form .form-row input:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
  outline: none; border-color: var(--ember);
  box-shadow: 0 0 0 3px rgba(196,96,26,0.08);
}

.woocommerce h3#order_review_heading {
  font-family: 'Playfair Display', serif; font-size: 1.4rem;
  font-weight: 700; color: var(--text-dark); letter-spacing: 0; text-transform: none;
}

/* ══════════════════════════════════════════════
   MY ACCOUNT
══════════════════════════════════════════════ */
.woocommerce-account .site-main { background: var(--cream); padding-top: 7rem; }

.woocommerce-account .woocommerce {
  max-width: 1100px; margin: 0 auto; padding: 4rem;
  display: grid; grid-template-columns: 220px 1fr; gap: 4rem; align-items: start;
}

/* Must be flex-direction: column — WooCommerce default is row */
.woocommerce-MyAccount-navigation ul {
  display: flex; flex-direction: column; list-style: none; padding: 0; margin: 0;
}

.woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--light-border); }

.woocommerce-MyAccount-navigation ul li a {
  display: block;
  font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--text-body); padding: 0.75rem 0; transition: color 0.2s;
}

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

/* ══════════════════════════════════════════════
   NOTICES
══════════════════════════════════════════════ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
  font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.1em;
  padding: 1rem 1.5rem; margin-bottom: 1.5rem;
  border-left: 3px solid var(--ember); background: rgba(196,96,26,0.06);
  color: var(--text-dark); display: flex; align-items: center; gap: 1rem; list-style: none;
}

.woocommerce-error { border-color: #c0392b; background: rgba(192,57,43,0.06); }

/* ══════════════════════════════════════════════
   WISHLIST  (TI WooCommerce Wishlist)
   Selectors discovered via console debugging.
   Buttons are inside .tinvwl-to-right and
   .tinvwl-input-group-btn — NOT inside .tinvwl-table.
   Popup buttons only appear in DOM after click.
══════════════════════════════════════════════ */
.wishlist-page * { cursor: pointer; }

.tinvwl-to-right .button,
.tinvwl-input-group-btn .button {
  background: linear-gradient(135deg, var(--gold-mid), var(--gold-bright), var(--gold-mid)) !important;
  color: var(--near-black) !important; border: none !important;
  font-family: 'Cinzel', serif !important; font-size: 0.65rem !important; letter-spacing: 0.15em !important;
}

.tinvwl-to-right .button:hover,
.tinvwl-input-group-btn .button:hover {
  background: linear-gradient(135deg, var(--gold-bright), var(--gold-mid), var(--gold-bright)) !important;
  box-shadow: 0 4px 20px rgba(200,168,75,0.4) !important;
}

.return-to-shop .wc-backward {
  background: linear-gradient(135deg, var(--gold-mid), var(--gold-bright), var(--gold-mid)) !important;
  color: var(--near-black) !important; border: none !important;
}

/* Popup buttons — only in DOM after clicking wishlist heart */
.tinvwl_button_view,
.tinvwl_button_close {
  background: linear-gradient(135deg, var(--gold-mid), var(--gold-bright), var(--gold-mid)) !important;
  color: var(--near-black) !important; border: none !important;
  font-family: 'Cinzel', serif !important; letter-spacing: 0.15em !important;
}

.tinvwl_button_view:hover,
.tinvwl_button_close:hover {
  background: linear-gradient(135deg, var(--gold-bright), var(--gold-mid), var(--gold-bright)) !important;
  box-shadow: 0 4px 20px rgba(200,168,75,0.4) !important;
}

.tinvwl_button_close { padding-top: 16px !important; padding-bottom: 16px !important; }

/* ══════════════════════════════════════════════
   SEARCH RESULTS
   Must wrap ul.products in div.woocommerce
   so shop CSS selectors match
══════════════════════════════════════════════ */
.search-results .site-main { max-width: 1280px; margin: 0 auto; padding: 8rem 4rem 4rem; }

.search-results .page-title {
  font-family: 'Playfair Display', serif; font-size: 2rem;
  font-weight: 700; color: var(--text-dark); margin-bottom: 3rem;
}

/* ══════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════ */
#site-footer {
  background: var(--deep);
  border-top: 1px solid rgba(138,125,107,0.1);
  padding: 3rem 4rem;
  display: flex; justify-content: space-between; align-items: center; gap: 4rem;
}

.footer-brand {
  font-family: 'Crimson Pro', serif; font-size: 0.85rem; letter-spacing: 0.2em;
  color: var(--parchment); text-transform: uppercase; font-variant-numeric: lining-nums;
}

.footer-brand strong {
  font-family: 'Cinzel', serif; color: var(--gold-bright);
  font-weight: 600; display: block; margin-bottom: 0.3rem;
}

.footer-nav ul { display: flex; gap: 2rem; list-style: none; }

.footer-nav a {
  font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--parchment); transition: color 0.3s;
}

.footer-nav a:hover { color: var(--gold-bright); text-shadow: 0 0 12px rgba(232,184,75,0.4); }

/* All footer links gold — visible on dark background */
#site-footer a { color: var(--gold-bright); }
#site-footer a:hover { color: var(--cream); }

/* ══════════════════════════════════════════════
   CATEGORY GRID (homepage)
══════════════════════════════════════════════ */
.category-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; margin-top: 3rem; }

.cat-card {
  width: calc(25% - 20px); background: #fff;
  border: 1px solid rgba(160,120,80,0.15); padding: 2rem; text-align: center;
  transition: all 0.3s; cursor: pointer;
}

.cat-card:hover {
  background: #fff8ef; border-color: rgba(196,96,26,0.3);
  transform: translateY(-3px); box-shadow: 0 8px 30px rgba(100,60,20,0.1);
}

.cat-card-icon { font-size: 2.5rem; margin-bottom: 1rem; display: block; }
.cat-card-name { font-family: 'Cinzel', serif; font-size: 0.68rem; letter-spacing: 0.25em; text-transform: uppercase; color: var(--text-dark); }

/* ══════════════════════════════════════════════
   ANIMATIONS
══════════════════════════════════════════════ */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn   { from { opacity: 0; } to { opacity: 1; } }
@keyframes spin     { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes rotateSlow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ══════════════════════════════════════════════
   RESPONSIVE — 900px (tablet)
══════════════════════════════════════════════ */
@media (max-width: 900px) {
  .container { padding: 0 2rem; }

  #site-header { padding: 0.5rem 1.5rem; flex-wrap: wrap; }
  .primary-nav { display: none; width: 100%; order: 3; }
  .primary-nav.open { display: block; }
  .primary-nav ul { flex-direction: column; gap: 0; padding: 1rem 0; }
  .primary-nav ul li ul { position: static; display: none; box-shadow: none; border: none; }
  .nav-toggle { display: flex; }

  .header-inner { flex-direction: column; align-items: center; }
  .logo-lockup { align-items: center; width: 100%; text-align: center; }
  .logo-tagline { text-align: center !important; width: 100%; display: block; margin: 0 auto; }
  .header-utils { position: static; transform: none; width: 100%; justify-content: center; padding: 0.5rem 0; order: -1; }

  .woocommerce-main-wrapper { grid-template-columns: 1fr; padding: 2rem; gap: 2rem; }
  .woocommerce-sidebar { position: static; }

  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }

  .single-product div.product { grid-template-columns: 1fr !important; padding: 6rem 2rem 2rem !important; gap: 2rem !important; }
  .single-product .woocommerce-product-gallery { position: static; grid-column: 1 !important; grid-row: 1 !important; }
  .single-product .summary { grid-column: 1 !important; grid-row: 2 !important; }
  .single-product .product_title { font-size: 1.6rem !important; }
  .single-product p.price { font-size: 1.1rem !important; }

  .woocommerce-account .woocommerce { grid-template-columns: 1fr; padding: 2rem; gap: 2rem; }

  .woocommerce-cart .wp-block-woocommerce-cart { padding: 0 20px !important; }
  .woocommerce-checkout .wp-block-woocommerce-checkout { padding: 0 20px !important; }

  .cat-card { width: calc(50% - 20px); }

  #site-footer { flex-direction: column; gap: 1.5rem; text-align: center; padding: 2rem; }
  .footer-nav ul { justify-content: center; flex-wrap: wrap; }

  .tinv-wishlist { overflow-x: hidden !important; width: 100% !important; }
  .tinvwl-table-manage-list { width: 100% !important; table-layout: fixed !important; }
  .tinvwl-table-manage-list td.product-thumbnail img { max-width: 100% !important; height: auto !important; width: 100% !important; }
}

@media (min-width: 601px) and (max-width: 900px) {
  .tinvwl-table-manage-list td.product-thumbnail img { width: 200px !important; height: 200px !important; }
}

/* ══════════════════════════════════════════════
   RESPONSIVE — 600px (mobile)
══════════════════════════════════════════════ */
@media (max-width: 600px) {
  .woocommerce ul.products { grid-template-columns: 1fr !important; }
  .single-product div.product { padding: 5rem 1.5rem 2rem !important; }
  .woo-page-header { padding: 7rem 1.5rem 3rem; }
  .cat-card { width: 100%; }
  .woocommerce-cart .wp-block-woocommerce-cart { padding: 0 5px !important; }
  .woocommerce-checkout .wp-block-woocommerce-checkout { padding: 0 5px !important; }
  .woocommerce ul.products li.product .onsale {
    top: 8px !important; left: 8px !important;
    font-size: 0.52rem !important; padding: 0.25rem 0.5rem !important;
  }
}
