/*
 Theme Name:   ThornBloom Studio
 Theme URI:    https://thornbloomstudio.com
 Description:  Fantasy luxe Astra child theme for ThornBloom Studio — luxury digital wedding & event stationery. Dark botanical elegance with gilded gold accents, enchanted forest aesthetics, and immersive full-bleed artwork.
 Author:       ThornBloom Studio
 Author URI:   https://thornbloomstudio.com
 Template:     astra
 Version:      1.0.8
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  thornbloom-child
 Tags:         wedding, stationery, luxury, fantasy, botanical, dark-theme
*/

/* ═══════════════════════════════════════════
   THORNBLOOM STUDIO — Fantasy Lux Theme
   Brand Palette: Forest Green, Cream, Sage,
   Camel Gold, Warm Taupe on dark base
   ═══════════════════════════════════════════ */

/* ── CSS Custom Properties (Tokens) ── */
:root {
  /* Dark base — REMOVED 2026-04-21 (v2.7.20). Legacy forest-tinted #0b0f0e
     was overriding tokens.css true-midnight #070A14 because style.css loads after
     tokens.css. All consumers now resolve --tb-bg via tokens.css (#070A14). Realm
     pages set their own --realm-bg via body.realm-* scope. Do NOT redefine --tb-bg
     here — set realm overrides in tokens.css instead. */
  --tb-bg-warm:        #0e1416;
  --tb-surface:        #131c1f;
  --tb-surface-2:      #182428;

  /* Brand palette (exact brand kit values) */
  --tb-forest:         #1A2F25;          /* primary dark forest green */
  --tb-forest-deep:    #0f1c15;          /* deepened forest */
  --tb-charcoal:       #2C3E50;          /* deep blue-charcoal */
  --tb-charcoal-deep:  #1e2d3d;          /* darkened charcoal */
  --tb-navy:           #1a2940;          /* deep navy for blending */
  --tb-forest-navy:    #1a2e35;          /* midpoint blend of forest + navy */
  --tb-sage:           #526A5E;          /* sage green — body text tone */
  --tb-cream:          #E8E1D5;          /* cream — light elements */
  --tb-gold:           #D1B28C;          /* gold accent */
  --tb-gold-light:     #dfc4a3;          /* lightened gold */
  --tb-gold-dark:      #b8965e;          /* darkened gold */
  --tb-taupe:          #C4BCB1;          /* warm taupe — borders */

  /* Text */
  --tb-text:           #C4BCB1;          /* taupe for body text */
  --tb-text-dim:       #a3b5aa;          /* lightened sage for better readability */
  --tb-white:          #E8E1D5;          /* cream as "white" */

  /* Borders */
  --tb-border:         rgba(196, 188, 177, .15);   /* taupe-based */
  --tb-border-hl:      rgba(209, 178, 140, .30);   /* gold-based highlight */

  /* Fonts */
  --tb-font-display:   'ivypresto-display', 'Cinzel Decorative', serif;
  --tb-font-heading:   'ivypresto-display', 'Cinzel', serif;
  --tb-font-body:      'Spectral', 'Cormorant Garamond', Georgia, serif;

  /* Shape */
  --tb-radius:         12px;
  --tb-radius-lg:      20px;
  --tb-ease:           cubic-bezier(.22, 1, .36, 1);
  --tb-container:      1200px;
}


/* ── Global Overrides ── */
body,
.ast-separate-container,
.ast-plain-container {
  background-color: var(--tb-bg);
  color: var(--tb-text);
  font-family: var(--tb-font-body);
  font-size: 20px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  max-width: 100vw;
}

/* Remove Astra default white/gray content backgrounds */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .comment-respond,
.ast-separate-container .ast-comment-list li,
.ast-separate-container .ast-woocommerce-container,
.ast-separate-container .error-404,
.ast-separate-container .no-results,
.ast-separate-container .ast-search-page,
.ast-plain-container {
  background-color: transparent;
}

/* Force dark background on all Astra page/content wrappers */
.site-content,
#content,
.content-area,
.ast-container,
#primary,
.site-main,
.entry-content,
.page .entry-content,
.ast-separate-container .site-main > .ast-container,
.ast-page-builder-template .site-main > .ast-container {
  background-color: var(--tb-bg) !important;
}

/* Full-width layout — override Astra boxed/contained layout */
.page-template-template-collection .site-content,
.page-template-template-collection #content,
.page-template-template-collection .content-area,
.page-template-template-collection .ast-container,
.page-template-template-collection #primary,
.page-template-template-collection .site-main,
.page-template-template-collection .entry-content,
.page-template-template-collection .ast-separate-container .site-main > .ast-container,
.page-template-template-upcoming-realms .site-content,
.page-template-template-upcoming-realms #content,
.page-template-template-upcoming-realms .content-area,
.page-template-template-upcoming-realms .ast-container,
.page-template-template-upcoming-realms #primary,
.page-template-template-upcoming-realms .site-main,
.page-template-template-upcoming-realms .entry-content,
.page-template-template-upcoming-realms .ast-separate-container .site-main > .ast-container,
.page-template-template-collection-landing .site-content,
.page-template-template-collection-landing #content,
.page-template-template-collection-landing .content-area,
.page-template-template-collection-landing .ast-container,
.page-template-template-collection-landing #primary,
.page-template-template-collection-landing .site-main,
.page-template-template-collection-landing .entry-content,
.page-template-template-collection-landing .ast-separate-container .site-main > .ast-container,
.page-template-template-home .site-content,
.page-template-template-home #content,
.page-template-template-home .content-area,
.page-template-template-home .ast-container,
.page-template-template-home #primary,
.page-template-template-home .site-main,
.page-template-template-home .entry-content,
.page-template-template-home .ast-separate-container .site-main > .ast-container,
.woocommerce .site-content,
.woocommerce #content,
.woocommerce .content-area,
.woocommerce .ast-container,
.woocommerce #primary,
.woocommerce .site-main,
.woocommerce .ast-separate-container .site-main > .ast-container,
.post-type-archive-product .site-content,
.post-type-archive-product .ast-container,
.post-type-archive-product #primary,
.post-type-archive-product .site-main,
.tax-product_cat .site-content,
.tax-product_cat .ast-container,
.tax-product_cat #primary,
.tax-product_cat .site-main {
  max-width: 100vw !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow-x: hidden !important;
}

/* Remove Astra content area padding/margins for full-width templates */
.tb-home,
.tb-collection-page,
.tb-upcoming-realms,
.tb-coll-landing {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
  flex: 1;
}


/* ── Typography ── */
h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title,
.ast-archive-title {
  font-family: var(--tb-font-heading);
  color: var(--tb-white);
  font-weight: 600;
  letter-spacing: 0.03em;
}

h1, .entry-title {
  font-family: var(--tb-font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 600;
  line-height: 1.2;
}

h2 {
  font-size: clamp(1.6rem, 4vw, 2.8rem);
  line-height: 1.25;
}

h3 {
  font-size: clamp(1.3rem, 3vw, 2rem);
}

p, li, td, th, label, input, textarea, select {
  font-family: var(--tb-font-body);
  color: var(--tb-text);
}

a {
  color: var(--tb-gold);
  text-decoration: none;
  transition: color 0.3s var(--tb-ease);
}

a:hover,
a:focus {
  color: var(--tb-gold-light);
}

em, i {
  font-style: italic;
  color: var(--tb-gold);
}


/* ── Section Tags & Titles ── */
.tb-section-tag {
  font-family: var(--tb-font-heading);
  font-size: 12px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--tb-gold);
  margin-bottom: 12px;
  display: block;
}

.tb-section-title {
  font-family: var(--tb-font-display);
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 600;
  color: var(--tb-white);
  line-height: 1.25;
  margin-bottom: 16px;
}

.tb-section-subtitle {
  font-family: var(--tb-font-body);
  font-size: 1.15rem;
  color: var(--tb-text-dim);
  max-width: 640px;
  margin: 0 auto 48px;
}


/* ── Buttons ── */
.tb-btn,
.ast-custom-button,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .button {
  font-family: var(--tb-font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 16px 40px;
  border-radius: var(--tb-radius);
  transition: all 0.4s var(--tb-ease);
  cursor: pointer;
  display: inline-block;
  text-align: center;
  line-height: 1;
}

.tb-btn--primary,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button {
  background: linear-gradient(135deg, var(--tb-gold), var(--tb-gold-dark));
  color: var(--tb-bg);
  border: none;
  font-weight: 700;
}

.tb-btn--primary:hover,
.wp-block-button__link:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: linear-gradient(135deg, var(--tb-gold-light), var(--tb-gold));
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(209, 178, 140, 0.3);
  color: var(--tb-bg);
}

.tb-btn--ghost {
  background: transparent;
  color: var(--tb-cream);
  border: 1px solid var(--tb-border-hl);
}

.tb-btn--ghost:hover {
  background: rgba(209, 178, 140, 0.08);
  border-color: var(--tb-gold);
  color: var(--tb-gold);
}


/* ── Header / Navigation ── */
.site-header {
  position: sticky !important;
  top: 0;
  z-index: 99999 !important;
}

.ast-primary-header-bar,
.ast-main-header-bar-alignment,
.site-header,
.ast-header-break-point .ast-mobile-header-wrap .ast-primary-header-bar,
#masthead {
  background: linear-gradient(90deg, #1A2F25 0%, #1a2e35 50%, #1e2d3d 100%) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--tb-border-hl);
}

/* Mobile menu dark background — override Astra dynamic inline CSS */
.ast-mobile-header-wrap .ast-mobile-header-content,
.ast-main-header-nav-open .ast-mobile-header-wrap .ast-mobile-header-content,
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
.ast-mobile-popup-drawer .ast-mobile-popup-inner {
  background-color: #0c100e !important;
  background: #0c100e !important;
}

.ast-mobile-header-wrap .ast-mobile-header-content a,
.ast-mobile-popup-drawer a {
  color: #E8E1D5 !important;
  border-bottom-color: rgba(196, 188, 177, 0.15) !important;
}

.ast-mobile-header-wrap .ast-mobile-header-content a:hover,
.ast-mobile-popup-drawer a:hover {
  color: #D1B28C !important;
}

.ast-mobile-header-wrap .ast-mobile-header-content li,
.ast-mobile-popup-drawer li {
  border-bottom: 1px solid rgba(196, 188, 177, 0.15) !important;
}

/* Force header inner content full-width */
.site-header .ast-builder-grid-row-container {
  max-width: 100% !important;
  width: 100% !important;
}

.site-header .ast-builder-grid-row {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 24px;
}

.ast-header-break-point .main-header-menu,
.main-header-menu {
  background: linear-gradient(180deg, #1A2F25, #1e2d3d) !important;
}

.main-header-menu > .menu-item > a,
.ast-header-break-point .main-header-menu > .menu-item > a,
.ast-masthead .ast-sitename-text {
  color: var(--tb-cream) !important;
  font-family: var(--tb-font-heading) !important;
  font-size: 12px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
}

/* Site title text — hidden (logo handles branding) */
.ast-site-title-wrap .site-title {
  display: none !important;
}

.main-header-menu > .menu-item > a:hover,
.main-header-menu > .current-menu-item > a {
  color: var(--tb-gold) !important;
}

/* Dropdown / Submenu Styling */
.main-header-menu .sub-menu,
.main-header-menu .children,
.ast-desktop-header-content .sub-menu {
  background: #151d18 !important;
  border: 1px solid rgba(196, 188, 177, 0.12) !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5) !important;
  padding: 8px 0 !important;
  min-width: 220px !important;
  z-index: 99999 !important;
}

/* Ensure parent menu items have relative positioning for dropdown */
.main-header-menu > .menu-item {
  position: relative;
  margin: 0 2px;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

.main-header-menu > .menu-item > a {
  padding: 0 14px !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Cart icon in header — give it breathing room */
.ast-site-header-cart,
.ast-header-woo-cart,
.tb-header-cart {
  margin-left: 12px !important;
  padding-right: 8px !important;
}

.main-header-menu .sub-menu .menu-item a,
.main-header-menu .children .menu-item a {
  color: rgba(232, 225, 213, 0.85) !important;
  font-family: var(--tb-font-heading) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 10px 24px !important;
  transition: color 0.3s, background 0.3s !important;
}

.main-header-menu .sub-menu .menu-item a:hover {
  color: var(--tb-gold) !important;
  background: rgba(209, 178, 140, 0.08) !important;
}

.main-header-menu .sub-menu .menu-item {
  background: transparent !important;
  border-bottom: none !important;
}

/* Custom logo sizing */
.site-logo-img .custom-logo,
.ast-header-custom-item .custom-logo {
  max-height: 50px;
  width: auto;
}


/* ── Header Cart ── */

.tb-nav-cart-btn {
  display: flex;
  align-items: center;
  position: relative;
  color: var(--tb-cream) !important;
  opacity: 0.8;
  transition: opacity 0.3s ease, color 0.3s ease;
}

.tb-nav-cart-btn:hover {
  opacity: 1;
  color: var(--tb-gold) !important;
}

.tb-cart-count {
  position: absolute;
  top: -8px;
  right: -10px;
  background: var(--tb-gold, #D1B28C);
  color: #0c100e;
  font-family: var(--tb-font-heading);
  font-size: 12px;
  font-weight: 700;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.tb-cart-count--empty {
  display: none;
}

/* ── Header Search ── */

.tb-nav-search-btn {
  display: flex;
  align-items: center;
  color: var(--tb-cream) !important;
  opacity: 0.8;
  transition: opacity 0.3s ease, color 0.3s ease;
}

.tb-nav-search-btn:hover {
  opacity: 1;
  color: var(--tb-gold) !important;
}

/* Search Overlay */
.tb-search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(12, 16, 14, 0.95);
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  backdrop-filter: blur(12px);
}

.tb-search-overlay.active {
  opacity: 1;
  visibility: visible;
}

.tb-search-overlay__inner {
  width: 90%;
  max-width: 700px;
  position: relative;
}

.tb-search-overlay__form {
  display: flex;
  border-bottom: 2px solid var(--tb-gold);
  padding-bottom: 8px;
}

.tb-search-overlay__input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--tb-font-display);
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  color: var(--tb-cream);
  padding: 12px 0;
}

.tb-search-overlay__input::placeholder {
  color: var(--tb-text-dim);
  opacity: 0.5;
}

.tb-search-overlay__submit {
  background: none;
  border: none;
  color: var(--tb-gold);
  cursor: pointer;
  padding: 12px;
  transition: opacity 0.3s ease;
}

.tb-search-overlay__submit:hover {
  opacity: 0.7;
}

.tb-search-overlay__close {
  position: absolute;
  top: -60px;
  right: 0;
  background: none;
  border: none;
  color: var(--tb-cream);
  font-size: 2.5rem;
  cursor: pointer;
  line-height: 1;
  opacity: 0.6;
  transition: opacity 0.3s ease, color 0.3s ease;
}

.tb-search-overlay__close:hover {
  opacity: 1;
  color: var(--tb-gold);
}


/* ── Footer ── */

/* Hide Astra default footer */
.ast-footer-overlay,
.site-footer,
.ast-small-footer {
  display: none !important;
}

/* ThornBloom Custom Footer */
.tb-footer {
  background-color: var(--tb-bg);
  border-top: 1px solid var(--tb-border);
  font-family: var(--tb-font-body);
}

.tb-footer__main {
  padding: 80px 0 60px;
}

.tb-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr 0.8fr 1.2fr;
  gap: 48px;
}

/* Brand column */
.tb-footer__logo {
  width: 60px;
  height: auto;
  margin-bottom: 20px;
  opacity: 0.9;
}

.tb-footer__tagline {
  color: var(--tb-text-dim);
  font-size: 0.9rem;
  line-height: 1.7;
  margin: 0 0 24px;
}

/* Social icons */
.tb-footer__social {
  display: flex;
  gap: 12px;
}

.tb-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--tb-border);
  color: var(--tb-cream);
  transition: all 0.3s var(--tb-ease);
}

.tb-footer__social-link:hover {
  border-color: var(--tb-gold);
  color: var(--tb-gold);
  background: rgba(209, 178, 140, 0.08);
}

.tb-footer__social-link svg {
  pointer-events: none;
  display: block;
}

/* Ensure footer is above particles */
#tb-footer,
.tb-footer {
  position: relative;
  z-index: 10;
}

/* Column headings */
.tb-footer__heading {
  font-family: var(--tb-font-heading);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tb-gold);
  margin: 0 0 20px;
}

/* Link lists */
.tb-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.tb-footer__links li {
  margin-bottom: 12px;
}

.tb-footer__links a {
  color: var(--tb-text-dim);
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.3s ease;
}

.tb-footer__links a:hover {
  color: var(--tb-gold);
}

/* Newsletter column */
.tb-footer__newsletter-text {
  color: var(--tb-text-dim);
  font-size: 0.88rem;
  line-height: 1.7;
  margin: 0 0 20px;
}

.tb-footer__form-row {
  display: flex;
  gap: 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--tb-border);
  transition: border-color 0.3s ease;
}

.tb-footer__form-row:focus-within {
  border-color: var(--tb-gold);
}

.tb-footer__input {
  flex: 1;
  padding: 12px 16px;
  border: none;
  background: var(--tb-surface);
  color: var(--tb-cream);
  font-family: var(--tb-font-body);
  font-size: 0.85rem;
  outline: none;
}

.tb-footer__input::placeholder {
  color: var(--tb-text-dim);
  opacity: 0.6;
}

.tb-footer__submit {
  padding: 12px 24px;
  border: none;
  background: linear-gradient(135deg, var(--tb-gold), var(--tb-gold-dark, #b89a6a));
  color: var(--tb-bg);
  font-family: var(--tb-font-heading);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.3s ease;
  white-space: nowrap;
}

.tb-footer__submit:hover {
  opacity: 0.85;
}

/* Copyright bar */
.tb-footer__bottom {
  border-top: 1px solid var(--tb-border);
  padding: 24px 0;
}

.tb-footer__bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tb-footer__copyright,
.tb-footer__credit {
  font-family: var(--tb-font-heading);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--tb-text-dim);
  margin: 0;
  opacity: 0.7;
}

/* Footer Responsive */
@media (max-width: 900px) {
  .tb-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .tb-footer__main {
    padding: 60px 0 40px;
  }
}

@media (max-width: 600px) {
  .tb-footer__grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .tb-footer__main {
    padding: 48px 0 32px;
  }

  .tb-footer__bottom-inner {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }
}


/* ── Sidebar & Widgets ── */
.widget,
.widget-title {
  color: var(--tb-text);
}

.widget-title {
  font-family: var(--tb-font-heading);
  color: var(--tb-white);
  font-size: 1rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--tb-border-hl);
  padding-bottom: 12px;
  margin-bottom: 20px;
}


/* ── Cards & Surfaces ── */
.tb-card {
  background: linear-gradient(160deg, var(--tb-surface) 0%, #131a20 100%);
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-radius-lg);
  padding: 32px;
  transition: all 0.4s var(--tb-ease);
}

.tb-card:hover {
  border-color: var(--tb-border-hl);
  transform: translateY(-4px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}

.tb-card--gold {
  border-color: var(--tb-gold-dark);
  background: linear-gradient(
    160deg,
    rgba(209, 178, 140, 0.08),
    var(--tb-forest-navy) 40%,
    var(--tb-surface) 100%
  );
}


/* ── Gold Divider Ornament ── */
.tb-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 48px auto;
  max-width: 300px;
}

.tb-divider::before,
.tb-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--tb-gold-dark), transparent);
}

.tb-divider__icon {
  color: var(--tb-gold);
  font-size: 1.2rem;
}


/* ── WooCommerce Product Overrides ── */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--tb-surface);
  border: 1px solid var(--tb-border);
  border-radius: var(--tb-radius-lg);
  padding: 0;
  overflow: hidden;
  transition: all 0.4s var(--tb-ease);
}

.woocommerce ul.products li.product:hover {
  border-color: var(--tb-border-hl);
  transform: translateY(-4px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--tb-font-heading) !important;
  color: var(--tb-white) !important;
  font-size: 1rem !important;
  letter-spacing: 0.08em;
  padding: 16px 20px 4px !important;
}

.woocommerce ul.products li.product .price {
  color: var(--tb-gold) !important;
  font-family: var(--tb-font-body) !important;
  font-size: 1.1rem !important;
  padding: 0 20px 16px;
}

.woocommerce ul.products li.product .price del {
  color: var(--tb-text-dim) !important;
}

.woocommerce ul.products li.product .price ins {
  color: var(--tb-gold-light) !important;
  text-decoration: none;
}

.woocommerce ul.products li.product .onsale {
  background: var(--tb-gold) !important;
  color: var(--tb-bg) !important;
  font-family: var(--tb-font-heading);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: var(--tb-radius);
}

.woocommerce ul.products li.product a.button {
  display: block;
  margin: 0 20px 20px;
  border-radius: var(--tb-radius);
  text-align: center;
  background: linear-gradient(135deg, var(--tb-gold), #b8975f) !important;
  color: var(--tb-bg, #0c100e) !important;
  font-family: var(--tb-font-heading) !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 14px 20px !important;
  border: none !important;
  transition: opacity 0.3s !important;
}

.woocommerce ul.products li.product a.button:hover {
  opacity: 0.85 !important;
}

/* ── WooCommerce Product Grid Mobile ── */
@media (max-width: 768px) {
  .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    max-width: 420px;
    margin: 0 auto !important;
    padding: 0 16px !important;
  }

  .woocommerce ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
  }

  .woocommerce ul.products li.product a img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 1rem !important;
    padding: 14px 16px 4px !important;
    text-align: center;
  }

  .woocommerce ul.products li.product .price {
    font-size: 1rem !important;
    padding: 0 16px 12px !important;
    text-align: center;
  }

  .woocommerce ul.products li.product a.button {
    margin: 0 16px 16px !important;
    padding: 16px 20px !important;
    font-size: 12px !important;
  }
}

@media (min-width: 481px) and (max-width: 768px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    max-width: 100%;
  }
}

/* ── Single Product Page — Global Fixes ── */

/* Hide Templett IDs in short description everywhere */
.woocommerce div.product .woocommerce-product-details__short-description {
  display: none !important;
}

/* Add to cart button — gold with dark text */
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product button.single_add_to_cart_button {
  background: linear-gradient(135deg, var(--tb-gold, #D1B28C), #b8975f) !important;
  color: var(--tb-bg, #0c100e) !important;
  font-family: var(--tb-font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: var(--tb-radius, 6px) !important;
  padding: 16px 32px !important;
  width: 100%;
  text-align: center;
  cursor: pointer;
}

.woocommerce div.product .single_add_to_cart_button:hover {
  opacity: 0.85 !important;
}

/* ── Single Product Mobile ── */
@media (max-width: 768px) {
  .woocommerce div.product {
    padding: 0 16px;
    overflow-x: hidden;
  }

  /* Force single column layout */
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .woocommerce div.product .product_title {
    font-size: 1.3rem !important;
    text-align: center;
    word-wrap: break-word;
  }

  .woocommerce div.product .price {
    text-align: center;
    font-size: 1.2rem !important;
  }

  .woocommerce div.product .single_add_to_cart_button {
    width: 100% !important;
    padding: 18px !important;
    font-size: 0.85rem !important;
  }

  /* Product images — contained */
  .woocommerce div.product div.images {
    margin-bottom: 24px;
    overflow: hidden;
  }

  .woocommerce div.product div.images img,
  .woocommerce div.product div.images .woocommerce-product-gallery__image img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
    border-radius: var(--tb-radius-lg);
  }

  /* Gallery thumbnails — wrap to grid on mobile, no scrollbar (2026-04-17) */
  .woocommerce div.product div.images .flex-control-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    overflow: hidden;
    padding: 8px 0;
    scrollbar-width: none;
  }

  .woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar {
    display: none;
  }

  .woocommerce div.product div.images .flex-control-thumbs li {
    flex: 0 0 60px;
    width: 60px !important;
    float: none !important;
  }

  .woocommerce div.product div.images .flex-control-thumbs li img {
    width: 60px !important;
    height: 60px !important;
    object-fit: cover;
    border-radius: 6px;
  }

  /* Quantity + button row */
  .woocommerce div.product form.cart {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .woocommerce div.product form.cart .quantity {
    width: 100%;
  }

  /* Payment buttons (Stripe express) */
  .woocommerce div.product .wc-stripe-payment-request-wrapper {
    max-width: 100% !important;
  }
}


/* ── Single Product Page ── */
.woocommerce div.product .product_title {
  font-family: var(--tb-font-display) !important;
  color: var(--tb-white) !important;
  font-size: clamp(1.8rem, 3vw, 2.5rem) !important;
}

.woocommerce div.product .price {
  color: var(--tb-gold) !important;
  font-size: 1.4rem !important;
}

.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-Tabs-panel {
  color: var(--tb-text);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--tb-font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tb-text-dim);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--tb-gold);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom-color: var(--tb-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  border-bottom-color: var(--tb-border);
}


/* ================================================================
   BEGIN LEGACY CLASSIC CART/CHECKOUT CSS - GATED OFF v2.7.49 (2026-04-22)
   Reason: /cart/ and /checkout/ now render via WC Blocks, not classic WC.
   These rules painted .entry-content cream with !important and beat the
   v2 body.tb-cart-v2 / body.tb-checkout-v2 dark-body cascade.
   Original preserved in full below (commented out). To rollback, remove
   the surrounding wrapper comment.
   ================================================================ */
/*
/* ── Cart & Checkout ── * /

/* Page background — dark outer * /
.woocommerce-cart,
.woocommerce-checkout {
  background: linear-gradient(180deg, #0c100e 0%, #111a1f 30%, #0f1a1e 60%, #0c100e 100%) !important;
}

.woocommerce-cart #content,
.woocommerce-checkout #content,
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content {
  background: transparent !important;
}

/* Header on cart/checkout — match site-wide dark header * /
.woocommerce-cart .ast-above-header-bar,
.woocommerce-checkout .ast-above-header-bar,
.woocommerce-cart .ast-primary-header-bar,
.woocommerce-checkout .ast-primary-header-bar,
.woocommerce-cart .ast-above-header,
.woocommerce-checkout .ast-above-header,
.woocommerce-cart #masthead,
.woocommerce-checkout #masthead,
.woocommerce-cart #masthead .ast-container,
.woocommerce-checkout #masthead .ast-container,
.woocommerce-cart #masthead *,
.woocommerce-checkout #masthead *,
.woocommerce-cart .ast-above-header-wrap,
.woocommerce-checkout .ast-above-header-wrap,
.woocommerce-cart .main-header-bar-wrap,
.woocommerce-checkout .main-header-bar-wrap,
.woocommerce-cart .ast-main-header-wrap,
.woocommerce-checkout .ast-main-header-wrap,
.woocommerce-cart header.site-header,
.woocommerce-checkout header.site-header {
  background: transparent !important;
  background-color: transparent !important;
}

/* Content ast-container only — not header * /
.woocommerce-cart .site-main .ast-container,
.woocommerce-checkout .site-main .ast-container,
.woocommerce-cart #primary .ast-container,
.woocommerce-checkout #primary .ast-container {
  background: transparent !important;
}

/* Cart/checkout styles handled via footer injection in functions.php * /

/* Inner content area — light cream (entry-content only) * /
.woocommerce-checkout .entry-content > .woocommerce,
.woocommerce-cart .entry-content > .woocommerce,
.woocommerce-checkout .ast-woocommerce-container,
.woocommerce-cart .ast-woocommerce-container,
body.woocommerce-checkout .site-main > article .entry-content,
body.woocommerce-cart .site-main > article .entry-content {
  background: var(--tb-cream, #E8E1D5) !important;
  border-radius: 12px !important;
  padding: 32px !important;
}

/* Hide Templett IDs / short description on cart/checkout/order summary * /
.woocommerce-cart .product-name dl.variation,
.woocommerce-cart .product-name .variation,
.woocommerce-checkout .product-name dl.variation,
.woocommerce-checkout .product-name .variation,
.woocommerce-cart table.cart .product-name .wc-item-meta,
.woocommerce-cart table.cart .product-name dd,
.woocommerce-cart table.cart .product-name dt,
.woocommerce-cart .product-name p,
.woocommerce-checkout .product-name p,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name p,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl {
  display: none !important;
}

/* Page title — forest green on dark bg * /
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-cart .page-title,
.woocommerce-checkout .page-title {
  font-family: var(--tb-font-display) !important;
  color: var(--tb-cream, #E8E1D5) !important;
  font-weight: 600 !important;
}

/* Section headings * /
.woocommerce-checkout .woocommerce h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
  font-family: var(--tb-font-display) !important;
  color: var(--tb-forest, #1A2F25) !important;
  letter-spacing: 0.05em;
  font-size: 1.3rem !important;
  font-weight: 600 !important;
  text-transform: none !important;
  margin-bottom: 20px !important;
}

/* Form container * /
.woocommerce-checkout .woocommerce form.checkout {
  background: transparent;
  border-radius: 0;
  border: none;
}

/* Labels * /
.woocommerce-checkout label,
.woocommerce-cart label {
  font-family: var(--tb-font-heading) !important;
  color: var(--tb-forest, #1A2F25) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.04em;
}

/* All text inside light panels — forest green (specific elements only) * /
body.woocommerce-checkout .site-main .entry-content p,
body.woocommerce-checkout .site-main .entry-content span,
body.woocommerce-checkout .site-main .entry-content div,
body.woocommerce-checkout .site-main .entry-content a,
body.woocommerce-checkout .site-main .entry-content li,
body.woocommerce-checkout .site-main .entry-content td,
body.woocommerce-checkout .site-main .entry-content th,
body.woocommerce-checkout .site-main .entry-content label,
body.woocommerce-checkout .site-main .entry-content h1,
body.woocommerce-checkout .site-main .entry-content h2,
body.woocommerce-checkout .site-main .entry-content h3,
body.woocommerce-cart .site-main .entry-content p,
body.woocommerce-cart .site-main .entry-content span,
body.woocommerce-cart .site-main .entry-content div,
body.woocommerce-cart .site-main .entry-content a,
body.woocommerce-cart .site-main .entry-content li,
body.woocommerce-cart .site-main .entry-content td,
body.woocommerce-cart .site-main .entry-content th,
body.woocommerce-cart .site-main .entry-content label,
body.woocommerce-cart .site-main .entry-content h1,
body.woocommerce-cart .site-main .entry-content h2,
body.woocommerce-cart .site-main .entry-content h3 {
  color: var(--tb-forest, #1A2F25) !important;
}

/* Links inside panels * /
body.woocommerce-checkout .site-main .entry-content a,
body.woocommerce-cart .site-main .entry-content a {
  color: var(--tb-forest, #1A2F25) !important;
}

body.woocommerce-checkout .site-main .entry-content a:hover,
body.woocommerce-cart .site-main .entry-content a:hover {
  color: var(--tb-gold, #D1B28C) !important;
}

/* Cart page upsell — override the !important forest color * /
body.woocommerce-cart .site-main .entry-content .tb-cart-page-upsell,
body.woocommerce-cart .site-main .entry-content .tb-cart-page-upsell p,
body.woocommerce-cart .site-main .entry-content .tb-cart-page-upsell span,
body.woocommerce-cart .site-main .entry-content .tb-cart-page-upsell div,
body.woocommerce-cart .site-main .entry-content .tb-cart-page-upsell strong,
body.woocommerce-cart .site-main .entry-content .tb-cart-page-upsell del {
  color: #E8E1D5 !important;
}

body.woocommerce-cart .site-main .entry-content .tb-cart-page-upsell a {
  color: #1A2F25 !important;
  text-decoration: none !important;
}

/* Buttons keep their own colors * /
body.woocommerce-checkout .site-main .entry-content .tb-btn *,
body.woocommerce-checkout .site-main .entry-content button *,
body.woocommerce-checkout .site-main .entry-content input[type="submit"],
body.woocommerce-checkout .site-main .entry-content #place_order,
body.woocommerce-cart .site-main .entry-content .tb-btn *,
body.woocommerce-cart .site-main .entry-content button *,
body.woocommerce-cart .site-main .entry-content .button,
body.woocommerce-cart .site-main .entry-content .checkout-button,
body.woocommerce-cart .site-main .entry-content .wc-proceed-to-checkout a {
  color: #0c100e !important;
}

/* Payment box text stays readable * /
body.woocommerce-checkout .site-main .entry-content #payment .payment_box * {
  color: var(--tb-sage, #526A5E) !important;
}

/* Cart table * /
.woocommerce-cart .woocommerce table.cart {
  background: #fff;
  border-radius: var(--tb-radius-lg);
  border: 1px solid var(--tb-taupe, #C4BCB1);
}

.woocommerce table.cart th {
  font-family: var(--tb-font-heading);
  color: var(--tb-forest, #1A2F25);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.8rem;
  background: rgba(26,47,37,0.06);
  border-bottom: 1px solid var(--tb-taupe, #C4BCB1);
}

.woocommerce table.cart td {
  border-top: 1px solid rgba(196,188,177,0.4);
  color: var(--tb-forest, #1A2F25);
}

.woocommerce table.cart td.product-name a {
  color: var(--tb-forest, #1A2F25) !important;
  font-family: var(--tb-font-heading);
  font-weight: 600;
}

.woocommerce table.cart td.product-name a:hover {
  color: var(--tb-gold, #D1B28C) !important;
}

.woocommerce table.cart .product-price,
.woocommerce table.cart .product-subtotal {
  color: var(--tb-forest, #1A2F25) !important;
  font-weight: 600 !important;
}

.woocommerce table.cart td.product-remove a {
  color: var(--tb-sage, #526A5E) !important;
}

.woocommerce table.cart td.product-remove a:hover {
  color: #c0392b !important;
  background: transparent !important;
}

/* Cart totals & Order review * /
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout .woocommerce-checkout-review-order h2,
.woocommerce-checkout .woocommerce-checkout-review-order h3,
.woocommerce-checkout #order_review_heading {
  font-family: var(--tb-font-display) !important;
  color: var(--tb-forest, #1A2F25) !important;
  font-weight: 600 !important;
  font-size: 1.3rem !important;
}

/* Order summary text readable * /
.woocommerce-checkout .woocommerce-checkout-review-order span,
.woocommerce-checkout .woocommerce-checkout-review-order p,
.woocommerce-checkout .woocommerce-checkout-review-order div,
.woocommerce-checkout .woocommerce-checkout-review-order a,
.woocommerce-cart .cart_totals span,
.woocommerce-cart .cart_totals p,
.woocommerce-cart .cart_totals div,
.woocommerce-cart .cart_totals a {
  color: var(--tb-forest, #1A2F25) !important;
}

.woocommerce-cart .cart_totals table,
.woocommerce-checkout .woocommerce-checkout-review-order-table {
  border: none !important;
}

.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td,
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
  border-top: 1px solid rgba(196,188,177,0.4) !important;
  color: var(--tb-forest, #1A2F25) !important;
  font-family: var(--tb-font-body) !important;
  padding: 12px 0 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name {
  color: var(--tb-forest, #1A2F25) !important;
  font-family: var(--tb-font-heading) !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total,
.woocommerce-cart .cart_totals .amount,
.woocommerce-checkout .order-total .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total span,
.woocommerce-cart .cart_totals .amount span {
  color: var(--tb-forest, #1A2F25) !important;
  font-weight: 700 !important;
}

/* Short description (Templett IDs) — hide on checkout/cart * /
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .variation,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name p,
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl {
  font-size: 12px !important;
  color: var(--tb-sage, #526A5E) !important;
  margin-top: 4px;
}

/* Coupon section * /
.woocommerce-cart .coupon input,
.woocommerce-checkout .woocommerce-form-coupon input {
  background: #fff !important;
  border-color: var(--tb-taupe, #C4BCB1) !important;
  color: var(--tb-forest, #1A2F25) !important;
}

/* Inputs on light bg * /
.woocommerce-cart input[type="text"],
.woocommerce-cart input[type="email"],
.woocommerce-cart input[type="number"],
.woocommerce-cart textarea,
.woocommerce-cart select,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .input-text {
  background: #fff !important;
  border: 1px solid var(--tb-taupe, #C4BCB1) !important;
  color: var(--tb-forest, #1A2F25) !important;
}

.woocommerce-cart input:focus,
.woocommerce-checkout input:focus,
.woocommerce-cart textarea:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-cart select:focus,
.woocommerce-checkout select:focus {
  border-color: var(--tb-gold, #D1B28C) !important;
  box-shadow: 0 0 0 3px rgba(209,178,140,0.15) !important;
}

/* Payment methods wrapper * /
.woocommerce-checkout #payment {
  background: #fff !important;
  border-radius: 12px !important;
  border: 1px solid var(--tb-taupe, #C4BCB1) !important;
}

.woocommerce-checkout #payment .payment_methods {
  border-bottom: 1px solid rgba(196,188,177,0.4) !important;
  padding: 0 !important;
}

.woocommerce-checkout #payment .payment_methods li {
  border-bottom: 1px solid rgba(196,188,177,0.3) !important;
  background: transparent !important;
}

.woocommerce-checkout #payment .payment_methods li label {
  color: var(--tb-forest, #1A2F25) !important;
  font-family: var(--tb-font-heading) !important;
  font-weight: 600 !important;
}

/* Payment box — light card area for Stripe readability * /
.woocommerce-checkout #payment .payment_box {
  background: var(--tb-cream, #E8E1D5) !important;
  color: #1A2F25 !important;
  border-radius: 10px !important;
  padding: 24px !important;
}

.woocommerce-checkout #payment .payment_box::before {
  border-bottom-color: var(--tb-cream, #E8E1D5) !important;
}

.woocommerce-checkout #payment .payment_box p,
.woocommerce-checkout #payment .payment_box span,
.woocommerce-checkout #payment .payment_box div {
  color: var(--tb-sage, #526A5E) !important;
  font-size: 0.85rem !important;
}

.woocommerce-checkout #payment .payment_box a {
  color: #1A2F25 !important;
  text-decoration: underline;
}

/* Stripe elements — light container * /
.woocommerce-checkout #payment .payment_box .wc-stripe-elements-field,
.woocommerce-checkout #payment .payment_box .stripe-card-group,
.woocommerce-checkout #payment .payment_box fieldset,
.woocommerce-checkout #payment .payment_box .wc-stripe-upe-element,
.woocommerce-checkout #payment .payment_box .payment-method-container,
.woocommerce-checkout #payment .payment_box > div,
.woocommerce-checkout #payment .payment_box .wc-block-components-text-input,
.woocommerce-checkout #payment #wc-stripe-card-element,
.woocommerce-checkout #payment .wc-stripe-upe-form {
  background: #fff !important;
  border: 1px solid var(--tb-taupe, #C4BCB1) !important;
  border-radius: 8px !important;
  color: #1A2F25 !important;
}

/* Stripe card labels * /
.woocommerce-checkout #payment .payment_box label,
.woocommerce-checkout #payment .payment_box .p-FieldLabel {
  color: #1A2F25 !important;
  font-family: var(--tb-font-body) !important;
}

/* Stripe test mode text * /
.woocommerce-checkout #payment .payment_box .wc-stripe-test-mode-notice,
.woocommerce-checkout #payment .payment_box .woocommerce-SavedPaymentMethods-saveNew {
  color: var(--tb-sage, #526A5E) !important;
  font-size: 0.8rem !important;
}

/* Save payment checkbox inside light box * /
.woocommerce-checkout #payment .payment_box .woocommerce-SavedPaymentMethods-saveNew label,
.woocommerce-checkout #payment .payment_box label {
  color: #1A2F25 !important;
}

/* Pay with Link / Google Pay buttons container * /
.woocommerce-checkout #payment .payment_box .wc-stripe-upe-element iframe,
.woocommerce-checkout .wc-stripe-payment-request-wrapper {
  border-radius: 8px !important;
}

/* Place order button * /
.woocommerce-checkout #place_order {
  background: linear-gradient(135deg, var(--tb-gold, #D1B28C), #b8975f) !important;
  color: #0c100e !important;
  font-family: var(--tb-font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 18px 40px !important;
  border: none !important;
  border-radius: 6px !important;
  width: 100% !important;
  transition: all 0.3s ease !important;
}

.woocommerce-checkout #place_order:hover {
  background: linear-gradient(135deg, #dfc4a3, var(--tb-gold, #D1B28C)) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 30px rgba(209,178,140,0.3) !important;
}

/* Return to cart link * /
.woocommerce-checkout .woocommerce-form-coupon-toggle + .woocommerce-info,
.woocommerce-checkout a.woocommerce-remove-coupon {
  color: var(--tb-gold, #D1B28C) !important;
}

/* Update cart button * /
.woocommerce-cart .woocommerce button[name="update_cart"] {
  background: transparent !important;
  border: 1px solid var(--tb-forest, #1A2F25) !important;
  color: var(--tb-forest, #1A2F25) !important;
}

.woocommerce-cart .woocommerce button[name="update_cart"]:hover {
  border-color: var(--tb-gold, #D1B28C) !important;
  color: var(--tb-gold, #D1B28C) !important;
  background: var(--tb-forest, #1A2F25) !important;
}

/* Checkout notices * /
.woocommerce-checkout .woocommerce-info,
.woocommerce-cart .woocommerce-info {
  background: rgba(26,47,37,0.06) !important;
  border-top-color: var(--tb-gold, #D1B28C) !important;
  color: var(--tb-forest, #1A2F25) !important;
}

.woocommerce-checkout .woocommerce-info a,
.woocommerce-cart .woocommerce-info a {
  color: var(--tb-gold, #D1B28C) !important;
}

/* Checkbox & radio * /
.woocommerce-checkout input[type="checkbox"],
.woocommerce-checkout input[type="radio"] {
  accent-color: var(--tb-gold, #D1B28C);
}

/* Checkbox labels * /
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout .wc-block-components-checkbox__label {
  color: var(--tb-forest, #1A2F25) !important;
  font-size: 0.9rem !important;
}

/* Privacy policy & terms text * /
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p,
.woocommerce-checkout .woocommerce-privacy-policy-text p {
  color: var(--tb-sage, #526A5E) !important;
  font-size: 0.85rem !important;
}

.woocommerce-checkout .woocommerce-privacy-policy-text a,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
  color: var(--tb-gold, #D1B28C) !important;
}

/* Order notes textarea * /
.woocommerce-checkout .woocommerce-additional-fields textarea {
  min-height: 80px;
}

/* Billing address saved display * /
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
  color: var(--tb-forest, #1A2F25) !important;
}

.woocommerce-checkout .woocommerce-input-wrapper strong,
.woocommerce-checkout address {
  color: var(--tb-forest, #1A2F25) !important;
}

/* Edit billing link * /
.woocommerce-checkout a.edit-address-link,
.woocommerce-checkout .wc-block-components-address-card__edit {
  color: var(--tb-gold, #D1B28C) !important;
}

/* Stripe iframe forced dark — override any white backgrounds inside payment box * /
.woocommerce-checkout #payment .payment_box *:not(iframe) {
  color: inherit;
}

/* GPay / Link button row * /
.woocommerce-checkout .wc-stripe-payment-request-wrapper,
.woocommerce-checkout #wc-stripe-payment-request-button-separator {
  color: var(--tb-sage, #526A5E) !important;
}

.woocommerce-checkout #wc-stripe-payment-request-button-separator::before,
.woocommerce-checkout #wc-stripe-payment-request-button-separator::after {
  background: rgba(209,178,140,0.15) !important;
}

/* Order summary product image * /
.woocommerce-checkout .woocommerce-checkout-review-order-table img {
  border-radius: 6px;
  border: 1px solid rgba(209,178,140,0.1);
}

/* Cart quantity input * /
.woocommerce-cart .woocommerce table.cart .quantity input.qty {
  background: #fff !important;
  border: 1px solid var(--tb-taupe, #C4BCB1) !important;
  color: var(--tb-forest, #1A2F25) !important;
  width: 60px !important;
  text-align: center !important;
  border-radius: 6px !important;
}

/* Cart product thumbnail * /
.woocommerce-cart table.cart img {
  border-radius: 8px !important;
  border: 1px solid rgba(209,178,140,0.1) !important;
}

/* Cart coupon row * /
.woocommerce-cart .coupon {
  display: flex;
  gap: 10px;
  align-items: center;
}

.woocommerce-cart .coupon .input-text {
  flex: 1;
}

.woocommerce-cart .coupon .button {
  white-space: nowrap;
}

/* Cart actions row * /
.woocommerce-cart table.cart td.actions {
  border-top: 1px solid rgba(209,178,140,0.1) !important;
  padding: 20px !important;
}

/* Empty cart * /
.woocommerce-cart .cart-empty {
  font-family: var(--tb-font-body) !important;
  color: var(--tb-sage, #526A5E) !important;
  font-size: 1.1rem !important;
  text-align: center;
  padding: 60px 0 !important;
}

.woocommerce-cart .return-to-shop a {
  background: linear-gradient(135deg, var(--tb-gold, #D1B28C), #b8975f) !important;
  color: #0c100e !important;
  font-family: var(--tb-font-heading) !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 16px 40px !important;
  border-radius: 6px !important;
  display: inline-block;
}

/* Cart totals proceed button * /
.woocommerce-cart .cart_totals .wc-proceed-to-checkout a {
  background: linear-gradient(135deg, var(--tb-gold, #D1B28C), #b8975f) !important;
  color: #0c100e !important;
  font-family: var(--tb-font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 18px 40px !important;
  border-radius: 6px !important;
  display: block !important;
  text-align: center !important;
  width: 100% !important;
  transition: all 0.3s ease !important;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout a:hover {
  background: linear-gradient(135deg, #dfc4a3, var(--tb-gold, #D1B28C)) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 30px rgba(209,178,140,0.3) !important;
}

/* Responsive cart & checkout * /
@media (max-width: 768px) {
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
  }

  .woocommerce-cart table.cart .product-thumbnail {
    width: 60px !important;
  }

  .woocommerce-cart table.cart td {
    padding: 10px 8px !important;
  }

  .woocommerce-cart .coupon {
    flex-direction: column;
  }

  .woocommerce-cart .cart_totals {
    width: 100% !important;
    float: none !important;
  }
}

*/
/* ================================================================
   END LEGACY CLASSIC CART/CHECKOUT CSS
   ================================================================ */

/* ── Forms ── */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
textarea,
select,
.woocommerce .input-text {
  background: var(--tb-surface) !important;
  border: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius) !important;
  color: var(--tb-cream) !important;
  font-family: var(--tb-font-body) !important;
  font-size: 1rem !important;
  padding: 12px 16px !important;
  transition: border-color 0.3s var(--tb-ease);
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--tb-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(209, 178, 140, 0.1) !important;
}

::placeholder {
  color: var(--tb-text-dim) !important;
  font-style: italic;
}


/* ── Scroll Reveal Animation ── */
.tb-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s var(--tb-ease), transform 0.8s var(--tb-ease);
}

.tb-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}


/* ── Gold Shimmer Text Effect ── */
/* opacity-based animation is GPU-composited (no paint on each frame) */
.tb-gold-text {
  background: linear-gradient(135deg, var(--tb-gold), var(--tb-gold-light), var(--tb-gold));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  will-change: opacity;
  animation: tb-shimmer 3s ease-in-out infinite;
}

@keyframes tb-shimmer {
  0%, 100% { opacity: 0.82; }
  50%       { opacity: 1; }
}


/* Hide mobile header icons on desktop */
.tb-mobile-header-icons {
  display: none;
}

/* ── Responsive ── */
@media (max-width: 921px) {
  /* Ensure mobile header bar is visible */
  .ast-header-break-point .ast-mobile-header-wrap {
    display: block !important;
  }

  .ast-header-break-point .ast-mobile-header-wrap .ast-primary-header-bar {
    display: block !important;
    background: linear-gradient(90deg, #1A2F25 0%, #1a2e35 50%, #1e2d3d 100%) !important;
  }

  /* Mobile dropdown menu — must match Astra's dynamic inline CSS selectors exactly */
  .ast-mobile-header-wrap .ast-mobile-header-content,
  .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
  .ast-mobile-popup-drawer .ast-mobile-popup-inner,
  .ast-mobile-header-content,
  .ast-mobile-popup-content,
  .ast-mobile-popup-drawer,
  .ast-mobile-popup-inner,
  .ast-builder-menu-mobile,
  .ast-header-break-point .main-header-menu,
  .ast-header-break-point .main-header-bar-navigation,
  .ast-header-break-point .ast-mobile-header-content {
    background-color: #0c100e !important;
    background: #0c100e !important;
  }

  /* Mobile menu links — covers both custom menus (.menu-item) and auto-generated (.page_item) */
  .ast-mobile-header-content a,
  .ast-mobile-popup-content a,
  .ast-builder-menu-mobile a,
  .ast-header-break-point .main-header-menu a {
    color: var(--tb-cream) !important;
    border-bottom-color: var(--tb-border) !important;
  }

  .ast-mobile-header-content a:hover,
  .ast-mobile-popup-content a:hover,
  .ast-builder-menu-mobile a:hover {
    color: var(--tb-gold) !important;
  }

  /* Mobile menu list styling */
  .ast-mobile-header-content li,
  .ast-mobile-popup-content li,
  .ast-builder-menu-mobile li {
    border-bottom: 1px solid var(--tb-border) !important;
  }

  /* Hide cart/search from inside mobile hamburger menu */
  .ast-header-break-point .tb-nav-cart-toggle,
  .ast-header-break-point .tb-nav-search-toggle,
  .ast-mobile-header-content .tb-nav-cart-toggle,
  .ast-mobile-header-content .tb-nav-search-toggle,
  .ast-mobile-popup-content .tb-nav-cart-toggle,
  .ast-mobile-popup-content .tb-nav-search-toggle {
    display: none !important;
  }

  /* Mobile header icons bar — cart + search next to hamburger */
  .tb-mobile-header-icons {
    display: flex !important;
    align-items: center;
    gap: 10px;
  }

  .tb-mobile-header-icons a {
    color: var(--tb-cream, #E8E1D5) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    text-decoration: none;
    position: relative;
  }

  .tb-mobile-header-icons a:hover {
    color: var(--tb-gold, #D1B28C) !important;
  }

  .tb-mobile-header-icons svg {
    width: 22px;
    height: 22px;
  }

  .tb-mobile-header-icons .tb-mobile-cart-count {
    position: absolute;
    top: 2px;
    right: 0;
    background: var(--tb-gold, #D1B28C);
    color: #0c100e;
    font-size: 12px;
    font-weight: 700;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }

  .tb-mobile-cart-count--empty {
    display: none !important;
  }

  /* Mobile menu toggle color */
  .ast-header-break-point .ast-button-wrap .ast-mobile-menu-trigger-minimal,
  .ast-header-break-point .ast-mobile-menu-buttons .ast-button-wrap .menu-toggle {
    color: var(--tb-cream) !important;
  }

  /* Close button in mobile menu */
  .ast-mobile-popup-close,
  .menu-toggle .ast-close {
    color: var(--tb-cream) !important;
  }

  /* Mobile sub-menu overrides — reset desktop dropdown styles */
  .ast-header-break-point .main-header-menu .sub-menu,
  .ast-mobile-header-content .sub-menu,
  .ast-mobile-popup-content .sub-menu,
  .ast-builder-menu-mobile .sub-menu {
    position: static !important;
    background: rgba(0, 0, 0, 0.15) !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-width: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }

  /* Mobile sub-menu items — indented with smaller text */
  .ast-header-break-point .main-header-menu .sub-menu .menu-item a,
  .ast-mobile-header-content .sub-menu a,
  .ast-mobile-popup-content .sub-menu a,
  .ast-builder-menu-mobile .sub-menu a {
    padding-left: 32px !important;
    font-size: 12px !important;
    color: rgba(232, 225, 213, 0.75) !important;
  }

  .ast-header-break-point .main-header-menu .sub-menu .menu-item a:hover,
  .ast-mobile-header-content .sub-menu a:hover,
  .ast-mobile-popup-content .sub-menu a:hover,
  .ast-builder-menu-mobile .sub-menu a:hover {
    color: var(--tb-gold) !important;
  }

  /* Sub-menu toggle arrow/caret */
  .ast-header-break-point .ast-menu-toggle,
  .ast-mobile-header-content .ast-menu-toggle,
  .ast-builder-menu-mobile .ast-menu-toggle {
    color: var(--tb-cream) !important;
    border-left: 1px solid var(--tb-border) !important;
  }
}

@media (max-width: 544px) {
  .tb-section-title {
    font-size: clamp(1.5rem, 6vw, 2rem);
  }

  .tb-btn,
  .wp-block-button__link {
    padding: 14px 28px;
    font-size: 12px;
  }
}


/* ═══════════════════════════════════════════
   Blog Archive / Listing Page
   Dark theme override for Astra defaults
   ═══════════════════════════════════════════ */

.blog .site-content,
.archive .site-content,
.search .site-content,
.blog .ast-container,
.archive .ast-container {
  background-color: #0c100e !important;
}

.blog .entry-title,
.archive .entry-title,
.blog .entry-title a,
.archive .entry-title a {
  color: var(--tb-cream) !important;
  font-family: var(--tb-font-display);
}

.blog .entry-title a:hover,
.archive .entry-title a:hover {
  color: var(--tb-gold) !important;
}

.blog .entry-content,
.blog .entry-content p,
.blog .entry-summary,
.blog .entry-summary p,
.archive .entry-content,
.archive .entry-content p,
.archive .entry-summary,
.archive .entry-summary p {
  color: var(--tb-text-dim) !important;
  font-family: var(--tb-font-body);
}

.blog .entry-meta,
.blog .entry-meta a,
.blog .entry-meta span,
.archive .entry-meta,
.archive .entry-meta a,
.archive .entry-meta span,
.blog .cat-links,
.blog .cat-links a,
.archive .cat-links,
.archive .cat-links a {
  color: var(--tb-gold) !important;
  font-family: var(--tb-font-heading);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.blog .ast-article-post,
.archive .ast-article-post,
.blog article.post,
.archive article.post,
.blog .ast-article-single,
.archive .ast-article-single {
  background: linear-gradient(135deg, #1A2F25 0%, #2C3E50 100%) !important;
  background-color: #1A2F25 !important;
  border: 1px solid rgba(196, 188, 177, 0.15) !important;
  border-radius: var(--tb-radius-lg);
  overflow: hidden;
  transition: all 0.4s var(--tb-ease);
  margin-bottom: 40px;
}

/* Blog grid layout — 3 columns on desktop */
.blog .ast-container .ast-row,
.archive .ast-container .ast-row,
.blog #primary .ast-row,
.archive #primary .ast-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
}

.blog .ast-container .ast-row .ast-col-md-6,
.blog .ast-container .ast-row .ast-col-md-4,
.blog .ast-container .ast-row .ast-col-md-12,
.blog .ast-container .ast-row > article,
.archive .ast-container .ast-row .ast-col-md-6,
.archive .ast-container .ast-row .ast-col-md-4,
.archive .ast-container .ast-row .ast-col-md-12,
.archive .ast-container .ast-row > article {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
}

@media (max-width: 900px) {
  .blog .ast-container .ast-row,
  .archive .ast-container .ast-row,
  .blog #primary .ast-row,
  .archive #primary .ast-row {
    grid-template-columns: 1fr !important;
    max-width: 600px;
    margin: 0 auto;
  }
}

.blog .ast-separate-container .ast-article-post,
.archive .ast-separate-container .ast-article-post {
  padding-bottom: 24px;
}

.blog .ast-article-post:hover,
.archive .ast-article-post:hover {
  border-color: var(--tb-gold) !important;
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.3);
}

.blog .ast-article-post .post-thumb-img-content,
.archive .ast-article-post .post-thumb-img-content {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.blog .ast-article-post .post-thumb-img-content img,
.archive .ast-article-post .post-thumb-img-content img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--tb-ease);
}

.blog .ast-article-post:hover .post-thumb-img-content img,
.archive .ast-article-post:hover .post-thumb-img-content img {
  transform: scale(1.05);
}

.blog .ast-article-post .entry-header,
.blog .ast-article-post .entry-content,
.blog .ast-article-post .entry-summary,
.blog .ast-article-post .entry-footer,
.archive .ast-article-post .entry-header,
.archive .ast-article-post .entry-content,
.archive .ast-article-post .entry-summary,
.archive .ast-article-post .entry-footer,
.blog article.post .entry-header,
.blog article.post .entry-content,
.blog article.post .entry-summary,
.blog article.post .entry-footer {
  padding-left: 24px;
  padding-right: 24px;
  background: transparent !important;
  background-color: transparent !important;
}

/* Force transparent on all inner wrappers */
.blog .ast-article-post *,
.archive .ast-article-post *,
.blog article.post .ast-article-inner,
.blog article.post .post-content,
.blog .ast-blog-single-element,
.archive .ast-blog-single-element {
  background-color: transparent !important;
}

/* Read more link */
.blog .read-more a,
.archive .read-more a,
.blog .ast-read-more-container a,
.archive .ast-read-more-container a {
  color: var(--tb-gold) !important;
  font-family: var(--tb-font-heading);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s ease;
}

.blog .read-more a:hover,
.archive .read-more a:hover,
.blog .ast-read-more-container a:hover,
.archive .ast-read-more-container a:hover {
  border-bottom-color: var(--tb-gold);
}

/* Pagination */
.blog .ast-pagination,
.archive .ast-pagination {
  margin-top: 48px;
}

.blog .ast-pagination a,
.blog .ast-pagination span,
.archive .ast-pagination a,
.archive .ast-pagination span {
  color: var(--tb-cream) !important;
  border-color: var(--tb-border) !important;
  background: var(--tb-surface) !important;
}

.blog .ast-pagination a:hover,
.archive .ast-pagination a:hover,
.blog .ast-pagination .current,
.archive .ast-pagination .current {
  background: var(--tb-gold) !important;
  color: var(--tb-bg) !important;
  border-color: var(--tb-gold) !important;
}

/* Page header / title */
.blog .ast-archive-description,
.archive .ast-archive-description {
  background-color: transparent !important;
}

.blog .ast-archive-description .page-title,
.archive .ast-archive-description .ast-archive-title {
  color: var(--tb-cream) !important;
  font-family: var(--tb-font-display);
}


/* ── Brand Differentiator Banner ── */
.tb-differentiator {
  padding: 4rem 0;
  text-align: center;
  position: relative;
}
.tb-differentiator__inner {
  max-width: 700px;
  margin: 0 auto;
  padding: 3rem 2rem;
  border-top: 1px solid var(--tb-gold, #D1B28C);
  border-bottom: 1px solid var(--tb-gold, #D1B28C);
}
.tb-differentiator__headline {
  font-family: var(--tb-font-display);
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  color: var(--tb-cream, #E8E1D5);
  margin: 1rem 0 0.75rem;
  line-height: 1.3;
}
.tb-differentiator__sub {
  font-family: var(--tb-font-body);
  font-size: 1.1rem;
  color: var(--tb-gold, #D1B28C);
  font-style: italic;
  margin: 0;
  letter-spacing: 0.02em;
}

/* ── Product Page Tagline Banner ── */
.tb-prod-tagline {
  padding: 2.5rem 0;
  text-align: center;
}
.tb-prod-tagline__inner {
  max-width: 600px;
  margin: 0 auto;
  padding: 1.5rem 2rem;
  border: 1px solid rgba(209, 178, 140, 0.3);
  border-radius: 4px;
  background: rgba(209, 178, 140, 0.05);
}
.tb-prod-tagline__text {
  font-family: var(--tb-font-display);
  font-size: clamp(1rem, 2vw, 1.25rem);
  color: var(--tb-gold, #D1B28C);
  margin: 0;
  line-height: 1.5;
  font-style: italic;
}


/* ============================================================
   CURATOR'S CHOICE BADGE + VALUE-MATH + WEDDING WEBSITE NUDGE
   Phase 2 pricing architecture deploy — 2026-04-07
   Editorial styling. NO discount-chip energy.
   ============================================================ */

/* --- Curator's Choice badge (shop card image corner) --- */
.tb-shop-card__image {
  position: relative;
}
.tb-curators-badge {
  display: inline-block;
  font-family: var(--tb-font-heading, 'Cinzel', Georgia, serif);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #D1B28C;
  background: rgba(12, 16, 14, 0.88);
  border: 1px solid rgba(209, 178, 140, 0.55);
  padding: 0.45rem 0.85rem;
  line-height: 1;
  font-weight: 600;
  white-space: nowrap;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.tb-curators-badge--card {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 4;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
}
.tb-curators-badge--hero {
  display: inline-block;
  margin-bottom: 0.75rem;
  vertical-align: middle;
}

/* --- Value-math line (sits under price) --- */
.tb-value-math {
  display: block;
  font-family: var(--tb-font-body, 'Cormorant Garamond', Georgia, serif);
  color: #C4BCB1;
  line-height: 1.45;
}
.tb-value-math em {
  font-style: italic;
  color: #C4BCB1;
}
.tb-value-math--card {
  font-size: 0.82rem;
  margin-top: 0.4rem;
  letter-spacing: 0.01em;
}
.tb-value-math--hero {
  font-size: 1rem;
  margin-top: 0.75rem;
  max-width: 38ch;
  color: #D1B28C;
}
.tb-value-math--hero em {
  color: #D1B28C;
}

/* --- Wedding Website upsell nudge (links to Digital Deluxe) --- */
.tb-website-nudge {
  display: block;
  font-family: var(--tb-font-body, 'Cormorant Garamond', Georgia, serif);
  font-size: 0.85rem;
  font-style: italic;
  color: #D1B28C;
  margin-top: 0.5rem;
  text-decoration: none;
  border-bottom: 1px dotted rgba(209, 178, 140, 0.4);
  padding-bottom: 0.15rem;
  width: fit-content;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.tb-website-nudge:hover,
.tb-website-nudge:focus {
  color: #DFC49E;
  border-bottom-color: rgba(223, 196, 158, 0.7);
}
.tb-website-nudge--card {
  font-size: 0.78rem;
}
.tb-website-nudge--hero {
  font-size: 0.95rem;
  margin-top: 0.85rem;
}

/* --- Mobile tightening --- */
@media (max-width: 600px) {
  .tb-curators-badge--card {
    font-size: 12px;
    padding: 0.35rem 0.65rem;
    top: 8px;
    left: 8px;
  }
  .tb-value-math--card {
    font-size: 0.78rem;
  }
  .tb-value-math--hero {
    font-size: 0.95rem;
  }
}

/* ============================================================
   Stretched-link pattern for tb-shop-card (div wrapper)
   So the whole card stays clickable while the wedding-website
   nudge remains an independent link to the Digital Deluxe Suite.
   ============================================================ */
.tb-shop-card--has-stretch {
  position: relative;
}
.tb-shop-card__stretch-link {
  color: inherit;
  text-decoration: none;
  display: block;
}
.tb-shop-card__stretch-link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: auto;
}
.tb-shop-card--has-stretch .tb-shop-card__title a {
  color: inherit;
  text-decoration: none;
}
/* Keep the wedding-website nudge clickable above the stretch-link */
.tb-website-nudge--linked {
  position: relative;
  z-index: 2;
  cursor: pointer;
}

/* ThornBloom link color override — scoped to blog/page content (2026-04-09) */
.entry-content a,
.entry-content a:visited { color: #D1B28C; }
.entry-content a:hover,
.entry-content a:focus { color: #B8945F; text-decoration: underline; }

/* ═══════════════════════════════════════════
   Inline <code> on dark blog content
   Transparent approach — no background box,
   just Candlelight Amber colored text.
   Updated 2026-04-09
   ═══════════════════════════════════════════ */
.entry-content code,
.post-content code,
article code:not(pre code) {
    background: transparent !important;
    color: #C4956A !important; /* Candlelight Amber */
    border: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    font-size: inherit !important;
    font-family: inherit !important;
}

/* === BEGIN: badge-overlap-fix 2026-04-17-v2 === */
/* ===========================================================
 * Badge Overlap Safety CSS — 2026-04-17 v2
 * Append to wp-content/themes/thornbloom-child/style.css
 * (or include via a new asset file enqueued after the main stylesheet).
 *
 * Context: The hardcoded GWS card in template-collection.php
 * rendered TWO absolutely-positioned corner elements inside the
 * same .tb-col-products__img-wrap:
 *   - .tb-col-products__piece-count   ("25 Pieces")
 *   - .tb-col-products__badge--coming ("Founders' Pricing")
 *
 * The hardcoded block has been deleted (see
 * hardcoded-cards-removed-2026-04-17.md), so the overlap is
 * eliminated at the source. These rules are a defensive layer
 * to prevent the same stacking if a future card adds both
 * elements again.
 * =========================================================== */

/* Piece count: pin top-right. */
.tb-col-products__img-wrap .tb-col-products__piece-count {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
}

/* Coming / Founders corner badge: pin top-LEFT so it never collides
 * with the right-side piece count. */
.tb-col-products__img-wrap .tb-col-products__badge--coming {
  position: absolute;
  top: 12px;
  left: 12px;
  right: auto;
  z-index: 2;
}

/* Curator's Choice badge defaults to top-left; when it coexists with
 * a --coming badge, push --coming down under it with a gap. */
.tb-col-products__img-wrap .tb-curators-badge--card + .tb-col-products__badge--coming,
.tb-col-products__img-wrap .tb-curators-badge + .tb-col-products__badge--coming {
  top: 50px; /* sit below the Curator's Choice badge */
}

/* Homepage tier card: ensure --launching badge (Founders) and
 * item-count paragraph don't visually collide at small widths. */
@media (max-width: 480px) {
  .tb-tier__badge--launching {
    position: static;
    display: inline-block;
    margin-bottom: 10px;
  }
}

/* === END: badge-overlap-fix 2026-04-17-v2 === */

/* === BEGIN: badge-overlap-fix 2026-04-17-v3 === */
/* ===========================================================
 * Badge Overlap Fix v3 — 2026-04-17
 *
 * Context: Piece-count pills ("6 PIECES", "8 PIECES", "25 PIECES")
 * were rendering as absolutely-positioned corner badges inside
 * .tb-col-products__img-wrap and colliding with TEXT BAKED INTO
 * product thumbnails (e.g. the word "BUNDLE" on the Essentials
 * Suite marketing card, and the welcome-sign layout on the Signs
 * Collection thumbnail).
 *
 * v3 fix: Template now renders <span class="tb-col-products__piece-count">
 * INSIDE .tb-col-products__info (above the <h3> title) — no longer
 * over the image. These rules convert the pill to inline flow and
 * undo the absolute positioning set by assets/css/templates.css and
 * the v2 override above.
 *
 * Scope: bundle/suite cards on collection pages
 *        (/collections/enchanted-forest/ and future collections).
 * =========================================================== */

.tb-col-products__info > .tb-col-products__piece-count {
  position: static;
  display: inline-block;
  top: auto;
  right: auto;
  left: auto;
  margin: 0 0 8px 0;
  background: #0c100e;
  border: 1px solid rgba(209,178,140,0.5);
  color: #D1B28C;
  font-family: 'Cinzel', Georgia, serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  padding: 4px 10px;
  border-radius: 20px;
  text-transform: uppercase;
  line-height: 1.3;
  z-index: auto;
}

/* Safety: if any future card still places a piece-count inside
 * .tb-col-products__img-wrap, the v2 rules above pin it top-right
 * with a solid #0c100e backdrop. Not removing those. */

/* === END: badge-overlap-fix 2026-04-17-v3 === */


/* === BEGIN: coupon-code-styling 2026-04-17-v4 === */
/* ===========================================================
 * Coupon Code Chip Styling — 2026-04-17 v4
 * Target: <code> elements in WooCommerce product descriptions
 *         (both short-description and the long-description tab).
 *
 * Problem: Products 691 + 692 reference <code>thornbloom10</code>
 * for the Prints of Love affiliate code. With no brand style on
 * <code>, the element falls back to the browser default
 * (light-gray pill with dark text) which is nearly invisible on
 * ThornBloom's dark product page surface.
 *
 * Fix: Render <code> as a brand-aligned coupon chip — dark
 * surface, warm-soft-gold text, subtle gold outline, monospace
 * with slight tracking. Inherits font-size so it sits flush
 * with the surrounding body type at any scale.
 *
 * Scoped to WooCommerce product content so blog/general content
 * continues to honor the existing .entry-content code rule
 * (line 2665, transparent amber inline).
 * =========================================================== */
.woocommerce div.product .woocommerce-product-details__short-description code,
.woocommerce div.product .woocommerce-Tabs-panel code,
.woocommerce div.product .entry-summary code,
.woocommerce div.product .tb-prod-tabs__panel code,
.tb-product-v2 .long-description code {
  display: inline-block;
  background: var(--tb-surface, #131c1f);
  color: var(--tb-gold, #D1B28C);
  border: 1px solid rgba(209, 178, 140, 0.4);
  border-radius: 4px;
  padding: 3px 8px;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: inherit;
  line-height: 1.4;
  letter-spacing: 0.04em;
  vertical-align: baseline;
}
/* === END: coupon-code-styling 2026-04-17-v4 === */

/* ═══════════════════════════════════════════════════════════
   GWS LIVE CTA — replaces launching-soon MailerLite signup
   Shown only on /grand-wedding-suite/ after 2026-04-17 launch.
   ═══════════════════════════════════════════════════════════ */
.tb-bundle-live-cta-wrap {
  padding: 2.5rem 1.25rem 1rem;
}
.tb-bundle-live-cta {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  padding: 2rem 1.5rem;
  background: linear-gradient(180deg, rgba(209,178,140,0.06), rgba(209,178,140,0.02));
  border: 1px solid rgba(209, 178, 140, 0.25);
  border-radius: 6px;
}
.tb-bundle-live-cta .tb-btn--lg {
  display: inline-block;
  padding: 1rem 2.25rem;
  font-size: 1.1rem;
  letter-spacing: 0.06em;
}
.tb-bundle-live-cta__note {
  margin: 1rem 0 0;
  font-family: var(--tb-font-body);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--tb-taupe, #C4BCB1);
  opacity: 0.85;
}
@media (max-width: 600px) {
  .tb-bundle-live-cta { padding: 1.5rem 1rem; }
  .tb-bundle-live-cta .tb-btn--lg { padding: 0.9rem 1.5rem; font-size: 1rem; }
}
/* === END: gws-live-cta 2026-04-17 === */

/* ═══════════════════════════════════════════════════════════
   TASK K (2026-04-17) — "Every Piece. One Realm." v2 cards
   Scoped to .tb-shop-collection / .tb-ef-product--v2 so the
   restyle doesn't bleed into other tb-ef-product grids.
   Editorial / dark-luxury pass: price chip, image fade,
   ghost CTA, hover glow, equal heights, softer corners.
   ═══════════════════════════════════════════════════════════ */

.tb-shop-collection .tb-ef-products {
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    margin-top: 56px;
}

.tb-shop-collection .tb-ef-product--v2 {
    position: relative;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, rgba(255,255,255,0.035) 0%, rgba(12,16,14,0.55) 100%);
    border: 1px solid rgba(209,178,140,0.18);
    border-radius: 8px;
    overflow: hidden;
    transition: border-color .35s ease, transform .35s ease, box-shadow .35s ease;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.015), 0 2px 14px rgba(0,0,0,0.3);
}

.tb-shop-collection .tb-ef-product--v2:hover {
    border-color: rgba(209,178,140,0.55);
    transform: translateY(-4px);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.02), 0 0 32px rgba(209,178,140,0.15), 0 8px 24px rgba(0,0,0,0.45);
}

/* Image wrap with fade-to-card gradient */
.tb-shop-collection .tb-ef-product--v2 .tb-ef-product__img-wrap {
    position: relative;
    aspect-ratio: 1/1;
    overflow: hidden;
    background: var(--tb-forest);
}

.tb-shop-collection .tb-ef-product--v2 .tb-ef-product__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.tb-shop-collection .tb-ef-product--v2:hover .tb-ef-product__img {
    transform: scale(1.04);
}

.tb-shop-collection .tb-ef-product__img-fade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 60px;
    background: linear-gradient(180deg, rgba(12,16,14,0) 0%, rgba(12,16,14,0.85) 100%);
    pointer-events: none;
    z-index: 2;
}

/* Price chip, top-right over image */
.tb-shop-collection .tb-ef-product__price-chip {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 3;
    padding: 6px 12px;
    background: rgba(12,16,14,0.78);
    border: 1px solid rgba(209,178,140,0.45);
    border-radius: 999px;
    font-family: var(--tb-font-heading, 'ivypresto-display', 'Cinzel Decorative', serif);
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    color: #D1B28C;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.tb-shop-collection .tb-ef-product__price-chip .woocommerce-Price-amount,
.tb-shop-collection .tb-ef-product__price-chip bdi {
    color: #D1B28C !important;
    font-family: inherit !important;
    font-size: inherit !important;
}
.tb-shop-collection .tb-ef-product__price-chip .woocommerce-Price-currencySymbol {
    color: #D1B28C !important;
    margin-right: 1px;
}

/* Info block — flex column, CTA pinned to bottom */
.tb-shop-collection .tb-ef-product--v2 .tb-ef-product__info {
    padding: 18px 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.tb-shop-collection .tb-ef-product--v2 .tb-ef-product__name {
    font-family: 'ivypresto-display', 'Cinzel Decorative', serif;
    font-size: 1.12rem;
    line-height: 1.3;
    color: #D1B28C;
    margin: 0;
}

.tb-shop-collection .tb-ef-product--v2 .tb-ef-product__name a {
    color: inherit;
    text-decoration: none;
    transition: color .25s ease;
}
.tb-shop-collection .tb-ef-product--v2 .tb-ef-product__name a:hover {
    color: #E8E1D5;
}

/* Task L (2026-04-17) — single-line tagline replaces long short-description.
   Pulled from _tb_card_tagline post_meta; cards render ~40% shorter. */
.tb-shop-collection .tb-ef-product--v2 .tb-ef-product__tagline {
    font-family: var(--tb-font-body);
    font-size: 0.92rem;
    font-style: italic;
    color: rgba(232,225,213,0.78);
    line-height: 1.4;
    margin: 0;
    /* Keep to a single visual line at card width; ellipsize if overflow */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Ghost gold CTA — editorial, not generic ecommerce rectangle */
.tb-shop-collection .tb-btn--ghost-gold {
    display: inline-block;
    margin-top: auto;
    padding: 10px 20px;
    background: transparent;
    border: 1px solid #D1B28C;
    border-radius: 2px;
    color: #D1B28C;
    font-family: var(--tb-font-heading, 'ivypresto-display', serif);
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    transition: background .3s ease, color .3s ease, letter-spacing .3s ease;
    align-self: flex-start;
}

.tb-shop-collection .tb-btn--ghost-gold:hover,
.tb-shop-collection .tb-btn--ghost-gold:focus {
    background: #D1B28C;
    color: #0C100E;
    letter-spacing: 0.22em;
}

/* Neutralize the global .woocommerce save / pin overlay inside this section */
.tb-shop-collection .pinit-hover,
.tb-shop-collection .tb-ef-product--v2 a[class*="pin"],
.tb-shop-collection .tb-ef-product--v2 .save-button,
.tb-shop-collection .tb-ef-product--v2 .pinterest-save {
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}
.tb-shop-collection .tb-ef-product--v2:hover .pinit-hover,
.tb-shop-collection .tb-ef-product--v2:hover a[class*="pin"],
.tb-shop-collection .tb-ef-product--v2:hover .save-button,
.tb-shop-collection .tb-ef-product--v2:hover .pinterest-save {
    opacity: 0.85;
}

/* Responsive */
@media (max-width: 1024px) {
    .tb-shop-collection .tb-ef-products {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media (max-width: 768px) {
    .tb-shop-collection .tb-ef-products {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 40px;
    }
    .tb-shop-collection .tb-ef-product--v2 .tb-ef-product__info {
        padding: 14px 16px 16px;
        gap: 8px;
    }
    .tb-shop-collection .tb-ef-product__price-chip {
        top: 12px;
        right: 12px;
        font-size: 0.78rem;
        padding: 5px 10px;
    }
}
/* END TASK K v2 cards */


/* =====================================================
   Stacked Realm Sections — Homepage
   2026-05-10
   Each realm is palette-scoped via data-realm attribute.
   ===================================================== */

/* ---------- Realm Font Tokens ---------- */
:root {
  --tb-font-display-romance: 'ivybodoni', 'Cinzel', Georgia, serif;
  --tb-font-ui: 'Cinzel', Georgia, serif;
}

/* ---------- Realm Palette Scopes ---------- */
[data-realm="dark-romance"] {
  --realm-bg: #1A1015;
  --realm-primary: #5C1A1B;
  --realm-secondary: #351E28;
  --realm-metallic: #C4956A;
  --realm-metallic-bright: #D4A57A;
  --realm-cream: #E5DDD2;
  --realm-muted: #A89A95;
  --realm-border: rgba(196, 149, 106, 0.25);
  --realm-border-strong: rgba(196, 149, 106, 0.45);
  --realm-font-display: var(--tb-font-display-romance);
  --realm-btn-bg: #5C1A1B;
  --realm-btn-text: #C4956A;
  --realm-btn-hover-bg: #351E28;
  --realm-btn-hover-text: #D4A57A;
}

[data-realm="enchanted-forest"] {
  --realm-bg: #1A2F25;
  --realm-primary: #1A2F25;
  --realm-secondary: #2d4a3a;
  --realm-metallic: #D1B28C;
  --realm-metallic-bright: #E1C29A;
  --realm-cream: #E8E1D5;
  --realm-muted: #526A5E;
  --realm-border: rgba(209, 178, 140, 0.2);
  --realm-border-strong: rgba(209, 178, 140, 0.4);
  --realm-font-display: var(--tb-font-display);
  --realm-btn-bg: #D1B28C;
  --realm-btn-text: #1A2F25;
  --realm-btn-hover-bg: #E1C29A;
  --realm-btn-hover-text: #1A2F25;
}

/* ---------- Realm Section (repeatable pattern) ---------- */
.realm-section {
  position: relative;
  width: 100%;
  background: var(--realm-bg);
  color: var(--realm-cream);
  overflow: hidden;
}

.realm-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 100px 24px;
  position: relative;
  z-index: 1;
}

@media (min-width: 768px) {
  .realm-inner { padding: 140px 56px; }
}

/* ---------- Eyebrow ---------- */
.realm-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--tb-font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--realm-metallic);
  margin-bottom: 28px;
}

.realm-eyebrow::before,
.realm-eyebrow::after {
  content: '';
  width: 36px;
  height: 1px;
  background: var(--realm-metallic);
  opacity: 0.45;
}

/* ---------- Headline ---------- */
.realm-headline {
  font-family: var(--realm-font-display);
  font-weight: 600;
  font-size: clamp(2rem, 6vw, 3.8rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--realm-cream);
  margin-bottom: 20px;
  max-width: 720px;
}

.realm-headline em {
  font-style: italic;
  font-weight: 500;
}

/* ---------- Promise Paragraph ---------- */
.realm-promise {
  font-family: var(--tb-font-body);
  font-size: 1.15rem;
  line-height: 1.75;
  color: var(--realm-muted);
  max-width: 560px;
  margin-bottom: 40px;
}

/* ---------- Two-Column Layout ---------- */
.realm-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  margin-top: 56px;
}

@media (min-width: 768px) {
  .realm-grid {
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
  }
}

/* Image Column */
.realm-image {
  position: relative;
  aspect-ratio: 4 / 5;
  background: var(--realm-secondary);
  border: 1px solid var(--realm-border);
  overflow: hidden;
}

.realm-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.realm-image-badge {
  position: absolute;
  top: 20px;
  left: 20px;
  font-family: var(--tb-font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 8px 16px;
  background: var(--realm-primary);
  color: var(--realm-metallic);
  border: 1px solid var(--realm-border);
}

/* Info Column */
.realm-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.realm-collection-name {
  font-family: var(--realm-font-display);
  font-weight: 600;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  line-height: 1.12;
  color: var(--realm-cream);
}

.realm-tagline {
  font-family: var(--tb-font-body);
  font-size: 1.1rem;
  font-style: italic;
  color: var(--realm-metallic);
  line-height: 1.5;
}

.realm-description {
  font-family: var(--tb-font-body);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--realm-muted);
  max-width: 480px;
}

.realm-meta {
  font-family: var(--tb-font-ui);
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--realm-muted);
  margin-top: 8px;
}

/* ---------- CTA Button ---------- */
.realm-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 36px;
  font-family: var(--tb-font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border: 1px solid transparent;
  border-radius: 2px;
  cursor: pointer;
  transition: all 0.35s ease;
  white-space: nowrap;
  margin-top: 12px;
  text-decoration: none;
}

.realm-cta--filled {
  background: var(--realm-btn-bg);
  color: var(--realm-btn-text);
  border-color: var(--realm-btn-bg);
}
.realm-cta--filled:hover {
  background: var(--realm-btn-hover-bg);
  color: var(--realm-btn-hover-text);
  border-color: var(--realm-btn-hover-bg);
  transform: translateY(-1px);
}

[data-realm="dark-romance"] .realm-cta--filled {
  background: var(--realm-btn-bg);
  color: var(--realm-btn-text);
  border-color: var(--realm-metallic);
}
[data-realm="dark-romance"] .realm-cta--filled:hover {
  background: var(--realm-btn-hover-bg);
  color: var(--realm-btn-hover-text);
  border-color: var(--realm-metallic-bright);
  transform: translateY(-1px);
}

.realm-cta--ghost {
  background: transparent;
  color: var(--realm-metallic);
  border-color: var(--realm-border-strong);
}
.realm-cta--ghost:hover {
  background: rgba(255, 255, 255, 0.04);
  color: var(--realm-metallic-bright);
  border-color: var(--realm-metallic);
}

.realm-cta:focus-visible {
  outline: 2px solid var(--realm-metallic);
  outline-offset: 3px;
}

.realm-cta-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 24px;
}

/* ---------- Section Divider ---------- */
.realm-divider {
  position: relative;
  width: 100%;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(
    180deg,
    var(--divider-from, #1A1015) 0%,
    #0c100e 50%,
    var(--divider-to, #1A2F25) 100%
  );
  height: 120px;
}

.realm-divider-line {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
}

.realm-divider-line::before,
.realm-divider-line::after {
  content: '';
  width: 80px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #D1B28C, transparent);
  opacity: 0.4;
}

@media (min-width: 768px) {
  .realm-divider-line::before,
  .realm-divider-line::after {
    width: 160px;
  }
}

.realm-divider-ornament {
  font-size: 14px;
  color: #D1B28C;
  opacity: 0.5;
  line-height: 1;
}

/* ---------- Ambient Particles ---------- */
.realm-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}

.realm-particle {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--realm-metallic);
  filter: blur(0.6px);
  box-shadow:
    0 0 8px var(--realm-metallic),
    0 0 18px rgba(209, 178, 140, 0.3);
  opacity: 0;
  animation: particle-drift var(--dur, 9s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}

@keyframes particle-drift {
  0%, 100% { opacity: 0; transform: translateY(0) translateX(0); }
  15% { opacity: 0.7; }
  50% { opacity: 0.25; transform: translateY(-20px) translateX(12px); }
  85% { opacity: 0.6; }
}

/* ---------- Vignette Overlay ---------- */
.realm-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

[data-realm="dark-romance"] .realm-vignette {
  background: radial-gradient(
    ellipse 80% 60% at 50% 50%,
    transparent 40%,
    rgba(26, 16, 21, 0.6) 100%
  );
}

[data-realm="enchanted-forest"] .realm-vignette {
  background: radial-gradient(
    ellipse 80% 60% at 50% 50%,
    transparent 40%,
    rgba(26, 47, 37, 0.6) 100%
  );
}

/* ---------- Subtle Top Edge Gradient ---------- */
.realm-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent 10%, var(--realm-metallic) 50%, transparent 90%);
  opacity: 0.2;
  z-index: 2;
}

/* ---------- Selection Color (per-realm) ---------- */
[data-realm="dark-romance"] ::selection {
  background: #C4956A;
  color: #1A1015;
}

[data-realm="enchanted-forest"] ::selection {
  background: #D1B28C;
  color: #1A2F25;
}

/* ---------- Reduced Motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .realm-particle { animation: none; opacity: 0; }
}

/* ---------- Mobile Polish ---------- */
@media (max-width: 767px) {
  .realm-headline {
    font-size: 2rem;
  }

  .realm-grid {
    gap: 36px;
  }

  .realm-image {
    aspect-ratio: 3 / 4;
  }

  .realm-cta {
    width: 100%;
    justify-content: center;
    padding: 18px 24px;
  }

  .realm-cta-row {
    flex-direction: column;
  }

  .realm-eyebrow::before,
  .realm-eyebrow::after {
    width: 20px;
  }

  .realm-divider {
    height: 80px;
  }
}

/* ---------- Large Desktop ---------- */
@media (min-width: 1440px) {
  .realm-inner {
    padding: 160px 80px;
  }
}
/* END Stacked Realm Sections */


/* Fix: Override .tb-home-v3 a color for realm CTAs */
.tb-home-v3 a.realm-cta--filled {
  color: var(--realm-btn-text);
  text-decoration: none;
}
.tb-home-v3 a.realm-cta--filled:hover {
  color: var(--realm-btn-hover-text);
}
.tb-home-v3 a.realm-cta--ghost {
  color: var(--realm-metallic);
  text-decoration: none;
}
.tb-home-v3 a.realm-cta--ghost:hover {
  color: var(--realm-metallic-bright);
}
[data-realm="dark-romance"] a.realm-cta--filled,
.tb-home-v3 [data-realm="dark-romance"] a.realm-cta--filled {
  color: var(--realm-btn-text);
}
[data-realm="dark-romance"] a.realm-cta--filled:hover,
.tb-home-v3 [data-realm="dark-romance"] a.realm-cta--filled:hover {
  color: var(--realm-btn-hover-text);
}
/* ═══════════════════════════════════════════
   MY ACCOUNT / LOGIN / REGISTER — Readability Fix v2
   Rebuilt 2026-05-12 — Heavy-handed overrides for full readability.
   Uses !important throughout to defeat Astra + WooCommerce defaults.
   ═══════════════════════════════════════════ */

/* ── GLOBAL: Force cream text + gold headings on ALL account pages ── */
.woocommerce-account .woocommerce,
.woocommerce-account .woocommerce *:not(button):not(.button):not(a):not(h1):not(h2):not(h3):not(h4) {
  color: #E8E1D5 !important;
}

.woocommerce-account h1,
.woocommerce-account h2,
.woocommerce-account h3,
.woocommerce-account h4,
.woocommerce-account .woocommerce h1,
.woocommerce-account .woocommerce h2,
.woocommerce-account .woocommerce h3,
.woocommerce-account .woocommerce h4,
.woocommerce-account .entry-title {
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
}

.woocommerce-account a:not(.button):not(.woocommerce-button),
.woocommerce-account .woocommerce a:not(.button):not(.woocommerce-button) {
  color: #D1B28C !important;
  text-decoration: none !important;
}

.woocommerce-account a:not(.button):not(.woocommerce-button):hover {
  color: #E8E1D5 !important;
}

/* ── Gold-ground shield ── dark text on every gold pill and button (2026-09-19)
   Two rules just above paint account pages wholesale, both !important:
     (a) ".woocommerce-account .woocommerce *:not(button):not(.button):not(a)
          :not(h1):not(h2):not(h3):not(h4) { color:#E8E1D5 }"   = (0,3,6)
     (b) ".woocommerce-account .woocommerce a:not(.button)
          :not(.woocommerce-button) { color:#D1B28C }"          = (0,4,1)
   Because they are !important a component cannot win on source order, so every
   element a component paints ON a gold ground lost its dark text. Measured on
   the live rendered pages, logged in, before this block:
     .tb-badge-awaiting / .tb-chip-awaiting       #E8E1D5 on #D1B28C =  1.55:1
     .tb-badge-proof_sent / .tb-chip-proof_sent   #E8E1D5 on #E1C29A =  1.30:1
     a.tb-acc-cta                                 #D1B28C on #D1B28C =  1.00:1
     .tb-mc a.tb-btn--primary (cart drawer)       #D1B28C on #D1B28C =  1.00:1
   SPECIFICITY: each selector below is one step more specific than the rule it
   has to beat and also carries !important, so it wins on specificity, never on
   order. Pills (0,4,0) beat (a) at (0,3,6). a.tb-acc-cta (0,5,1) beats (b) at
   (0,4,1). The drawer button (0,4,1) beats the unscoped arm of (b) at (0,3,1).
   #070A14 is --tb-midnight, the dark the gold buttons already use, giving
   9.84:1 on gold and 11.66:1 on gold2.
   Only genuinely gold grounds are touched. The pills that sit on the dark panel
   (draft, submitted, approved, delivered, not_yet_due) keep the cream they
   already had, 14.09:1, and are left alone. */
.woocommerce-account .woocommerce .tb-intake-account .tb-badge-awaiting,
.woocommerce-account .woocommerce .tb-intake-account .tb-badge-proof_sent,
.woocommerce-account .woocommerce .tb-intake-account .tb-chip-awaiting,
.woocommerce-account .woocommerce .tb-intake-account .tb-chip-proof_sent {
  color: #070A14 !important;
}

.woocommerce-account .woocommerce .tb-intake-account a.tb-acc-cta:not(.tb-acc-ghost) {
  color: #070A14 !important;
}

.woocommerce-account .tb-mc a.tb-btn.tb-btn--primary,
.woocommerce-account .tb-mc a.tb-btn.tb-btn--primary:hover,
.woocommerce-account .tb-mc a.tb-btn.tb-btn--primary:focus {
  color: #070A14 !important;
}


/* ── Account wrapper ── */
.woocommerce-account .woocommerce {
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 30px;
}

/* ── Navigation sidebar ── */
.woocommerce-MyAccount-navigation {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-radius: var(--tb-radius);
  padding: 8px 0;
}

.woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 12px 24px;
  color: #E8E1D5 !important;
  font-family: var(--tb-font-body);
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-decoration: none !important;
  transition: background 0.3s ease, color 0.3s ease;
}

.woocommerce-MyAccount-navigation ul li a:hover {
  background: rgba(209, 178, 140, 0.10) !important;
  color: #D1B28C !important;
}

.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
  color: #D1B28C !important;
  background: rgba(209, 178, 140, 0.12) !important;
  border-left: 3px solid #D1B28C !important;
}

/* ── Content area — visible lighter panel ── */
.woocommerce-MyAccount-content {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-radius: var(--tb-radius);
  padding: 30px;
}

/* ── Orders table ── */
.woocommerce-account table.woocommerce-orders-table,
.woocommerce-account table.shop_table,
.woocommerce-account .woocommerce-orders-table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-radius: var(--tb-radius);
  overflow: hidden;
}

.woocommerce-account table.shop_table thead th,
.woocommerce-account table.woocommerce-orders-table thead th {
  background: rgba(0, 0, 0, 0.4) !important;
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(209, 178, 140, 0.3) !important;
  text-align: left;
  font-weight: 600;
}

.woocommerce-account table.shop_table td,
.woocommerce-account table.woocommerce-orders-table td {
  padding: 14px 18px;
  color: #E8E1D5 !important;
  border-bottom: 1px solid rgba(209, 178, 140, 0.1) !important;
  font-size: 0.95rem;
}

.woocommerce-account table.shop_table tbody tr:hover,
.woocommerce-account table.woocommerce-orders-table tbody tr:hover {
  background: rgba(209, 178, 140, 0.06) !important;
}

/* ── Table action buttons ── */
.woocommerce-account table.shop_table a.woocommerce-button,
.woocommerce-account table.shop_table a.button,
.woocommerce-account table.woocommerce-orders-table a.woocommerce-button,
.woocommerce-account table.woocommerce-orders-table a.button {
  background: linear-gradient(135deg, #D1B28C, #b8965e) !important;
  color: #070A14 !important;
  padding: 8px 20px;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 8px;
  font-weight: 700;
  text-decoration: none !important;
  display: inline-block;
}

.woocommerce-account table.shop_table a.woocommerce-button:hover,
.woocommerce-account table.shop_table a.button:hover {
  background: linear-gradient(135deg, #dfc4a3, #D1B28C) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(209, 178, 140, 0.25);
}

/* ── Address cards — gold left border + visible background ── */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
.woocommerce-account .woocommerce-Addresses .u-column1,
.woocommerce-account .woocommerce-Addresses .u-column2,
.woocommerce-account .woocommerce-Addresses .col-1,
.woocommerce-account .woocommerce-Addresses .col-2 {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-left: 4px solid #D1B28C !important;
  border-radius: var(--tb-radius);
  padding: 20px !important;
  margin-bottom: 20px;
}

/* Address title bar — override Astra #fbfbfb */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title {
  background: transparent !important;
  border-bottom: 1px solid rgba(209, 178, 140, 0.15) !important;
  padding: 0 0 12px 0 !important;
  margin-bottom: 12px !important;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title h3 {
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
  margin: 0 !important;
}

/* Address text — MUST be cream, not dark */
.woocommerce-account .woocommerce-Addresses address,
.woocommerce-account .woocommerce-Addresses address p,
.woocommerce-account address {
  color: #E8E1D5 !important;
  background: transparent !important;
  font-style: normal !important;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title a,
.woocommerce-account .woocommerce-Addresses a.edit {
  color: #D1B28C !important;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address-title a:hover,
.woocommerce-account .woocommerce-Addresses a.edit:hover {
  color: #E8E1D5 !important;
}

/* ── Login / Register forms ── */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2,
.woocommerce form.login,
.woocommerce form.register {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-radius: var(--tb-radius);
  padding: 30px;
}

.woocommerce-account #customer_login h2,
.woocommerce-account .woocommerce-form-login h2,
.woocommerce-account .woocommerce-form-register h2,
.woocommerce form.login h2,
.woocommerce form.register h2 {
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  margin-bottom: 24px;
}

.woocommerce-account label,
.woocommerce form.login label,
.woocommerce form.register label {
  color: #E8E1D5 !important;
  font-family: var(--tb-font-body);
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  margin-bottom: 6px;
  display: block;
}

/* ── Form inputs — dark bg with visible gold borders ── */
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.woocommerce-account input[type="tel"],
.woocommerce-account input[type="number"],
.woocommerce-account select,
.woocommerce-account textarea,
.woocommerce form.login input[type="text"],
.woocommerce form.login input[type="password"],
.woocommerce form.register input[type="text"],
.woocommerce form.register input[type="email"],
.woocommerce form.register input[type="password"] {
  background: rgba(0, 0, 0, 0.3) !important;
  border: 1px solid rgba(209, 178, 140, 0.3) !important;
  border-radius: 8px;
  color: #E8E1D5 !important;
  padding: 12px 16px;
  font-family: var(--tb-font-body);
  font-size: 1rem;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.woocommerce-account input:focus,
.woocommerce-account select:focus,
.woocommerce-account textarea:focus,
.woocommerce form.login input:focus,
.woocommerce form.register input:focus {
  border-color: #D1B28C !important;
  box-shadow: 0 0 0 2px rgba(209, 178, 140, 0.15) !important;
  outline: none !important;
}

.woocommerce-account input::placeholder,
.woocommerce form.login input::placeholder,
.woocommerce form.register input::placeholder {
  color: rgba(232, 225, 213, 0.4) !important;
}

/* ── Checkbox + lost password ── */
.woocommerce-account .woocommerce-form__label-for-checkbox,
.woocommerce form.login .woocommerce-form__label-for-checkbox {
  color: #E8E1D5 !important;
  font-size: 0.9rem;
}

.woocommerce-account .woocommerce-LostPassword a,
.woocommerce form.login .lost_password a {
  color: #D1B28C !important;
  font-size: 0.9rem;
}

/* ── Password strength meter + hint ── dark theme legible (2026-09-19)
   WooCommerce ships pale pastel blocks with no text colour of their own
   (.strong #c1e1b9, .good #ffe399, .bad #fbc5a9, .short #f1adad), so the
   global cream rule at the top of this section painted the label #E8E1D5
   onto pale green: 1.10:1, unreadable. Replaced with a dark translucent
   chip, a coloured left border and a coloured label per state, input radius
   8px, body face Spectral via var(--tb-font-body).

   SPECIFICITY: the global rule is
   ".woocommerce-account .woocommerce *:not(button):not(.button):not(a):not(h1)
   :not(h2):not(h3):not(h4) { color: #E8E1D5 !important }" = (0,3,6), and it
   matches this div. A plain ".woocommerce-account .woocommerce-password-strength
   .strong" is only (0,3,0) and LOSES even with !important. The rules below
   therefore lean on the id WooCommerce always assigns (#password_strength) or
   on a fourth class, so they outrank (0,3,6).

   Markup is injected at runtime by WooCommerce password-strength-meter.js as
   <div id="password_strength" class="woocommerce-password-strength short|bad|good|strong">
   inside form.register / form.checkout / form.edit-account /
   form.lost_reset_password, with <small class="woocommerce-password-hint">
   inserted immediately after it.

   Contrast (label vs the chip composited over .woocommerce-MyAccount-content):
   short 7.47:1, bad 9.03:1, good 9.46:1, strong 10.50:1, hint 10.11:1. */
.woocommerce-account .woocommerce #password_strength.woocommerce-password-strength,
.woocommerce #password_strength.woocommerce-password-strength,
.woocommerce .woocommerce-password-strength {
  background-color: rgba(0, 0, 0, 0.35) !important;
  border: 1px solid rgba(196, 188, 177, 0.18) !important;
  border-left: 3px solid rgba(196, 188, 177, 0.35) !important;
  border-radius: 8px !important;
  color: #C4BCB1 !important;
  font-family: var(--tb-font-body) !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  line-height: 1.5;
  text-align: left !important;
  padding: 10px 14px !important;
  margin: 8px 0 0;
}

.woocommerce-account .woocommerce #password_strength.woocommerce-password-strength.short,
.woocommerce #password_strength.woocommerce-password-strength.short,
.woocommerce-account .woocommerce .woocommerce-password-strength.short {
  border-left-color: #E38A88 !important;
  color: #E38A88 !important;
}

.woocommerce-account .woocommerce #password_strength.woocommerce-password-strength.bad,
.woocommerce #password_strength.woocommerce-password-strength.bad,
.woocommerce-account .woocommerce .woocommerce-password-strength.bad {
  border-left-color: #E0A86A !important;
  color: #E0A86A !important;
}

.woocommerce-account .woocommerce #password_strength.woocommerce-password-strength.good,
.woocommerce #password_strength.woocommerce-password-strength.good,
.woocommerce-account .woocommerce .woocommerce-password-strength.good {
  border-left-color: #D1B28C !important;
  color: #D1B28C !important;
}

.woocommerce-account .woocommerce #password_strength.woocommerce-password-strength.strong,
.woocommerce #password_strength.woocommerce-password-strength.strong,
.woocommerce-account .woocommerce .woocommerce-password-strength.strong {
  border-left-color: #8FCFA0 !important;
  color: #8FCFA0 !important;
}

.woocommerce-account .woocommerce .woocommerce-password-strength + .woocommerce-password-hint,
.woocommerce-account .woocommerce .form-row .woocommerce-password-hint,
.woocommerce .woocommerce-password-hint {
  display: block;
  color: #C4BCB1 !important;
  font-family: var(--tb-font-body) !important;
  font-size: 0.85rem !important;
  line-height: 1.6;
  margin: 8px 0 0;
}

/* ── Show/hide password eye toggle ── dark theme legible (2026-09-19)
   WooCommerce injects <button class="show-password-input"> into every
   .woocommerce form password field (woocommerce.js) and draws the eye as a
   background-image SVG with a hardcoded fill of #111111. On this theme the
   field behind it is rgba(0,0,0,.3) over a near-black panel, so the icon sat
   at 1.00:1 and was invisible. Inverting the glyph puts it at 8.6:1. */
.woocommerce-account .password-input .show-password-input::before,
.woocommerce .password-input .show-password-input::before {
  filter: invert(1);
  opacity: 0.75;
}

.woocommerce-account .password-input .show-password-input:hover::before,
.woocommerce-account .password-input .show-password-input:focus::before,
.woocommerce .password-input .show-password-input:hover::before,
.woocommerce .password-input .show-password-input:focus::before {
  opacity: 1;
}

/* ── Invalid field border ── dark theme legible (2026-09-19)
   WooCommerce marks required fields with .woocommerce-invalid (address-i18n.js
   runs on /my-account/edit-address/ as well as checkout) and borders them
   --wc-red #a00, which is 2.43:1 against the near-black field: below the 3:1
   floor for a non-text indicator. Scoped to account pages, never checkout. */
.woocommerce-account form .form-row.woocommerce-invalid input.input-text,
.woocommerce-account form .form-row.woocommerce-invalid select,
.woocommerce-account form .form-row.woocommerce-invalid textarea {
  border-color: #E38A88 !important;
}

/* ── All buttons — gold gradient with dark text ── */
.woocommerce-account .woocommerce button[type="submit"],
.woocommerce-account .woocommerce input[type="submit"],
.woocommerce-account .woocommerce .button,
.woocommerce-account .woocommerce a.button,
.woocommerce form.login button[type="submit"],
.woocommerce form.register button[type="submit"] {
  background: linear-gradient(135deg, #D1B28C, #b8965e) !important;
  color: #070A14 !important;
  padding: 12px 28px;
  font-family: var(--tb-font-body) !important;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: none !important;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none !important;
  transition: all 0.3s ease;
}

.woocommerce-account .woocommerce button[type="submit"]:hover,
.woocommerce-account .woocommerce input[type="submit"]:hover,
.woocommerce-account .woocommerce .button:hover,
.woocommerce-account .woocommerce a.button:hover,
.woocommerce form.login button[type="submit"]:hover,
.woocommerce form.register button[type="submit"]:hover {
  background: linear-gradient(135deg, #dfc4a3, #D1B28C) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(209, 178, 140, 0.25);
}

/* ── WooCommerce notices / messages ── */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-Message--info {
  background: rgba(255, 255, 255, 0.06) !important;
  border-top: 3px solid #D1B28C !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  color: #E8E1D5 !important;
  padding: 16px 20px !important;
  border-radius: 0 0 var(--tb-radius) var(--tb-radius);
}

.woocommerce-account .woocommerce-error {
  background: rgba(92, 26, 27, 0.2) !important;
  border-top: 3px solid #5C1A1B !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  color: #E8E1D5 !important;
  padding: 16px 20px !important;
  border-radius: 0 0 var(--tb-radius) var(--tb-radius);
}

.woocommerce-account .woocommerce-info::before,
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-error::before {
  display: none !important;
}

.woocommerce-account .woocommerce-message a,
.woocommerce-account .woocommerce-info a {
  color: #D1B28C !important;
}

/* ── Account details edit form ── */
.woocommerce-account .woocommerce-EditAccountForm fieldset {
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-radius: var(--tb-radius);
  padding: 20px;
  margin: 20px 0;
}

.woocommerce-account .woocommerce-EditAccountForm fieldset legend {
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
  padding: 0 10px;
}

/* ── Downloads table ── */
.woocommerce-account table.woocommerce-table--order-downloads th {
  background: rgba(0, 0, 0, 0.4) !important;
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
  padding: 12px 18px;
}

.woocommerce-account table.woocommerce-table--order-downloads td {
  padding: 12px 18px;
  border-bottom: 1px solid rgba(209, 178, 140, 0.1) !important;
  color: #E8E1D5 !important;
}

/* ── Payment methods ── */
.woocommerce-account .woocommerce-PaymentMethods,
.woocommerce-account .payment_methods,
.woocommerce-account .woocommerce-PaymentMethod {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(209, 178, 140, 0.15) !important;
  border-radius: var(--tb-radius);
  padding: 16px !important;
  color: #E8E1D5 !important;
}

/* ── My Wedding Website tab (custom) ── */
.woocommerce-account .woocommerce-MyAccount-content .tb-wedding-dashboard,
.woocommerce-account .woocommerce-MyAccount-content .wedding-website-tab {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-radius: var(--tb-radius);
  padding: 24px !important;
  color: #E8E1D5 !important;
}

/* ── WISHLIST (TI WooCommerce Wishlist) ── */
.woocommerce-wishlist .tinv-wishlist,
.woocommerce-wishlist .tinv-wishlist * {
  color: #E8E1D5 !important;
}

.woocommerce-wishlist h1,
.woocommerce-wishlist h2,
.woocommerce-wishlist h3,
.woocommerce-wishlist h4,
.woocommerce-wishlist .tinv-wishlist .tinv-header h2,
.woocommerce-wishlist .tinvwl-txt,
.woocommerce-wishlist .entry-title {
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
}

.woocommerce-wishlist a:not(.button) {
  color: #D1B28C !important;
}

.woocommerce-wishlist a:not(.button):hover {
  color: #E8E1D5 !important;
}

.woocommerce-wishlist .tinv-wishlist table {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(209, 178, 140, 0.2) !important;
  border-collapse: collapse !important;
}

.woocommerce-wishlist .tinv-wishlist table thead th {
  background: rgba(0, 0, 0, 0.4) !important;
  color: #D1B28C !important;
  font-family: var(--tb-font-heading) !important;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(209, 178, 140, 0.3) !important;
}

.woocommerce-wishlist .tinv-wishlist table td {
  padding: 12px 18px;
  color: #E8E1D5 !important;
  border-bottom: 1px solid rgba(209, 178, 140, 0.1) !important;
}

.woocommerce-wishlist .tinv-wishlist .button,
.woocommerce-wishlist .tinv-wishlist a.button,
.woocommerce-wishlist .tinv-wishlist input[type="submit"],
.woocommerce-wishlist .tinv-wishlist button {
  background: linear-gradient(135deg, #D1B28C, #b8965e) !important;
  color: #070A14 !important;
  border: none !important;
  padding: 10px 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 8px;
  cursor: pointer;
}

.woocommerce-wishlist .tinv-wishlist .button:hover,
.woocommerce-wishlist .tinv-wishlist a.button:hover {
  background: linear-gradient(135deg, #dfc4a3, #D1B28C) !important;
}

/* Wishlist Return To Shop button */
.woocommerce-wishlist .return-to-shop .button,
.woocommerce-wishlist .woocommerce a.button.wc-backward,
.woocommerce-wishlist a.button.wc-backward {
  background: linear-gradient(135deg, #D1B28C, #b8965e) !important;
  color: #070A14 !important;
  border: none !important;
}

/* Wishlist page wrapper */
.woocommerce-wishlist .woocommerce,
.woocommerce-wishlist .entry-content {
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 30px;
}

/* Wishlist social sharing */
.woocommerce-wishlist .tinv-wishlist .social-buttons a {
  color: #D1B28C !important;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .woocommerce-account .woocommerce {
    padding: 20px 15px;
  }
  .woocommerce-MyAccount-content {
    padding: 20px 15px !important;
  }
  .woocommerce-account table.shop_table thead {
    display: none;
  }
  .woocommerce-account table.shop_table tr {
    display: block;
    margin-bottom: 16px;
    border: 1px solid rgba(209, 178, 140, 0.2) !important;
    border-radius: var(--tb-radius);
    padding: 12px;
  }
  .woocommerce-account table.shop_table td {
    display: block;
    text-align: left;
    padding: 8px 12px;
    border-bottom: 1px solid rgba(209, 178, 140, 0.08) !important;
  }
  .woocommerce-account table.shop_table td::before {
    content: attr(data-title) ": ";
    font-weight: 700;
    color: #D1B28C !important;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .woocommerce-wishlist .woocommerce {
    padding: 20px 15px;
  }
}

/* WISHLIST PAGE (separate from My Account) */
.woocommerce-wishlist .tinv-wishlist,
.woocommerce-wishlist .entry-content,
body.page-template-default .tinv-wishlist {
  color: #E8E1D5 !important;
}

.woocommerce-wishlist .tinv-wishlist h2,
.woocommerce-wishlist .tinv-wishlist .tinv-header h2,
body.page-template-default .tinv-wishlist h2 {
  color: #D1B28C !important;
}

.woocommerce-wishlist .tinv-wishlist p,
body.page-template-default .tinv-wishlist p {
  color: #E8E1D5 !important;
}

.woocommerce-wishlist .tinv-wishlist .button,
body.page-template-default .tinv-wishlist .button {
  background: linear-gradient(135deg, #D1B28C, #b89a6a) !important;
  color: #1a1a2e !important;
  border: none !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}

/* END MY ACCOUNT READABILITY FIX */