/* ══════════════════════════════════════════════════════════════
   ISOPOD KEEPERS — Premium Redesign v4
   Luxury dark auction marketplace.
   Inspired by Richard Mille, Audemars Piguet, Christie's, Sotheby's.

   INSTALLATION:
   1. Upload hero-background.png and nav-background.png to WordPress Media Library
   2. Update image URLs in the :root block below
   3. Paste into Appearance > Customize > Additional CSS
      OR add as CSS snippet via Code Snippets plugin
   ══════════════════════════════════════════════════════════════

   TABLE OF CONTENTS (with line numbers)
   ══════════════════════════════════════════════════════════════
   1.  VARIABLES & DESIGN TOKENS .............. L54
   2.  GLOBAL RESETS & BASE ................... L119
   3.  ASTRA VARIABLE OVERRIDES ............... L355
   4.  TYPOGRAPHY ............................. L395
   5.  LINKS & SELECTION ...................... L421
   6.  SCROLLBAR .............................. L448
   7.  ACCESSIBILITY .......................... L459
   8.  ANNOUNCEMENT BAR ....................... L472
   9.  HEADER & NAVIGATION .................... L509
   10. HERO SECTION ........................... L1007
   11. GOLDEN TICKET BANNER ................... L1225
   12. TRUST BAR .............................. L1394
   13. SECTION HEADINGS & DIVIDERS ............ L1466
   14. AUCTION FLOOR (White Content Area) ..... L1560
   15. SPECIES CARDS .......................... L1643
   16. FOUNDING KEEPERS ....................... L1714
   17. LOGO CAROUSEL .......................... L1730
   18. FOOTER ................................. L1786
   19. BUTTONS (Global) ....................... L2031
   20. FORMS & INPUTS ......................... L2249
   21. PRODUCT CARDS & GRID ................... L2279
   22. SINGLE PRODUCT PAGE .................... L2340
   23. WOOCOMMERCE NOTICES & MESSAGES ......... L3669
   24. WOOCOMMERCE CART & CHECKOUT ............ L3707
   25. WOOCOMMERCE BLOCKS (Gutenberg) ......... L4356
   26. WOOCOMMERCE MISC ...................... L4398
   27. AUCTION PLUGIN OVERRIDES ............... L4802
   28. DOKAN MARKETPLACE OVERRIDES ............ L4885
   29. SEARCH (FiboSearch) OVERRIDES .......... L5001
   30. GOLDEN TICKET PAGE ..................... L5043
   31. WORDPRESS BLOCK EDITOR OVERRIDES ....... L6037
   32. WHITE-PAGE OVERRIDES ................... L6617
   33. MY ACCOUNT PAGES ....................... L6933
   34. ORDER SUCCESS / THANK YOU .............. L7400
   35. SELLER CARDS & STORE PAGE .............. L7576
   36. FOUNDING KEEPERS (nuclear specificity) . L8342
   37. DOKAN INDIVIDUAL STORE PAGE ............ L8455
   38. FUTURE-PROOFING — Defensive Styles ...... L8900
   39. RESPONSIVE — Comprehensive ............. L9479
   40. PRINT .................................. L9723
   ══════════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════════════════════════
   1. VARIABLES & DESIGN TOKENS
   All custom properties for the Isopod Keepers design system.
   These are the single source of truth for colors, typography,
   spacing, and animation across the entire site.
   ══════════════════════════════════════════════════════════════ */

:root {
  /* Opt out of browser-imposed dark mode (Chrome's force-dark flag, browser
     extensions, OS-level Chromium auto-dark). The site is designed for an
     authored mix of dark-bg pages (homepage, auctions, golden-ticket) and
     white-bg pages (cart, checkout, my-account); auto-darkening inverts our
     white-page text to invisible. Discovered 2026-05-05 — dev's checkout
     screenshot showed Vendor Shipping & Refund Policies + form labels as
     pale text on a force-dark background. `color-scheme: light` tells the
     UA that our pages are authored for light backgrounds and to skip its
     auto-darken pass. We still ship our own dark UI on dark-bg pages via
     normal CSS — this only blocks UA color inversion. */
  color-scheme: light;

  /* IMAGE PATHS — Update after uploading to WordPress */
  --ik-img-hero: url('../images/hero-background.png');
  --ik-img-nav:  url('../images/nav-background.png');

  /* Backgrounds — dark but not black */
  --ik-bg-deep:      #0E0E0C;
  --ik-bg-base:      #151513;
  --ik-bg-raised:    #1E1E1B;
  --ik-bg-elevated:  #282825;
  --ik-bg-hover:     #333330;

  /* Borders */
  --ik-border-subtle:  rgba(255, 255, 255, 0.04);
  --ik-border-default: rgba(255, 255, 255, 0.07);
  --ik-border-strong:  rgba(255, 255, 255, 0.12);
  --ik-border-gold:    rgba(196, 163, 90, 0.2);

  /* Text — high contrast, WCAG AA compliant */
  --ik-text-primary:   #FFFFFF;
  --ik-text-secondary: #D5D5D5;
  --ik-text-tertiary:  #AAAAAA;

  /* Gold — bright enough to read on dark backgrounds */
  --ik-gold: #FFCC33;
  --ik-gold-light: #FFDB66;
  --ik-gold-bright: #FFE680;
  --ik-gold-dark: #E6B800;
  --ik-gold-deep: #CC9900;
  --ik-gold-gradient: linear-gradient(135deg, #E6B800 0%, #FFE066 50%, #FFCC33 100%);

  /* Typography */
  --ik-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ik-font-display: 'Playfair Display', Georgia, serif;

  --ik-text-xs:   clamp(0.65rem, 0.6rem + 0.2vw, 0.75rem);   /* 10-12px */
  --ik-text-sm:   clamp(0.8rem, 0.75rem + 0.2vw, 0.875rem);  /* 13-14px */
  --ik-text-base: clamp(0.875rem, 0.85rem + 0.15vw, 0.938rem);/* 14-15px */
  --ik-text-lg:   clamp(1.05rem, 1rem + 0.3vw, 1.188rem);    /* 17-19px */
  --ik-text-xl:   clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);   /* 20-24px */
  --ik-text-2xl:  clamp(1.5rem, 1.3rem + 1vw, 2rem);         /* 24-32px */
  --ik-text-3xl:  clamp(1.875rem, 1.6rem + 1.4vw, 2.5rem);   /* 30-40px */
  --ik-text-4xl:  clamp(2.25rem, 1.8rem + 2.2vw, 3.25rem);   /* 36-52px */
  --ik-text-hero: clamp(3rem, 2.5rem + 3.5vw, 5rem);          /* 48-80px */

  /* Animation — luxury is SLOW */
  --ik-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --ik-duration: 0.4s;
  --ik-duration-slow: 0.6s;

  /* Layout */
  --ik-max-width: 1200px;
  --ik-radius: 0;  /* Sharp corners everywhere — no exceptions except avatars */
  --ik-radius-sm: 0;
  --ik-radius-md: 0;
}


/* ══════════════════════════════════════════════════════════════
   2. GLOBAL RESETS & BASE
   Dark background on all wrapper elements, smooth scrolling,
   film grain texture overlay for luxury depth.
   ══════════════════════════════════════════════════════════════ */

html {
  scroll-behavior: smooth;
  overflow-x: hidden !important;
}

body {
  overflow-x: hidden !important;
}

body, html {
  background: var(--ik-bg-deep) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-base) !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
  letter-spacing: 0.01em !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* Film grain texture — subtle overlay for premium depth */
body::before {
  content: '' !important;
  position: fixed !important;
  inset: 0 !important;
  pointer-events: none !important;
  z-index: 9999 !important;
  opacity: 0.02 !important;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") !important;
  mix-blend-mode: overlay !important;
}

/* Dark background on all major WordPress/Astra wrapper elements */
.hfeed, .site, #page { background: var(--ik-bg-deep) !important; }
#content, .site-content, #primary, .content-area, .ast-article-single {
  background: transparent !important;
}

/* WHITE content area for ALL standard pages.
   Homepage (1381) and Golden Ticket (2594) are excluded — they use dark themes.
   CRITICAL: scope to #content so .ast-container in the header stays dark. */
body:not(.page-id-1381):not(.page-id-2594) #content,
body:not(.page-id-1381):not(.page-id-2594) #content .ast-container,
body:not(.page-id-1381):not(.page-id-2594) .site-main,
body:not(.page-id-1381):not(.page-id-2594) .entry-content {
  background: #FFFFFF !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content p,
body:not(.page-id-1381):not(.page-id-2594) .entry-content li,
body:not(.page-id-1381):not(.page-id-2594) .entry-content span,
body:not(.page-id-1381):not(.page-id-2594) .entry-content td,
body:not(.page-id-1381):not(.page-id-2594) .entry-content th,
body:not(.page-id-1381):not(.page-id-2594) .entry-content label,
body:not(.page-id-1381):not(.page-id-2594) .entry-content address {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-family: var(--ik-font-body) !important;
  font-style: normal !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content h1,
body:not(.page-id-1381):not(.page-id-2594) .entry-content h2:not(.ik-gold-bar):not(.wp-block-heading),
body:not(.page-id-1381):not(.page-id-2594) .entry-content h3,
body:not(.page-id-1381):not(.page-id-2594) .entry-content h4 {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-style: normal !important;
}

/* Preserve white text in dark background blocks (About values, Isopod Care CTA) */
body.page .entry-content .has-white-color,
body.page .entry-content .has-white-color p,
body.page .entry-content .has-white-color li,
body.page .entry-content .wp-block-group[style*="background-color:#0f2230"] p,
body.page .entry-content .wp-block-group[style*="background-color:#0f2230"] li,
body.page .entry-content .wp-block-group[style*="background-color:#0f2230"] h2 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Nuclear white bg override — catches anything the rules above miss.
   The .ast-article-single is the article wrapper that inherits the dark body bg.
   Also ensures content area has proper padding and minimum height. */
body:not(.page-id-1381):not(.page-id-2594) .ast-article-single,
body:not(.page-id-1381):not(.page-id-2594) #primary,
body:not(.page-id-1381):not(.page-id-2594) .content-area {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
}

/* White-page button override — .wp-block-button__link defaults to
   transparent bg + white text (dark theme). On white pages, switch to
   gold bg + black text for primary CTA visibility.
   Selector includes #content to reach (1,4,2) and beat the white-page
   link rule at line 2668 (#content a, specificity 1,2,2). */
body:not(.page-id-1381):not(.page-id-2594) #content .entry-content .wp-block-button__link,
body:not(.page-id-1381):not(.page-id-2594) #content .entry-content .wp-element-button {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  border-color: #FFCC33 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #content .entry-content .wp-block-button__link:hover,
body:not(.page-id-1381):not(.page-id-2594) #content .entry-content .wp-element-button:hover {
  background: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border-color: #FFDB66 !important;
}

/* Content area — MUST match nav width exactly.
   Nav uses: max-width: var(--ik-max-width), margin: 0 auto, padding: 0 clamp(1.5rem, 4vw, 3rem)
   Content must use the same. */
body:not(.page-id-1381):not(.page-id-2594):not(.page-id-1384):not(.page-id-1386):not(.page-id-2510):not(.woocommerce-account):not(.woocommerce-cart):not(.woocommerce-checkout) .entry-content:not(.woocommerce-Tabs-panel) {
  min-height: 40vh !important;
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 clamp(1.5rem, 4vw, 3rem) 60px !important;
}

/* Gold bar must be full viewport width, flush to nav.
   Entry-content has max-width + padding, so gold bar uses 100vw breakout. */
body:not(.page-id-1381):not(.page-id-2594) .entry-content > h2.ik-gold-bar {
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin-left: -50vw !important;
  margin-right: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  box-sizing: border-box !important;
}

/* Content below gold bar needs its own top spacing */
body:not(.page-id-1381):not(.page-id-2594) .entry-content > h2.ik-gold-bar + * {
  margin-top: 32px !important;
}

/* Page builder template kills all spacing — keep it killed for flush gold bar.
   But constrain inner elements to max-width for consistent content width. */
body.page.ast-page-builder-template:not(.page-id-1381) #content,
body.page.ast-page-builder-template:not(.page-id-1381) #primary,
body.page.ast-page-builder-template:not(.page-id-1381) .site-main,
body.page.ast-page-builder-template:not(.page-id-1381) .ast-article-single {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.page.ast-page-builder-template:not(.page-id-1381) .ast-container {
  max-width: 100% !important;
  padding: 0 !important;
}

/* Entry header (empty on these pages) — kill any space it takes */
body:not(.page-id-1381):not(.page-id-2594) .entry-header {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

/* Constrained group within content — match nav/footer width */
body:not(.page-id-1381):not(.page-id-2594) .entry-content > .wp-block-group.is-layout-constrained {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Block Editor columns — equal height cards, always */
.entry-content .wp-block-columns {
  align-items: stretch !important;
}

.entry-content .wp-block-columns .wp-block-column > .wp-block-group {
  height: 100% !important;
}

/* Container — limit content width but allow alignfull blocks to break out */
.ast-container {
  max-width: var(--ik-max-width) !important;
}

/* Force full-width — kill Astra's 20px container padding */
#primary .ast-container,
.site-content .ast-container,
#content .ast-container,
div.ast-container,
.ast-container,
.ast-container-fluid {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
}

#primary.content-area,
.site-main,
.entry-content,
.entry-content.clear,
.ast-article-single,
article.page {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
}

/* All content blocks full width */
.entry-content > .wp-block-group,
.entry-content > .wp-block-group.alignfull,
.entry-content > .wp-block-group.is-layout-constrained {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* ══════════════════════════════════════════════════════════════
   3. ASTRA VARIABLE OVERRIDES
   Override Astra's global color palette, old --ik-* variables
   from a previous design iteration (still served by LiteSpeed
   combined CSS), and WordPress/plugin color tokens. Without
   these, elements using var() fallbacks show red, navy, teal,
   and blue instead of our dark+gold palette.
   ══════════════════════════════════════════════════════════════ */

/* Override Astra's global color palette — prevents red/navy defaults */
:root {
  --ast-global-color-0: #E6B800 !important;  /* was #d94948 (red) → gold */
  --ast-global-color-1: #FFFFFF !important;   /* keep white */
  --ast-global-color-2: #1A1A1A !important;   /* was #011627 (navy) → near-black */
  --ast-global-color-3: #AAAAAA !important;   /* was rgba(1,22,39,0.75) → muted text */
  --ast-global-color-4: #1E1E1B !important;   /* was #f9f8f8 (off-white) → dark surface */
  --ast-global-color-5: #FFFFFF !important;   /* keep white for content areas */
  --ast-global-color-6: #0E0E0C !important;   /* was #011627 → deep dark */
  --ast-global-color-7: #0E0E0C !important;   /* was #011627 → deep dark */
  --ast-global-color-8: #151513 !important;   /* was #f9f8f8 → dark base */
  --ast-border-color: #E8E8E6 !important; /* light border for white-bg pages */

  /* Override old design iteration variables still in LiteSpeed combined CSS */
  --ik-bg: #0E0E0C !important;        /* was #f3f5f7 (light gray) */
  --ik-surface: #1E1E1B !important;    /* was #ffffff */
  --ik-dark: #0E0E0C !important;
  --ik-text: #D5D5D5 !important;       /* was #102a3a (dark blue-green) */
  --ik-muted: #AAAAAA !important;      /* was #5f7384 */
  --ik-primary: #E6B800 !important;    /* was #1f6f5e (teal) */
  --ik-accent: #FFCC33 !important;     /* was #e24c4b (red) */

  /* Override WordPress/plugin color tokens */
  --swiper-theme-color: #FFCC33 !important;      /* was #007aff (blue) */
  --wp-admin-theme-color: #E6B800 !important;     /* was #007cba (blue) */
  --wp--preset--color--vivid-cyan-blue: #FFCC33 !important;
  --wp--preset--color--pale-cyan-blue: #FFE680 !important;
  --wp--preset--color--cyan-bluish-gray: #AAAAAA !important;
}


/* Body/site background — white for all pages except GT (page-id-2594).
   Astra uses --ast-global-color-6 for body bg, which we set to #0E0E0C.
   That's correct for GT but bleeds to product/other pages as a dark "border box." */
body:not(.page-id-2594),
body:not(.page-id-2594) #content,
body:not(.page-id-2594) #primary,
body:not(.page-id-2594) .site-main {
  background-color: #FFFFFF !important;
}


/* ══════════════════════════════════════════════════════════════
   4. TYPOGRAPHY
   Global heading and body text styles. Inter for body,
   Playfair Display ONLY for hero headlines. No italic ever.
   ══════════════════════════════════════════════════════════════ */

/* H3 headings inside content */
.entry-content h3.wp-block-heading {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-xl) !important;
  font-weight: 400 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Body paragraphs */
.entry-content p {
  font-family: var(--ik-font-body) !important;
  font-weight: 400 !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  line-height: 1.8 !important;
}

/* Footer paragraphs — no max-width constraint */
.site-footer .entry-content p, .ik-footer p { max-width: none !important; }


/* ══════════════════════════════════════════════════════════════
   5. LINKS & SELECTION
   Default link color is muted white (not blue), gold on hover.
   Entry content links override teal from old theme iteration.
   ══════════════════════════════════════════════════════════════ */

a {
  transition: color var(--ik-duration) ease !important;
  color: rgba(255,255,255,0.45) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.45) !important;
}

a:hover {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* Entry content links — override teal #1f6f5e from old theme */
.entry-content a:not(.wp-block-button__link):not([class*="ik-"]) {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}
.entry-content a:not(.wp-block-button__link):not([class*="ik-"]):hover {
  color: var(--ik-gold-bright) !important;
  -webkit-text-fill-color: var(--ik-gold-bright) !important;
}

/* Text selection highlight — gold-tinted */
::selection { background: rgba(196, 163, 90, 0.25); color: #fff; }


/* ══════════════════════════════════════════════════════════════
   6. SCROLLBAR
   Thin, dark scrollbar with gold thumb. Minimal chrome.
   ══════════════════════════════════════════════════════════════ */

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: #000; }
::-webkit-scrollbar-thumb { background: var(--ik-gold-deep); border-radius: 2px; }
* { scrollbar-width: thin; scrollbar-color: var(--ik-gold-deep) #000; }


/* ══════════════════════════════════════════════════════════════
   7. ACCESSIBILITY
   Reduced motion support per WCAG and user preference.
   ══════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}


/* ══════════════════════════════════════════════════════════════
   8. ANNOUNCEMENT BAR
   Gold gradient ticker bar at very top of page.
   Also overrides WooCommerce store notice banner.
   ══════════════════════════════════════════════════════════════ */

.top-announcement-bar {
  background: linear-gradient(90deg, #C9A020, #E8C840 30%, #FFD966 50%, #E8C840 70%, #C9A020) !important;
  border-bottom: none !important;
  padding: 0.5rem 0 !important;
  position: relative !important;
  overflow: hidden !important;
}

.announcement-item {
  font-family: var(--ik-font-body) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #1A1200 !important;
  -webkit-text-fill-color: #1A1200 !important;
  white-space: nowrap !important;
  padding: 0 4rem !important;
  /* Force every glyph (text + any emoji like 🔔) to render as solid black.
     `font-variant-emoji: text` alone isn't reliable — Chromium's emoji
     fonts lack monochrome glyphs for some codepoints (e.g. U+1F514 bell)
     and fall back to colored. `filter: brightness(0)` runs at rasterization
     and zeroes the RGB of every pixel inside the span. Existing text was
     already #1A1200 (very dark) so the visual change is imperceptible;
     emoji become clean black silhouettes that read on the gold bar. */
  font-variant-emoji: text !important;
  filter: brightness(0) !important;
}

/* Marquee track — scrolling animation */
.announcement-marquee-track {
  display: flex !important;
  white-space: nowrap !important;
  animation: marquee 30s linear infinite !important;
  will-change: transform !important;
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* WooCommerce store notice — gold banner style */
.woocommerce-store-notice.demo_store {
  background: var(--ik-gold) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-sm) !important;
  font-weight: 500 !important;
  padding: 0.5rem 1rem !important;
  letter-spacing: 0.05em !important;
}


/* ══════════════════════════════════════════════════════════════
   9. HEADER & NAVIGATION
   Black header bar, wordmark logo, nav links, dropdowns,
   mobile menu, and CTA button. No sticky nav — stays in
   document flow for luxury feel.
   ══════════════════════════════════════════════════════════════ */

/* --- Header bar --- */
.site-header, #masthead {
  background: #000000 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
  box-shadow: none !important;
  position: relative !important;
  z-index: 100 !important;
}

/* No sticky nav — normal document flow */

/* Thin gold line at bottom of header */
.site-header::after, #masthead::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 10% !important;
  right: 10% !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(255,204,51,0.4), transparent) !important;
}

/* Transparent background for all header bar layers */
.ast-below-header-bar, .ast-below-header-wrap, .ast-below-header,
.ast-primary-header-bar, .ast-primary-header, .main-header-bar {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* --- Logo — replace chest logo with wordmark everywhere --- */
.site-branding .custom-logo,
.site-branding img.custom-logo,
#ast-mobile-header .custom-logo,
img.custom-logo {
  content: url('../images/wordmark.png') !important;
  max-height: 36px !important;
  max-width: 120px !important;
  width: auto !important;
  object-fit: contain !important;
  transition: opacity var(--ik-duration) ease !important;
}

.custom-logo-link:hover .custom-logo {
  opacity: 0.7 !important;
}

/* Nav item visibility is managed by Astra Header Builder / menu config — do NOT override */

/* Nav order is managed in Appearance > Menus — do NOT override with CSS order */

/* --- Golden Ticket nav — gold text, no border on the li or link --- */
li.golden-ticket-btn {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.main-header-menu .golden-ticket-btn > a.menu-link,
#ast-hf-menu-1 .golden-ticket-btn > a.menu-link,
.golden-ticket-btn > a.menu-link,
.golden-ticket-btn > a {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.main-header-menu .golden-ticket-btn > a.menu-link:hover,
#ast-hf-menu-1 .golden-ticket-btn > a.menu-link:hover,
.golden-ticket-btn > a.menu-link:hover,
.golden-ticket-btn > a:hover {
  color: var(--ik-gold-bright) !important;
  -webkit-text-fill-color: var(--ik-gold-bright) !important;
}

/* Golden Ticket in mobile menu — gold */
.ast-hf-mobile-menu .golden-ticket-btn > a.menu-link {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* NOTE FOR DEVELOPER:
   Show/hide of nav items is generally the staging site's responsibility
   (WP menu admin + PHP filters / login-conditional menus / plugin behavior).
   CSS in this project controls APPEARANCE ONLY. The mockup-leftover hides
   on /my-watchlist, /my-account, /cart and the My Bids/Wins
   (`menu-item-2485`) hide were removed 2026-04-27 per Ruth's directive,
   and so was the unconditional `.menu-item:first-child` hide.

   ONE NARROW EXCEPTION KEPT BELOW: hide Register/Login when the user is
   already logged in. WP doesn't have native support for hiding menu items
   by login state without a plugin or PHP filter, so this CSS stopgap stands
   until the developer wires up a `wp_nav_menu_objects` filter (or installs
   a plugin like Nav Menu Roles) — at which point this rule should be
   removed. The selector applies to BOTH desktop and mobile menus since
   `body.logged-in` is set globally, so the rule preserves desktop/mobile
   parity. See feedback_css_appearance_only.md for the broader rule. */
body.logged-in .menu-item:has(> a[href*="/register"]),
body.logged-in .menu-item:has(> a[href*="/login"]),
body.logged-in li:has(> a[href*="/register/"]),
body.logged-in li:has(> a[href*="/login/"]) {
  display: none !important;
}

/* --- NAV LAYOUT — Logo + primary links left, account/cart right --- */

/* Pseudo-element logo removed — Astra Header Builder already puts
   the logo in the below-header left section. No need for a duplicate. */
#ast-desktop-header ul#ast-hf-menu-1::before {
  display: none !important;
  content: none !important;
}

/* Force EVERY wrapper to be full width — the key is ast-inline-flex */
#ast-desktop-header .main-navigation.ast-inline-flex {
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
}

#ast-desktop-header .ast-below-header-wrap,
#ast-desktop-header .ast-below-header-bar,
#ast-desktop-header .site-below-header-wrap,
#ast-desktop-header .ast-builder-grid-row-container,
#ast-desktop-header .site-header-below-section-center,
#ast-desktop-header .ast-builder-menu-1,
#ast-desktop-header .ast-main-header-bar-alignment,
#ast-desktop-header .main-header-bar-navigation,
#ast-desktop-header nav.site-navigation {
  width: 100% !important;
  max-width: 100% !important;
}

#ast-desktop-header .ast-builder-grid-row {
  width: 100% !important;
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: 0 clamp(1.5rem, 4vw, 3rem) !important;
}

/* THE NAV UL — flex row, full width, no default padding */
#ast-desktop-header ul#ast-hf-menu-1 {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* Right-side nav items — Register, Login, Cart */
#ast-desktop-header .ast-below-header-bar {
  position: relative !important;
}

/* --- Menu 2 layout (right section) — Register, Login, My Account --- */
/* NOTE: Do NOT set display here — Astra Header Builder controls visibility */
#ast-desktop-header #ast-hf-menu-2 {
  align-items: center !important;
  gap: 0 !important;
  list-style: none !important;
}

/* Register & Login links — white text with gold border separators */
/* NOTE: Do NOT set display here — Astra Header Builder controls visibility */
#ast-hf-menu-2 li:has(> a[href*="/register/"]),
#ast-hf-menu-2 li:has(> a[href*="/login/"]) {
  align-items: center !important;
  border-left: 1px solid rgba(255, 204, 51, 0.25) !important;
}

#ast-hf-menu-2 li:has(> a[href*="/login/"]) {
  border-right: 1px solid rgba(255, 204, 51, 0.25) !important;
}

#ast-hf-menu-2 li:has(> a[href*="/register/"]) > a,
#ast-hf-menu-2 li:has(> a[href*="/login/"]) > a {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  padding: 0.75rem clamp(1rem, 2vw, 1.5rem) !important;
  display: flex !important;
  align-items: center !important;
  transition: all var(--ik-duration) ease !important;
  font-family: var(--ik-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

#ast-hf-menu-2 li:has(> a[href*="/register/"]) > a:hover,
#ast-hf-menu-2 li:has(> a[href*="/login/"]) > a:hover {
  background: rgba(255, 204, 51, 0.06) !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* My Account dropdown in Menu 2 — white text (only Golden Ticket is gold) */
#ast-hf-menu-2 .member-only > a {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* --- Header cart widget (Astra WooCommerce cart in right section) --- */
#ast-desktop-header .ast-header-woo-cart {
  display: flex !important;
  align-items: center !important;
  margin-left: 0.5rem !important;
}

/* Hide the "Cart / $0.00" text, show only the bag icon */
.ast-site-header-cart .ast-woo-header-cart-info-wrap {
  display: none !important;
}

/* Remove the outline border Astra adds */
.ast-menu-cart-outline .ast-addon-cart-wrap {
  border: none !important;
  padding: 0 !important;
}

.ast-site-header-cart .ast-cart-menu-wrap,
.ast-site-header-cart .ast-addon-cart-wrap {
  border: none !important;
  background: transparent !important;
}

/* Cart icon — gold */
.ast-site-header-cart .ast-icon,
.ast-site-header-cart svg,
.ast-site-header-cart .astra-cart-drawer-title svg {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  fill: var(--ik-gold) !important;
  width: 22px !important;
  height: 22px !important;
  display: inline-block !important;
}

/* Header social icons (Facebook etc.) — Astra renders inline SVG with no fill
   attribute, so it defaults to black and disappears on the dark header. Force
   white to match nav-item color. */
.ast-header-social-1-wrap .ahfb-svg-iconset svg,
.ast-header-social-1-wrap .ahfb-svg-iconset svg path {
  fill: #FFFFFF !important;
}

.ast-site-header-cart a.cart-container {
  padding: 0.5rem !important;
  display: flex !important;
  align-items: center !important;
}

/* Cart count badge (Astra uses ::after on the icon element) */
.ast-site-header-cart .ast-cart-menu-wrap .count,
.ast-site-header-cart .ast-addon-cart-wrap .count,
.ast-site-header-cart i.astra-icon::after {
  background: var(--ik-gold) !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  min-width: 16px !important;
  height: 16px !important;
  line-height: 16px !important;
  border-radius: 50% !important;
  text-align: center !important;
}

/* --- Right section layout — Menu 2 + Cart side by side --- */
#ast-desktop-header .site-header-below-section-right {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
}

/* --- Nav links --- */
.main-header-menu .menu-link,
.main-header-menu .menu-item > a {
  font-family: var(--ik-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 0.75rem 0.875rem !important;
  transition: color var(--ik-duration) ease !important;
  text-decoration: none !important;
  position: relative !important;
  white-space: nowrap !important;
}

.main-header-menu .menu-link:hover,
.main-header-menu .menu-item > a:hover {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

.main-header-menu .current-menu-item > a,
.main-header-menu .current_page_item > a {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Active state — keep white (only the .golden-ticket-btn item should
   read as gold; other current-page items inherit the default white from
   the rule above at .main-header-menu .current-menu-item > a). The gold
   variant here previously made the "current" nav item look like Golden
   Ticket, which Ruth flagged 2026-05-16. The :not(.golden-ticket-btn)
   guard is belt-and-suspenders — Golden Ticket's own rule at lines
   637-647 already wins specificity, but this makes intent explicit. */
.main-header-menu > li.current-menu-item:not(.golden-ticket-btn) > .menu-link,
.main-header-menu > li.current_page_item:not(.golden-ticket-btn) > .menu-link {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Hover — just brighten to white, no underline pseudo-element */
.main-header-menu > li > .menu-link::after {
  display: none !important;
}

/* --- Dropdowns ---
   These styles are DESKTOP-ONLY (floating dropdown card with bg + border +
   shadow + backdrop-filter). On mobile the sub-menu lives inline in the
   drawer and needs different treatment (see line ~1080 mobile sub-menu
   block). Scoped to min-width:769 to keep the desktop look without bleeding
   into the mobile drawer where the floating-card styling looked broken. */
@media (min-width: 769px) {
  .main-header-menu .sub-menu {
    background: rgba(0, 0, 0, 0.95) !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: var(--ik-radius-sm) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7) !important;
    padding: 8px !important;
    min-width: 200px !important;
    backdrop-filter: blur(20px) !important;
  }

  .main-header-menu .sub-menu .menu-link {
    padding: 8px 16px !important;
    border-radius: var(--ik-radius-sm) !important;
    font-size: 12px !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    font-weight: 400 !important;
    color: var(--ik-text-secondary) !important;
    -webkit-text-fill-color: var(--ik-text-secondary) !important;
  }

  .main-header-menu .sub-menu .menu-link::after {
    display: none !important;
  }

  .main-header-menu .sub-menu .menu-link:hover {
    background: rgba(255, 255, 255, 0.04) !important;
    color: rgba(255,255,255,0.9) !important;
    -webkit-text-fill-color: rgba(255,255,255,0.9) !important;
  }
}

/* Dropdown arrows */
.ast-header-navigation-arrow, .ast-icon.icon-arrow {
  color: rgba(255,255,255,0.25) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.25) !important;
}

/* Account button in nav */
.ik-account-btn > a { color: var(--ik-gold) !important; -webkit-text-fill-color: var(--ik-gold) !important; }

/* --- CTA button in header — outline style (luxury) --- */
.ast-custom-button,
.ast-builder-button-wrap .ast-custom-button-link .ast-custom-button {
  background: transparent !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  padding: 10px 24px !important;
  border-radius: 0 !important;
  border: 1px solid rgba(196, 163, 90, 0.4) !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  transition: all var(--ik-duration) ease !important;
}

.ast-custom-button:hover,
.ast-builder-button-wrap .ast-custom-button-link:hover .ast-custom-button {
  border-color: var(--ik-gold) !important;
  background: rgba(196, 163, 90, 0.06) !important;
  color: var(--ik-gold-bright) !important;
  -webkit-text-fill-color: var(--ik-gold-bright) !important;
}

/* --- Tablet nav extension (2026-05-18 Ruth) -----------------------------
   Astra's default header-swap breakpoint is 921px (inline @media (max-width:
   921.9px) hides #ast-desktop-header, shows #ast-mobile-header). At iPad Pro
   12" portrait (1024) the desktop nav still renders, REGISTER + LOGIN wrap
   onto two lines because the row runs out of horizontal room.

   We EXTEND that header-swap up to <=1099 here (between 921 and 1099 we ALSO
   force the swap). We deliberately do NOT change Astra's global breakpoint
   setting (e.g. via astra_header_break_point filter) because that would also
   move sidebar collapse, content-layout, and other Astra breakpoint-conditional
   behaviors -- causing layout regressions on pages we did not intend to touch.
   This is header visibility ONLY. The hamburger's click handler is bound on
   page load directly to .menu-toggle so the off-canvas drawer works at the
   extended range too. */
@media (max-width: 1099px) {
  body #ast-desktop-header { display: none !important; }
  body #ast-mobile-header { display: block !important; }
}

/* 2026-05-18 ARCHITECTURAL DECOUPLING (Ruth) -----------------------------
   We flip our own `ik-header-mobile-nav-extended` class on body at <=1099
   (via the JS in functions.php), so Astra's `ast-header-break-point` stays
   at its native <=921 threshold and doesn't drag its other mobile-mode
   behaviors (sidebar collapse, table-row stacking, content-density
   shifts) into tablet.

   For the drawer to actually open at our extended range, we need to mirror
   Astra's drawer-display rule against our class too. Astra's rule is:
     .ast-main-header-nav-open.ast-header-break-point
       .ast-mobile-header-wrap .ast-mobile-header-content { display: block }
   We add an equivalent that fires on our class.

   Any additional Astra drawer behaviors that are class-gated on
   `ast-header-break-point` and which we want at tablet need a parallel
   rule here. Listed surgically rather than blanket-mapped so we don't pull
   in mobile-mode layout rules accidentally. */
body.ik-header-mobile-nav-extended.ast-main-header-nav-open
  .ast-mobile-header-wrap .ast-mobile-header-content {
  display: block !important;
}

/* --- Mobile header & menu --- */
.ast-mobile-header-wrap {
  background: rgba(0, 0, 0, 0.97) !important;
  backdrop-filter: blur(30px) !important;
}

.menu-toggle, .ast-mobile-menu-trigger-fill {
  background: transparent !important;
  border: none !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  color: rgba(255,255,255,0.85) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.85) !important;
  padding: 0 !important;
}

/* Mobile header grid row — match desktop nav padding so logo and hamburger
   align with content edges */
#ast-mobile-header .ast-builder-grid-row {
  padding: 0 clamp(1.5rem, 4vw, 3rem) !important;
}

/* Remove the line between mobile header bar and menu content */
#ast-mobile-header .ast-mobile-header-bar,
#ast-mobile-header .site-header-primary-section-left,
#ast-mobile-header .ast-builder-grid-row,
.ast-mobile-header-wrap .ast-primary-header-bar,
.ast-mobile-header-wrap .ast-main-header-bar-alignment {
  border-bottom: none !important;
  box-shadow: none !important;
}

/* Mobile drawer outer surface: dark bg + asymmetric padding (Ruth's spec
   2026-05-17): .5rem top, 3rem horizontal (matches logo's left edge and X's
   right edge in the header bar), 1.5rem bottom. The inner nav/menu wrappers
   used to ALSO get padding: 1.5rem, which stacked across 4 nested layers
   (each adding ~24px on every side) and asymmetrically — .ast-builder-menu-1
   only matched the MAIN menu so the secondary (MY ACCOUNT) menu skipped one
   layer and sat 21px further left. Zeroing all inner wrappers makes every
   menu inherit the drawer's natural inset uniformly. No border-top either
   (Ruth removed it). */
.ast-mobile-header-content {
  background: var(--ik-bg-deep) !important;
  border: none !important;
  padding: .5rem 3rem 1.5rem !important;
}
.ast-mobile-header-content .main-header-bar-navigation,
.ast-mobile-header-content .main-navigation,
.ast-mobile-header-content .ast-builder-menu-1,
.ast-mobile-header-content .ast-builder-menu-2 {
  background: var(--ik-bg-deep) !important;
  border-top: none !important;
  padding: 0 !important;
}

/* Astra core ships .ast-builder-layout-element:not(.ast-builder-menu):not(...)
   with padding: 15px 20px (drawer-internal layout elements like the cart row).
   In our drawer, that becomes redundant padding on top of the outer drawer's
   3rem horizontal — and the cart row ends up inset more than the menu items.
   Zero it so cart inherits the drawer's natural inset like every menu item. */
.ast-mobile-header-content .ast-builder-layout-element:not(.ast-builder-menu):not(.ast-header-divider-element),
.ast-mobile-popup-content .ast-builder-layout-element:not(.ast-builder-menu):not(.ast-header-divider-element) {
  padding: 0 !important;
}

/* Mobile menu — dark background (override Astra's rgb(249,249,249) default) */
#ast-mobile-header .main-header-menu,
.ast-mobile-header-wrap .main-header-menu,
.ast-mobile-header-content .main-header-menu {
  background: var(--ik-bg-deep) !important;
  background-color: var(--ik-bg-deep) !important;
}

/* Mobile menu links — UPPERCASE + 0.1em letter-spacing to mirror desktop nav.
   Earlier this was deliberately mixed-case; Ruth confirmed 2026-04-28 that
   was not intentional and the two should match. */
.ast-mobile-header-content .main-header-menu .menu-link,
.ast-mobile-header-content .main-header-menu .menu-item > a,
#ast-mobile-header .main-header-menu .menu-link,
#ast-mobile-header .main-header-menu .menu-item > a {
  font-size: 15px !important;
  font-weight: 500 !important;
  padding: 14px 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  background: transparent !important;
}

.ast-mobile-header-content .main-header-menu .menu-link:hover,
.ast-mobile-header-content .main-header-menu .menu-item > a:hover,
#ast-mobile-header .main-header-menu .menu-link:hover,
#ast-mobile-header .main-header-menu .menu-item > a:hover {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

.ast-mobile-header-content .main-header-menu .menu-link::after,
#ast-mobile-header .main-header-menu .menu-link::after {
  display: none !important;
}

/* Mobile menu sub-menus — Ruth's spec 2026-05-17: subtle inset container
   (slightly lighter than drawer bg so it reads as nested under parent), no
   harsh border/shadow/radius, items uppercase with separators between, no
   shrink-wrapped min-width (fills drawer's natural inset). */
#ast-mobile-header .main-header-menu .sub-menu,
.ast-mobile-header-wrap .main-header-menu .sub-menu {
  background: var(--ik-bg-raised) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-width: 0 !important;
  width: 100% !important;
  backdrop-filter: none !important;
}

/* Mobile sub-menu items — match parent menu typography (uppercase, white,
   17px, letter-spacing 1.7px) so the sub-nav reads as a continuation of the
   menu rhythm. Separator between items via border-bottom.
   padding: 14px 1.5rem — vertical matches parent menu rhythm; horizontal
   1.5rem gives breathing room inside the gray inset container so items
   aren't flush against its edges (Ruth, 2026-05-17). */
#ast-mobile-header .main-header-menu .sub-menu .menu-link,
.ast-mobile-header-wrap .main-header-menu .sub-menu .menu-link {
  display: block !important;
  padding: 14px 1.5rem !important;
  border-radius: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.7px !important;
  line-height: 51px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
#ast-mobile-header .main-header-menu .sub-menu > li:last-child .menu-link,
.ast-mobile-header-wrap .main-header-menu .sub-menu > li:last-child .menu-link {
  border-bottom: none !important;
}

/* (Removed 2026-04-27: nav show/hide rules belong on the staging site
   (WP menu admin + PHP/plugin conditionals), not in this CSS file. The
   removed rules were:
   - `.menu-item > a[href*="/my-watchlist|/watchlist|/my-account|/cart"] { display: none }`
     scoped to `#ast-mobile-header`/`.ast-mobile-header-content` — were
     unconditionally hiding those items on mobile, comment claimed
     logged-out-only but had no scope.
   - The same selectors against the parent `<li>` via `:has()`.
   - `.main-header-menu .menu-item:first-child { display: none }` —
     intended to hide "Home" but Home was removed from the WP menu admin,
     so the rule was hiding whatever happened to be first (Golden Ticket
     on top-level + Isopod Care under Help + My Account inside the My
     Account submenu, because :first-child leaks into nested ULs).
   - `.menu-item-2485 { display: none }` (My Bids/Wins) on mobile — same
     mockup-leftover pattern.
   See feedback_css_appearance_only.md for the universal rule.) */

/* Mobile menu dropdown arrows — gold */
#ast-mobile-header .ast-header-navigation-arrow,
#ast-mobile-header .ast-icon.icon-arrow,
#ast-mobile-header .ast-menu-toggle {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* Astra core ships .ast-header-break-point .main-header-bar-navigation
   .menu-item-has-children > .ast-menu-toggle with right:20px + horizontal
   padding ~14.5px, which makes the caret sit ~34px in from the menu row's
   right edge. Force flush-right so the caret aligns with the right edge of
   the drawer's natural inset — same column the cart bag uses. */
#ast-mobile-header .ast-menu-toggle,
.ast-mobile-header-wrap .ast-menu-toggle,
.ast-mobile-header-content .ast-menu-toggle {
  right: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

/* Mobile nav — spacing before Register/Login (gap-only separator,
   no border line; Ruth 2026-05-18 flagged the gold border-top as a
   rogue line in the drawer). The 12px margin + 12px padding gives a
   ~24px visual gap that distinguishes Register/Login from the main
   nav items above without needing a horizontal rule. */
#ast-hf-menu-1-mobile .menu-item:has(> a[href*="/register"]),
.ast-mobile-header-content .menu-item:has(> a[href*="/register"]) {
  margin-top: 12px !important;
  padding-top: 12px !important;
}

/* Register — gold, centered (uniform with Login below). The earlier "outline
   button" border was inconsistent with Login's plain-gold treatment. */
#ast-hf-menu-1-mobile .menu-item:has(> a[href*="/register"]) > .menu-link,
.ast-mobile-header-content .menu-item:has(> a[href*="/register"]) > .menu-link {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  display: block !important;
  text-align: center !important;
  padding: 14px 0 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border-bottom: none !important;
}

/* Login — gold text, centered in mobile menu */
#ast-hf-menu-1-mobile .menu-item:has(> a[href*="/login"]) > .menu-link,
.ast-mobile-header-content .menu-item:has(> a[href*="/login"]) > .menu-link {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  text-align: center !important;
  display: block !important;
  font-size: 14px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-bottom: none !important;
}

/* Hide "Take Action" Astra header button in mobile menu */
.ast-mobile-header-content .ast-header-button-1,
.ast-mobile-header-content [data-section="section-hb-button-1"],
#ast-mobile-header .ast-header-button-1 {
  display: none !important;
}

/* Clean up empty dividers/borders in mobile menu area */
.ast-mobile-header-content .ast-builder-menu-1 > .ast-main-header-bar-alignment,
.ast-mobile-header-content .main-header-bar-navigation,
.ast-mobile-header-content nav.site-navigation,
.ast-mobile-header-content .main-navigation {
  border: none !important;
  padding-top: 0 !important;
}

.ast-mobile-header-content {
  border: none !important;
  padding: 0.5rem 1.5rem 1.5rem !important;
}

/* Kill ALL stray borders/lines inside mobile header content */
.ast-mobile-header-content *,
.ast-mobile-header-content::before,
.ast-mobile-header-content::after {
  border-top: none !important;
}

/* Re-add only the subtle separator between menu items */
#ast-mobile-header .main-header-menu .menu-link,
.ast-mobile-header-content .main-header-menu .menu-link {
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}


/* ══════════════════════════════════════════════════════════════
   10. HERO SECTION
   Cinematic full-width hero with Ken Burns zoom, dark gradient
   overlay, overline label, Playfair heading, and dual CTA buttons.
   ══════════════════════════════════════════════════════════════ */

.entry-content > .wp-block-group.alignfull.has-background:first-child,
.entry-content > .wp-block-group.alignfull:first-of-type {
  background-color: #000 !important;
  background-image: var(--ik-img-hero) !important;
  background-size: cover !important;
  background-position: center 35% !important;
  background-repeat: no-repeat !important;
  padding-top: clamp(5rem, 10vw, 8rem) !important;
  padding-bottom: clamp(5rem, 10vw, 8rem) !important;
  margin-bottom: 0 !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: auto !important;
  display: flex !important;
  align-items: center !important;
  animation: heroZoom 25s ease-in-out infinite alternate !important;
  background-attachment: fixed !important;
}

/* Ken Burns slow zoom on the background */
@keyframes heroZoom {
  0% { background-size: 100% auto; }
  100% { background-size: 108% auto; }
}

/* Dark gradient overlay + vignette combined */
.entry-content > .wp-block-group.alignfull:first-of-type::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.2) 30%, rgba(0,0,0,0.5) 60%, rgba(0,0,0,0.85) 100%),
    radial-gradient(ellipse at 50% 0%, rgba(196, 163, 90, 0.03) 0%, transparent 50%),
    radial-gradient(ellipse at 100% 100%, rgba(0,0,0,0.4) 0%, transparent 70%),
    radial-gradient(ellipse at 0% 100%, rgba(0,0,0,0.4) 0%, transparent 70%) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

/* Hero content container */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-columns {
  gap: clamp(2rem, 5vw, 4rem) !important;
  align-items: center !important;
  max-width: var(--ik-max-width) !important;
  margin-inline: auto !important;
  padding-inline: clamp(2rem, 6vw, 4rem) !important;
  position: relative !important;
  z-index: 2 !important;
  flex-wrap: nowrap !important;
}

/* Hero text column — wider than image column */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:first-child {
  width: 55% !important;
  min-width: 55% !important;
  flex-grow: 1 !important;
  flex-shrink: 0 !important;
}

/* Hero image column — shrink it down */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child {
  width: 40% !important;
  min-width: 0 !important;
  flex-shrink: 1 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
}

/* Overline label — "Premium Auction Platform" */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:first-child::before {
  content: 'Premium Auction Platform' !important;
  display: block !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  margin-bottom: 16px !important;
  opacity: 1 !important;
}

/* Hero heading — large serif. ONLY on homepage (page-id-1381) + Golden Ticket
   (page-id-2594). Other pages with a dark hero block (About, Isopod Care, etc.)
   should use Inter per STYLE-GUIDE.md. */
body.page-id-1381 .entry-content > .wp-block-group.alignfull:first-of-type h1,
body.page-id-1381 .entry-content > .wp-block-group.alignfull:first-of-type h1.wp-block-heading,
body.page-id-1381 .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-heading,
body.page-id-2594 .entry-content > .wp-block-group.alignfull:first-of-type h1,
body.page-id-2594 .entry-content > .wp-block-group.alignfull:first-of-type h1.wp-block-heading,
body.page-id-2594 .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-heading {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2.5rem, 2rem + 2.5vw, 4rem) !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  margin-bottom: 20px !important;
}

/* Content pages dark hero H1 — Inter font, large but not Playfair (per STYLE-GUIDE) */
body:not(.page-id-1381):not(.page-id-2594) .entry-content > .wp-block-group.alignfull:first-of-type h1,
body:not(.page-id-1381):not(.page-id-2594) .entry-content > .wp-block-group.alignfull:first-of-type h1.wp-block-heading {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: clamp(2rem, 1.5rem + 2vw, 3rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* === Content pages with a top-level H1 (FAQ, Policies, Contact, etc.) === */
/* H1 at the root of .entry-content → full-bleed gold bar.
   Excludes homepage (1381), GT (2594), Auctions (1384), Sellers (1386) which have their own H1 rules.
   Excludes About/Isopod Care because their H1 is wrapped in a dark hero block (not a direct child of .entry-content). */
body:not(.page-id-1381):not(.page-id-2594):not(.page-id-1384):not(.page-id-1386) .entry-content > h1,
body:not(.page-id-1381):not(.page-id-2594):not(.page-id-1384):not(.page-id-1386) .entry-content > h1.wp-block-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin: 0 -50vw 32px !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
  display: block !important;
}

/* === Login (1569) + Register (1572) + My Bids (2489) + My Won Auctions (1696):
   H1 lives in header.entry-header, not entry-content. Gold bar treatment. === */
body.page-id-1569 article .entry-header h1,
body.page-id-1569 article .entry-header h1.entry-title,
body.page-id-1572 article .entry-header h1,
body.page-id-1572 article .entry-header h1.entry-title,
body.page-id-2489 article .entry-header h1,
body.page-id-2489 article .entry-header h1.entry-title,
body.page-id-1696 article .entry-header h1,
body.page-id-1696 article .entry-header h1.entry-title {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 32px 0 !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
  display: block !important;
  opacity: 1 !important;
}
/* Make sure entry-header itself doesn't constrain the gold bar width */
body.page-id-1569 article .entry-header,
body.page-id-1572 article .entry-header,
body.page-id-2489 article .entry-header,
body.page-id-1696 article .entry-header {
  margin: 0 !important;
  padding: 0 !important;
}

/* === Policies page (page-id-1394) — sub-section H2s → plain text (no gold bar) === */
body.page-id-1394 .entry-content h2,
body.page-id-1394 .entry-content h2.wp-block-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  background: none !important;
  background-image: none !important;
  border: none !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 32px 0 12px 0 !important;
  padding: 0 !important;
  text-align: left !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-shadow: none !important;
  box-sizing: content-box !important;
}

/* Hero body text */
.entry-content > .wp-block-group.alignfull:first-of-type .has-white-color,
.entry-content > .wp-block-group.alignfull:first-of-type p:not(.wp-block-heading) {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-lg) !important;
  font-weight: 400 !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  line-height: 1.8 !important;
  max-width: none !important;
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}

/* Hero buttons container.
   Post_content lacks the `is-layout-flex` class WP normally generates, so the
   container falls back to display:block and `gap` is ignored — buttons render
   flush. Force flex here so the 1rem gap actually applies. */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
  margin-top: 0 !important;
}

/* Primary CTA — gold filled, prominent. Padding + 1px transparent border
   match the secondary button so both render at identical dimensions. No
   box-shadow halo (it read as a yellow "border" around the gold button). */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-button:first-child .wp-block-button__link {
  background: var(--ik-gold) !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid transparent !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 16px 44px !important;
  border-radius: 0 !important;
  transition: all var(--ik-duration) ease !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-button:first-child .wp-block-button__link:hover {
  background: var(--ik-gold-bright) !important;
  box-shadow: none !important;
  transform: translateY(-2px) !important;
}

/* Golden Ticket hero button — gold outline with ticket icon */
.entry-content > .wp-block-group.alignfull:first-of-type .ik-gt-hero-btn .wp-block-button__link {
  background: transparent !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  border: 1px solid rgba(255, 204, 51, 0.4) !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 16px 44px !important;
  border-radius: 0 !important;
  transition: all var(--ik-duration) ease !important;
  text-decoration: none !important;
}

.entry-content > .wp-block-group.alignfull:first-of-type .ik-gt-hero-btn .wp-block-button__link:hover {
  border-color: var(--ik-gold) !important;
  background: rgba(255, 204, 51, 0.06) !important;
  color: var(--ik-gold-bright) !important;
  -webkit-text-fill-color: var(--ik-gold-bright) !important;
}

/* Secondary CTA — gold outline */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-button:nth-child(n+2) .wp-block-button__link {
  background: transparent !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  border: 1px solid rgba(196, 163, 90, 0.35) !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 16px 44px !important;
  border-radius: 0 !important;
  transition: all var(--ik-duration) ease !important;
  text-decoration: none !important;
}

.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-button:nth-child(n+2) .wp-block-button__link:hover {
  border-color: var(--ik-gold) !important;
  background: rgba(196, 163, 90, 0.04) !important;
}

/* Hero right column — logo/figure container */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child figure,
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child .wp-block-image {
  margin-left: auto !important;
  margin-right: 0 !important;
  text-align: right !important;
}

/* Hero logo image */
.entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child figure img {
  max-width: 480px !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 1 !important;
  filter: drop-shadow(0 8px 40px rgba(0, 0, 0, 0.5)) !important;
}

/* Gold line at bottom of hero — none, trust bar handles separation */
.entry-content > .wp-block-group.alignfull:first-of-type {
  border-bottom: none !important;
  box-shadow: none !important;
}

/* Trust bar — now using HTML, disable the ::after version */
.entry-content > .wp-block-group.alignfull:first-of-type::after {
  display: none !important;
}

/* ══════════════════════════════════════════════════════════════
   10b. CONTENT-PAGE HERO BANNERS
   About (1388) + Isopod Care (1744) inherited the homepage's flex
   hero layout but their content is just H1 + tagline — not the
   55/40 column split. Override: full-bleed banner, centered stack,
   drop the Ken Burns animation and fixed bg attachment (which
   look jittery on shorter pages and break iOS scroll).
   ══════════════════════════════════════════════════════════════ */

body.page-id-1388 #content .entry-content > .wp-block-group.alignfull:first-of-type,
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull:first-of-type {
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin-top: 0 !important;
  margin-right: -50vw !important;
  margin-bottom: 48px !important;
  margin-left: -50vw !important;
  display: block !important;
  animation: none !important;
  background-attachment: scroll !important;
  background-position: center 40% !important;
  padding: clamp(4rem, 8vw, 6rem) clamp(1.5rem, 4vw, 3rem) !important;
  min-height: auto !important;
  text-align: center !important;
}

/* Stronger overlay so the H1 reads cleanly across image variations */
body.page-id-1388 #content .entry-content > .wp-block-group.alignfull:first-of-type::before,
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull:first-of-type::before {
  background:
    linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.65) 100%),
    radial-gradient(ellipse at 50% 50%, rgba(196,163,90,0.05) 0%, transparent 60%) !important;
}

/* H1 — Inter, bold, white, centered */
/* Note: About (1388) has h1 as direct child of .alignfull. Isopod Care (1744)
   nests h1 inside an inner constrained group, so we need the deeper selector
   for that page. */
body.page-id-1388 #content .entry-content > .wp-block-group.alignfull:first-of-type > h1,
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull:first-of-type > h1,
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull:first-of-type > .wp-block-group > h1 {
  font-family: var(--ik-font-body) !important;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  margin: 0 auto !important;
  max-width: var(--ik-max-width) !important;
  line-height: 1.15 !important;
  text-align: center !important;
  position: relative !important;
  z-index: 2 !important;
  width: auto !important;
  display: block !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.5) !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}

/* Tagline paragraph — sits below H1, centered, slightly muted white */
body.page-id-1388 #content .entry-content > .wp-block-group.alignfull:first-of-type p,
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull:first-of-type p {
  font-family: var(--ik-font-body) !important;
  font-size: clamp(0.95rem, 1.2vw, 1.0625rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  color: rgba(255,255,255,0.85) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.85) !important;
  margin: 18px auto 0 !important;
  max-width: 720px !important;
  text-align: center !important;
  line-height: 1.55 !important;
  position: relative !important;
  z-index: 2 !important;
  width: auto !important;
}

/* Subtle gold accent under the H1 — divider line.
   Isopod Care nests h1 inside an inner group; include the deeper selector. */
body.page-id-1388 #content .entry-content > .wp-block-group.alignfull:first-of-type > h1::after,
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull:first-of-type > h1::after,
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull:first-of-type > .wp-block-group > h1::after {
  content: '' !important;
  display: block !important;
  width: 64px !important;
  height: 2px !important;
  background: var(--ik-gold) !important;
  margin: 18px auto 0 !important;
}


/* ══════════════════════════════════════════════════════════════
   10c. CONTENT-PAGE CLOSING-LINE CENTERING + ISOPOD CARE CTA
   - About / Contact: closing/info paragraphs at the root of
     entry-content centered.
   - FAQ: intro paragraph centered with breathing room before
     the accordion blocks.
   - Isopod Care CTA box ("Ready to Start Your Isopod Colony?"):
     proper padding, design-system dark surface, centered stack.
     The block's inline `background-color:#0f2230` was being
     overridden to near-black and its padding-left/right zeroed
     by the universal alignfull rule (line 351), so it read as
     a no-padding mistake.
   ══════════════════════════════════════════════════════════════ */

/* About — center the closing "Explore our live auctions..." paragraph */
body.page-id-1388 #content .entry-content > p {
  text-align: center !important;
}

/* FAQ — center the "For full details..." paragraph + add space below */
body.page-id-1392 #content .entry-content > p {
  text-align: center !important;
  margin-bottom: 32px !important;
}

/* Contact — center the support info paragraphs */
body.page-id-1390 #content .entry-content > p {
  text-align: center !important;
}

/* Isopod Care CTA box — second .alignfull.has-background is the
   "Ready to Start Your Isopod Colony?" block. Restore proper padding
   + design-system dark surface. */
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull.has-background:not(:first-of-type) {
  background: #1E1E1B !important;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem) !important;
  margin: 48px 0 !important;
  border: none !important;
  border-radius: 0 !important;
  text-align: center !important;
  /* Stay at content-width — DO NOT break out to viewport */
  width: 100% !important;
  max-width: 100% !important;
  position: static !important;
  left: auto !important;
}

/* Inner content constrained for comfortable reading */
body.page-id-1744 #content .entry-content > .wp-block-group.alignfull.has-background:not(:first-of-type) > * {
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-id-1744 #content .entry-content > .wp-block-group.alignfull.has-background:not(:first-of-type) h2 {
  font-family: var(--ik-font-body) !important;
  font-size: clamp(1.25rem, 2.4vw, 1.625rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  margin: 0 0 12px !important;
  line-height: 1.25 !important;
  text-align: center !important;
}

body.page-id-1744 #content .entry-content > .wp-block-group.alignfull.has-background:not(:first-of-type) p {
  font-family: var(--ik-font-body) !important;
  font-size: 1rem !important;
  color: rgba(255,255,255,0.85) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.85) !important;
  margin: 0 auto 24px !important;
  text-align: center !important;
  line-height: 1.55 !important;
}

body.page-id-1744 #content .entry-content > .wp-block-group.alignfull.has-background:not(:first-of-type) .wp-block-buttons {
  justify-content: center !important;
  margin: 0 !important;
}


/* ══════════════════════════════════════════════════════════════
   11. GOLDEN TICKET BANNER
   Full-width gold gradient CTA strip between hero and trust bar.
   Includes shimmer animation, hat decoration, and ticket graphic.
   ══════════════════════════════════════════════════════════════ */

.ik-gt-banner {
  display: block !important;
  width: 100% !important;
  background: linear-gradient(
    135deg,
    #7A5C00 0%,
    #9A7800 8%,
    #C9A000 18%,
    #E6B800 28%,
    #FFCC33 38%,
    #FFE066 48%,
    #FFF2A8 52%,
    #FFE066 56%,
    #FFCC33 65%,
    #E6B800 75%,
    #C9A000 85%,
    #9A7800 92%,
    #7A5C00 100%
  ) !important;
  border-top: 2px solid #FFE066 !important;
  border-bottom: 2px solid #FFE066 !important;
  text-decoration: none !important;
  position: relative !important;
  overflow: hidden !important;
  transition: all 0.4s ease !important;
}

.ik-gt-banner:hover {
  background: linear-gradient(
    135deg,
    #8A6A00 0%,
    #AA8800 8%,
    #D4AA00 18%,
    #F0C800 28%,
    #FFCC33 38%,
    #FFE680 48%,
    #FFF5C0 52%,
    #FFE680 56%,
    #FFCC33 65%,
    #F0C800 75%,
    #D4AA00 85%,
    #AA8800 92%,
    #8A6A00 100%
  ) !important;
}

/* Bright sheen centered behind the ticket graphic */
.ik-gt-banner-glow {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background:
    radial-gradient(ellipse 35% 140% at 75% 50%, rgba(255,255,255,0.35) 0%, transparent 60%),
    radial-gradient(ellipse 80% 60% at 30% 0%, rgba(255,255,255,0.08) 0%, transparent 50%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

/* Shimmer sweep animation */
.ik-gt-banner::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: -100% !important;
  width: 50% !important;
  height: 100% !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), rgba(255,255,255,0.3), rgba(255,255,255,0.15), transparent) !important;
  animation: gtShimmer 4s ease-in-out infinite !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

@keyframes gtShimmer {
  0% { left: -100%; }
  100% { left: 200%; }
}

.ik-gt-banner-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(1.5rem, 4vw, 3rem) !important;
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: 36px clamp(2rem, 5vw, 3rem) !important;
  position: relative !important;
  z-index: 3 !important;
}

.ik-gt-banner-icon {
  width: 52px !important;
  height: 52px !important;
  flex-shrink: 0 !important;
  filter:
    drop-shadow(2px 3px 3px rgba(0,0,0,0.3))
    drop-shadow(0 0 6px rgba(255,255,255,0.3)) !important;
}

/* Hat hanging off the top-left of the G */
.ik-gt-banner-hat {
  position: absolute !important;
  width: 34px !important;
  height: auto !important;
  top: 0px !important;
  left: -12px !important;
  transform: rotate(-24deg) !important;
  pointer-events: none !important;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,0.5)) !important;
  transition: transform 0.4s ease !important;
  z-index: 4 !important;
}

.ik-gt-banner:hover .ik-gt-banner-hat {
  transform: rotate(-20deg) translateY(-2px) !important;
}

.ik-gt-banner-text {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

.ik-gt-banner-label {
  position: relative !important;
  font-family: var(--ik-font-display) !important;
  font-size: 36px !important;
  font-weight: 900 !important;
  color: #1A1000 !important;
  -webkit-text-fill-color: #1A1000 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  line-height: 1.2 !important;
  text-shadow: 2px 3px 1px rgba(255,255,240,0.7) !important;
  padding-top: 10px !important;
}

.ik-gt-banner-tagline {
  font-family: var(--ik-font-display) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  color: #3D2800 !important;
  -webkit-text-fill-color: #3D2800 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.4 !important;
}

.ik-gt-banner-btn-img {
  height: 140px !important;
  width: auto !important;
  flex-shrink: 0 !important;
  margin: -20px 0 !important;
  transition: transform 0.3s ease, filter 0.3s ease !important;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1)) !important;
}

.ik-gt-banner:hover .ik-gt-banner-btn-img {
  transform: scale(1.05) !important;
  filter: drop-shadow(0 3px 6px rgba(0,0,0,0.15)) !important;
}

/* --- Staging GT banner (image-based, class .gt-hp-banner) --- */
.gt-hp-banner {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.gt-hp-banner-link {
  display: block !important;
  width: 100% !important;
  text-decoration: none !important;
}

.gt-hp-banner-img {
  width: 100% !important;
  height: auto !important;
  max-height: 200px !important;
  object-fit: cover !important;
  display: block !important;
  border: none !important;
}


/* ══════════════════════════════════════════════════════════════
   12. TRUST BAR
   Full-width bar with gold diamond separators between values.
   Stacks into a bordered list on mobile. Placed LAST in source
   order so responsive overrides win.
   ══════════════════════════════════════════════════════════════ */

/* Trust bar — HTML version, full-width */
.ik-trust-bar {
  background: linear-gradient(180deg, #222018 0%, #110F0A 50%, #000000 100%) !important;
  border-top: 1px solid rgba(255, 204, 51, 0.25) !important;
  padding: 18px 2rem !important;
  width: 100% !important;
  margin: 0 !important;
}

.ik-trust-bar-inner {
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
}

/* NOTE FOR DEVELOPER: Add this HTML between the hero block and the
   "Go To Auction Floor" block in the WordPress page editor (Custom HTML block):

   <div class="ik-trust-bar">
     <div class="ik-trust-bar-inner">
       <span class="ik-trust-item">Built by Keepers</span>
       <span class="ik-trust-item">Earned Reputation</span>
       <span class="ik-trust-item">Growth Over Ego</span>
       <span class="ik-trust-item">Responsible Keeping</span>
       <span class="ik-trust-item">Structured for Stability</span>
     </div>
   </div>
*/

/* Trust bar flex layout — base rule (overridden by responsive grid below) */
.ik-trust-bar-inner {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
}

/* Hide <br> and <p> wrappers WordPress Classic editor inserts */
.ik-trust-bar-inner br {
  display: none !important;
}

/* Classic editor wraps inline content in <p> tags — flatten them */
.ik-trust-bar-inner p {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
}

span.ik-trust-item {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-family: var(--ik-font-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

/* Gold diamond separators between items.
   Works with direct siblings AND when <p> tags wrap each span.
   First item has no separator (handled by :first-child exclusion). */
span.ik-trust-item ~ span.ik-trust-item::before,
.ik-trust-bar-inner p ~ p span.ik-trust-item::before {
  content: '◆' !important;
  color: var(--ik-gold-dark) !important;
  -webkit-text-fill-color: var(--ik-gold-dark) !important;
  font-size: 5px !important;
  margin: 0 clamp(0.75rem, 1.5vw, 1.25rem) !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

/* Don't double-up diamonds if spans are direct siblings inside <p> */
.ik-trust-bar-inner p:first-child span.ik-trust-item::before {
  display: none !important;
}


/* ══════════════════════════════════════════════════════════════
   13. SECTION HEADINGS & DIVIDERS
   Gold gradient bar headings for section separation.
   Kill all WordPress block gaps so sections sit flush.
   ══════════════════════════════════════════════════════════════ */

/* No dividers — gold heading strips handle section separation */
.entry-content > .wp-block-group + .wp-block-group::before {
  display: none !important;
}

/* Section headings — refined gold bar with premium typography */
.entry-content h2.wp-block-heading,
.entry-content h2.wp-block-heading.has-text-align-center,
h2.wp-block-heading,
h2.ik-gold-bar {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: var(--ik-text-2xl) !important;
  font-weight: 700 !important;
  font-style: normal !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255, 220, 100, 0.6) !important;
  border-bottom: 1px solid rgba(160, 130, 40, 0.5) !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 2.5rem !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  max-width: none !important;
  box-sizing: border-box !important;
  position: relative !important;
}

/* Kill ALL gaps between sections — gold strips must sit flush */
.entry-content > .wp-block-group,
.entry-content > .wp-block-group.alignfull,
.entry-content > .wp-block-group.is-layout-constrained,
.entry-content > .wp-block-group + .wp-block-group {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
}

/* WordPress block spacing — nuke it */
.entry-content > *,
.entry-content > .wp-block-group + * {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

/* Astra article spacing */
.ast-article-single .entry-content > *:first-child {
  margin-top: 0 !important;
}

.entry-content:not(.woocommerce-Tabs-panel) {
  gap: 0 !important;
  display: block !important;
}

/* Kill gap between hero and auction floor heading */
.entry-content > .wp-block-group.alignfull:first-of-type {
  margin-bottom: 0 !important;
  padding-bottom: clamp(4rem, 8vw, 6rem) !important;
}

.entry-content > .wp-block-group.alignfull:first-of-type + .wp-block-group {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: none !important;
}

.entry-content > .wp-block-group.alignfull:first-of-type + .wp-block-group > h2:first-child {
  margin-top: 0 !important;
}

.entry-content h2.has-text-align-center {
  position: relative !important;
}

/* Heading pseudo-elements — not needed with gold bar */
.entry-content h2.wp-block-heading::before,
.entry-content h2.wp-block-heading::after {
  display: none !important;
}


/* ══════════════════════════════════════════════════════════════
   14. AUCTION FLOOR (White Content Area)
   The second wp-block-group is the white "Auction Floor" section.
   White background with dark text, constrained content width.
   ══════════════════════════════════════════════════════════════ */

/* Auction Floor section — full-width white wrapper.
   .ik-auction-floor-section wraps the gold bar H2 + species card grid.
   Entire row is white background. */
.ik-auction-floor-section,
body.page-id-1381 .entry-content > .ik-auction-floor-section {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  width: 100% !important;
  padding: 0 0 clamp(2rem, 4vw, 3rem) 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
}

/* Fallback selectors for older structure without wrapper */
body.page-id-1381 .entry-content > .wp-block-group:nth-of-type(3),
.entry-content > .ik-trust-bar + .wp-block-group,
div.ik-trust-bar + div.wp-block-group,
body.page-id-1381 .entry-content > h2.wp-block-heading + div {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  padding: clamp(2rem, 4vw, 3rem) clamp(2rem, 6vw, 4rem) clamp(3rem, 6vw, 5rem) !important;
}

/* "Go To Auction Floor" H2 — no bottom margin so it connects with cards.
   Gold bar styling is applied in section heading rules. */
.ik-auction-floor-section > h2.wp-block-heading,
body.page-id-1381 .entry-content > h2.wp-block-heading.has-text-align-center {
  margin-bottom: 0 !important;
}

/* Content inside the Auction Floor section — constrain width, centered */
body.page-id-1381 .entry-content > .wp-block-group:nth-of-type(3) > *,
.entry-content > .ik-trust-bar + .wp-block-group > * {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* "Go To Auction Floor" section wrapper — kill Astra's default wp-block-group padding
   so the gold bar is full-width and flush against the trust bar above. */
body.page-id-1381 .entry-content > .ik-trust-bar + .wp-block-group {
  padding: 0 !important;
  margin: 0 !important;
}

/* "Go To Auction Floor" + "Founding Keepers" headings — restore FULL gold bar.
   L7776 has .entry-content .wp-block-group h2.wp-block-heading { background: none }
   which strips the gold bar from section headings. These rules use higher specificity
   to re-apply the gold bar on homepage. Includes direct-child H2 for staging structure. */
body.page-id-1381 .entry-content > .wp-block-group:nth-of-type(3) > h2.wp-block-heading,
body.page-id-1381 .entry-content > .ik-trust-bar + .wp-block-group > h2.wp-block-heading,
body.page-id-1381 .entry-content > .wp-block-group:last-of-type > h2.wp-block-heading,
body.page-id-1381 .entry-content > h2.wp-block-heading.has-text-align-center,
.ik-auction-floor-section > h2.wp-block-heading {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: var(--ik-text-2xl) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255, 220, 100, 0.6) !important;
  border-bottom: 1px solid rgba(160, 130, 40, 0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 2.5rem 0 !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  position: relative !important;
  display: block !important;
}

/* ══════════════════════════════════════════════════════════════
   15. SPECIES CARDS
   Override inline white backgrounds on species cards.
   Overlay text on bottom of image with gradient fade.
   Handles both "background:#fff" and "background: #fff" variants.
   ══════════════════════════════════════════════════════════════ */

.entry-content [style*="grid-template-columns"] {
  gap: 24px !important;
}

/* Hide stray <br> tags WordPress Classic editor inserts between and inside cards.
   These occupy grid cells and break the 4-column layout into 2 columns. */
.entry-content [style*="grid-template-columns"] > br {
  display: none !important;
}

.entry-content a[style*="background:#fff"] br,
.entry-content a[style*="background: #fff"] br {
  display: none !important;
}

.entry-content a[style*="background:#fff"],
.entry-content a[style*="background: #fff"],
.entry-content [style*="display:block"][style*="background:#fff"] {
  background: var(--ik-bg-raised) !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  border-radius: var(--ik-radius-sm) !important;
  overflow: hidden !important;
  text-decoration: none !important;
  transition: all var(--ik-duration-slow) var(--ik-ease) !important;
  position: relative !important;
}

@media (hover: hover) and (pointer: fine) {
  .entry-content a[style*="background:#fff"]:hover,
  .entry-content a[style*="background: #fff"]:hover {
    border-color: rgba(196, 163, 90, 0.15) !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5) !important;
  }
}

.entry-content a[style*="background:#fff"] img,
.entry-content a[style*="background: #fff"] img {
  height: 260px !important;
  object-fit: cover !important;
  transition: transform 0.8s var(--ik-ease) !important;
  display: block !important;
  width: 100% !important;
}

@media (hover: hover) and (pointer: fine) {
  .entry-content a[style*="background:#fff"]:hover img,
  .entry-content a[style*="background: #fff"]:hover img {
    transform: scale(1.05) !important;
  }
}

.entry-content a[style*="background:#fff"] span,
.entry-content a[style*="background: #fff"] span {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-base) !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-style: normal !important;
  text-align: center !important;
  display: block !important;
  letter-spacing: 0.03em !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%) !important;
  z-index: 2 !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.8) !important;
  padding: 50px 16px 14px !important;
}

/* Founding Keepers section — leather texture + gradient
   SCOPED TO HOMEPAGE ONLY (page-id-1381).
   Uses :last-of-type instead of nth-of-type to survive HTML structure changes
   (GT banner + trust bar divs shift the count). */
body.page-id-1381 .entry-content > .wp-block-group:last-of-type {
  background: linear-gradient(180deg, rgba(10,7,4,0.6) 0%, rgba(20,14,8,0.3) 50%, rgba(10,7,4,0.7) 100%) no-repeat 0 0 / 100% 100%, url('../images/texture-leather.png') repeat 0 0 / auto auto #1A120B !important;
  padding-bottom: clamp(3rem, 6vw, 5rem) !important;
}

/* Founding Keepers children — constrain to max-width, centered */
body.page-id-1381 .entry-content > .wp-block-group:last-of-type > * {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1rem, 3vw, 2rem) !important;
  padding-right: clamp(1rem, 3vw, 2rem) !important;
}

/* Carousel: constrain to content container, with side padding so logos breathe.
   Swiper still calculates slide widths fine inside a constrained max-width. */
body.page-id-1381 .entry-content > .wp-block-group:last-of-type > .logo-carousel-free {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1rem, 3vw, 2rem) !important;
  padding-right: clamp(1rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
}

/* Founding Keepers heading — gold bar must span full width */
body.page-id-1381 .entry-content > .wp-block-group:last-of-type > h2 {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* ══════════════════════════════════════════════════════════════
   15. SPECIES CARDS
   Override inline white backgrounds on species cards.
   Overlay text on bottom of image with gradient fade.
   ══════════════════════════════════════════════════════════════ */

.entry-content [style*="grid-template-columns"] {
  gap: 24px !important;
}

.entry-content a[style*="background:#fff"],
.entry-content a[style*="background: #fff"],
.entry-content [style*="display:block"][style*="background:#fff"] {
  background: var(--ik-bg-raised) !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  border-radius: var(--ik-radius-sm) !important;
  overflow: hidden !important;
  text-decoration: none !important;
  transition: all var(--ik-duration-slow) var(--ik-ease) !important;
  position: relative !important;
}

@media (hover: hover) and (pointer: fine) {
  .entry-content a[style*="background:#fff"]:hover {
    border-color: rgba(196, 163, 90, 0.15) !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5) !important;
  }
}

.entry-content a[style*="background:#fff"] img {
  height: 260px !important;
  object-fit: cover !important;
  transition: transform 0.8s var(--ik-ease) !important;
  display: block !important;
  width: 100% !important;
}

@media (hover: hover) and (pointer: fine) {
  .entry-content a[style*="background:#fff"]:hover img {
    transform: scale(1.05) !important;
  }
}

/* Species card — text overlaid on image */
.entry-content a[style*="background:#fff"] {
  position: relative !important;
}

.entry-content a[style*="background:#fff"] span {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-base) !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-style: normal !important;
  text-align: center !important;
  display: block !important;
  letter-spacing: 0.03em !important;
  /* Overlay on bottom of image */
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 100%) !important;
  z-index: 2 !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.8) !important;
  padding: 50px 16px 14px !important;
}


/* ══════════════════════════════════════════════════════════════
   16. FOUNDING KEEPERS
   Centered text block describing founding keepers.
   ══════════════════════════════════════════════════════════════ */

.entry-content p.has-text-align-center {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-base) !important;
  font-weight: 400 !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  max-width: 480px !important;
  margin-inline: auto !important;
  line-height: 1.8 !important;
}


/* ══════════════════════════════════════════════════════════════
   17. LOGO CAROUSEL
   Grayscale logos that reveal on hover. Swiper pagination dots.
   ══════════════════════════════════════════════════════════════ */

.logo-carousel-free, .sp-lc-container {
  padding-block: 2rem !important;
  max-width: var(--ik-max-width) !important;
  margin-inline: auto !important;
}

.sp-logo-carousel {
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 10%, black 90%, transparent 100%) !important;
  mask-image: linear-gradient(90deg, transparent 0%, black 10%, black 90%, transparent 100%) !important;
  overflow: hidden !important;
  width: 100% !important;
}

.sp-lc-logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1.5rem 3rem !important;
  border: none !important;
  border-radius: 0 !important;
}

/* Founding keeper logos — ~50% larger, grayscale by default */
.sp-lc-image,
.sp-logo-carousel img,
.logo-carousel-free img,
.sp-lc-container img {
  max-height: 180px !important;
  max-width: 300px !important;
  width: auto !important;
  height: auto !important;
  opacity: 0.5 !important;
  filter: grayscale(100%) brightness(1.5) !important;
  transition: all var(--ik-duration-slow) ease !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.sp-lc-image:hover,
.sp-logo-carousel img:hover,
.logo-carousel-free img:hover {
  opacity: 1 !important;
  filter: grayscale(0%) brightness(1) !important;
}

/* CSS-only scroll fallback — ONLY when Swiper JS has NOT initialized.
   Swiper adds .swiper-container-initialized when active. */
.sp-logo-carousel:not(.swiper-container-initialized) .swiper-wrapper {
  animation: carouselScroll 40s linear infinite !important;
}

@keyframes carouselScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Pause on hover */
.sp-logo-carousel:hover .swiper-wrapper {
  animation-play-state: paused !important;
}

/* Swiper pagination dots — !important beats plugin's non-!important inline styles */
.sp-lc-container .sp-lc-pagination .swiper-pagination-bullet {
  background: rgba(255,255,255,0.15) !important;
  width: 5px !important; height: 5px !important;
}

.sp-lc-container .sp-lc-pagination .swiper-pagination-bullet-active {
  background: var(--ik-gold) !important;
  opacity: 1 !important;
}

/* Hide empty pagination container when Swiper didn't initialize */
.sp-lc-pagination.swiper-pagination:empty {
  display: none !important;
}


/* ══════════════════════════════════════════════════════════════
   18. FOOTER
   Leather-textured footer with gold accents, 2-column grid,
   quick links row, bottom bar, and copyright section.
   ══════════════════════════════════════════════════════════════ */

/* --- Footer background — leather texture --- */
.site-footer, #colophon {
  background-color: #1A120B !important;
  background: linear-gradient(180deg, rgba(20,14,8,0.5) 0%, rgba(10,7,4,0.2) 40%, rgba(5,3,1,0.6) 100%) no-repeat 0 0 / 100% 100%, url('../images/texture-leather.png') repeat 0 0 / auto auto #1A120B !important;
  border-top: none !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Kill ALL blue in footer — override WordPress defaults */
.site-footer a,
.site-footer a:link,
.site-footer a:visited,
.site-footer p,
.site-footer span,
.site-footer div,
.site-footer li,
#colophon a,
#colophon a:link,
#colophon a:visited,
.ik-footer a,
.ik-footer a:link,
.ik-footer a:visited {
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

.site-footer a:hover,
#colophon a:hover,
.ik-footer a:hover {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* Gold line at top of footer */
.site-footer::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 2px !important;
  background: linear-gradient(90deg, transparent 5%, rgba(212, 168, 48, 0.4) 20%, rgba(212, 168, 48, 0.6) 50%, rgba(212, 168, 48, 0.4) 80%, transparent 95%) !important;
  z-index: 2 !important;
}

/* Footer content above gold line */
.site-footer > *, #colophon > * {
  position: relative !important;
  z-index: 1 !important;
}

/* --- Footer layout — consistent 30px (1.875rem) gap between sections --- */

/* Hide empty Astra footer sections */
.site-footer-primary-section-2,
.site-footer-primary-section-3,
.site-footer-primary-section-4 { display: none !important; }
.site-footer-primary-section-1 { width: 100% !important; }

/* Footer wrapper */
.site-primary-footer-wrap {
  background: transparent !important;
  padding: 30px clamp(2rem, 6vw, 4rem) 0 clamp(2rem, 6vw, 4rem) !important;
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
}

.site-primary-footer-inner-wrap.ast-builder-grid-row {
  max-width: 100% !important;
  padding: 0 !important;
  display: block !important;
}

/* --- Main 2-column grid (Isopod Keepers + Support) — weighted right --- */
.ik-footer-grid {
  display: grid !important;
  grid-template-columns: 2fr 3fr !important;
  gap: 0 3rem !important;
  align-items: start !important;
}

.ik-footer-grid > div:first-child { order: 1 !important; }
.ik-footer-grid > div:nth-child(3) { order: 2 !important; }
.ik-footer-grid > div:nth-child(2) { order: 3 !important; }

/* --- Footer headings --- */
.ik-footer h3, .ik-footer-grid h3,
.ik-footer-grid > div h3,
.ik-footer-grid > div:first-child h3,
.ik-footer-grid > div:nth-child(3) h3,
#colophon .ik-footer h3,
.site-footer .ik-footer-grid > div > h3 {
  font-family: var(--ik-font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  margin: 0 0 14px 0 !important;
  margin-bottom: 14px !important;
  padding: 0 !important;
  border: none !important;
}

/* --- Footer text --- */
.ik-footer p, .ik-footer-grid p {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-sm) !important;
  font-weight: 400 !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  line-height: 1.7 !important;
  max-width: none !important;
  margin: 0 0 5px 0 !important;
  padding: 0 !important;
}

.ik-footer strong {
  color: rgba(255,255,255,0.6) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.6) !important;
  font-weight: 500 !important;
}

.ik-footer a, .ik-footer-grid a {
  font-size: var(--ik-text-sm) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  text-decoration: none !important;
  transition: color var(--ik-duration) ease !important;
}

.ik-footer a:hover, .ik-footer-grid a:hover {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* Tagline gets a bit more space below it */
.ik-footer-grid > div:first-child > p:first-of-type { margin-bottom: 10px !important; }

/* --- Support column — 2-column sub-grid --- */
.ik-footer-grid > div:nth-child(3) {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 2.5rem !important;
  align-items: start !important;
  align-content: start !important;
}

.ik-footer-grid > div:nth-child(3) h3 {
  grid-column: 1 / -1 !important;
  margin: 0 0 14px 0 !important;
  padding: 0 !important;
}

.ik-footer-grid > div:nth-child(3) p {
  margin: 0 0 4px 0 !important;
  padding: 0 !important;
}

.ik-footer-grid > div:nth-child(3) p a {
  display: block !important;
  margin-top: 2px !important;
}

/* --- Quick links row --- */
.ik-footer-grid > div:nth-child(2) {
  grid-column: 1 / -1 !important;
  text-align: center !important;
  border-top: 1px solid rgba(255,255,255,0.06) !important;
  margin: 30px 0 0 0 !important;
  padding: 30px 0 0 0 !important;
}

.ik-footer-grid > div:nth-child(2) h3 {
  margin: 0 0 10px 0 !important;
}

.ik-footer-grid > div:nth-child(2) p {
  display: inline !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.ik-footer-grid > div:nth-child(2) p + p::before {
  content: '·' !important;
  color: rgba(255, 204, 51, 0.3) !important;
  -webkit-text-fill-color: rgba(255, 204, 51, 0.3) !important;
  margin: 0 1rem !important;
}

/* --- Bottom bar (All bids... + copyright) --- */
#colophon .ik-footer .ik-footer-bottom,
.site-footer .ik-footer .ik-footer-bottom,
.ik-footer-bottom {
  margin-top: 26px !important;
  padding-top: 26px !important;
  padding-bottom: 26px !important;
  border-top: 1px solid rgba(255,255,255,0.06) !important;
  text-align: center !important;
}

.ik-footer-bottom p {
  font-size: 11px !important;
  color: var(--ik-text-tertiary) !important;
  -webkit-text-fill-color: var(--ik-text-tertiary) !important;
  margin: 0 0 3px 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

/* --- Copyright bar (below footer) --- */
.site-below-footer-wrap {
  border-top: none !important;
  padding: 15px 0 !important;
  background: transparent !important;
}

.site-below-footer-inner-wrap {
  max-width: var(--ik-max-width) !important;
  margin-inline: auto !important;
  padding-inline: clamp(2rem, 6vw, 4rem) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.25rem !important;
  text-align: center !important;
}

.ast-footer-copyright, .ast-footer-copyright p,
.ast-footer-html-1 .ast-builder-html-element,
.ast-footer-html-1 .ast-builder-html-element p {
  font-family: var(--ik-font-body) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: #D5D5D5 !important;
  -webkit-text-fill-color: #D5D5D5 !important;
  letter-spacing: 0.08em !important;
  margin: 0 !important; padding: 0 !important;
}


/* ══════════════════════════════════════════════════════════════
   19. BUTTONS (Global)
   All WooCommerce, WordPress, and custom buttons. Outline by
   default, gold-filled for primary CTA (bid button).
   ══════════════════════════════════════════════════════════════ */

/* --- Base button style — outline, uppercase, 0-radius --- */
.woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .woocommerce #respond input#submit,
.wp-block-button__link, .wp-element-button,
button.single_add_to_cart_button,
.woocommerce a.button.alt, .woocommerce button.button.alt {
  font-family: var(--ik-font-body) !important;
  font-weight: 400 !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 14px 32px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border: 1px solid rgba(255,255,255,0.25) !important;
  cursor: pointer !important;
  transition: all var(--ik-duration) ease !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
}

.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .wp-block-button__link:hover,
.wp-element-button:hover, button.single_add_to_cart_button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
  border-color: var(--ik-gold) !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  background: rgba(196, 163, 90, 0.04) !important;
}

/* --- Bid button — the ONE filled button (primary CTA) --- */
.woocommerce .bid_button, a.bid_button, button.bid_button {
  background: var(--ik-gold) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-weight: 500 !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 16px 40px !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

.woocommerce .bid_button:hover, a.bid_button:hover, button.bid_button:hover {
  background: var(--ik-gold-bright) !important;
}

/* --- WordPress block outline button — override teal --- */
.wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  border-color: var(--ik-gold) !important;
  background: transparent !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: rgba(255,204,51,0.08) !important;
  color: var(--ik-gold-bright) !important;
  -webkit-text-fill-color: var(--ik-gold-bright) !important;
}

/* --- Astra outline button — override red --- */
.ast-outline-button, a.ast-outline-button {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  border-color: var(--ik-gold) !important;
}

/* --- Login/Register page layout ---
   Constrain all content within .woocommerce to match form width.
   Privacy policy text and submit button sit outside #customer_login
   but still need to be centered at the same max-width. */
body.page-id-1569 .entry-content .woocommerce,
body.page-id-1572 .entry-content .woocommerce {
  max-width: 680px !important;
  margin: 0 auto !important;
}

/* Hide duplicate form headings — gold bar already provides the page title */
body.page-id-1569 #customer_login h2,
body.page-id-1572 #customer_login h2 {
  display: none !important;
}

/* --- WooCommerce form overrides for white-background pages ---
   Login, Register, My Account, Checkout all render on white.
   Global form styles target dark-theme (dark bg, white text).
   These overrides flip everything for white pages. */

/* Links — #9A7E2E on white backgrounds, NOT #FFCC33.
   Global `a` and `.entry-content a` rules set gold for dark-bg pages.
   On white pages, links must be the AA-compliant dark gold.
   Scoped to #content to protect nav/header/footer links.
   Specificity must beat `.entry-content a:not(…):not(…)` (0,3,1). */
body:not(.page-id-1381):not(.page-id-2594) #content a,
body:not(.page-id-1381):not(.page-id-2594) #content a:link,
body:not(.page-id-1381):not(.page-id-2594) #content a:visited {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body:not(.page-id-1381):not(.page-id-2594) #content a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}
/* Card title + auction button color overrides — must beat the white-page link
   rule above (specificity 1,2,2) by adding ID + specific class chain.
   Each rule below: 1 ID + 3+ classes + 2 elements = 1,3+,2+ wins. */
body.page-id-1384 #content h3.ik-ac-title a,
body.page-id-1384 #content h3.ik-ac-title a:link,
body.page-id-1384 #content h3.ik-ac-title a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}
body.page-id-1384 #content h3.ik-ac-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body.page-id-1384 #content a.ik-ac-bid-btn,
body.page-id-1384 #content a.ik-ac-bid-btn:link,
body.page-id-1384 #content a.ik-ac-bid-btn:visited {
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}
body.page-id-1384 #content a.ik-ac-view-btn,
body.page-id-1384 #content a.ik-ac-view-btn:link,
body.page-id-1384 #content a.ik-ac-view-btn:visited {
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
}
body.page-id-1384 #content a.ik-coming-soon-btn,
body.page-id-1384 #content a.ik-coming-soon-btn:link,
body.page-id-1384 #content a.ik-coming-soon-btn:visited,
body.page-id-1384 #content a.ik-auction-reset-btn,
body.page-id-1384 #content a.ik-auction-reset-btn:link,
body.page-id-1384 #content a.ik-auction-reset-btn:visited {
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
}
body.page-id-1384 #content a.ik-coming-soon-btn:hover,
body.page-id-1384 #content a.ik-auction-reset-btn:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
/* Beat .entry-content a:not():not() specificity (0,3,1) on white pages.
   Custom button classes and card title links use higher-specificity
   override rules above (under "Card title + auction button color overrides"). */
body:not(.page-id-1381):not(.page-id-2594) .entry-content a:not(.wp-block-button__link) {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body:not(.page-id-1381):not(.page-id-2594) .entry-content a:not(.wp-block-button__link):hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* Buttons — gold filled primary CTA on white.
   MUST include -webkit-text-fill-color to beat other -webkit-text-fill-color rules. */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .button,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-Button,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-form-login .woocommerce-button,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-form-register .woocommerce-button,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce button.button {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 12px 32px !important;
  border-radius: 0 !important;
  cursor: pointer !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce .button:hover,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-Button:hover,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce button.button:hover {
  background: #E6B800 !important;
  border-color: #E6B800 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Inputs — white bg, dark text, light border on white pages */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce input[type="text"],
body:not(.page-id-1381):not(.page-id-2594) .woocommerce input[type="email"],
body:not(.page-id-1381):not(.page-id-2594) .woocommerce input[type="password"],
body:not(.page-id-1381):not(.page-id-2594) .woocommerce input[type="tel"],
body:not(.page-id-1381):not(.page-id-2594) .woocommerce input[type="url"],
body:not(.page-id-1381):not(.page-id-2594) .woocommerce input[type="number"],
body:not(.page-id-1381):not(.page-id-2594) .woocommerce input[type="search"],
body:not(.page-id-1381):not(.page-id-2594) .woocommerce select,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce textarea {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
}

/* Q&A search — preserve left padding for magnifying glass icon */
.woocommerce-Tabs-panel input[type="search"].pl-10 {
  padding-left: 2.5rem !important;
}

/* Q&A search placeholder — visible gray on white bg */
.woocommerce-Tabs-panel input[type="search"]::placeholder {
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce input:focus,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce textarea:focus,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce select:focus {
  border-color: #9A7E2E !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce ::placeholder {
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
}

/* Labels — dark text on white */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce label .required {
  color: #CC0000 !important;
  -webkit-text-fill-color: #CC0000 !important;
}

/* Form layout — side-by-side first/last name fields */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row-first {
  float: left !important;
  width: 48% !important;
}
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row-last {
  float: right !important;
  width: 48% !important;
}
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row-wide {
  width: 100% !important;
  clear: both !important;
}

/* Lost password / secondary links */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .lost_password a,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .woocommerce-LostPassword a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-size: 13px !important;
}

/* Remember me checkbox label */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .woocommerce-form__label-for-checkbox {
  font-size: 13px !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

/* Privacy policy text */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .woocommerce-privacy-policy-text p {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 13px !important;
}

/* Password show/hide toggle — WooCommerce JS handles this on the live site.
   Hidden in mockups since it's non-functional without the JS. */
.show-password-input {
  display: none !important;
}

/* Dokan role selection radios */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .vendor-customer-registration label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
}

/* Login/Register column headings */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce h2 {
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  font-style: normal !important;
}


/* ══════════════════════════════════════════════════════════════
   20. FORMS & INPUTS
   Dark inputs with subtle borders, gold focus state.
   16px minimum font-size prevents iOS zoom on focus.
   ══════════════════════════════════════════════════════════════ */

input[type="text"], input[type="email"], input[type="url"],
input[type="password"], input[type="search"], input[type="number"],
input[type="tel"], textarea, select {
  background: var(--ik-bg-deep) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-family: var(--ik-font-body) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  padding: 12px 16px !important;
  transition: border-color var(--ik-duration) ease !important;
}

input:focus, textarea:focus, select:focus {
  border-color: var(--ik-gold-dark) !important;
  outline: none !important;
  box-shadow: none !important;
}

::placeholder { color: rgba(255,255,255,0.2) !important; -webkit-text-fill-color: rgba(255,255,255,0.2) !important; }
label { font-size: var(--ik-text-sm) !important; font-weight: 400 !important; color: rgba(255,255,255,0.5) !important; -webkit-text-fill-color: rgba(255,255,255,0.5) !important; }


/* ══════════════════════════════════════════════════════════════
   21. PRODUCT CARDS & GRID
   WooCommerce product loop cards with dark background,
   hover lift effect, and gold pricing.
   ══════════════════════════════════════════════════════════════ */

.woocommerce ul.products li.product {
  background: var(--ik-bg-raised) !important;
  border: 1px solid rgba(255,255,255,0.04) !important;
  border-radius: var(--ik-radius-sm) !important;
  overflow: hidden !important;
  padding: 0 !important;
  transition: all var(--ik-duration-slow) var(--ik-ease) !important;
}

@media (hover: hover) and (pointer: fine) {
  .woocommerce ul.products li.product:hover {
    border-color: rgba(196, 163, 90, 0.12) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5) !important;
  }
  .woocommerce ul.products li.product:hover a img { transform: scale(1.04) !important; }
}

.woocommerce ul.products li.product a img {
  margin: 0 !important; border-radius: 0 !important;
  transition: transform 0.8s var(--ik-ease) !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link { overflow: hidden !important; display: block !important; }

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-base) !important;
  font-weight: 400 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  padding: 1rem 1.25rem 0.5rem !important;
  margin: 0 !important;
}

.woocommerce ul.products li.product .price {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  font-size: var(--ik-text-lg) !important;
  font-weight: 500 !important;
  padding: 0 1.25rem 1rem !important;
}

.woocommerce ul.products li.product .button {
  margin: 0 1.25rem 1.25rem !important;
  width: calc(100% - 2.5rem) !important;
  text-align: center !important;
}

/* Auction price and countdown — #9A7E2E for white bg contexts, #FFCC33 for dark */
.auction-price, .woocommerce-auction-price { color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; font-weight: 500 !important; }
.auction-time-left, .wsa_countdown, [class*="countdown"] {
  font-variant-numeric: tabular-nums !important; color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; font-weight: 500 !important;
}


/* ══════════════════════════════════════════════════════════════
   22. SINGLE PRODUCT PAGE
   Product detail page: title, price, tabs, and panels.
   ══════════════════════════════════════════════════════════════ */

/* --- Product page typography — ensure Inter applies everywhere --- */
.single-product,
.single-product body,
.single-product .ast-woocommerce-container,
.single-product .ast-woocommerce-container *,
.single-product .summary,
.single-product .summary *,
.single-product .woocommerce-tabs,
.single-product .woocommerce-tabs *,
.single-product section.related *,
.single-product .ik-ac-card * {
  font-family: var(--ik-font-body) !important;
}

/* Links on product pages — gold only for specific link types, NOT all links.
   Card titles, buttons, and tabs have their own specific colors. */
.single-product .product_meta a,
.single-product .posted_in a,
.single-product .wsawl-link a,
.single-product .woocommerce-breadcrumb a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.single-product .product_meta a:hover,
.single-product .posted_in a:hover,
.single-product .wsawl-link a:hover,
.single-product .woocommerce-breadcrumb a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* --- Product page layout --- */
.single-product .product-gallery-wrap {
  float: left !important;
  width: 48% !important;
}

.single-product .summary.entry-summary {
  float: right !important;
  width: 48% !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Reorder summary: Breadcrumb → Category → Title → Price → Cart/Bid →
   Short description → Vendor meta. form.cart and .auction-ajax-change
   share order:4 because they're mutually exclusive (simple products
   render form.cart; auction products render .auction-ajax-change).
   Without an explicit order, form.cart defaults to 0 and floats up to
   sit beside the breadcrumb, pushing the title down — Ruth 2026-05-16. */
.single-product .summary .woocommerce-breadcrumb { order: 0 !important; }
.single-product .summary .single-product-category { order: 1 !important; }
.single-product .summary .product_title { order: 2 !important; }
.single-product .summary .price { order: 3 !important; }
/* :not(.auction_form) — auction products have form.auction_form.cart nested
   inside .auction-ajax-change. Without the :not(), this rule wins on
   specificity (0,3,1) over the intended .auction-ajax-change .auction_form
   { order: 2 } rule below (0,2,0), pushing the bid form to row 4 instead
   of row 2. Ruth 2026-05-19: bid must sit right under the price. */
.single-product .summary form.cart:not(.auction_form) { order: 4 !important; }
.single-product .summary .auction-ajax-change { order: 4 !important; }
.single-product .summary .woocommerce-product-details__short-description { order: 5 !important; }
.single-product .summary .product_meta { order: 6 !important; }
/* Ruth 2026-05-19: WC + Astra's stock indicator ("10 in stock" / "Out of stock")
   has no explicit order so it floats up above the title (top-of-fold). Push it
   to the bottom of the summary, after CTAs / description / meta — it's
   informational, not primary CTA, so it doesn't deserve top-of-fold real estate.
   Astra wraps the stock in .ast-stock-detail; WC default is p.stock. */
.single-product .summary .stock,
.single-product .summary p.stock,
.single-product .summary .availability,
.single-product .summary .ast-stock-detail { order: 7 !important; }

.single-product .product-container::after,
.single-product .woocommerce-tabs::before {
  content: "" !important;
  display: table !important;
  clear: both !important;
}

.single-product .woocommerce-tabs {
  clear: both !important;
}

/* Gallery thumbnails — small, clickable row below main image */
.single-product .woocommerce-product-gallery .gallery-thumbs,
.single-product .product-gallery-wrap .gallery-thumbs {
  display: flex !important;
  gap: 8px !important;
  margin-top: 12px !important;
  margin-bottom: 2rem !important;
  padding: 0 !important;
}

.single-product .woocommerce-product-gallery .gallery-thumbs img,
.single-product .product-gallery-wrap .gallery-thumbs img {
  width: 72px !important;
  height: 72px !important;
  min-width: 72px !important;
  max-width: 72px !important;
  object-fit: cover !important;
  border: 2px solid #E8E8E6 !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease !important;
  opacity: 0.6 !important;
}

.single-product .woocommerce-product-gallery .gallery-thumbs img:hover,
.single-product .product-gallery-wrap .gallery-thumbs img:hover,
.single-product .woocommerce-product-gallery .gallery-thumbs img.active,
.single-product .product-gallery-wrap .gallery-thumbs img.active {
  border-color: #9A7E2E !important;
  opacity: 1 !important;
}

/* Auction card grid — reusable anywhere (product page, tabs, etc.) */
.ik-auction-card-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
}

@media (max-width: 921px) {
  .ik-auction-card-grid { grid-template-columns: repeat(3, 1fr) !important; }
}

@media (max-width: 768px) {
  .ik-auction-card-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
}

/* Single product page: keep gallery LEFT + summary RIGHT side-by-side
   at tablet (≥600px) — only collapse to a single stacked column at
   phone sizes (<600). WooCommerce default has a max-width:768 media
   query that un-floats both columns; we override at 600+ to re-apply
   the 2-column layout, then explicitly stack at <600. 2026-04-27. */
@media (min-width: 600px) {
  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .product-gallery-wrap {
    float: left !important;
    width: 50% !important;
    clear: none !important;
  }
  body.single-product div.product .summary.entry-summary {
    float: right !important;
    width: 48% !important;
    clear: none !important;
    margin-top: 0 !important;
  }
}

@media (max-width: 599px) {
  body.single-product div.product .woocommerce-product-gallery,
  body.single-product div.product .product-gallery-wrap,
  body.single-product div.product .summary.entry-summary {
    float: none !important;
    width: 100% !important;
  }
  body.single-product div.product .summary.entry-summary {
    margin-top: 24px !important;
  }
}

@media (max-width: 480px) {
  .ik-auction-card-grid { grid-template-columns: 1fr !important; }
}

/* --- Product page base — white content area, NOT the header --- */
.single-product #primary,
.single-product .site-main,
.single-product .ast-article-single,
.single-product .ast-woocommerce-container {
  background: #FFFFFF !important;
}

.single-product .ast-woocommerce-container {
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem) !important;
}

/* Dark text on white background — comprehensive reset for product page content */
.single-product .ast-woocommerce-container,
.single-product .ast-woocommerce-container p,
.single-product .ast-woocommerce-container span,
.single-product .ast-woocommerce-container div,
.single-product .ast-woocommerce-container li,
.single-product .ast-woocommerce-container td,
.single-product .summary,
.single-product .summary p,
.single-product .summary span,
.single-product .summary div,
.single-product .woocommerce-tabs,
.single-product .woocommerce-tabs p,
.single-product .woocommerce-tabs span,
.single-product .woocommerce-tabs div,
.single-product .woocommerce-tabs td,
.single-product section.related,
.single-product section.related p,
.single-product section.related span,
.single-product section.related div {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.woocommerce div.product .product_title {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-3xl) !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
  line-height: 1.3 !important;
  margin-bottom: 0.75rem !important;
}

/* --- Category label above title --- */
.single-product-category {
  display: block !important;
  margin-bottom: 6px !important;
}

.single-product-category,
.single-product-category a {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-xs) !important;
  font-weight: 500 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  text-decoration: none !important;
}

/* --- Sold-by vendor badge ---
   Hidden on single product page (redundant with vendor card below).
   Visible on product cards in grids (auctions listing, related products). */
.single-product .summary > .ik-sold-by {
  display: none !important;
}

.ik-sold-by {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
  font-family: var(--ik-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

.ik-sold-by a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.ik-sold-by a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

.ik-sold-by img {
  border-radius: 50% !important;
  border: 1px solid #E8E8E6 !important;
}

/* --- Price / bid display --- */
.woocommerce div.product .price,
.single-product .summary .price,
.single-product .price {
  font-size: var(--ik-text-2xl) !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 500 !important;
  margin-bottom: 1.5rem !important;
}

/* Price labels — all auction states */
.auction-price .current.auction,
.auction-price .winned-for.auction,
span.winned-for.auction,
span.sold-for.auction {
  font-size: var(--ik-text-base) !important;
  font-weight: 400 !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  display: block !important;
  margin-bottom: 4px !important;
}

/* Finished auction states — "Winning Bid:" and "Sold for" labels */
span.winned-for.auction,
span.sold-for.auction {
  font-family: var(--ik-font-body) !important;
}

/* WB-1 fix: the WC Auctions plugin renders the "Sold for" label without
   the colon (`<span class="sold-for">Sold for</span>: <span class="amount">$2</span>`)
   while "Winning Bid:" has the colon INSIDE the span. Combined with our
   display:block rule above, the orphan ": " text node falls onto the
   value line, producing "Sold for" / ": $2". Inject the colon into the
   label via ::after, and zero out font-size on the TD to suppress the
   orphan colon text node — restored on element children. */
span.sold-for.auction::after {
  content: ":";
}
td:has(> span.sold-for.auction) {
  font-size: 0 !important;
}
td:has(> span.sold-for.auction) > span,
td:has(> span.sold-for.auction) > span * {
  font-size: 14px !important;
}

.woocommerce div.product .woocommerce-Price-amount,
.woocommerce div.product .woocommerce-Price-amount *,
.woocommerce div.product .woocommerce-Price-currencySymbol,
.single-product .woocommerce-Price-amount,
.single-product .woocommerce-Price-amount *,
.single-product .woocommerce-Price-currencySymbol,
.single-product .summary .woocommerce-Price-amount,
.single-product .summary .woocommerce-Price-currencySymbol {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 600 !important;
}

/* --- Short description --- */
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-product-details__short-description p {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: var(--ik-text-base) !important;
  line-height: 1.7 !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

/* --- Product meta (category) — hidden on single product,
   redundant with .single-product-category above title --- */
.single-product .product_meta > .posted_in {
  display: none !important;
}

.product_meta {
  font-size: var(--ik-text-sm) !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  margin-top: 24px !important;
  margin-bottom: 1.5rem !important;
  padding-top: 24px !important;
}

.product_meta a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

/* --- Dokan vendor info block — single source of truth for ALL vendor cards
   (summary, tabs, everywhere). No "Sold by" label — already inferred. --- */
.dokan-vendor-info-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  background: #F8F8F6 !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 4px !important;
  padding: 14px 18px !important;
  margin-bottom: 1.25rem !important;
}

.dokan-vendor-image img {
  max-height: 56px !important;
  width: auto !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 1px solid #E8E8E6 !important;
}

.dokan-vendor-name h5,
.dokan-vendor-name a {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin: 0 !important;
  text-decoration: none !important;
}

/* Vendor rating — must look identical in summary AND tabs */
.dokan-vendor-rating,
.woocommerce-tabs .dokan-vendor-rating {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  line-height: 1 !important;
  margin: 2px 0 !important;
  padding: 0 !important;
}

/* Override tab panel p styles inside vendor cards */
.dokan-vendor-rating p,
.woocommerce-tabs .dokan-vendor-rating p,
.woocommerce-tabs .wc-tab .dokan-vendor-rating p,
.single-product .woocommerce-tabs .panel .dokan-vendor-rating p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  line-height: 1 !important;
}

.dokan-ratings-count,
.woocommerce-tabs .dokan-ratings-count,
.woocommerce-tabs .wc-tab .dokan-ratings-count,
.single-product .woocommerce-tabs .panel .dokan-ratings-count {
  font-size: 12px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  margin: 2px 0 0 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

/* Vendor image in tabs — match summary size */
.woocommerce-tabs .dokan-vendor-image img {
  max-height: 56px !important;
  width: auto !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 1px solid #E8E8E6 !important;
}

/* Vendor name in tabs — match summary */
.woocommerce-tabs .dokan-vendor-name h5 {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}

.dokan-vendor-name h5,
.dokan-vendor-name a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-base) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  margin: 0 !important;
}

.dokan-vendor-rating {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.dokan-vendor-rating p {
  font-size: var(--ik-text-sm) !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  margin: 0 !important;
}

/* Preserve icon fonts — must beat the wildcard reset:
   .single-product .ast-woocommerce-container * { font-family: Inter !important; }
   at specificity (0,2,0). Boost to (0,3,0)+ */
.single-product .ast-woocommerce-container .dashicons,
.single-product .woocommerce-tabs .dashicons,
body.page-id-1384 .dashicons,
.dashicons,
.dashicons-before::before,
i.dashicons-star-filled,
i.dashicons-star-half {
  font-family: dashicons !important;
}

.dokan-vendor-rating .star-rating-inline,
.dokan-vendor-rating i.dashicons-star-filled {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.dokan-ratings-count {
  font-size: var(--ik-text-xs) !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  margin: 0 !important;
}

/* --- Auction details block — condition, countdown, end time --- */
.auction-ajax-change {
  border-top: none !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

/* Hide item condition — redundant, not relevant to buyers */
.auction-condition {
  display: none !important;
}

/* --- Auction timing card — groups time left, countdown, end date, timezone
   as one cohesive visual unit with internal row dividers --- */
.auction-time {
  background: #F8F8F6 !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 4px 4px 0 0 !important;
  padding: 16px 20px 0 20px !important;
  margin-bottom: 0 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-align: center !important;
}

.auction-time-countdown {
  display: flex !important;
  justify-content: center !important;
  gap: clamp(1.5rem, 4vw, 3rem) !important;
  padding: 12px 0 16px !important;
  margin: 0 !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

.countdown_section {
  text-align: center !important;
  font-size: var(--ik-text-xs) !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  background: transparent !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

.countdown_amount,
.single-product .countdown_amount,
.single-product .ast-woocommerce-container .countdown_amount {
  display: block !important;
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-2xl) !important;
  font-weight: 600 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-variant-numeric: tabular-nums !important;
  line-height: 1.2 !important;
  margin-bottom: 4px !important;
}

/* --- Auction end time — bottom of timing card, single line --- */
.auction-end {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: #F8F8F6 !important;
  border: 1px solid #E8E8E6 !important;
  border-top: none !important;
  border-radius: 0 0 4px 4px !important;
  padding: 12px 20px !important;
  margin-top: -1px !important;
  text-align: center !important;
  line-height: 1.6 !important;
}

/* Hide the <br> between auction ends and timezone to keep on one line */
.auction-end br {
  display: none !important;
}


/* --- Bid form + watchlist — same row via flex wrapping on parent --- */
.auction-ajax-change {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
}

/* Reorder inside auction-ajax-change — Ruth spec 2026-05-19:
   price (in .summary above) → bid → time left → auction ends → watchlist. */
.auction-ajax-change .auction-condition { order: 10 !important; }
.auction-ajax-change .ik-secondary-actions { order: 1 !important; flex: 0 0 100% !important; width: 100% !important; }
.auction-ajax-change .auction_form { order: 2 !important; }
.auction-ajax-change .auction-time { order: 3 !important; width: 100% !important; flex: 0 0 100% !important; }
.auction-ajax-change .auction-end { order: 4 !important; width: 100% !important; flex: 0 0 100% !important; }
.auction-ajax-change .wsawl-link { order: 5 !important; flex: 0 0 100% !important; }

/* Bid form — inline, not full width */
.auction_form.cart {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  margin-top: 20px !important;
  margin-bottom: 24px !important;
  flex: 0 0 100% !important;
  width: 100% !important;
}

.auction_form .quantity.buttons_added {
  display: flex !important;
  align-items: center !important;
  border: none !important;
  border-radius: 0 !important;
  /* overflow:visible so the input's bottom border isn't clipped at the
     wrap's bottom edge (input is exactly same height as wrap, so the 1px
     border falls on the clip boundary -- Ruth 2026-05-18 LATE EOD). */
  overflow: visible !important;
  margin-right: 12px !important;
  box-shadow: none !important;
}

.auction_form .minus-bid,
.auction_form .plus-bid {
  background: #F0F0EE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: none !important;
  width: 48px !important;
  height: 52px !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.auction_form .minus-bid:hover,
.auction_form .plus-bid:hover {
  background: #E8E8E6 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.auction_form .input-text.qty.bid {
  background: #FFFFFF !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  border: none !important;
  width: 100px !important;
  height: 52px !important;
  text-align: center !important;
  font-family: var(--ik-font-body) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums !important;
  padding: 0 8px !important;
}

/* Bid button — gold filled, prominent CTA
   Higher specificity to beat the global outline button style */
.woocommerce div.product .bid_button,
.woocommerce .bid_button.button.alt,
.woocommerce .bid_button.button,
.auction_form .bid_button,
button.bid_button,
.bid_button {
  background: var(--ik-gold) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 40px !important;
  height: 52px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  white-space: nowrap !important;
}

.woocommerce div.product .bid_button:hover,
.woocommerce .bid_button.button.alt:hover,
.auction_form .bid_button:hover,
button.bid_button:hover,
.bid_button:hover {
  background: var(--ik-gold-bright) !important;
  box-shadow: 0 4px 16px rgba(255,204,51,0.25) !important;
}

/* --- Secondary actions row (Buy Now + Get Support side by side, 50/50) --- */
.ik-secondary-actions {
  display: flex !important;
  gap: 8px !important;
  margin-top: 12px !important;
  margin-bottom: 16px !important;
}

/* --- Buy Now button — gold filled, secondary CTA --- */
.woocommerce button.single_add_to_cart_button,
.woocommerce .single_add_to_cart_button.button.alt {
  background: var(--ik-gold) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: 1px solid var(--ik-gold) !important;
  font-weight: 600 !important;
  flex: 1 1 0% !important;
  width: 0 !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 14px 16px !important;
}

/* Price inside Buy Now button — black bold.
   Must beat .single-product .summary .woocommerce-Price-amount (0,3,0) */
.single-product .single_add_to_cart_button .woocommerce-Price-amount,
.single-product .single_add_to_cart_button .woocommerce-Price-amount *,
.single-product .single_add_to_cart_button .woocommerce-Price-currencySymbol {
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-weight: 700 !important;
}

/* 2026-05-16: "Buy now for $100" was rendering as "BUY NOW FOR$100" on the
   auction PDP — the trailing space in the text node "Buy now for " is being
   visually swallowed by the leading edge of the $ glyph after uppercase
   transform + 1.1px letter-spacing. Add a tiny left margin to the inline
   price span to restore the visible word break. */
.single-product .single_add_to_cart_button .woocommerce-Price-amount {
  margin-left: 0.3em !important;
}

.woocommerce button.single_add_to_cart_button:hover,
.woocommerce .single_add_to_cart_button.button.alt:hover {
  background: var(--ik-gold-bright) !important;
  box-shadow: 0 4px 16px rgba(255,204,51,0.25) !important;
}

/* --- Get Support / Chat Now — gray outline base style --- */
.woocommerce button.dokan-store-support-btn.button.alt,
.woocommerce button.dokan-store-support-btn-product.button.alt,
.woocommerce button.dokan-live-chat.button.alt,
.dokan-store-support-btn,
.dokan-store-support-btn-product,
.dokan-live-chat {
  background: transparent !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  border: 1px solid #D0D0CE !important;
  text-align: center !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  padding: 14px 16px !important;
  margin: 0 !important;
  width: auto !important;
}

/* In the product summary secondary actions row, use flex equal-width */
.ik-secondary-actions .dokan-store-support-btn,
.ik-secondary-actions .dokan-store-support-btn-product,
.ik-secondary-actions .dokan-live-chat {
  flex: 1 1 0% !important;
  width: 0 !important;
}

.woocommerce button.dokan-store-support-btn.button.alt:hover,
.woocommerce button.dokan-store-support-btn-product.button.alt:hover,
.woocommerce button.dokan-live-chat.button.alt:hover,
.dokan-store-support-btn:hover,
.dokan-store-support-btn-product:hover,
.dokan-live-chat:hover {
  background: rgba(0, 0, 0, 0.03) !important;
  border-color: #999 !important;
}

/* Responsive: stack Buy Now + Get Support on mobile */
@media (max-width: 480px) {
  .ik-secondary-actions {
    flex-direction: column !important;
  }
}

/* Mobile/tablet: CHAT NOW button on the single-product Vendor Info tab is
   parented by `.list-unstyled` (NOT .ik-secondary-actions), so the
   flex-1-fill rule above doesn't reach it. The base rule sets width:auto
   which sizes to text content (~105px). Override on mobile to span the
   full content row per mobile UX standard. Panel id is `tab-seller` with
   class `.woocommerce-Tabs-panel--seller` (no `tab-` prefix). */
@media (max-width: 768px) {
  body.single-product #tab-seller .dokan-live-chat,
  body.single-product #tab-seller .dokan-store-support-btn,
  body.single-product #tab-seller .dokan-store-support-btn-product,
  body.single-product .woocommerce-Tabs-panel--seller .dokan-live-chat,
  body.single-product .woocommerce-Tabs-panel--seller .dokan-store-support-btn {
    width: 100% !important;
    max-width: none !important;
    display: block !important;
  }
}

/* --- Dokan Q&A search bar — fix black background --- */
.dokan-product-qa-frontend-root input[type="search"] {
  background: #F8F8F6 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  border: 1px solid #D0D0CE !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
}

/* --- Dokan Q&A "Post your Question" — gold filled button --- */
.dokan-product-qa-frontend-root button[type="button"] {
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  padding: 12px 24px !important;
  box-shadow: none !important;
}

/* Dokan Q&A "LOGIN TO POST YOUR QUESTION" empty-state button on the logged-
   out single-product Q&A tab is rendered by the React UI inside a Tailwind
   .bg-slate-100 notice card → .flex.shrink-0 row. The .shrink-0 caps the
   wrapper to button content width, so the button never spans the row. On
   mobile, undo .shrink-0 + force button full-width per mobile UX standard.
   Color override (red-600 → gold) deferred pending Ruth's call. */
@media (max-width: 768px) {
  body.single-product .bg-slate-100 .flex.shrink-0 {
    flex-shrink: 1 !important;
    width: 100% !important;
  }
  body.single-product .bg-slate-100 .flex.shrink-0 > button {
    width: 100% !important;
    max-width: none !important;
    justify-content: center !important;
  }
}

.dokan-product-qa-frontend-root button[type="button"]:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* --- Watchlist button — outline style, sits next to bid on desktop,
   wraps below on tablet/mobile (acceptable — secondary action) --- */
.wsawl-link {
  display: block !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.wsawl-link a,
.add-wsawl {
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border: 1px solid #D0D0CE !important;
  padding: 14px 32px !important;
  border-radius: 0 !important;
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.wsawl-link a:hover,
.add-wsawl:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Product gallery --- */
.woocommerce-product-gallery {
  background: transparent !important;
}

.woocommerce-product-gallery .flex-viewport {
  border-radius: var(--ik-radius-md) !important;
  overflow: hidden !important;
  background: #F0F0EE !important;
}

.woocommerce-product-gallery .flex-control-thumbs li img {
  border-radius: var(--ik-radius-sm) !important;
  border: 2px solid transparent !important;
  opacity: 0.5 !important;
  transition: all 0.3s ease !important;
}

.woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs li img:hover {
  border-color: #9A7E2E !important;
  opacity: 1 !important;
}

/* --- Tabs --- */
.woocommerce div.product .woocommerce-tabs {
  margin-top: 3rem !important;
  clear: both !important;
}

/* Tab bar — must work with or without .woocommerce div.product wrapper.
   Designed to be clearly interactive — active tab has background + bottom border
   so users immediately recognize these as clickable tabs. */
.woocommerce div.product .woocommerce-tabs ul.tabs,
.woocommerce-tabs ul.tabs,
ul.tabs.wc-tabs {
  display: flex !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  border-bottom: 2px solid #E8E8E6 !important;
  overflow-x: auto !important;
  background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce-tabs ul.tabs li,
ul.tabs.wc-tabs li {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-bottom: none !important;
  margin: 0 0 -2px 0 !important;
  padding: 0 !important;
  border-radius: 4px 4px 0 0 !important;
  list-style: none !important;
  display: block !important;
  transition: all 0.2s ease !important;
}

/* Active tab — lifted card look with background */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce-tabs ul.tabs li.active,
ul.tabs.wc-tabs li.active {
  background: #F8F8F6 !important;
  border-color: #E8E8E6 !important;
  border-bottom: 2px solid #F8F8F6 !important;
}

/* Inactive tab hover — subtle hint it's clickable */
.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active):hover,
.woocommerce-tabs ul.tabs li:not(.active):hover,
ul.tabs.wc-tabs li:not(.active):hover {
  background: rgba(0,0,0,0.02) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.woocommerce-tabs ul.tabs li a,
ul.tabs.wc-tabs li a {
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 14px 24px !important;
  display: block !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li.active a,
ul.tabs.wc-tabs li.active a,
.single-product ul.tabs.wc-tabs li.active a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover,
.woocommerce-tabs ul.tabs li a:hover,
ul.tabs.wc-tabs li a:hover {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Tab panels — hide inactive, show active.
   Local mockups: JS toggles .active class on panels.
   Staging: WC JS sets inline display:block/none (NO .active class added).
   ONLY use display:none (no !important) so WC inline display:block wins.
   Do NOT set height/overflow/visibility — WC has no inline overrides for those
   and they'd break the visible panel on staging. */
.woocommerce-tabs .wc-tab:not(.active),
.woocommerce-tabs .panel:not(.active),
.woocommerce-tabs .woocommerce-Tabs-panel:not(.active),
.wc-tabs-wrapper .wc-tab:not(.active),
div.woocommerce-tabs div.wc-tab:not(.active) {
  display: none;
}

/* Local mockup: show the panel with .active class */
.woocommerce-tabs .wc-tab.active,
.woocommerce-tabs .panel.active {
  display: block !important;
}

/* ══════════════════════════════════════════════════════════════
   Auction-item tabs → accordion at ≤768
   Paired by the "Auction Item Tabs Accordion" snippet, which sets
   inline `style="order: N"` on each tab <li> and matching panel
   so they interleave (label → panel → label → panel) inside a
   flex column at small viewports. Desktop is untouched (no flex
   parent + no @media match → order values are ignored).

   Specificity note: the existing tab-strip rules at line 3907-3974
   use `.woocommerce div.product .woocommerce-tabs ul.tabs` (0,4,4)
   with `!important`. To win, our rules use the `.woocommerce
   div.product` prefix too — matching specificity AND adding our
   `.ik-tabs-paired` class for one extra weight.
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .woocommerce div.product .ik-tabs-paired,
  body .ik-tabs-paired {
    display: flex !important;
    flex-direction: column !important;
  }
  /* Lift <li> labels into the wrapper's flex flow so they can interleave
     with their (sibling) panels via `order`. */
  .woocommerce div.product .ik-tabs-paired ul.tabs,
  .woocommerce div.product .ik-tabs-paired ul.wc-tabs,
  body .ik-tabs-paired ul.tabs,
  body .ik-tabs-paired ul.wc-tabs {
    display: contents !important;
    border: none !important;
    overflow: visible !important;
  }
  /* Each tab label = full-width accordion header */
  .woocommerce div.product .ik-tabs-paired ul.tabs > li,
  .woocommerce div.product .ik-tabs-paired ul.wc-tabs > li,
  body .ik-tabs-paired ul.tabs > li,
  body .ik-tabs-paired ul.wc-tabs > li {
    width: 100% !important;
    margin: 0 !important;
    border: 1px solid #E8E8E6 !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    background: #F8F8F6 !important;
    display: block !important;
  }
  .woocommerce div.product .ik-tabs-paired ul.tabs > li.active,
  .woocommerce div.product .ik-tabs-paired ul.wc-tabs > li.active,
  body .ik-tabs-paired ul.tabs > li.active,
  body .ik-tabs-paired ul.wc-tabs > li.active {
    background: #FFFFFF !important;
  }
  .woocommerce div.product .ik-tabs-paired ul.tabs > li > a,
  .woocommerce div.product .ik-tabs-paired ul.wc-tabs > li > a,
  body .ik-tabs-paired ul.tabs > li > a,
  body .ik-tabs-paired ul.wc-tabs > li > a {
    display: block !important;
    padding: 14px 16px !important;
    white-space: normal !important;
    font-size: 14px !important;
  }
  /* Each panel = full-width content block, attached to its label above */
  .woocommerce div.product .ik-tabs-paired .panel,
  .woocommerce div.product .ik-tabs-paired .woocommerce-Tabs-panel,
  .woocommerce div.product .ik-tabs-paired .wc-tab,
  body .ik-tabs-paired .panel,
  body .ik-tabs-paired .woocommerce-Tabs-panel,
  body .ik-tabs-paired .wc-tab {
    width: 100% !important;
    margin: 0 !important;
    padding: 16px !important;
    border: 1px solid #E8E8E6 !important;
    border-top: none !important;
    background: #FFFFFF !important;
    max-width: none !important;
  }
  /* Bottom border on the last tab label (its panel may be hidden). */
  .woocommerce div.product .ik-tabs-paired ul.tabs > li:last-of-type,
  .woocommerce div.product .ik-tabs-paired ul.wc-tabs > li:last-of-type,
  body .ik-tabs-paired ul.tabs > li:last-of-type,
  body .ik-tabs-paired ul.wc-tabs > li:last-of-type {
    border-bottom: 1px solid #E8E8E6 !important;
  }
}

/* Active tab panel content styling */
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce-tabs .wc-tab,
.single-product .woocommerce-tabs .panel {
  background: transparent !important;
  border: none !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 2rem 0 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
  max-width: 100% !important;
}

/* Tab panel headings — clean, not gold-bar style */
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce-tabs .wc-tab h2,
.single-product .woocommerce-tabs .panel h2 {
  font-family: var(--ik-font-body) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  text-transform: none !important;
  background: none !important;
  border: none !important;
  letter-spacing: 0 !important;
  width: auto !important;
  text-align: left !important;
  line-height: 1.4 !important;
}

/* Tab panel paragraphs */
.woocommerce-tabs .wc-tab p,
.single-product .woocommerce-tabs .panel p {
  font-size: 14px !important;
  line-height: 1.7 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  margin: 0 0 12px 0 !important;
}

/* Tab panel strong/bold */
.woocommerce-tabs .wc-tab strong,
.single-product .woocommerce-tabs .panel strong {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

/* Tab panel horizontal rules — subtle dividers */
.woocommerce-tabs .wc-tab hr,
.single-product .woocommerce-tabs .panel hr {
  border: none !important;
  border-top: 1px solid #E8E8E6 !important;
  background: transparent !important;
  height: 0 !important;
  margin: 16px 0 !important;
}

/* Tab panel tables (auction history, etc.) */
.woocommerce-tabs .wc-tab table,
.single-product .woocommerce-tabs table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 13px !important;
  margin: 0 0 16px 0 !important;
}

.woocommerce-tabs .wc-tab th,
.single-product .woocommerce-tabs th {
  background: #F8F8F6 !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-align: left !important;
  padding: 10px 14px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.woocommerce-tabs .wc-tab td,
.single-product .woocommerce-tabs td {
  padding: 10px 14px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 13px !important;
}

/* Tab panel links */
.woocommerce-tabs .wc-tab a:not(.ik-ac-bid-btn):not(.ik-ac-view-btn),
.single-product .woocommerce-tabs .panel a:not(.ik-ac-bid-btn):not(.ik-ac-view-btn) {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

.woocommerce-tabs .wc-tab a:not(.ik-ac-bid-btn):not(.ik-ac-view-btn):hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

.woocommerce div.product .woocommerce-tabs .panel strong {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

/* Auction history table */
.auction-history-table {
  width: 100% !important;
  border-collapse: collapse !important;
}

.auction-history-table td {
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  font-size: var(--ik-text-sm) !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.auction-history-table tr.start td {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

/* Vendor info list in tab */
.woocommerce-tabs .list-unstyled {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce-tabs .list-unstyled li {
  padding: 10px 0 !important;
  border-bottom: 1px solid #E8E8E6 !important;
  display: flex !important;
  gap: 12px !important;
  font-size: var(--ik-text-sm) !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

.woocommerce-tabs .list-unstyled .details {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.woocommerce-tabs .list-unstyled .details a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

/* More Products tab — constrain the product grid */
.woocommerce-Tabs-panel ul.products.columns-4 {
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
}

@media (max-width: 768px) {
  .woocommerce-Tabs-panel ul.products.columns-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Chat button in vendor tab */
.dokan-live-chat,
.dokan-live-chat-whatsapp {
  background: #FFFFFF !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  border: 1px solid #D0D0CE !important;
  font-family: var(--ik-font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 10px 24px !important;
  cursor: pointer !important;
}

.dokan-live-chat:hover {
  background: #F8F8F6 !important;
  border-color: #9A7E2E !important;
}

/* --- Related products section --- */
/* Related products — stays in the white content area */
section.related.products {
  margin-top: 3rem !important;
  padding-top: 3rem !important;
  border-top: 1px solid #E8E8E6 !important;
}

section.related.products > h2 {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-xl) !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin-bottom: 1.5rem !important;
  text-transform: capitalize !important;
  background: none !important;
  padding: 0 !important;
  border: none !important;
}

/* Product card grid — remove Astra default left padding on ul.products,
   set consistent gap for both columns and rows */
.single-product ul.products,
.woocommerce-Tabs-panel ul.products {
  padding-left: 0 !important;
  margin-left: 0 !important;
  gap: 20px !important;
}

/* Product card grid items — remove Astra default bottom margin (grid gap handles spacing) */
.single-product ul.products li.product,
.woocommerce-Tabs-panel ul.products li.product {
  margin-bottom: 0 !important;
}

/* Product cards on white backgrounds — match .ik-ac-card pattern from auctions page
   White card, #E8E8E6 border, gold hover, image top, info padded below,
   full-width gold BID NOW button flush at bottom */
.single-product ul.products li.product,
.woocommerce-Tabs-panel ul.products li.product {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  transition: all 0.35s ease !important;
  display: flex !important;
  flex-direction: column !important;
}

.single-product ul.products li.product:hover,
.woocommerce-Tabs-panel ul.products li.product:hover {
  border-color: rgba(154,126,46,0.3) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.1) !important;
}

/* Image area */
.single-product ul.products .astra-shop-thumbnail-wrap,
.woocommerce-Tabs-panel ul.products .astra-shop-thumbnail-wrap {
  position: relative !important;
  overflow: hidden !important;
}

.single-product ul.products .astra-shop-thumbnail-wrap img,
.woocommerce-Tabs-panel ul.products .astra-shop-thumbnail-wrap img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s ease !important;
}

.single-product ul.products li.product:hover .astra-shop-thumbnail-wrap img,
.woocommerce-Tabs-panel ul.products li.product:hover .astra-shop-thumbnail-wrap img {
  transform: scale(1.04) !important;
}

/* Info area */
.single-product ul.products .astra-shop-summary-wrap,
.woocommerce-Tabs-panel ul.products .astra-shop-summary-wrap {
  padding: 16px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Category label */
.single-product ul.products .ast-woo-product-category,
.woocommerce-Tabs-panel ul.products .ast-woo-product-category {
  font-size: 10px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 4px !important;
  display: block !important;
}

/* Product title */
.single-product ul.products .woocommerce-loop-product__title,
.woocommerce-Tabs-panel ul.products .woocommerce-loop-product__title {
  margin: 0 0 8px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

body.single-product.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.single-product.woocommerce ul.products li.product .woocommerce-loop-product__title a,
.woocommerce-Tabs-panel ul.products .woocommerce-loop-product__title,
.woocommerce-Tabs-panel ul.products .woocommerce-loop-product__title a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
}

body.single-product.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover,
.woocommerce-Tabs-panel ul.products .woocommerce-loop-product__title a:hover {
  color: #6F5A1F !important;
  -webkit-text-fill-color: #6F5A1F !important;
}

/* Price */
.single-product ul.products .price,
.woocommerce-Tabs-panel ul.products .price {
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  margin: 0 0 4px !important;
}

.single-product ul.products .price strong,
.single-product ul.products .price .woocommerce-Price-amount,
.woocommerce-Tabs-panel ul.products .price strong,
.woocommerce-Tabs-panel ul.products .price .woocommerce-Price-amount {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 600 !important;
}

.single-product ul.products .auction-price .current.auction,
.woocommerce-Tabs-panel ul.products .auction-price .current.auction {
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
}

/* Vendor badge */
.single-product ul.products .ik-sold-by,
.woocommerce-Tabs-panel ul.products .ik-sold-by {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
}

.single-product ul.products .ik-sold-by span,
.single-product ul.products .ik-sold-by a,
.woocommerce-Tabs-panel ul.products .ik-sold-by span,
.woocommerce-Tabs-panel ul.products .ik-sold-by a {
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  font-size: 11px !important;
}

.single-product ul.products .ik-sold-by img,
.woocommerce-Tabs-panel ul.products .ik-sold-by img {
  width: 24px !important;
  height: 24px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
}

/* BID NOW button — full-width gold, flush to card bottom.
   Must beat .woocommerce ul.products li.product .button (0,4,2) */
.single-product.woocommerce ul.products li.product .button,
.woocommerce-Tabs-panel ul.products li.product .button {
  display: block !important;
  text-align: center !important;
  padding: 12px !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border: none !important;
  border-radius: 0 !important;
  margin: auto 0 0 0 !important;
  width: 100% !important;
  cursor: pointer !important;
}

.single-product.woocommerce ul.products li.product .button:hover,
.woocommerce-Tabs-panel ul.products li.product .button:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Auction Finished button — outline style.
   IMPORTANT: Do NOT target [aria-label^="Read more"] — WC uses that aria-label
   on ALL auction product grid buttons (active AND finished), which incorrectly
   makes active "Bid now" buttons look like finished ones.
   Only use [disabled] for truly disabled buttons. Finished auction text
   ("Auction finished") still shows correctly via button text content. */
.single-product.woocommerce ul.products li.product .button[disabled],
.woocommerce-Tabs-panel ul.products li.product .button[disabled] {
  background: transparent !important;
  border: 1px solid #D0D0CE !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  cursor: default !important;
}

/* Hide Astra on-card bag icon button on product page cards */
.single-product ul.products .ast-on-card-button,
.woocommerce-Tabs-panel ul.products .ast-on-card-button {
  display: none !important;
}

/* Move ik-sold-by below image area to blend with summary visually */
.single-product ul.products .ik-sold-by,
.woocommerce-Tabs-panel ul.products .ik-sold-by {
  padding: 8px 16px 0 !important;
  border-top: none !important;
  background: #FFFFFF !important;
}

/* Star rating inline (used in vendor cards) */
.star-rating-inline {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  letter-spacing: 2px !important;
  font-size: 14px !important;
  vertical-align: middle !important;
  line-height: 1 !important;
}

/* Gallery main image — only the primary image, NOT thumbnails */
.single-product .product-gallery-wrap img#main-gallery-img,
.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 8px !important;
}

/* Auction card images — used in .ik-ac-card */
.ik-ac-image {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  display: block !important;
}

/* Vendor avatar — consistent everywhere, never oval */
.ik-sold-by img,
.ik-ac-vendor img,
.dokan-vendor-image img,
.avatar {
  border-radius: 50% !important;
  object-fit: cover !important;
  aspect-ratio: 1/1 !important;
}

/* --- Auction badge on product cards --- */
.auction-bage {
  position: absolute !important;
  top: 10px !important;
  left: 10px !important;
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
  border-radius: 3px !important;
  z-index: 2 !important;
}

/* Hide empty auction badge (WC renders empty span on some cards) */
.auction-bage:empty {
  display: none !important;
}

/* Related Products card — inject LIVE/FINISHED badge into the empty
   .auction-bage span based on price markers. The auction WC plugin
   renders .winned-for.auction inside .price for finished auctions;
   active auctions show a price block without that class. */
body.single-product section.related li.product .auction-bage {
  display: inline-block !important;
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 2 !important;
  padding: 4px 10px !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
}
body.single-product section.related li.product:has(.winned-for.auction) .auction-bage {
  background: #E8E8E6 !important;
  color: #555 !important;
  -webkit-text-fill-color: #555 !important;
}
body.single-product section.related li.product:has(.winned-for.auction) .auction-bage::before {
  content: "Finished" !important;
}
body.single-product section.related li.product.product-type-auction:not(:has(.winned-for)) .auction-bage {
  background: #D9F0DA !important;
  color: #1F6F2A !important;
  -webkit-text-fill-color: #1F6F2A !important;
}
body.single-product section.related li.product.product-type-auction:not(:has(.winned-for)) .auction-bage::before {
  content: "Live" !important;
}

/* Related Products card — empty <a> inside .ik-sold-by collapses
   so the avatar+name row sits flush */
body.single-product section.related li.product .ik-sold-by > a:empty {
  display: none !important;
}

/* --- Breadcrumb (visible on product page) --- */
.woocommerce-breadcrumb {
  font-family: var(--ik-font-body) !important;
  font-size: var(--ik-text-xs) !important;
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  margin-bottom: 1rem !important;
}

.woocommerce-breadcrumb a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

.woocommerce-breadcrumb a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}


/* ══════════════════════════════════════════════════════════════
   23. WOOCOMMERCE NOTICES & MESSAGES
   Dark notice boxes with gold/red left border accents.
   Overrides default purple/green top borders and icon colors.
   ══════════════════════════════════════════════════════════════ */

/* Info and success messages — gold accent */
.woocommerce-info, .woocommerce-message {
  background: var(--ik-bg-elevated) !important;
  border-left: 2px solid var(--ik-gold-dark) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

/* Error messages — red accent */
.woocommerce-error {
  background: var(--ik-bg-elevated) !important;
  border-left: 2px solid #F87171 !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

/* Override default top borders (purple #a46497, green #8fae1b) */
.woocommerce-info, .woocommerce-message, .woocommerce-error {
  border-top: none !important;
}
.woocommerce-info::before, .woocommerce-message::before {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}
.woocommerce-error::before {
  color: #F87171 !important;
  -webkit-text-fill-color: #F87171 !important;
}

/* WooCommerce store notice banner */
.woocommerce-store-notice, p.demo_store {
  background: var(--ik-gold) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}


/* ══════════════════════════════════════════════════════════════
   24. WOOCOMMERCE CART & CHECKOUT
   Dark-themed cart table, payment box, order review, and
   discount display for the checkout flow.
   ══════════════════════════════════════════════════════════════ */

/* Cart table + Checkout payment — white bg on these pages */
.woocommerce-cart table.cart {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Small/help text in cart and checkout */
.cart_totals p small,
.woocommerce table small,
.checkout .create-account small,
#payment div.payment_box span.help {
  color: var(--ik-text-tertiary) !important;
  -webkit-text-fill-color: var(--ik-text-tertiary) !important;
}

/* Cart discount — gold highlight */
.woocommerce .cart-discount td {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Cart page white-page overrides --- */
.woocommerce-cart .shop_table {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-collapse: collapse !important;
}

.woocommerce-cart .shop_table th {
  background: #FAFAF8 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

.woocommerce-cart .shop_table td {
  padding: 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
  vertical-align: middle !important;
}

.woocommerce-cart .shop_table td a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Remove button — centered in cell */
.woocommerce-cart .product-remove {
  text-align: center !important;
}

.woocommerce-cart .product-remove a.remove {
  color: #CC0000 !important;
  -webkit-text-fill-color: #CC0000 !important;
  font-size: 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
}

.woocommerce-cart .product-thumbnail img {
  width: 80px !important;
  height: 80px !important;
  object-fit: cover !important;
  border: 1px solid #E8E8E6 !important;
}

.woocommerce-cart .variation dt {
  font-weight: 600 !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

.woocommerce-cart .variation dd p {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

/* Cart totals */
.cart_totals {
  background: #FFFFFF !important;
}

/* Top breathing room for "CART TOTALS" heading.
   The .cart_totals box already has 20px L/R padding from base styles;
   pt was 0, leaving the heading flush to the box top. Match the L/R inset. */
body.woocommerce-cart .cart_totals {
  padding-top: 20px !important;
}

.cart_totals h2 {
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin-bottom: 12px !important;
}

.cart_totals .shop_table th {
  text-transform: none !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}

/* Checkout button — gold filled, full width */
.wc-proceed-to-checkout .checkout-button {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  display: block !important;
  text-align: center !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  border-radius: 0 !important;
  padding: 16px !important;
  text-decoration: none !important;
}

.wc-proceed-to-checkout .checkout-button:hover {
  background: #E6B800 !important;
  border-color: #E6B800 !important;
}

/* Shipping methods on cart — left-aligned, no indent */
.woocommerce-shipping-methods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}

.woocommerce-shipping-methods li {
  padding: 4px 0 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.woocommerce-shipping-methods li label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.woocommerce-shipping-methods .shipping_method {
  accent-color: #9A7E2E !important;
  margin-right: 8px !important;
  margin-left: 0 !important;
}

.woocommerce-shipping-destination {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 13px !important;
  margin-top: 8px !important;
}

/* Cart prices — larger and bold for emphasis */
.woocommerce-cart .product-price .woocommerce-Price-amount,
.woocommerce-cart .product-subtotal .woocommerce-Price-amount {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* Cart totals prices — larger and bold */
.cart_totals .woocommerce-Price-amount {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* Total row — even larger */
.cart_totals .order-total .woocommerce-Price-amount {
  font-size: 20px !important;
}

/* Coupon input */
.woocommerce-cart .coupon .input-text {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border-radius: 0 !important;
}

/* --- Checkout page white-page overrides ---
   Keep Astra's 55/40 float layout (billing left, order right).
   Just fix input widths and styling. */

/* Billing + Additional Info stacked inside their column */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
}

/* Form inputs must fill their containers */
.woocommerce-checkout .woocommerce-input-wrapper {
  display: block !important;
}

.woocommerce-checkout .woocommerce-input-wrapper .input-text,
.woocommerce-checkout .woocommerce-input-wrapper select,
.woocommerce-checkout .woocommerce-input-wrapper textarea {
  width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout h3 {
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin-bottom: 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

/* Checkout order review table */
.woocommerce-checkout-review-order-table {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #E8E8E6 !important;
  width: 100% !important;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

/* Checkout prices — larger and bold for visibility */
.woocommerce-checkout-review-order-table .woocommerce-Price-amount {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* Checkout total row — even larger */
.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount {
  font-size: 20px !important;
}

.woocommerce-checkout-review-order-table thead th {
  background: #FAFAF8 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}

/* Order review — remove Astra's 2em side padding so table aligns with heading */
.woocommerce-checkout form #order_review,
.woocommerce.woocommerce-checkout form #order_review,
.woocommerce-page.woocommerce-checkout form #order_review {
  padding: 0 !important;
  border: none !important;
}

/* Order review heading — match billing h3 vertical position.
   Astra puts padding: 20px 0 14px on #customer_details h3.
   Match that top padding here. */
.woocommerce-checkout form #order_review_heading,
.woocommerce.woocommerce-checkout form #order_review_heading,
.woocommerce-page.woocommerce-checkout form #order_review_heading {
  padding: 20px 0 12px !important;
  margin: 0 0 16px !important;
  border: none !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

/* Push order table down to align PRODUCT row with Email address input on left.
   Left side: h3 (14px + 12px padding-bottom + 16px margin-bottom) + label (~20px) + gap = ~62px
   Right side: h3 (same) + table starts immediately. Need ~40px extra to match. */
.woocommerce-checkout-review-order {
  margin-top: 30px !important;
}

/* Checkout payment section */
.woocommerce-checkout #payment {
  background: #FAFAF8 !important;
  border: 1px solid #E8E8E6 !important;
  padding: 20px !important;
  border-radius: 0 !important;
}

.woocommerce-checkout #payment ul.payment_methods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
  border: none !important;
}

.woocommerce-checkout #payment .payment_method label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.woocommerce-checkout #payment div.payment_box {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #E8E8E6 !important;
  padding: 16px !important;
  margin-top: 8px !important;
}

.woocommerce-checkout #payment div.payment_box label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Place order button */
#place_order {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  border-radius: 0 !important;
  padding: 16px 32px !important;
  width: 100% !important;
}

#place_order:hover {
  background: #E6B800 !important;
  border-color: #E6B800 !important;
}

/* Privacy text in checkout */
.woocommerce-checkout .woocommerce-privacy-policy-text p {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 13px !important;
  margin-bottom: 16px !important;
}

/* Checkout responsive — stack billing/shipping */
@media (max-width: 768px) {
  .woocommerce-checkout .col2-set {
    flex-direction: column !important;
    gap: 0 !important;
  }
}

/* --- My Bids table --- */
.my_auctions_activity {
  width: 100% !important;
  border-collapse: collapse !important;
  background: #FFFFFF !important;
}

.my_auctions_activity th {
  background: #FAFAF8 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  text-align: left !important;
}

.my_auctions_activity td {
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
}

.my_auctions_activity td a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Currently winning (active auction) — gold left border + subtle bg */
.my_auctions_activity tr.winning {
  background: rgba(255, 204, 51, 0.08) !important;
  border-left: 3px solid #FFCC33 !important;
}

.my_auctions_activity tr.winning td {
  font-weight: 600 !important;
}

/* Won auction (closed + winning) — stronger gold highlight */
.my_auctions_activity tr.closed.winning {
  background: rgba(255, 204, 51, 0.15) !important;
  border-left: 3px solid #9A7E2E !important;
}

.my_auctions_activity tr.closed.winning td {
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* Lost/ended auction (closed, not winning) — muted */
.my_auctions_activity tr.closed:not(.winning) {
  opacity: 0.6 !important;
}

/* "Sold for" status text */
.my_auctions_activity .sold-for.auction,
.my_auctions_activity .winned-for.auction {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
}

/* Bid status text */
.my_auctions_activity .current.auction {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
}

/* --- My Won Auctions page ---
   Override inline styles from Code Snippet. */
.ik-won-count {
  font-size: 15px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  margin-bottom: 20px !important;
}

.ik-won-auctions-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 768px) {
  .ik-won-auctions-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  .ik-won-auctions-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Kill Astra's auto-margin centering on grid children.
   Astra rule: .entry-content[data-ast-blocks-layout] > *:not(.wp-block-group) > *
   applies margin-left/right: auto to grandchildren, shrinking our cards. */
.ik-won-auctions-grid > *,
.ik-won-card,
.ik-won-card > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.ik-won-card {
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  transition: border-color 0.2s ease !important;
  display: flex !important;
  flex-direction: column !important;
  width: auto !important;
}

.ik-won-card:hover {
  border-color: rgba(154, 126, 46, 0.3) !important;
}

.ik-won-image {
  display: block !important;
  width: 100% !important;
}

.ik-won-image img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  display: block !important;
}

.ik-won-details {
  padding: 16px !important;
  padding-bottom: 52px !important;
  flex: 1 !important;
  position: relative !important;
}

/* Pin button/badge to bottom of details container */
body .entry-content a.ik-won-pay-btn,
a.ik-won-pay-btn,
.ik-won-status.ik-paid {
  position: absolute !important;
  bottom: 16px !important;
  left: 16px !important;
}

.ik-won-title {
  margin: 0 0 8px !important;
  font-family: var(--ik-font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.ik-won-title a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-decoration: none !important;
}

.ik-won-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.ik-won-bid,
.ik-won-date {
  margin: 4px 0 !important;
  font-size: 14px !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-family: var(--ik-font-body) !important;
}

.ik-won-bid strong {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* Add to Cart button — gold filled, matches our button system */
/* Add to Cart button — gold filled with BLACK text.
   High specificity to beat Code Snippet inline <style> which sets color: #fff */
body .entry-content a.ik-won-pay-btn,
a.ik-won-pay-btn {
  display: inline-block !important;
  margin-top: 12px !important;
  padding: 10px 24px !important;
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

body .entry-content a.ik-won-pay-btn:hover,
a.ik-won-pay-btn:hover {
  background: #E6B800 !important;
}

/* Paid status badge — same size as Add to Cart button */
.ik-won-status.ik-paid {
  display: inline-block !important;
  margin-top: 12px !important;
  padding: 10px 24px !important;
  background: #4CAF50 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

/* --- "No need to bid" winning message on auction item page ---
   This is a .woocommerce-message, already handled by our notice overrides.
   Just ensure it looks good on the product page (body.single-product). */
body.single-product .woocommerce-message {
  background: #FAFAF8 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #E8E8E6 !important;
  border-left: 3px solid #4CAF50 !important;
  border-top: none !important;
  padding: 16px 20px !important;
}

body.single-product .woocommerce-message::before {
  display: none !important;
}

/* --- Auction card badge/star overlap fix (standard WC product loop) ---
   On Dokan store pages and standard WC loops, the auction plugin's .auction-bage
   element can overlap a watchlist/star button. Push it down and ensure left is
   reset so right-positioning takes effect cleanly. */
.woocommerce ul.products li.product .auction-bage {
  left: auto !important;
  right: 10px !important;
  top: 40px !important;
  z-index: 3 !important;
}

/* Auction card status badges in top-right — ensure they sit above the star */
.ik-ac-card .ik-ac-time {
  z-index: 2 !important;
  position: relative !important;
}


/* ══════════════════════════════════════════════════════════════
   25. WOOCOMMERCE BLOCKS (Gutenberg)
   WC Block notice banners for error, warning, success, and
   info states. Dark backgrounds with colored left borders.
   ══════════════════════════════════════════════════════════════ */

/* WC Block Notices — dark backgrounds */
.wc-block-components-notice-banner {
  background: var(--ik-bg-raised) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  border-color: rgba(255,255,255,0.07) !important;
}

.wc-block-components-notice-banner.is-error {
  background: rgba(204,24,24,0.08) !important;
  border-color: #cc1818 !important;
}

.wc-block-components-notice-banner.is-error > svg {
  background: #cc1818 !important;
}

.wc-block-components-notice-banner.is-warning {
  background: rgba(240,184,73,0.08) !important;
  border-color: #E6B800 !important;
}

.wc-block-components-notice-banner.is-success {
  background: rgba(74,184,102,0.08) !important;
  border-color: #4ab866 !important;
}

.wc-block-components-notice-banner.is-info {
  background: rgba(255,204,51,0.08) !important;
  border-color: var(--ik-gold-dark) !important;
}

.wc-block-components-notice-banner.is-info > svg {
  background: var(--ik-gold-dark) !important;
}


/* ══════════════════════════════════════════════════════════════
   26. WOOCOMMERCE MISC (Sale Badge, Stock, Price Filter, Ratings)
   Override WooCommerce's default green sale badge, purple price
   filter handles, orange star ratings, and stock status colors.
   ══════════════════════════════════════════════════════════════ */

/* Sale badge — override green #77a464 */
.woocommerce span.onsale {
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

/* WC Block sale badge */
.wc-block-grid__product-onsale {
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: none !important;
}

/* Stock status — override green */
.woocommerce .stock {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}
.woocommerce .stock.out-of-stock {
  color: var(--ik-text-tertiary) !important;
  -webkit-text-fill-color: var(--ik-text-tertiary) !important;
}
.ast-shop-product-out-of-stock {
  background: rgba(0,0,0,0.6) !important;
  color: var(--ik-text-tertiary) !important;
  -webkit-text-fill-color: var(--ik-text-tertiary) !important;
}

/* Price filter widget — override purple #a46497 */
.widget_price_filter .ui-slider .ui-slider-handle {
  background: var(--ik-gold) !important;
  border: none !important;
}
.widget_price_filter .ui-slider .ui-slider-range {
  background: var(--ik-gold-dark) !important;
}
.widget_price_filter .price_slider_wrapper .ui-widget-content {
  background: var(--ik-bg-elevated) !important;
}

/* Star ratings — override orange #FDA256, preserve WC star icon font.
   Must beat BOTH:
   1. .single-product .ast-woocommerce-container * { font-family: Inter } — (0,2,0)
   2. body:not(.page-id-1381):not(.page-id-2594) .entry-content span — (0,3,2)
   Using body.single-product prefix gives (0,3,2) + later cascade = wins. */
body.single-product .ast-woocommerce-container .star-rating,
body.single-product .ast-woocommerce-container .star-rating span,
body.single-product .woocommerce-tabs .star-rating,
body.single-product .woocommerce-tabs .star-rating span,
body.single-product section.related .star-rating,
body.single-product section.related .star-rating span,
body.page-id-1384 .star-rating,
body.page-id-1384 .star-rating span,
.star-rating,
.star-rating span,
.comment-form-rating .stars a {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  font-family: star !important;
}
body.single-product .ast-woocommerce-container .star-rating span::before,
body.single-product .ast-woocommerce-container .star-rating::before,
body.single-product .woocommerce-tabs .star-rating span::before,
body.single-product .woocommerce-tabs .star-rating::before,
body.page-id-1384 .star-rating span::before,
body.page-id-1384 .star-rating::before,
.star-rating span::before,
.star-rating::before {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  font-family: star !important;
}

/* Rating filter — override red */
.woocommerce .widget_rating_filter ul li .star-rating {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}


/* ══════════════════════════════════════════════════════════════
/* Shipping banner sub-label (e.g. "(per auction win)") */
.auction-shipping-sub {
  font-size: 10px !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
  font-weight: 400 !important;
}


/* ══════════════════════════════════════════════════════════════
   26b. AUCTION CARD COMPONENT SYSTEM (.ik-ac-*)
   Reusable card grid used on auctions page, product page related
   products, tabs, and anywhere auction cards appear.
   Originally from Code Snippet inline styles — now centralized here.
   ══════════════════════════════════════════════════════════════ */

/* Card grid layout */
.ik-auction-card-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}

/* Card base */
.ik-ac-card {
  background: #FFF !important;
  border: 1px solid #E8E8E6 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  transition: all 0.35s ease !important;
}

.ik-ac-card:hover {
  border-color: rgba(154,126,46,0.3) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.1) !important;
}

/* Card image */
.ik-ac-image-wrap {
  position: relative !important;
  overflow: hidden !important;
}

.ik-ac-image-wrap img,
img.ik-ac-image {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s ease !important;
}

.ik-ac-card:hover .ik-ac-image-wrap img,
.ik-ac-card:hover img.ik-ac-image {
  transform: scale(1.04) !important;
}

/* Watchlist star */
.ik-watchstar {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  background: rgba(0,0,0,0.4) !important;
  border: none !important;
  color: rgba(255,255,255,0.7) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.7) !important;
  font-size: 18px !important;
  cursor: pointer !important;
  padding: 4px 6px !important;
  line-height: 1 !important;
  z-index: 2 !important;
}

.ik-watchstar.active,
.ik-watchstar:hover {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

/* Card info area */
.ik-ac-info {
  padding: 16px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Top row: badges + time */
.ik-ac-top-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}

.ik-ac-badges {
  display: flex !important;
  gap: 6px !important;
}

/* Status badges */
.ik-ac-status {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 3px 8px !important;
}

.ik-status-live {
  background: rgba(34,197,94,0.12) !important;
  color: #16A34A !important;
  -webkit-text-fill-color: #16A34A !important;
}

.ik-status-finished {
  background: rgba(0,0,0,0.04) !important;
  color: #888 !important;
  -webkit-text-fill-color: #888 !important;
}

.ik-status-upcoming {
  background: rgba(154,126,46,0.1) !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Bid indicators */
.ik-ac-indicator {
  font-size: 10px !important;
  font-weight: 700 !important;
  padding: 3px 8px !important;
}

.ik-indicator-winning {
  background: rgba(34,197,94,0.12) !important;
  color: #16A34A !important;
  -webkit-text-fill-color: #16A34A !important;
}

.ik-indicator-outbid {
  background: rgba(220,50,50,0.08) !important;
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
}

/* WON indicator — universal (was previously only scoped to .ik-wl-wrap watchlist).
   Spec: DESIGN-PATTERNS.md §6. Shown on finished/ended auction cards when
   current logged-in user is the winner. Blue tint = "you won" signal. */
.ik-indicator-won {
  background: rgba(100,181,246,0.12) !important;
  color: #1976D2 !important;
  -webkit-text-fill-color: #1976D2 !important;
}

/* OVERTIME indicator — auction has _auction_extend set + Live.
   Visual: amber gold tint, hourglass glyph already in markup. */
.ik-indicator-extended {
  display: inline-block !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  padding: 3px 8px !important;
  background: rgba(255,204,51,0.15) !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  border-radius: 0 !important;
}

/* Countdown time on card */
.ik-ac-time {
  font-size: 12px !important;
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  font-weight: 600 !important;
}

/* Upcoming auction countdown — gold instead of red */
.ik-ac-time.ik-ac-time-upcoming {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Category */
.ik-ac-cat {
  font-size: 10px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 4px !important;
  display: block !important;
}

/* Title */
h3.ik-ac-title {
  margin: 0 0 8px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  width: auto !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.ik-ac-title a,
.ik-ac-title a:link,
.ik-ac-title a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
}

.ik-ac-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* === Storefront SHOP tab: collapse layout to single column when the
   categories sidebar is empty (vendor has no non-auction categories).
   Without this, .ik-layout-with-sidebar reserves 250px for the sidebar
   and the "No results" + cards appear offset right of the page edge
   even though the sidebar is invisible. Ruth 2026-05-17. */
body.dokan-store .ik-layout-with-sidebar:has(> .ik-sidebar:empty) {
  display: block !important;
}
body.dokan-store .ik-layout-with-sidebar > .ik-sidebar:empty {
  display: none !important;
}

/* === Canonical card-text overrides that beat .entry-content link/font cascades ===
   2026-05-17 Ruth: homepage Ending Soon cards rendered with gold title + bronze
   bid label + red countdown because `.entry-content a:not([class*="ik-"])` (0,3,1)
   beats the canonical `.ik-ac-title a` (0,2,1) rule, and the homepage font cascade
   pushed Montserrat onto the title. These higher-specificity duplicates force the
   canonical card chrome on EVERY context (homepage, related-products module,
   anywhere) regardless of page-specific link/font cascades. */
.entry-content .ik-ac-card .ik-ac-title a,
.entry-content .ik-ac-card .ik-ac-title a:link,
.entry-content .ik-ac-card .ik-ac-title a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
}
.entry-content .ik-ac-card .ik-bid-label {
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
}
.entry-content .ik-ac-card .ik-ac-time {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
}
.entry-content .ik-ac-card .ik-ac-time.ik-ac-time-upcoming {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
.entry-content .ik-ac-card .ik-ac-cat {
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}
.entry-content .ik-ac-card .ik-ac-bids {
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}

/* Bid info */
.ik-ac-bid {
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  margin: 0 0 4px !important;
}

.ik-ac-bid strong {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.ik-ac-bids {
  font-size: 12px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  margin: 0 0 8px !important;
}

/* Vendor row */
.ik-ac-vendor {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
  flex: 1 !important;
}

.ik-ac-vendor img {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
  aspect-ratio: 1/1 !important;
}

.ik-ac-vendor span {
  font-size: 11px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}

.ik-ac-vendor strong {
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
}

/* Actions — push to bottom of card */
.ik-ac-actions {
  margin-top: auto !important;
}

/* Bid Now button — gold filled, black text.
   Uses body-level specificity to beat global link color rules */
/* Bid Now — must beat astra-base .ik-ac-bid-btn{background:#c0392b!important} */
body .ik-ac-card .ik-ac-actions a.ik-ac-bid-btn,
body .ik-ac-actions a.ik-ac-bid-btn,
body .ast-container .entry-content a.ik-ac-bid-btn,
body .ast-container .entry-content a.ik-ac-bid-btn:link,
body .ast-container .entry-content a.ik-ac-bid-btn:visited,
body a.ik-ac-bid-btn,
body a.ik-ac-bid-btn:link,
body a.ik-ac-bid-btn:visited,
.ik-ac-actions a.ik-ac-bid-btn {
  display: block !important;
  text-align: center !important;
  padding: 10px !important;
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border: none !important;
  text-decoration: none !important;
  border-radius: 0 !important;
}

body .ast-container .entry-content a.ik-ac-bid-btn:hover,
body .ik-ac-actions a.ik-ac-bid-btn:hover,
body a.ik-ac-bid-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* View/Finished button — outline, dark text on white card.
   Must beat astra-base .ik-ac-view-btn{background:#c0392b!important;color:#fff!important -webkit-text-fill-color: #fff !important;} */
body .ast-container .entry-content a.ik-ac-view-btn,
body .ast-container .entry-content a.ik-ac-view-btn:link,
body .ast-container .entry-content a.ik-ac-view-btn:visited,
body a.ik-ac-view-btn,
body a.ik-ac-view-btn:link,
body a.ik-ac-view-btn:visited,
.ik-ac-actions a.ik-ac-view-btn,
.ik-ac-card a.ik-ac-view-btn {
  display: block !important;
  text-align: center !important;
  padding: 10px !important;
  background: transparent !important;
  border: 1px solid #D0D0CE !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
  border-radius: 0 !important;
}

body .ast-container .entry-content a.ik-ac-view-btn:hover,
body a.ik-ac-view-btn:hover,
.ik-ac-actions a.ik-ac-view-btn:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: transparent !important;
}

/* Cart button — winner-state Add to Cart / View Cart on finished auctions
   AND in-cart View Cart on product cards. Gold primary, black text.
   Per DESIGN-PATTERNS.md §5.2 + §5.3.

   2026-05-16 specificity audit: sitewide white-page link rule
   `body:not(.page-id-1381):not(.page-id-2594) #content a:link` is (1,3,2).
   To win, replicate the :not() stack + add our class — yields (1,4,2). */
body:not(.page-id-1381):not(.page-id-2594) #content a.ik-ac-cart-btn,
body:not(.page-id-1381):not(.page-id-2594) #content a.ik-ac-cart-btn:link,
body:not(.page-id-1381):not(.page-id-2594) #content a.ik-ac-cart-btn:visited {
  display: block !important;
  text-align: center !important;
  padding: 10px !important;
  background: #FFCC33 !important;
  border: 1px solid #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
  border-radius: 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #content a.ik-ac-cart-btn:hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Hide WC's auto-appended "View cart" link that appears below the Add to Cart
   button after AJAX add-to-cart success. The canonical product card flips its
   own button to .ik-ac-cart-btn "View Cart" on next reload; the in-card swap
   JS (in snippet 17) handles the immediate visual swap. WC's lowercase gold
   "View cart" link is redundant + low-contrast against white card bg.
   2026-05-16 follow-up to canonical card refactor. */
.ik-ac-card a.added_to_cart.wc-forward,
.ik-ac-card .added_to_cart {
  display: none !important;
}

/* Suppress Dokan v5 native storefront product loop — duplicates the Phase 2
   storefront tab's render (snippet 54) under it, plus its own pagination +
   filter UI. suppress_native_products in snippet 54 used to kill this via
   dokan_store_products_query_args filter, but Dokan v5 (auto-updated
   2026-04-28) renamed/dropped the filter. CSS hide is intentional here —
   the content isn't "hidden from user", it's a duplicate of the Phase 2
   tab content above it. PHP fix queued for proper suppression.
   2026-05-16 follow-up to canonical card refactor. */
body.dokan-store .dokan-single-store > .store-page-wrap > .seller-items,
body.dokan-store .dokan-single-store > .store-page-wrap > nav.woocommerce-pagination,
body.dokan-store .dokan-single-store .dokan-store-products-filter-area {
  display: none !important;
}

/* === Canonical filter / sort DROPDOWN ===========================
   Spec: DESIGN-PATTERNS.md §16 — Dropdowns.

   Pattern: <details class="ik-filter-dropdown"> with a <summary>
   trigger that displays "Label: <strong>Value</strong> ▾". Click
   the summary to toggle the menu. Each option is an <a> with a
   self-contained URL — no form submit needed; URL params carry
   all other filter state.

   The label-in-trigger pattern (vs separate `<label>X: <select>`)
   saves horizontal space AND matches major e-commerce convention
   (Amazon / Etsy / Shopify / Best Buy all do this). Selection stays
   visible at-a-glance so users don't have to open to remember the
   active state.

   Trigger has a max-width cap so long options ("Current Bid: Low to
   High") don't unbounded-grow it; text-overflow ellipsis handles
   the rest.

   Reusable across the site — snippet 53 (/store-product/) has its
   own .ik-shop-sort styles which can be migrated to this generic
   class in a future refactor. Snippet 54 uses this on Phase 2
   storefront tabs as of 2026-05-16. Queued: /auctions/ (snippet 17). */
.ik-filter-row {
  display: inline-flex !important;
  gap: 12px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

body #content details.ik-filter-dropdown {
  position: relative !important;
  display: inline-block !important;
  /* Normalize <details> default styling so the trigger summary is the only
     visible chrome. Without these: Astra/Dokan rules give <details> its own
     border+font-size (creating a double border around the trigger) and a
     default margin-bottom:8px (breaks vertical alignment in flex rows). */
  border: 0 !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  vertical-align: middle !important;
}

body #content details.ik-filter-dropdown > summary.ik-filter-dropdown-trigger {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  max-width: 280px !important;
  padding: 8px 12px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Mobile + tablet (<=768): the desktop 280px max-width + inline-block makes
   Show/Sort dropdowns sit as narrow chips in a wide row with empty space.
   Stack them block-level full-width with caret pushed to right edge for
   thumb-friendly tap targets (Ruth's mobile-best-practices rule). */
@media (max-width: 768px) {
  body #content details.ik-filter-dropdown {
    display: block !important;
    width: 100% !important;
  }
  body #content details.ik-filter-dropdown > summary.ik-filter-dropdown-trigger {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    justify-content: space-between !important;
  }
}

/* Suppress browser-default disclosure triangle (Firefox/Chrome/Safari) */
body #content details.ik-filter-dropdown > summary.ik-filter-dropdown-trigger::-webkit-details-marker {
  display: none !important;
}
body #content details.ik-filter-dropdown > summary.ik-filter-dropdown-trigger::marker {
  content: '' !important;
}

body #content details.ik-filter-dropdown > summary.ik-filter-dropdown-trigger:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

body #content details.ik-filter-dropdown .ik-filter-dropdown-label {
  display: inline-block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-width: 0 !important;
}
body #content details.ik-filter-dropdown .ik-filter-dropdown-label strong {
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}
body #content details.ik-filter-dropdown > summary:hover .ik-filter-dropdown-label strong {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

body #content details.ik-filter-dropdown .ik-filter-dropdown-caret {
  flex-shrink: 0 !important;
  font-size: 16px !important;
  line-height: 1 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  transition: transform 0.15s ease !important;
}
body #content details.ik-filter-dropdown[open] .ik-filter-dropdown-caret {
  transform: rotate(180deg) !important;
}

body #content details.ik-filter-dropdown ul.ik-filter-dropdown-menu {
  position: absolute !important;
  top: calc(100% + 4px) !important;
  right: 0 !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  min-width: 220px !important;
  z-index: 100 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}
body #content details.ik-filter-dropdown ul.ik-filter-dropdown-menu li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Long-list variant — vendor / category dropdowns that may have 10+ options.
   Caps the menu height + scrolls so it doesn't run off the viewport. */
body #content details.ik-filter-dropdown ul.ik-filter-dropdown-menu.ik-filter-dropdown-menu--scroll {
  max-height: 320px !important;
  overflow-y: auto !important;
}

/* === /auctions/ sidebar — Golden Ticket full-width button + search input ===
   2026-05-16 Ruth: GT button sits ABOVE Categories as a full-width gold CTA.
   Search input sits BELOW Vendors as a typeahead filter (acts on visible
   cards; JS in snippet 17 wp_footer wires the behavior). */
/* .ik-shop-sidebar-gt-btn is a sidebar-wrapper class added alongside the
   existing .ik-auction-gt-btn. Outside the filter-form context, the pill
   chrome (height, padding, uppercase, border, white bg) isn't inherited,
   so we re-apply the same base chrome the .ik-coming-soon-btn / sibling
   rules use. Gold text + gold border come from .ik-auction-gt-btn — do
   NOT redefine them here. */
body.ik-product-catalog #content .ik-shop-sidebar-gt-btn,
body.ik-product-catalog #content .ik-shop-sidebar-gt-btn:link,
body.ik-product-catalog #content .ik-shop-sidebar-gt-btn:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: 100% !important;
  height: 36px !important;
  padding: 0 16px !important;
  margin: 0 0 20px 0 !important;
  box-sizing: border-box !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

body.ik-product-catalog #content .ik-shop-sidebar-search {
  margin-top: 20px !important;
  padding-top: 20px !important;
  border-top: 1px solid #E8E8E6 !important;
}
body.ik-product-catalog #content .ik-auction-search-input {
  display: block !important;
  width: 100% !important;
  padding: 8px 12px !important;
  box-sizing: border-box !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  line-height: 1.4 !important;
  height: 36px !important;
}
body.ik-product-catalog #content .ik-auction-search-input:focus {
  outline: none !important;
  border-color: #9A7E2E !important;
}
body.ik-product-catalog #content .ik-auction-search-input::placeholder {
  color: #999 !important;
  /* Beat sitewide ::placeholder -webkit-text-fill-color: rgba(255,255,255,0.2) */
  -webkit-text-fill-color: #999 !important;
  opacity: 1 !important;
}
body.ik-product-catalog #content .ik-auction-search-count {
  display: block !important;
  margin: 6px 0 0 0 !important;
  padding: 0 !important;
  font-size: 11px !important;
  color: #666 !important;
  line-height: 1.3 !important;
  min-height: 1em !important;
}

/* Show dropdown styling — reuses .ik-shop-sort visual (icon-less variant) */
body.ik-product-catalog #content details.ik-shop-sort.ik-shop-show .ik-shop-sort-icon {
  display: none !important;
}

body:not(.page-id-1381):not(.page-id-2594) #content details.ik-filter-dropdown a.ik-filter-dropdown-option,
body:not(.page-id-1381):not(.page-id-2594) #content details.ik-filter-dropdown a.ik-filter-dropdown-option:link,
body:not(.page-id-1381):not(.page-id-2594) #content details.ik-filter-dropdown a.ik-filter-dropdown-option:visited {
  display: block !important;
  padding: 10px 14px !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background 0.1s ease !important;
}
body:not(.page-id-1381):not(.page-id-2594) #content details.ik-filter-dropdown a.ik-filter-dropdown-option:hover {
  background: #FAFAF8 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body:not(.page-id-1381):not(.page-id-2594) #content details.ik-filter-dropdown a.ik-filter-dropdown-option.is-active {
  background: #FAFAF8 !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* === /sellers/ inline typeahead vendor search ===================
   2026-05-16 Ruth: Dokan's native Filter button is broken (the form
   is hidden by our prior CSS; the button just submits empty). Replaced
   with a typeahead search injected via snippet 17 wp_footer hook.

   Hides Dokan's broken Filter button + form, styles our new search input. */
/* 2026-05-16 specificity audit: existing rule
   `#dokan-store-listing-filter-wrap .right .item button.dokan-store-list-filter-button`
   is (1,3,1). Replicate its path + add page-id scope so we reach (1,4,2).
   2026-05-18 Ruth: ALSO hide the entire .item wrapper containing Dokan's
   icons + Filter button. Hiding the inner button still leaves the .item
   wrapper at 27px tall in the flex column, consuming an additional ~59px
   of vertical rhythm (27 wrapper + 16 gap above + 16 gap below) under
   "Total stores showing: N" on mobile. */
body.page-id-1386 #dokan-store-listing-filter-wrap .right .item button.dokan-store-list-filter-button,
body.page-id-1386 #dokan-store-listing-filter-wrap .right .item:has(button.dokan-store-list-filter-button),
body.page-id-1386 #content form#dokan-store-listing-filter-form-wrap {
  display: none !important;
}

/* Compact inline search input — sits in Dokan's filter row .right
   slot, immediately before the Sort form. Match-count text REPLACES
   the existing "Total stores showing: N" element on the .left side
   (handled by JS in snippet 17). No new visual rows added. */
body.page-id-1386 #content .ik-seller-search-slot {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  margin-right: 12px !important;
}

/* Mobile/tablet: Dokan's .right container has align-items:center which
   asymmetrically offsets siblings when one has margin-right (search) and
   another doesn't (sort), making the sort slot sit 6px right of the search
   input. Stretch siblings to fill cross-axis + zero the search-slot's
   desktop margin-right so both columns line up flush at container's left
   edge. 2026-05-18 Ruth flag. */
@media (max-width: 768px) {
  body.page-id-1386 #dokan-store-listing-filter-wrap .right {
    align-items: stretch !important;
  }
  body.page-id-1386 #content .ik-seller-search-slot {
    margin-right: 0 !important;
  }
}

body.page-id-1386 #content .ik-seller-search-input {
  display: block !important;
  width: 240px !important;
  max-width: 100% !important;
  padding: 8px 12px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  line-height: 1.4 !important;
  height: 36px !important;
}
body.page-id-1386 #content .ik-seller-search-input:focus {
  outline: none !important;
  border-color: #9A7E2E !important;
}
body.page-id-1386 #content .ik-seller-search-input::placeholder {
  color: #999 !important;
  /* Sitewide rule at line ~3023 sets -webkit-text-fill-color to
     rgba(255,255,255,0.2) on every ::placeholder. On WebKit that
     overrides `color`, making the placeholder invisible on white inputs.
     Forcing the fill color explicitly here so the placeholder shows. */
  -webkit-text-fill-color: #999 !important;
  opacity: 1 !important;
}

/* Legacy fallback class — only used when Dokan filter row missing */
body.page-id-1386 #content .ik-seller-search-row {
  display: block !important;
  max-width: 280px !important;
  margin: 0 auto 20px auto !important;
}

/* === Font Awesome font-family enforcement =======================
   2026-05-16 Ruth: <span class="fas fa-angle-down"> next to "Store
   is open" on /store/<v>/ renders as empty / scrambled lines because
   our sitewide font-family rules cascade Inter onto the <span>, so
   the FA glyph can't render. <i class="fas ..."> works fine because
   <i> gets different treatment.

   Force the correct Font Awesome family on every FA-classed element
   regardless of tag. Targets FA 5 + 6 (both ship in some plugins).
   Vendor storefront's Store is open / closed notice is the visible
   symptom; this fix is sitewide so any future FA span renders too. */
.fas, i.fas, span.fas, .fa-solid,
[class^="fa-"], [class*=" fa-"] {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome !important;
  font-weight: 900 !important;
  font-style: normal !important;
  -webkit-font-smoothing: antialiased !important;
}
.fab, i.fab, span.fab, .fa-brands {
  font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands" !important;
  font-weight: 400 !important;
  font-style: normal !important;
}
.far, i.far, span.far, .fa-regular {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

/* === Pagination .ik-page-btn — universal specificity bump =======
   2026-05-16 Ruth: storefront SHOP tab pagination rendered with
   bronze (#9A7E2E) text instead of dark — sitewide white-page link
   rule body:not(.page-id-1381):not(.page-id-2594) #content a:link
   (1,3,2) beat the generic `.ik-page-btn` rule (0,1,1).

   Same fix pattern as .ik-ac-cart-btn: replicate the :not() stack to
   reach (1,4,2) which wins. Applies anywhere .ik-page-btn renders —
   /auctions/ (already covered by page-id-1384 scope), /store-product/
   (already covered by .ik-product-catalog scope), AND now the
   storefront /store/<v>/ tabs which didn't have explicit overrides. */
/* Parent container — match /auctions/ canonical (centered, flex-row).
   The base .ik-auction-pagination rule already sets justify-content: center
   but on the storefront SHOP tab the items were getting squeezed because
   default flex-shrink: 1 narrowed them past their content. Fix: items
   flex-shrink: 0 + white-space: nowrap. Plus align-items: center so a
   stray taller item doesn't pull the rest. */
body:not(.page-id-1381):not(.page-id-2594) #content .ik-auction-pagination {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  /* Match /auctions/ spacing: 0 top (cards above provide their own
     bottom margin via grid row-gap), 48px bottom. */
  padding: 0 0 48px !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  /* When the pagination is a child of a CSS Grid (e.g., snippet 54's
     .ik-products-grid), span all columns so it isn't slotted into one
     grid cell. Harmless on flex/block parents. */
  grid-column: 1 / -1 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #content a.ik-page-btn,
body:not(.page-id-1381):not(.page-id-2594) #content a.ik-page-btn:link,
body:not(.page-id-1381):not(.page-id-2594) #content a.ik-page-btn:visited {
  display: inline-block !important;
  flex-shrink: 0 !important; /* don't let the flex parent squeeze us */
  padding: 8px 14px !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}
body:not(.page-id-1381):not(.page-id-2594) #content a.ik-page-btn:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
/* Current-page indicator — must be visually distinct (filled gold + black text). */
body:not(.page-id-1381):not(.page-id-2594) #content span.ik-page-btn.ik-page-current,
body:not(.page-id-1381):not(.page-id-2594) #content .ik-page-current {
  display: inline-block !important;
  padding: 8px 14px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: #FFCC33 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}
/* Ellipsis spacer — same chrome but no hover */
body:not(.page-id-1381):not(.page-id-2594) #content span.ik-page-btn.ik-page-ellipsis {
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  cursor: default !important;
}

/* Paid button — disabled state, shown on finished auction the winner already
   paid for (wc-processing/wc-completed order exists). Per DESIGN-PATTERNS.md §5.2. */
.ik-ac-actions span.ik-ac-paid-btn,
.ik-ac-card span.ik-ac-paid-btn,
span.ik-ac-paid-btn {
  display: block !important;
  text-align: center !important;
  padding: 10px !important;
  background: #F0F0EE !important;
  border: 1px solid #E8E8E6 !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  cursor: default !important;
  border-radius: 0 !important;
}

/* Responsive card grid */
@media (max-width: 921px) {
  .ik-auction-card-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .ik-auction-card-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }

  .ik-ac-image-wrap img,
  img.ik-ac-image {
    height: 180px !important;
  }
}

@media (max-width: 480px) {
  .ik-auction-card-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   27. AUCTION PLUGIN OVERRIDES
   Dark theme for auction filter forms, bid/view/soon buttons,
   activity history, and bid lists. Overrides red #c0392b and
   #e34d48 button defaults.
   ══════════════════════════════════════════════════════════════ */

/* Auction filter form — override white bg */
.auction-filter-form {
  background: var(--ik-bg-raised) !important;
  border-color: rgba(255,255,255,0.07) !important;
}

.auction-filter-group label {
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

.auction-filter-group select {
  background: var(--ik-bg-deep) !important;
  border-color: rgba(255,255,255,0.08) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

/* Auction buttons — override red #c0392b from plugin defaults.
   NOTE: .ik-ac-bid-btn is fully styled in Section 26b (card component).
   .ik-ac-view-btn MUST have -webkit-text-fill-color to beat any inline CSS */
/* Soon btn — outline style, must beat astra-base red */
body .ast-container .entry-content a.ik-ac-soon-btn,
body a.ik-ac-soon-btn,
body a.ik-ac-soon-btn:link,
body a.ik-ac-soon-btn:visited,
.ik-ac-soon-btn {
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: transparent !important;
  border: 1px solid #D0D0CE !important;
}
body .ast-container .entry-content a.ik-ac-soon-btn:hover,
.ik-ac-soon-btn:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: transparent !important;
}

/* Auction filter button — override red #e34d48 */
.auction-filter-btn {
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}
.auction-filter-btn:hover {
  background: var(--ik-gold) !important;
}

/* Auction reset button — override white */
.auction-reset-btn {
  background: var(--ik-bg-elevated) !important;
  border-color: rgba(255,255,255,0.12) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

/* Auction finished button — muted */
.auction-finished-btn {
  background: var(--ik-bg-elevated) !important;
  color: var(--ik-text-tertiary) !important;
  -webkit-text-fill-color: var(--ik-text-tertiary) !important;
}

/* Auction activity/history */
.auctions_activity .closed {
  background: var(--ik-bg-raised) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}
.auctions_activity .winning {
  background: rgba(255,204,51,0.06) !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* Bid list */
.bids-list-item-datum {
  border-color: rgba(255,255,255,0.07) !important;
}


/* ══════════════════════════════════════════════════════════════
   28. DOKAN MARKETPLACE OVERRIDES
   Dark theme for all Dokan vendor dashboard elements: buttons,
   labels, alerts, notices, forms, tabs, and shipping notices.
   Overrides purple #7047EB, blue #0B76B7, and blue #428bca.
   ══════════════════════════════════════════════════════════════ */

/* Dokan buttons — override purple #7047EB and blue #0B76B7 */
.dokan-btn-theme,
.dokan-btn-theme:active,
.woocommerce-MyAccount-content a.dokan-btn {
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: none !important;
}
.dokan-btn-theme:hover,
.dokan-btn-theme:focus {
  background: var(--ik-gold) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Dokan contact vendor "Send Message" button — match site-wide button style */
.dokan-store-contact input.dokan-btn-theme[type="submit"] {
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: 1px solid #FFCC33 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 12px 32px !important;
  border-radius: 0 !important;
  width: 100% !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
.dokan-store-contact input.dokan-btn-theme[type="submit"]:hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
}

.dokan-btn-info {
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}
.dokan-btn-info:hover {
  background: var(--ik-gold) !important;
}

.dokan-btn-default {
  background: var(--ik-bg-elevated) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
}
.dokan-btn-default:hover {
  background: var(--ik-bg-hover) !important;
  color: var(--ik-text-primary) !important;
  -webkit-text-fill-color: var(--ik-text-primary) !important;
}

/* Dokan labels — override blue #428bca */
.dokan-label-primary {
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Dokan alerts — dark backgrounds */
.dokan-alert-info {
  background: rgba(255,204,51,0.06) !important;
  border-color: rgba(255,204,51,0.15) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}
.dokan-alert-info .dokan-alert-link {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

.dokan-alert-success {
  background: rgba(34,173,92,0.06) !important;
  border-color: rgba(34,173,92,0.15) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

.dokan-alert-warning {
  background: rgba(255,204,51,0.06) !important;
  border-color: rgba(255,204,51,0.15) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

.dokan-alert-danger {
  background: rgba(242,48,48,0.06) !important;
  border-color: rgba(242,48,48,0.15) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

/* Dokan notices/messages — override white bg, blue/green borders */
.dokan-message, .dokan-info, .dokan-error {
  background: var(--ik-bg-raised) !important;
  border-color: rgba(255,255,255,0.07) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

.dokan-message { border-top-color: var(--ik-gold) !important; }
.dokan-message:before { background: var(--ik-gold-dark) !important; }

.dokan-info { border-top-color: var(--ik-gold) !important; }
.dokan-info:before { background: var(--ik-gold-dark) !important; }

.dokan-error { border-top-color: #F87171 !important; }
.dokan-error:before { background: #F87171 !important; }

/* Dokan forms — dark theme */
.dokan-form-control {
  background: var(--ik-bg-deep) !important;
  border-color: rgba(255,255,255,0.08) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}

.dokan-input-group-addon {
  background: var(--ik-bg-elevated) !important;
  border-color: rgba(255,255,255,0.08) !important;
  color: var(--ik-text-tertiary) !important;
  -webkit-text-fill-color: var(--ik-text-tertiary) !important;
}

/* Dokan tabs — override gray borders */
.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li,
.dokan-tabs > ul > li {
  border-color: rgba(255,255,255,0.07) !important;
}

/* Dokan shipping notice */
.dokan-shipping-remaining-amount {
  background: var(--ik-bg-raised) !important;
  border-color: rgba(255,204,51,0.2) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
}


/* ══════════════════════════════════════════════════════════════
   29. SEARCH (FiboSearch) OVERRIDES
   Dark theme for the FiboSearch (AJAX) dropdown and input.
   ══════════════════════════════════════════════════════════════ */

/* FiboSearch — dark theme */
.dgwt-wcas-search-wrapp {
  background: transparent !important;
}

.dgwt-wcas-search-input {
  background: var(--ik-bg-deep) !important;
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  border-color: rgba(255,255,255,0.08) !important;
}

.dgwt-wcas-suggestions-wrapp {
  background: var(--ik-bg-raised) !important;
  border-color: rgba(255,255,255,0.07) !important;
}

.dgwt-wcas-suggestion {
  color: var(--ik-text-secondary) !important;
  -webkit-text-fill-color: var(--ik-text-secondary) !important;
  border-color: rgba(255,255,255,0.04) !important;
}

.dgwt-wcas-suggestion:hover,
.dgwt-wcas-suggestion.dgwt-wcas-suggestion-selected {
  background: var(--ik-bg-elevated) !important;
}

/* Search result title */
.dgwt-wcas-st {
  color: var(--ik-text-primary) !important;
  -webkit-text-fill-color: var(--ik-text-primary) !important;
}

/* Search result price */
.dgwt-wcas-sp {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}


/* ══════════════════════════════════════════════════════════════
   30. GOLDEN TICKET PAGE
   Golden Ticket page-specific styles. Gold border glow.
   ══════════════════════════════════════════════════════════════ */

/* Golden ticket glow — scoped to GT page only, not wildcard */
body.page:has(.gt-page) .golden-ticket {
  position: relative !important;
  border: 1px solid rgba(196, 163, 90, 0.25) !important;
  box-shadow: 0 0 40px rgba(196, 163, 90, 0.05) !important;
}

/* ═══════════════════════════════════════════════════════════
   GOLDEN TICKET PAGE — Themed for v1 (dark + gold luxury)
   This CSS replaces the inline styles in the Code Snippet.
   ═══════════════════════════════════════════════════════════ */

/* GT page needs dark theme — undo all body:not(.page-id-1381):not(.page-id-2594) white-page rules */
body.page:has(.gt-page) #content,
body.page:has(.gt-page) #content .ast-container,
body.page:has(.gt-page) .site-main,
body.page:has(.gt-page) .entry-content,
body.page:has(.gt-page) .ast-article-single,
body.page:has(.gt-page) #primary,
body.page:has(.gt-page) .content-area {
  background: #0E0E0C !important;
  background-color: #0E0E0C !important;
}

body.page:has(.gt-page) {
  --ast-border-color: rgba(255,255,255,0.07) !important;
}

body.page:has(.gt-page) .entry-content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Text color overrides removed — individual .gt-page element rules handle colors.
   The body.page:has(.gt-page) selectors had specificity (0,3,2) which beat
   individual class overrides at (0,2,1), causing all spans to be #D5D5D5
   and all headings to be #FFFFFF regardless of element-specific rules. */

/* Reset — page-level overrides */
.gt-page {
  position: relative !important;
  background: var(--ik-bg-deep, #0E0E0C) !important;
  color: var(--ik-text-secondary, #D5D5D5) !important;
  -webkit-text-fill-color: var(--ik-text-secondary, #D5D5D5) !important;
  font-family: var(--ik-font-body, 'Inter', sans-serif) !important;
  overflow: hidden !important;
  padding-bottom: 0 !important;
  line-height: 1.7 !important;
}
.gt-page *, .gt-page *::before, .gt-page *::after { box-sizing: border-box; }

/* Sparkle canvas — must be absolutely positioned so it doesn't push content down */
#gt-sparkles {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

/* All GT sections need z-index above canvas and !important to beat Astra.
   Astra's --wp--custom--ast-content-width-size:1200px cascades into .entry-content children
   via a wildcard selector. Override with max-width: none, then let each section set its own. */
.gt-page > section,
.gt-page > div,
.gt-page > canvas {
  position: relative !important;
  z-index: 2 !important;
  max-width: none !important;
}

/* Hero must be full-width, no side margins, taller to match mockup */
.gt-page > .gt-hero {
  width: 100% !important;
  margin: 0 !important;
  min-height: 500px !important;
  padding: 100px 24px 80px !important;
}

/* Content sections inherit the site-wide content max-width token (1200px),
   matching the rest of the site. Per Ruth 2026-04-29: GT page should not have
   its own bespoke widths — uniform with /auctions/, /sellers/, etc. */
.gt-page > .gt-auction-section,
.gt-page > .gt-how-section,
.gt-page > .gt-grid-section {
  max-width: var(--ik-max-width, 1200px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.gt-page > .gt-countdown-section {
  max-width: none !important;
  margin: 0 !important;
}

/* ═══════════════════════════════════════
   NUCLEAR OVERRIDE — kills ALL inherited Astra/global styles
   ═══════════════════════════════════════ */

/* Base text colors */
body .gt-page, body .gt-page p, body .gt-page span, body .gt-page div,
body .gt-page h1, body .gt-page h3, body .gt-page h4,
body .gt-page small, body .gt-page label,
body .gt-page .gt-meta-label, body .gt-page .gt-meta-value,
body .gt-page .gt-mini-bid, body .gt-page .gt-mini-meta,
body .gt-page .gt-mini-vendor, body .gt-page .gt-banner-sub,
body .gt-page .gt-step p, body .gt-page .gt-cd-box small,
body .gt-page .gt-countdown-label, body .gt-page .gt-no-auction p {
  color: #D5D5D5 !important;
  -webkit-text-fill-color: #D5D5D5 !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* ALL links — gold, no blue ever */
body .gt-page a, body .gt-page a:link, body .gt-page a:visited,
body .entry-content .gt-page a, body .entry-content .gt-page a:link, body .entry-content .gt-page a:visited {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-decoration: none !important;
}

/* ALL link hovers — gold, no blue ever */
body .gt-page a:hover, body .gt-page a:active, body .gt-page a:focus,
body .entry-content .gt-page a:hover, body .entry-content .gt-page a:active,
body .entry-content .gt-page a:focus {
  color: #FFDB66 !important;
  -webkit-text-fill-color: #FFDB66 !important;
  text-decoration: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* Gold-bg button hovers — black text always */
body .gt-page a.gt-btn-gold:hover, body .gt-page a.gt-btn-gold:active, body .gt-page a.gt-btn-gold:focus,
body .gt-page a.gt-btn-enter:hover, body .gt-page a.gt-btn-enter:active, body .gt-page a.gt-btn-enter:focus,
body .entry-content .gt-page a.gt-btn-gold:hover, body .entry-content .gt-page a.gt-btn-enter:hover {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: #FFDB66 !important;
}

/* Outline button hovers — gold text */
body .gt-page a.gt-btn-outline:hover, body .gt-page a.gt-btn-outline:active, body .gt-page a.gt-btn-outline:focus,
body .entry-content .gt-page a.gt-btn-outline:hover {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  background: rgba(255,204,51,0.04) !important;
}

/* Watch button height — match .gt-btn-enter (51.8px) so the two hero CTAs sit
   at the same height. .gt-btn base sets padding 14px + font-size 13px; without
   an explicit line-height the rendered Watch was 41px while .gt-btn-enter sat
   at 51.8px (line-height ~23.8px from its 14px font × 1.7). Force the same
   line-height so total = 14 + 23.8 + 14 = 51.8px. (Ruth 2026-04-30) */
body .gt-page .gt-btn-watch,
body .gt-page button.gt-btn-watch {
  line-height: 23.8px !important;
}

/* Watch button hover — translucent gold tint as the hover indicator (Ruth
   confirmed 2026-04-30 that the light-yellow hover is intentional; only the
   "second solid gold box on click" was the original 2026-04-29 problem,
   which is handled by the .active state above). */
body .gt-page .gt-btn-watch:hover, body .gt-page button.gt-btn-watch:hover {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  background: rgba(255,204,51,0.08) !important;
  border-color: #FFCC33 !important;
}

/* Mini card bid button hover */
body .gt-page a.gt-mini-btn:hover, body .gt-page a.gt-mini-btn:active,
body .entry-content .gt-page a.gt-mini-btn:hover {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  border-color: #FFCC33 !important;
  background: transparent !important;
}

/* Mini card title hover */
body .gt-page .gt-mini-title a:hover, body .gt-page .gt-mini-title a:active,
body .entry-content .gt-page .gt-mini-title a:hover {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

/* Kill Astra backgrounds */
.entry-content:has(.gt-page), .ast-article-single:has(.gt-page),
.ast-container:has(.gt-page), body .entry-content .gt-page {
  background: #0E0E0C !important;
  padding: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-shadow: none !important;
  border: none !important;
}

/* Gold bar headers — EXACT match to homepage h2.wp-block-heading */
body .gt-page .gt-gold-bar,
body .entry-content .gt-page .gt-gold-bar,
body .gt-page h2.gt-gold-bar {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  font-style: normal !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255, 220, 100, 0.6) !important;
  border-bottom: 1px solid rgba(160, 130, 40, 0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100% !important;
  margin: 0 0 2.5rem 0 !important;
  padding: 1.5rem 2rem !important;
  /* Break out of parent max-width to go full-width */
  width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  margin-bottom: 2.5rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  max-width: none !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
  display: block !important;
}

/* Override the generic h2 reset that custom-styles.css applies */
body .gt-page .gt-auction-title,
body .entry-content .gt-page .gt-auction-title {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  width: auto !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  margin: 0 0 20px !important;
}

/* Step h3 headings */
body .gt-page .gt-step h3 {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  margin: 0 0 10px !important;
  width: auto !important;
  text-align: center !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

/* Specific gold-colored elements */
body .gt-page .gt-banner-icon { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }
body .gt-page .gt-banner-badge { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }
body .gt-page .gt-auction-badge { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }
body .gt-page .gt-step-number, body .gt-page .gt-step-icon { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; font-size: 14px !important; margin-bottom: 12px !important; }
body .gt-page .gt-price, body .gt-page .gt-price * { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }
body .gt-page .gt-diamond { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; font-size: 48px !important; margin-bottom: 16px !important; line-height: 1 !important; }
body .gt-page .gt-mini-bid strong,
body .gt-page .gt-mini-bid strong *,
body .gt-page .gt-past-price,
body .gt-page .gt-past-price * { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }
body .gt-page .gt-countdown-inline { color: #F87171 !important; -webkit-text-fill-color: #F87171 !important; }
body .gt-page .gt-mini-time { color: #F87171 !important; -webkit-text-fill-color: #F87171 !important; }
body .gt-page .gt-meta-value { color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; }
body .gt-page .gt-cd-box span { color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; }
body .gt-page .gt-cd-sep { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }
body .gt-page .gt-countdown-label { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }

/* White text elements */
body .gt-page .gt-mini-title a, body .gt-page .gt-mini-title a:link, body .gt-page .gt-mini-title a:visited {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* ── BANNER / HERO ── */
.gt-banner, .gt-hero {
  position: relative !important;
  width: 100% !important;
  min-height: 360px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, var(--ik-bg-deep, #0E0E0C) 100%),
              url('../images/hero-background.png') center 40% / cover no-repeat !important;
  overflow: hidden !important;
  padding: 80px 24px 60px !important;
}

.gt-banner::before, .gt-hero::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,204,51,0.2) 0%, rgba(255,204,51,0.08) 30%, transparent 65%) !important;
  pointer-events: none !important;
}

.gt-hero-glow {
  position: absolute !important;
  inset: 0 !important;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,204,51,0.15) 0%, transparent 60%) !important;
  pointer-events: none !important;
}

.gt-banner-content, .gt-hero-content {
  position: relative !important;
  z-index: 2 !important;
  max-width: var(--ik-max-width, 1200px) !important;
  margin: 0 auto !important;
}

body .gt-page .gt-banner-icon {
  font-size: 64px;
  line-height: 1;
  margin-bottom: 20px;
  filter: drop-shadow(0 4px 20px rgba(255,204,51,0.3));
}

.gt-banner-badge {
  display: inline-block;
  padding: 6px 0;
  border: none;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ik-gold, #FFCC33);
  margin-bottom: 24px;
}

body .gt-page .gt-banner h1,
body .gt-page .gt-banner h1 *,
body .gt-page .gt-hero h1,
body .gt-page .gt-hero-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  font-weight: 400 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  margin: 0 0 16px !important;
  line-height: 1.1 !important;
}

body .gt-page .gt-banner h1 span {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

body .gt-page .gt-banner-sub,
body .gt-page .gt-hero-sub {
  font-size: 17px !important;
  color: #D5D5D5 !important;
  -webkit-text-fill-color: #D5D5D5 !important;
  margin: 0 0 32px !important;
  line-height: 1.6 !important;
}

body .gt-page .gt-banner-buttons,
body .gt-page .gt-hero-buttons {
  display: flex !important;
  justify-content: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}

/* ── BUTTONS ── */
body .gt-page .gt-btn,
body .gt-page a.gt-btn,
body .gt-page a.gt-btn:link,
body .gt-page a.gt-btn:visited,
body .gt-page button.gt-btn {
  display: inline-block !important;
  padding: 14px 32px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  transition: all 0.35s ease !important;
  cursor: pointer !important;
  border: none !important;
  border-radius: 0 !important;
}

body .gt-page .gt-btn-gold,
body .gt-page a.gt-btn-gold,
body .gt-page a.gt-btn-gold:link,
body .gt-page a.gt-btn-gold:visited,
body .gt-page a[class*="gt-btn-gold"],
body .entry-content .gt-page a.gt-btn-gold,
body .entry-content .gt-page a[class*="gt-btn-gold"] {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  box-shadow: 0 4px 20px rgba(255,204,51,0.2) !important;
  border: none !important;
}
body .gt-page .gt-btn-gold:hover,
body .gt-page a.gt-btn-gold:hover {
  background: #FFDB66 !important;
  box-shadow: 0 6px 28px rgba(255,204,51,0.35) !important;
  transform: translateY(-2px) !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

.gt-btn-outline {
  background: transparent !important;
  border: 1px solid rgba(255,204,51,0.35) !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}
.gt-btn-outline:hover {
  border-color: #FFCC33 !important;
  background: rgba(255,204,51,0.04) !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

body .gt-page .gt-btn-enter,
body .gt-page a.gt-btn-enter,
body .gt-page a.gt-btn-enter:link,
body .gt-page a.gt-btn-enter:visited,
body .entry-content .gt-page a.gt-btn-enter {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  padding: 14px 40px !important;
  font-size: 14px !important;
  letter-spacing: 0.16em !important;
  box-shadow: 0 4px 20px rgba(255,204,51,0.25) !important;
  border: none !important;
}
body .gt-page .gt-btn-enter:hover,
body .gt-page a.gt-btn-enter:hover {
  background: #FFDB66 !important;
  transform: translateY(-2px) !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* ── DIVIDER ── */
.gt-divider {
  width: 80px !important;
  height: 1px !important;
  margin: 0 auto !important;
  background: linear-gradient(90deg, transparent, rgba(255,204,51,0.4), transparent) !important;
}

/* ── FEATURED AUCTION CARD ── */
.gt-auction-section {
  position: relative !important;
  z-index: 2 !important;
  padding: 0 24px 48px !important;
  max-width: var(--ik-max-width, 1200px) !important;
  margin: 0 auto !important;
}

.gt-auction-section-title {
  text-align: center !important;
  font-family: var(--ik-font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  margin: 0 0 32px !important;
}

.gt-auction-card {
  border: 1px solid rgba(255,204,51,0.2) !important;
  overflow: hidden !important;
  background: #1E1E1B !important;
}

.gt-auction-card-inner {
  display: flex !important;
}

.gt-auction-image {
  flex: 0 0 380px !important;
  min-height: 340px !important;
  overflow: hidden !important;
}
.gt-auction-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.gt-auction-details {
  flex: 1 !important;
  padding: 32px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

body .gt-page .gt-auction-badge {
  display: inline-block !important;
  padding: 5px 16px !important;
  border: 1px solid rgba(255,204,51,0.3) !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  margin-bottom: 16px !important;
  align-self: flex-start !important;
}

body .gt-page .gt-auction-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  margin: 0 0 20px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  width: auto !important;
  text-align: left !important;
}

.gt-auction-meta {
  margin-bottom: 24px !important;
}

.gt-meta-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 10px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
}
.gt-meta-row:last-child { border-bottom: none !important; }

body .gt-page .gt-meta-label {
  font-size: 12px !important;
  color: #AAA !important;
  -webkit-text-fill-color: #AAA !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-weight: 500 !important;
}

body .gt-page .gt-meta-value {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

body .gt-page .gt-price,
body .gt-page .gt-price * {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  font-size: 22px !important;
}

body .gt-page .gt-countdown-inline {
  color: #F87171 !important;
  -webkit-text-fill-color: #F87171 !important;
  font-family: 'Courier New', monospace !important;
  font-size: 18px !important;
  font-variant-numeric: tabular-nums !important;
}

body .gt-page .gt-meta-value {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

body .gt-page .gt-auction-badge,
body .gt-page .gt-banner-badge {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

body .gt-page .gt-step-number {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

body .gt-page .gt-cd-box span {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

.gt-vendor-val {
  display: flex;
  align-items: center;
  gap: 8px;
}
.gt-vendor-val img {
  border-radius: 50%;
  width: 28px;
  height: 28px;
}

.gt-auction-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.gt-btn-watch {
  background: transparent;
  border: 1px solid rgba(255,204,51,0.3);
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
  padding: 10px 22px;
  font-size: 13px;
  cursor: pointer;
  font-family: var(--ik-font-body);
}
/* Active "Watching" state — same translucent text-style as inactive. Only the star toggles
   from hollow ☆ to filled ★. Per Ruth 2026-04-29: no second gold box on click. */
.gt-btn-watch.active {
  background: rgba(255,204,51,0.04) !important;
  border-color: rgba(255,204,51,0.5) !important;
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* ── COMING SOON STATE ── */
.gt-no-auction {
  text-align: center;
  padding: 60px 24px;
}
.gt-no-auction h2 {
  font-family: var(--ik-font-display);
  font-size: 32px;
  font-weight: 400;
  color: #FFFFFF;
  margin: 0 0 12px;
}
.gt-no-auction p {
  color: var(--ik-text-secondary);
  font-size: 16px;
}
.gt-no-auction .gt-diamond {
  font-size: 28px;
  color: var(--ik-gold);
  margin-bottom: 12px;
}

/* ── COUNTDOWN BANNER ── */
.gt-countdown-section {
  position: relative !important;
  z-index: 2 !important;
  padding: 0 24px 48px !important;
  text-align: center !important;
}

.gt-countdown-content {
  padding: 32px 0 !important;
  max-width: 500px !important;
  margin: 0 auto !important;
}

body .gt-page .gt-countdown-label {
  display: block !important;
  font-size: 12px !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2em !important;
  margin-bottom: 20px !important;
  font-weight: 500 !important;
}

.gt-countdown-boxes {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
}

.gt-cd-box {
  background: #1E1E1B !important;
  border: 1px solid rgba(255,204,51,0.3) !important;
  padding: 14px 20px !important;
  min-width: 80px !important;
  text-align: center !important;
}
body .gt-page .gt-cd-box span {
  display: block !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  font-family: 'Inter', monospace !important;
  font-variant-numeric: tabular-nums !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
body .gt-page .gt-cd-box small {
  display: block !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: #AAA !important;
  -webkit-text-fill-color: #AAA !important;
  margin-top: 4px !important;
}

body .gt-page .gt-cd-sep {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

/* ── HOW IT WORKS ── */
.gt-how-section {
  position: relative !important;
  z-index: 2 !important;
  padding: 0 24px 48px !important;
  max-width: var(--ik-max-width, 1200px) !important;
  margin: 0 auto !important;
}

/* GT section titles — full-width gold gradient bars (matches .gt-gold-bar style) */
body .gt-page .gt-section-title {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255, 220, 100, 0.6) !important;
  border-bottom: 1px solid rgba(160, 130, 40, 0.5) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
  padding: 1.5rem 2rem !important;
  margin: 0 0 2.5rem 0 !important;
  /* Break out of parent max-width to go full-width */
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin-left: -50vw !important;
}

body .gt-page .gt-section-title::after {
  display: none !important;
}

.gt-steps {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr auto 1fr !important;
  align-items: stretch !important;
  gap: 0 24px !important;
}

.gt-step {
  text-align: center !important;
  padding: 32px 20px !important;
  background: #1E1E1B !important;
  border: 1px solid rgba(255,255,255,0.04) !important;
  transition: border-color 0.35s ease !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
.gt-step:hover {
  border-color: rgba(255,204,51,0.15) !important;
}

.gt-step-number, .gt-step-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border: 1px solid rgba(255,204,51,0.3) !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  margin-bottom: 20px !important;
}

body .gt-page .gt-step h3 {
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  margin: 0 0 10px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  width: auto !important;
  text-align: center !important;
}

body .gt-page .gt-step p {
  font-size: 14px !important;
  color: #D5D5D5 !important;
  -webkit-text-fill-color: #D5D5D5 !important;
  margin: 0 !important;
  line-height: 1.7 !important;
}

.gt-step-arrow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: rgba(255,204,51,0.3) !important;
  -webkit-text-fill-color: rgba(255,204,51,0.3) !important;
  font-size: 20px !important;
  padding-top: 48px !important;
}

/* ── AUCTION GRID SECTIONS ── */
.gt-grid-section {
  position: relative !important;
  z-index: 2 !important;
  padding: 0 24px 48px !important;
  max-width: var(--ik-max-width, 1200px) !important;
  margin: 0 auto !important;
}

.gt-mini-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
}

/* GT mini-card — mirrors .ik-ac-card structure (used on /auctions/), tonally inverted for the
   black GT page. Per Ruth 2026-04-29: GT cards should look like auction cards, just on black —
   same image height, same LIVE pill, same vendor row with avatar, same solid yellow Bid Now button.
   Markup is rendered by snippet 26's render_mini_card(). */
.gt-mini-card {
  background: #111 !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  transition: all 0.35s ease !important;
  display: flex !important;
  flex-direction: column !important;
}
.gt-mini-card:hover {
  border-color: rgba(212,175,55,0.3) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.4) !important;
}

.gt-mini-img-wrap {
  position: relative !important;
  overflow: hidden !important;
}

.gt-mini-img img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s ease !important;
}
.gt-mini-card:hover .gt-mini-img img {
  transform: scale(1.04) !important;
}

.gt-mini-info {
  padding: 16px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Top row: LIVE pill + countdown */
.gt-mini-top-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}
.gt-mini-badges {
  display: flex !important;
  gap: 6px !important;
}
.gt-mini-status {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 3px 8px !important;
  background: rgba(34,197,94,0.15) !important;
  color: #22C55E !important;
  -webkit-text-fill-color: #22C55E !important;
}

/* Category line — mirrors .ik-ac-cat from /auctions/. Greyed uppercase microcopy
   above the title. Per Ruth 2026-04-29: GT mini-card should be 1:1 with auction card. */
body .gt-page .gt-mini-cat {
  font-size: 10px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 4px !important;
  display: block !important;
}

body .gt-page .gt-mini-title {
  margin: 0 0 8px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}
.gt-mini-title a,
.gt-mini-title a:link,
.gt-mini-title a:visited {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  text-decoration: none !important;
}
.gt-mini-title a:hover { color: var(--ik-gold) !important; -webkit-text-fill-color: var(--ik-gold) !important; }

body .gt-page .gt-mini-bid {
  margin: 0 0 4px !important;
  font-size: 13px !important;
  color: #AAA !important;
  -webkit-text-fill-color: #AAA !important;
}
.gt-mini-bid-label { color: #AAA !important; -webkit-text-fill-color: #AAA !important; }
body .gt-page .gt-mini-bid strong { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }

body .gt-page .gt-mini-time { font-size: 12px !important; color: #F87171 !important; -webkit-text-fill-color: #F87171 !important; font-weight: 600 !important; }
body .gt-page .gt-mini-bids { font-size: 12px !important; color: #888 !important; -webkit-text-fill-color: #888 !important; margin: 0 0 8px !important; }

/* Vendor row with avatar — flex layout matching .ik-ac-vendor.
   2026-05-23: was `flex: 1`, which made the vendor row grow to absorb the
   card's free space and (with align-items:center) float its "Sold by" text
   to the vertical center of that grown box — so the vendor line landed at a
   different height in every card as the title length varied. Mirrors the
   .ik-ac-card fix in SECTION 76: pin the vendor row to the bottom with
   margin-top:auto and stop it growing, so vendor+button form a fixed bottom
   group that aligns across all GT cards. The companion `.gt-mini-actions`
   margin-top reset is just below. */
body .gt-page .gt-mini-vendor {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
  flex: 0 0 auto !important;
  margin-top: auto !important;
  font-size: 11px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}
body .gt-page .gt-mini-vendor img,
body .gt-page .gt-mini-vendor-avatar {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
  aspect-ratio: 1/1 !important;
  display: inline-block !important;
}
body .gt-page .gt-mini-vendor span { font-size: 11px !important; color: #999 !important; -webkit-text-fill-color: #999 !important; }
body .gt-page .gt-mini-vendor strong { color: #f5e6d3 !important; -webkit-text-fill-color: #f5e6d3 !important; font-weight: 700 !important; }

/* Actions — push to bottom */
.gt-mini-actions { margin-top: auto !important; }
/* 2026-05-23: when a vendor row is present it now carries margin-top:auto
   (above) and absorbs all the slack. Zero the actions auto-margin so the
   free space isn't split between two auto top-margins (which floated the
   vendor row to a per-card-variable midpoint). Same fix as SECTION 76. */
body .gt-page .gt-mini-info:has(.gt-mini-vendor) .gt-mini-actions { margin-top: 0 !important; }

/* Bid Now — solid yellow gold matching .ik-ac-bid-btn on /auctions/ */
body .gt-page .gt-mini-btn,
body .gt-page .gt-mini-btn:link,
body .gt-page .gt-mini-btn:visited,
body .gt-page a.gt-mini-btn,
body .gt-page a.gt-mini-btn:link,
body .gt-page a.gt-mini-btn:visited {
  display: block !important;
  text-align: center !important;
  padding: 10px !important;
  background: #FFCC33 !important;
  border: none !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
  border-radius: 0 !important;
  transition: background 0.2s ease !important;
}
body .gt-page .gt-mini-btn:hover,
body .gt-page a.gt-mini-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

.gt-section-cta {
  text-align: center !important;
  margin-top: 32px !important;
}

/* ── FULL-WIDTH GOLD DIVIDER BETWEEN SECTIONS ── */
.gt-section-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,204,51,0.2), transparent);
  margin: 0;
}

/* ── PAST GOLDEN TICKETS SECTION ── */
.gt-past-section {
  padding: 0 24px 48px !important;
}

.gt-past-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: 24px !important;
  margin-top: 24px !important;
}

.gt-past-card {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  transition: border-color 0.3s ease, transform 0.3s ease !important;
}
.gt-past-card:hover {
  border-color: rgba(255,204,51,0.3) !important;
  transform: translateY(-2px) !important;
}

.gt-past-img-wrap {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 1 !important;
  overflow: hidden !important;
}
.gt-past-img-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

body .gt-page .gt-past-sold-badge {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  background: #FFCC33 !important;
  color: #0E0E0C !important;
  -webkit-text-fill-color: #0E0E0C !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  text-transform: uppercase !important;
}

.gt-past-info {
  padding: 16px !important;
}

.gt-past-title {
  font-size: 14px !important;
  font-weight: 700 !important;
  margin: 0 0 12px 0 !important;
  line-height: 1.4 !important;
}
body .gt-page .gt-past-title,
body .gt-page .gt-past-title a {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  text-decoration: none !important;
}
body .gt-page .gt-past-title a:hover {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

.gt-past-details {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
}

.gt-past-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
}

body .gt-page .gt-past-label {
  color: #888 !important;
  -webkit-text-fill-color: #888 !important;
  font-weight: 400 !important;
}

body .gt-page .gt-past-value {
  color: #D5D5D5 !important;
  -webkit-text-fill-color: #D5D5D5 !important;
  font-weight: 600 !important;
  text-align: right !important;
}

body .gt-page .gt-past-price {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  font-weight: 700 !important;
}

.gt-past-view-btn,
.gt-past-view-btn:link,
.gt-past-view-btn:visited {
  display: block !important;
  text-align: center !important;
  padding: 10px !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 6px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
}
.gt-past-view-btn:hover {
  border-color: var(--ik-gold, #FFCC33) !important;
  color: var(--ik-gold, #FFCC33) !important;
  -webkit-text-fill-color: var(--ik-gold, #FFCC33) !important;
  background: transparent !important;
}

/* ── RESPONSIVE — TABLET ── */
@media (max-width: 921px) {
  .gt-steps {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    max-width: 400px;
    margin: 0 auto;
  }
  .gt-step-arrow {
    transform: rotate(90deg) !important;
    padding-top: 0 !important;
    padding: 4px 0 !important;
    font-size: 16px !important;
  }
  .gt-mini-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .gt-past-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .gt-auction-card-inner {
    flex-direction: column !important;
  }
  .gt-auction-image {
    flex: none !important;
    height: 260px !important;
  }
}

/* ── RESPONSIVE — MOBILE ── */
@media (max-width: 768px) {
  .gt-banner {
    min-height: 280px;
    padding: 60px 20px 48px;
  }
  .gt-banner h1 {
    font-size: clamp(1.75rem, 7vw, 2.5rem);
  }
  .gt-banner-sub {
    font-size: 15px;
  }
  .gt-banner-buttons {
    flex-direction: column;
    align-items: center;
  }
  .gt-btn {
    width: 100%;
    max-width: 280px;
    text-align: center;
  }
  .gt-auction-section {
    padding: 32px 16px 40px;
  }
  .gt-auction-details {
    padding: 24px 20px;
  }
  .gt-auction-title {
    font-size: 18px;
  }
  .gt-how-section {
    padding: 48px 16px;
  }
  .gt-step {
    padding: 24px 16px;
  }
  .gt-mini-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }
  .gt-past-grid {
    grid-template-columns: 1fr !important;
    max-width: 400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .gt-past-section {
    padding: 32px 16px 40px !important;
  }
  .gt-mini-img img {
    height: 150px;
  }
  .gt-cd-box {
    min-width: 64px;
    padding: 10px 14px;
  }
  .gt-cd-box span {
    font-size: 28px;
  }
  .gt-grid-section {
    padding: 36px 16px;
  }
}

@media (max-width: 480px) {
  .gt-mini-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ══════════════════════════════════════════════════════════════
   30a. AUCTIONS LISTING PAGE (.auctions-page, .ik-ac-*, .ik-auction-*)
   Shipping banner, filter bar, card grid, pagination.
   Originally in inline <style> — migrated here for implementation.
   ══════════════════════════════════════════════════════════════ */

/* Scoped to .entry-content so footer/nav text colors aren't overridden */
body.page-id-1384 .entry-content, body.page-id-1384 .entry-content p, body.page-id-1384 .entry-content span, body.page-id-1384 .entry-content div, body.page-id-1384 .entry-content h1, body.page-id-1384 .entry-content h2, body.page-id-1384 .entry-content h3, body.page-id-1384 .entry-content h4, body.page-id-1384 .entry-content small, body.page-id-1384 .entry-content label, body.page-id-1384 .entry-content select { color: #333 !important; -webkit-text-fill-color: #333 !important; font-family: 'Inter', -apple-system, sans-serif !important; }
body.page-id-1384 { font-family: 'Inter', -apple-system, sans-serif !important; }
body.page-id-1384 .entry-content a, body.page-id-1384 .entry-content a:link, body.page-id-1384 .entry-content a:visited { color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; text-decoration: none !important; }
body.page-id-1384 .entry-content a:hover { color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; }
body .entry-content .auctions-page, .entry-content:has(.auctions-page) { background: #FFFFFF !important; padding: 0 !important; max-width: 100% !important; margin: 0 !important; }
.auction-shipping-banner { background: linear-gradient(135deg, rgba(14,14,12,0.92) 0%, rgba(21,21,19,0.88) 50%, rgba(14,14,12,0.92) 100%), url('../images/hero-background.png') center/cover no-repeat !important; padding: 56px 24px !important; text-align: center !important; position: relative !important; }
.auction-shipping-banner::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, rgba(255,204,51,0.06) 0%, transparent 60%); pointer-events: none; }
.auction-shipping-inner { max-width: 700px; margin: 0 auto; position: relative; z-index: 1; }
body.page-id-1384 .auction-shipping-title { font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important; font-weight: 700 !important; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; margin: 0 0 8px !important; font-family: Inter, sans-serif !important; } body.page-id-1384 .auction-shipping-intro { font-size: 15px !important; color: rgba(255,255,255,0.75) !important; -webkit-text-fill-color: rgba(255,255,255,0.75) !important; margin: 0 0 36px !important; }
.auction-shipping-rates { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 16px !important; margin-bottom: 32px; }
.auction-shipping-rate { display: flex; flex-direction: column; align-items: center; padding: 24px 16px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,204,51,0.12); backdrop-filter: blur(4px); }
.auction-shipping-rate:last-child { }
body.page-id-1384 .auction-shipping-price { font-size: 36px !important; font-weight: 700 !important; color: #FFCC33 !important; -webkit-text-fill-color: #FFCC33 !important; line-height: 1 !important; margin-bottom: 8px !important; }
body.page-id-1384 .auction-shipping-desc { font-size: 13px !important; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; font-weight: 500 !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; }
body.page-id-1384 .auction-shipping-note { font-size: 13px !important; color: rgba(255,255,255,0.8) !important; -webkit-text-fill-color: rgba(255,255,255,0.8) !important; margin: 0 !important; }
body.page-id-1384 h2.ik-gold-bar, body .entry-content .auctions-page h2.ik-gold-bar { font-family: 'Inter', sans-serif !important; font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important; font-weight: 700 !important; line-height: 1 !important; color: #000 !important; background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important; border-top: 1px solid rgba(255,220,100,0.6) !important; border-bottom: 1px solid rgba(160,130,40,0.5) !important; border-left: none !important; border-right: none !important; width: 100% !important; margin: 0 !important; padding: 1.5rem 2rem !important; text-align: center !important; letter-spacing: 0.06em !important; text-transform: uppercase !important; max-width: none !important; box-sizing: border-box !important; text-shadow: none !important; display: block !important; }
.ik-auction-filter-wrap { background: #F5F5F3 !important; padding: 20px 24px !important; max-width: 100% !important; border-bottom: 1px solid #E0E0DE; }
.ik-auction-filter-form { display: flex; align-items: flex-end; gap: 12px; flex-wrap: nowrap; justify-content: center; max-width: 1200px; margin: 0 auto; } .ik-auction-nav-buttons { display: flex; justify-content: center; gap: 8px; padding: 12px 24px 0; max-width: 1200px; margin: 0 auto; } body.page-id-1384 a.ik-auction-gt-btn, body.page-id-1384 a.ik-auction-gt-btn:link, body.page-id-1384 a.ik-auction-gt-btn:visited, body .entry-content .auctions-page a.ik-auction-gt-btn { border-color: #FFCC33 !important; color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; } body.page-id-1384 a.ik-auction-gt-btn:hover, body .entry-content .auctions-page a.ik-auction-gt-btn:hover { background: rgba(255,204,51,0.08) !important; border-color: #FFCC33 !important; color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; }
.ik-auction-filter-group { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; flex: 1; }
body.page-id-1384 .ik-auction-filter-group label { font-size: 11px !important; font-weight: 600 !important; color: #666 !important; -webkit-text-fill-color: #666 !important; text-transform: uppercase !important; letter-spacing: 0.08em !important; }
body.page-id-1384 .ik-auction-filter-group select { background: #FFF !important; border: 1px solid #D0D0CE !important; color: #333 !important; padding: 8px 12px !important; font-size: 13px !important; width: 100%; min-width: 0; height: 36px !important; }
/* All filter action buttons — uniform base */ body.page-id-1384 .ik-auction-filter-form a, body.page-id-1384 .ik-auction-filter-form button, body.page-id-1384 .ik-auction-nav-buttons a, body.page-id-1384 .ik-auction-filter-form a:link, body.page-id-1384 .ik-auction-filter-form a:visited, body.page-id-1384 .ik-auction-nav-buttons a:link, body.page-id-1384 .ik-auction-nav-buttons a:visited, body .entry-content .auctions-page .ik-auction-filter-form a, body .entry-content .auctions-page .ik-auction-nav-buttons a, body .entry-content .auctions-page .ik-auction-filter-form button { display: inline-flex !important; align-items: center !important; gap: 4px !important; height: 36px !important; padding: 0 16px !important; font-size: 11px !important; font-weight: 600 !important; font-family: Inter, sans-serif !important; letter-spacing: 0.06em !important; text-transform: uppercase !important; border: 1px solid #D0D0CE !important; border-radius: 0 !important; background: #FFF !important; color: #333 !important; -webkit-text-fill-color: #333 !important; cursor: pointer !important; transition: all 0.3s ease !important; text-decoration: none !important; line-height: 1 !important; box-sizing: border-box !important; } body.page-id-1384 .ik-auction-filter-form a:hover, body.page-id-1384 .ik-auction-filter-form button:hover, body.page-id-1384 .ik-auction-nav-buttons a:hover, body .entry-content .auctions-page .ik-auction-filter-form a:hover, body .entry-content .auctions-page .ik-auction-nav-buttons a:hover { border-color: #9A7E2E !important; color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; background: #FAFAF8 !important; } /* Apply Filters — gold filled (primary) */ body.page-id-1384 .ik-auction-filter-btn, body.page-id-1384 button.ik-auction-filter-btn, body.page-id-1384 .ik-auction-filter-form .ik-auction-filter-btn { background: #FFCC33 !important; color: #000 !important; -webkit-text-fill-color: #000 !important; border-color: #FFCC33 !important; font-weight: 700 !important; align-self: flex-end !important; height: 36px !important; max-height: 36px !important; padding: 0 16px !important; box-sizing: border-box !important; line-height: 1 !important; } body.page-id-1384 .ik-auction-filter-btn:hover, body.page-id-1384 button.ik-auction-filter-btn:hover, body.page-id-1384 .ik-auction-filter-form .ik-auction-filter-btn:hover { background: #FFDB66 !important; border-color: #FFDB66 !important; color: #000 !important; -webkit-text-fill-color: #000 !important; }




.ik-auction-card-grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 20px !important; }
.ik-ac-card { background: #FFF !important; border: 1px solid #E8E8E6 !important; overflow: hidden !important; display: flex !important; flex-direction: column !important; transition: all 0.35s ease !important; }
.ik-ac-card:hover { border-color: rgba(154,126,46,0.3) !important; transform: translateY(-4px) !important; box-shadow: 0 8px 30px rgba(0,0,0,0.1) !important; }
.ik-ac-image-wrap { position: relative; overflow: hidden; }
.ik-ac-image img { width: 100% !important; height: 220px !important; object-fit: cover !important; display: block !important; }
.ik-ac-card:hover .ik-ac-image img { transform: scale(1.04); }
.ik-watchstar { position: absolute; top: 8px; right: 8px; background: rgba(0,0,0,0.4); border: none; color: rgba(255,255,255,0.7); font-size: 18px; cursor: pointer; padding: 4px 6px; line-height: 1; z-index: 2; }
.ik-watchstar.active, .ik-watchstar:hover { color: #FFCC33; }
.ik-ac-info { padding: 16px !important; flex: 1 !important; display: flex !important; flex-direction: column !important; }
.ik-ac-top-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.ik-ac-badges { display: flex; gap: 6px; }
body.page-id-1384 .ik-ac-status { font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; padding: 3px 8px !important; }
body.page-id-1384 .ik-status-live { background: rgba(34,197,94,0.12) !important; color: #16A34A !important; }
body.page-id-1384 .ik-status-finished { background: rgba(0,0,0,0.04) !important; color: #888 !important; }
body.page-id-1384 .ik-status-upcoming { background: rgba(154,126,46,0.1) !important; color: #9A7E2E !important; }
body.page-id-1384 .ik-ac-indicator { font-size: 10px !important; font-weight: 700 !important; padding: 3px 8px !important; }
body.page-id-1384 .ik-indicator-winning { background: rgba(34,197,94,0.12) !important; color: #16A34A !important; }
body.page-id-1384 .ik-indicator-outbid { background: rgba(220,50,50,0.08) !important; color: #DC3232 !important; }
body.page-id-1384 .ik-ac-time { font-size: 12px !important; color: #DC3232 !important; -webkit-text-fill-color: #DC3232 !important; font-weight: 600 !important; }
body.page-id-1384 .ik-ac-cat { font-size: 10px !important; color: #999 !important; -webkit-text-fill-color: #999 !important; text-transform: uppercase !important; letter-spacing: 0.08em !important; margin-bottom: 4px !important; display: block !important; }
body.page-id-1384 h3.ik-ac-title { margin: 0 0 8px !important; background: none !important; border: none !important; padding: 0 !important; width: auto !important; text-align: left !important; text-transform: none !important; letter-spacing: 0 !important; }
body.page-id-1384 .ik-ac-title a, body.page-id-1384 .ik-ac-title a:link, body.page-id-1384 .ik-ac-title a:visited { color: #1A1A1A !important; -webkit-text-fill-color: #1A1A1A !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1.3 !important; }
body.page-id-1384 .ik-ac-title a:hover { color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; }
body.page-id-1384 .ik-ac-bid { font-size: 13px !important; color: #666 !important; -webkit-text-fill-color: #666 !important; margin: 0 0 4px !important; }
body.page-id-1384 .ik-ac-bid strong { color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; }
body.page-id-1384 .ik-ac-bids { font-size: 12px !important; color: #999 !important; -webkit-text-fill-color: #999 !important; margin: 0 0 8px !important; }
.ik-ac-vendor { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex: 1; }
body.page-id-1384 .ik-ac-vendor img { width: 30px !important; height: 30px !important; min-width: 30px !important; min-height: 30px !important; border-radius: 50% !important; object-fit: cover !important; flex-shrink: 0 !important; } body.page-id-1384 .ik-ac-vendor span { font-size: 11px !important; color: #999 !important; }
body.page-id-1384 .ik-ac-vendor strong { color: #333 !important; -webkit-text-fill-color: #333 !important; }
.ik-ac-actions { margin-top: auto; }
body.page-id-1384 a.ik-ac-bid-btn, body.page-id-1384 a.ik-ac-bid-btn:link, body.page-id-1384 a.ik-ac-bid-btn:visited { display: block !important; text-align: center !important; padding: 10px !important; background: #FFCC33 !important; color: #000 !important; -webkit-text-fill-color: #000 !important; font-weight: 700 !important; font-size: 11px !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; border: none !important; }
body.page-id-1384 a.ik-ac-bid-btn:hover { background: #FFDB66 !important; color: #000 !important; -webkit-text-fill-color: #000 !important; }
body.page-id-1384 a.ik-ac-view-btn, body.page-id-1384 a.ik-ac-view-btn:link, body.page-id-1384 a.ik-ac-view-btn:visited { display: block !important; text-align: center !important; padding: 10px !important; background: transparent !important; border: 1px solid #D0D0CE !important; color: #333 !important; -webkit-text-fill-color: #333 !important; font-size: 11px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; }
body.page-id-1384 a.ik-ac-view-btn:hover { border-color: #9A7E2E !important; color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; }
.ik-auction-pagination { display: flex; justify-content: center; gap: 8px; padding: 0 24px 48px; }
body.page-id-1384 .ik-page-btn, body.page-id-1384 a.ik-page-btn, body.page-id-1384 a.ik-page-btn:link, body.page-id-1384 a.ik-page-btn:visited, body .entry-content .auctions-page a.ik-page-btn { padding: 8px 14px !important; font-size: 13px !important; border: 1px solid #D0D0CE !important; color: #333 !important; -webkit-text-fill-color: #333 !important; background: #FFF !important; }
body.page-id-1384 a.ik-page-btn:hover, body .entry-content .auctions-page a.ik-page-btn:hover { border-color: #9A7E2E !important; color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; }
body.page-id-1384 .ik-page-current { background: #FFCC33 !important; color: #000 !important; -webkit-text-fill-color: #000 !important; border-color: #FFCC33 !important; }
/* Fallback pagination styles without .auctions-page parent (staging may not have wrapper) */
.ik-page-btn, a.ik-page-btn, a.ik-page-btn:link, a.ik-page-btn:visited, span.ik-page-btn { padding: 8px 14px !important; font-size: 13px !important; border: 1px solid #D0D0CE !important; color: #333 !important; -webkit-text-fill-color: #333 !important; background: #FFF !important; text-decoration: none !important; display: inline-block !important; }
a.ik-page-btn:hover { border-color: #9A7E2E !important; color: #9A7E2E !important; -webkit-text-fill-color: #9A7E2E !important; }
.ik-page-current { background: #FFCC33 !important; color: #000 !important; -webkit-text-fill-color: #000 !important; border-color: #FFCC33 !important; }
@media (max-width: 921px) { .ik-auction-card-grid { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 768px) { .ik-auction-card-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; } .ik-auction-filter-form { flex-direction: column; align-items: stretch; } .ik-auction-nav-buttons { flex-wrap: wrap; }  .ik-auction-filter-group { flex-direction: column; align-items: flex-start; } .ik-auction-filter-group select { width: 100%; } .auction-shipping-banner { padding: 36px 16px !important; } .auction-shipping-rates { grid-template-columns: 1fr !important; gap: 12px !important; } .auction-shipping-rate { padding: 20px 16px; } .ik-ac-image img { height: 180px !important; } }
@media (max-width: 480px) { .ik-auction-card-grid { grid-template-columns: 1fr !important; } }

/* ══════════════════════════════════════════════════════════════
   30a-staging. AUCTIONS LISTING — STAGING ADAPTATIONS
   The staging snippet generates a different DOM than the mockup:
   - No .auctions-page wrapper (we already re-scoped rules to body.page-id-1384)
   - No .ik-auction-filter-group label/wrapper around each select
   - .ik-coming-soon-btn class instead of .ik-auction-coming-btn
   - H1 page title element instead of mockup's h2.ik-gold-bar
   These rules adapt the same visual treatment to the staging structure.
   ══════════════════════════════════════════════════════════════ */

/* Make entry-content full-bleed on auctions page (no .auctions-page wrapper on staging).
   Astra constrains .entry-content to 1200px with 120px gutters. We override
   to full-viewport-width so gold bars can extend edge-to-edge like the mockup,
   then constrain inner content blocks back to a centered max-width. */
body.page-id-1384 .entry-content {
  background: #FFFFFF !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* Constrain regular text blocks (paragraphs, intro lines) inside entry-content
   to a centered max-width — gold bars + filter form + card grid have their
   own width rules so they extend appropriately. */
body.page-id-1384 .entry-content > p,
body.page-id-1384 .entry-content > .ik-no-auctions {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
}

/* The raster shipping image (figure block) — center it inside the constrained content area */
body.page-id-1384 .entry-content > figure.wp-block-image {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
}

/* The room-message divs (legacy chat-style markup pasted in by content) —
   give them clean styling that fits the design system (white card with gold
   accent left border, dark text) until Ruth/I clean up the markup itself. */
body.page-id-1384 .entry-content > .room-message {
  max-width: var(--ik-max-width) !important;
  margin: 16px auto !important;
  padding: 16px clamp(1.5rem, 3vw, 2rem) !important;
  background: #FAFAF8 !important;
  border-left: 3px solid #FFCC33 !important;
  font-size: 14px !important;
  color: #333 !important;
}

/* === Banner components for auctions page === */

/* Auctions page — kill top whitespace, prevent horizontal scroll caused by 100vw banners */
body.page-id-1384 {
  overflow-x: hidden !important;
}
body.page-id-1384 #primary.content-area,
body.page-id-1384 .content-area.primary,
body.page-id-1384 .ast-container,
body.page-id-1384 .site-main,
body.page-id-1384 .ast-article-single,
body.page-id-1384 .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
body.page-id-1384 .entry-content > *:first-child {
  margin-top: 0 !important;
}
/* Restore some bottom space so cards aren't flush against the footer.
   Ruth: "margin missing on top of the footer, the cards are flush to the footer". */
body.page-id-1384 .ast-article-single { padding-bottom: 64px !important; }
body.page-id-1384 .content-area.primary { margin-bottom: 0 !important; }
body.page-id-1384 .entry-content {
  padding-bottom: 0 !important;
}

/* H1 gold bar flush against nav */
body.page-id-1384 h1.wp-block-heading {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Banner sections — full-bleed regardless of parent constraints */
body.page-id-1384 .ik-shipping-banner-block,
body.page-id-1384 .ik-auction-rules-banner {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  position: relative !important;
}

/* Filter result h3 (search results / coming soon / finished) */
body.page-id-1384 .entry-content h3.ik-auction-section-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  max-width: var(--ik-max-width) !important;
  margin: 24px auto 12px !important;
  padding: 0 clamp(1.5rem, 3vw, 2rem) !important;
  background: none !important;
  border: none !important;
  text-align: left !important;
}

/* Empty state — matches the standard pattern in the style guide (section "Empty States"):
   bg #F8F8F6, border 2px dashed #E8E8E6, padding 80px 24px, centered, #666666 text 16px Inter.
   Box border aligns with the visual content boundary used by section titles and card grid
   (which have their own 30px internal padding inside the 1200px wrapper).
   See /workspace/site-redesign/style-guide.html#empty-states. */
html body.page-id-1384 .entry-content p.ik-no-auctions,
body.page-id-1384.page .entry-content p.ik-no-auctions,
body.page-id-1384 .entry-content p.ik-no-auctions {
  max-width: var(--ik-max-width) !important;
  margin: 24px auto 32px !important;
  padding: 80px 24px !important;
  /* Match section-title + card-grid visual edge at any viewport */
  margin-left: max(clamp(1.5rem, 3vw, 2rem), calc((100vw - var(--ik-max-width)) / 2 + clamp(1.5rem, 3vw, 2rem))) !important;
  margin-right: max(clamp(1.5rem, 3vw, 2rem), calc((100vw - var(--ik-max-width)) / 2 + clamp(1.5rem, 3vw, 2rem))) !important;
  max-width: min(calc(var(--ik-max-width) - 2 * clamp(1.5rem, 3vw, 2rem)), calc(100vw - 2 * clamp(1.5rem, 3vw, 2rem))) !important;
  background: #F8F8F6 !important;
  border: 2px dashed #E8E8E6 !important;
  border-left: 2px dashed #E8E8E6 !important;
  border-radius: 0 !important;
  text-align: center !important;
  font-size: 16px !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  box-sizing: border-box !important;
  display: block !important;
  font-family: 'Inter', sans-serif !important;
  line-height: 1.6 !important;
  font-weight: 400 !important;
}

/* Mobile: just bump padding down a bit; the base max() margin formula
   already handles narrow viewports correctly (gives 24px at 768/375). */
@media (max-width: 768px) {
  html body.page-id-1384 .entry-content p.ik-no-auctions,
  body.page-id-1384.page .entry-content p.ik-no-auctions,
  body.page-id-1384 .entry-content p.ik-no-auctions {
    padding: 48px 20px !important;
  }
}

/* Card grid + pagination stay content-contained */
body.page-id-1384 .ik-auction-card-grid,
body.page-id-1384 .ik-auction-pagination {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
}

/* Pagination top margin so it doesn't sit flush against the last card row */
body.page-id-1384 .ik-auction-pagination {
  margin-top: 32px !important;
}

/* Auction rules banner content paragraphs (rules now live INSIDE the banner) */
body.page-id-1384 .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-rule {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: rgba(255,255,255,0.9) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.9) !important;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
}
body.page-id-1384 .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-rule:last-child {
  margin-bottom: 0 !important;
}
body.page-id-1384 .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-rule strong {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  font-weight: 600 !important;
}
/* Includes #content for ID-level specificity to beat the white-page link rule
   `body:not(...) #content a:link/:visited` which sets these to dark gold. */
body.page-id-1384 #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a,
body.page-id-1384 #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a:link,
body.page-id-1384 #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a:visited {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-decoration: underline !important;
}
body.page-id-1384 #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a:hover {
  color: #FFD966 !important;
  -webkit-text-fill-color: #FFD966 !important;
}

/* All filter form buttons (incl. "← Back to Active"): stay on one line */
body.page-id-1384 form.ik-auction-filter-form a,
body.page-id-1384 form.ik-auction-filter-form button,
body.page-id-1384 .ik-auction-back-btn {
  white-space: nowrap !important;
}

/* Update auction-rules-banner inner layout — center text to match shipping banner pattern */
.ik-auction-rules-banner-inner {
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  display: block !important;
  text-align: center !important;
}

/* Title at top of banner — centered to match shipping banner */
body.page-id-1384 .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-title {
  margin: 0 0 16px 0 !important;
  text-align: center !important;
}

/* Shipping Information Banner — replaces the raster shipping image */
.ik-shipping-banner-block {
  background: linear-gradient(135deg, rgba(14,14,12,0.95) 0%, rgba(21,21,19,0.92) 50%, rgba(14,14,12,0.95) 100%), url('../images/hero-background.png') center/cover no-repeat;
  background-color: #0E0E0C;
  padding: 56px 24px;
  position: relative;
  width: 100%;
  margin: 0;
}
.ik-shipping-banner-block::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,204,51,0.06) 0%, transparent 60%);
  pointer-events: none;
}
.ik-shipping-banner-inner {
  max-width: 700px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  text-align: center;
}
body.page-id-1384 .entry-content .ik-shipping-banner-block .ik-shipping-banner-title {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  text-align: center !important;
}
body.page-id-1384 .entry-content .ik-shipping-banner-block .ik-shipping-banner-intro {
  font-size: 15px !important;
  color: rgba(255,255,255,0.75) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.75) !important;
  margin: 0 0 36px 0 !important;
  padding: 0 !important;
  text-align: center !important;
  max-width: 100% !important;
}
.ik-shipping-banner-rates {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 32px;
}
.ik-shipping-banner-rate {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 24px 16px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,204,51,0.12);
  backdrop-filter: blur(4px);
}
body.page-id-1384 .entry-content .ik-shipping-banner-block .ik-shipping-banner-price {
  font-size: 36px !important;
  font-weight: 700 !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  line-height: 1 !important;
  margin-bottom: 8px !important;
  font-family: 'Inter', sans-serif !important;
}
body.page-id-1384 .entry-content .ik-shipping-banner-block .ik-shipping-banner-desc {
  font-size: 13px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-align: center !important;
}
body.page-id-1384 .entry-content .ik-shipping-banner-block .ik-shipping-banner-note {
  font-size: 13px !important;
  color: rgba(255,255,255,0.8) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.8) !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  max-width: 100% !important;
}
@media (max-width: 768px) {
  .ik-shipping-banner-block { padding: 36px 16px; }
  .ik-shipping-banner-rates { grid-template-columns: 1fr; gap: 12px; }
  .ik-shipping-banner-rate { padding: 20px 16px; }
}

/* Auction Rules Banner — replaces the gold-bar h2 link */
.ik-auction-rules-banner {
  background: #1A1A1A;
  padding: 32px clamp(1.5rem, 4vw, 3rem);
  width: 100%;
  margin: 0;
}
.ik-auction-rules-banner-inner {
  max-width: var(--ik-max-width);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}
body.page-id-1384 .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  text-align: center !important;
}
body.page-id-1384 .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-desc {
  font-size: 14px !important;
  color: rgba(255,255,255,0.8) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.8) !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 1 1 auto !important;
  max-width: 100% !important;
}
body.page-id-1384 .entry-content .ik-auction-rules-banner a.ik-auction-rules-banner-cta,
body.page-id-1384 .entry-content .ik-auction-rules-banner a.ik-auction-rules-banner-cta:link,
body.page-id-1384 .entry-content .ik-auction-rules-banner a.ik-auction-rules-banner-cta:visited {
  display: inline-flex !important;
  align-items: center !important;
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  padding: 10px 20px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-radius: 0 !important;
  white-space: nowrap !important;
}
body.page-id-1384 a.ik-auction-rules-banner-cta:hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
}
@media (max-width: 768px) {
  .ik-auction-rules-banner-inner { flex-direction: column; align-items: flex-start; }
}

/* Filter form + card grid: keep the existing width but center via auto margins
   inside the now-full-bleed entry-content */
body.page-id-1384 form.ik-auction-filter-form,
body.page-id-1384 .ik-auction-card-grid,
body.page-id-1384 .ik-auction-pagination {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* H1 page title → render as gold-bar (mockup uses h2.ik-gold-bar) */
body.page-id-1384 h1.wp-block-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
  display: block !important;
}

/* Filter form bare inputs/selects (staging has no .ik-auction-filter-group wrapper) */
body.page-id-1384 .ik-auction-filter-form input[type="text"],
body.page-id-1384 .ik-auction-filter-form input[type="search"],
body.page-id-1384 .ik-auction-filter-form select,
body.page-id-1384 input[name^="auction_"],
body.page-id-1384 select[name^="auction_"] {
  background: #FFFFFF !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  border: 1px solid #D0D0CE !important;
  height: 36px !important;
  padding: 6px 12px !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}

body.page-id-1384 .ik-auction-filter-form input:focus,
body.page-id-1384 .ik-auction-filter-form select:focus,
body.page-id-1384 input[name^="auction_"]:focus,
body.page-id-1384 select[name^="auction_"]:focus {
  outline: 1px solid #9A7E2E !important;
  outline-offset: -1px !important;
  border-color: #9A7E2E !important;
}

/* Coming Soon button (staging class .ik-coming-soon-btn) — outline secondary */
body.page-id-1384 a.ik-coming-soon-btn,
body.page-id-1384 a.ik-coming-soon-btn:link,
body.page-id-1384 a.ik-coming-soon-btn:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  font-family: 'Inter', sans-serif !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  background: #FFFFFF !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  cursor: pointer !important;
  text-decoration: none !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}

body.page-id-1384 a.ik-coming-soon-btn:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: #FAFAF8 !important;
}

/* Reset link → outline secondary chip (staging has it as bare inline link) */
body.page-id-1384 a.ik-auction-reset-btn,
body.page-id-1384 a.ik-auction-reset-btn:link,
body.page-id-1384 a.ik-auction-reset-btn:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  font-family: 'Inter', sans-serif !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  background: #FFFFFF !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  text-decoration: none !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  margin-left: 4px !important;
}

body.page-id-1384 a.ik-auction-reset-btn:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: #FAFAF8 !important;
}

/* Apply Filters — override staging's pill/wrong-gold styling */
body.page-id-1384 button.ik-auction-filter-btn,
body.page-id-1384 .ik-auction-filter-btn[type="submit"] {
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  font-family: 'Inter', sans-serif !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
}

body.page-id-1384 button.ik-auction-filter-btn:hover,
body.page-id-1384 .ik-auction-filter-btn[type="submit"]:hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Filter form layout — full-bleed gray bar, content-contained inside via grid.
   Two rows: row 1 = form fields + Apply + Reset; row 2 = prefilter buttons.
   Buttons align to bottom of fields (since fields have a label above).
   Margin-top: 0 so it's flush against the AUCTION LISTINGS gold bar (Ruth: no gap above filters). */
body.page-id-1384 form.ik-auction-filter-form {
  /* Full-bleed gray bar */
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 24px !important;
  background: #F5F5F3 !important;
  border-bottom: 1px solid #E0E0DE !important;
  box-sizing: border-box !important;

  /* Content-contained inner via padding. Push children to the SAME visual edge
     used by section titles + card grid (which have clamp(1.5rem, 3vw, 2rem)
     internal padding inside a 1200px wrapper). Works at any viewport: when wider
     than 1200, adds the centering offset on top of the inner padding; when
     narrower, falls back to just the inner padding so it matches the grid edge. */
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  padding-left: max(clamp(1.5rem, 3vw, 2rem), calc((100vw - var(--ik-max-width)) / 2 + clamp(1.5rem, 3vw, 2rem))) !important;
  padding-right: max(clamp(1.5rem, 3vw, 2rem), calc((100vw - var(--ik-max-width)) / 2 + clamp(1.5rem, 3vw, 2rem))) !important;

  /* Grid: 6 cols (4 fields + Apply + Reset), 2 rows */
  display: grid !important;
  grid-template-columns: minmax(180px, 1.6fr) minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, 1fr) auto auto !important;
  grid-template-rows: auto auto !important;
  column-gap: 12px !important;
  row-gap: 16px !important;
  align-items: end !important;
}

/* Flatten .ik-auction-filter-actions so its 5 button children become direct grid items */
body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-actions {
  display: contents !important;
}

/* Row 1: form-groups in cols 1-4 */
body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group {
  grid-row: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 4px !important;
  min-width: 0 !important;
}
body.page-id-1384 form.ik-auction-filter-form .ik-search-group { grid-column: 1 !important; }
body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group:nth-of-type(2) { grid-column: 2 !important; }
body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group:nth-of-type(3) { grid-column: 3 !important; }
body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group:nth-of-type(4) { grid-column: 4 !important; }

/* Row 1: Apply (col 5), Reset (col 6) — align with field bottoms */
body.page-id-1384 form.ik-auction-filter-form button.ik-auction-filter-btn {
  grid-column: 5 !important;
  grid-row: 1 !important;
  align-self: end !important;
}
body.page-id-1384 form.ik-auction-filter-form a.ik-auction-reset-btn {
  grid-column: 6 !important;
  grid-row: 1 !important;
  align-self: end !important;
}

/* Row 2: prefilter buttons grouped at center (cols 2-4), not spread.
   Mockup pattern is 3 outline buttons sitting as a tight centered group. */
body.page-id-1384 form.ik-auction-filter-form a.ik-auction-gt-btn {
  grid-column: 2 !important;
  grid-row: 2 !important;
  justify-self: end !important;
}
body.page-id-1384 form.ik-auction-filter-form a.ik-coming-soon-btn {
  grid-column: 3 !important;
  grid-row: 2 !important;
  justify-self: center !important;
}
body.page-id-1384 form.ik-auction-filter-form a.ik-auction-finished-btn {
  grid-column: 4 !important;
  grid-row: 2 !important;
  justify-self: start !important;
}

/* Form input + select sizing inside grid */
body.page-id-1384 form.ik-auction-filter-form input[type="text"],
body.page-id-1384 form.ik-auction-filter-form input[type="search"],
body.page-id-1384 form.ik-auction-filter-form select {
  width: 100% !important;
  min-width: 0 !important;
  height: 36px !important;
  box-sizing: border-box !important;
}

@media (max-width: 768px) {
  body.page-id-1384 form.ik-auction-filter-form {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    row-gap: 12px !important;
    /* Padding-left/right inherits the base max() formula above which gives
       clamp(1.5rem, 3vw, 2rem) = 24px at narrow viewports — matching card grid. */
  }
  /* Need :nth-of-type to beat desktop's nth-of-type rules (specificity 0,2,0) */
  body.page-id-1384 form.ik-auction-filter-form .ik-search-group,
  body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group:nth-of-type(1),
  body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group:nth-of-type(2),
  body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group:nth-of-type(3),
  body.page-id-1384 form.ik-auction-filter-form .ik-auction-filter-group:nth-of-type(4),
  body.page-id-1384 form.ik-auction-filter-form button.ik-auction-filter-btn,
  body.page-id-1384 form.ik-auction-filter-form a.ik-auction-reset-btn,
  body.page-id-1384 form.ik-auction-filter-form a.ik-auction-gt-btn,
  body.page-id-1384 form.ik-auction-filter-form a.ik-coming-soon-btn,
  body.page-id-1384 form.ik-auction-filter-form a.ik-auction-finished-btn,
  body.page-id-1384 form.ik-auction-filter-form a.ik-auction-back-btn {
    grid-column: 1 !important;
    grid-row: auto !important;
    width: 100% !important;
    justify-self: stretch !important;
  }
}

/* --- WooCommerce product gallery opacity fix --- */
.woocommerce-product-gallery { opacity: 1 !important; }


/* ══════════════════════════════════════════════════════════════
   30b. WATCHLIST PAGE (.ik-wl-*)
   WHITE content area matching site design system. Originally
   a dark red-themed Code Snippet — fully converted to white bg
   with dark text and #9A7E2E gold accents.
   Replaces the snippet's embedded <style> block (stripped at implementation).
   ══════════════════════════════════════════════════════════════ */

/* --- Page background — WHITE content like all other pages --- */
/* IMPORTANT: .ast-container exists INSIDE the header too (.site-below-header-wrap)
   so we must scope to #content to avoid turning the nav white. */
body.page-id-2510 #content,
body.page-id-2510 .site-content,
body.page-id-2510 #content .ast-container,
body.page-id-2510 #primary,
body.page-id-2510 .site-main,
body.page-id-2510 .entry-content {
  background: #FFFFFF !important;
}

/* Kill the developer's dark background override */
body.page-id-2510,
body:has(.ik-wl-wrap) {
  background-color: #FFFFFF !important;
}

/* --- Wrapper — white bg, dark text. Match other content pages padding (~30px L/R) */
.ik-wl-wrap {
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: 28px clamp(1.5rem, 3vw, 2rem) !important;
  font-family: var(--ik-font-body) !important;
  background: #FFFFFF !important;
  border-radius: 0 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* MY WATCHLIST gold bar header — page has no h1 element. Inject via ::before
   on the .entry-content (parent of the wrap), which is full content width
   so the bar can extend full-bleed via 100vw + margin-left calc. */
body.page-id-2510 .entry-content::before {
  content: 'MY WATCHLIST' !important;
  display: block !important;
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 32px !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  position: relative !important;
}

/* The .ik-wl-wrap snippet sets its own max-width 1200 + padding 28px clamp(1.5rem, 4vw, 3rem)
   which makes inner content narrower than other pages. Tighten the L/R padding to
   match site-wide content padding (clamp 1.5rem 3vw 2rem) so content extends to 1140 wide. */
body.page-id-2510 .ik-wl-wrap {
  padding: 0 clamp(1.5rem, 3vw, 2rem) 64px !important;
}

/* Kill the global entry-content side padding on watchlist so .ik-wl-wrap can extend
   to full content width (1200), matching other pages instead of being squeezed. */
body.page-id-2510 .entry-content,
body.page-id-2510 .entry-content.clear {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ik-wl-wrap,
.ik-wl-wrap p,
.ik-wl-wrap span,
.ik-wl-wrap div,
.ik-wl-wrap label,
.ik-wl-wrap li,
.ik-wl-wrap td,
.ik-wl-wrap th,
.ik-wl-wrap strong,
.ik-wl-wrap b {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-family: var(--ik-font-body) !important;
}

.ik-wl-wrap a {
  text-decoration: none !important;
  box-shadow: none !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.ik-wl-wrap a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

.ik-wl-wrap h2,
.ik-wl-wrap h3 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-style: normal !important;
}

.ik-wl-wrap * {
  box-sizing: border-box !important;
  font-style: normal !important;
}

/* --- Stats bar — simple text row, no box --- */
.ik-wl-stats {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin-bottom: 8px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 14px !important;
}

.ik-wl-stats span {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

.ik-wl-stats strong,
.ik-wl-stats .woocommerce-Price-amount,
.ik-wl-stats .woocommerce-Price-amount bdi,
.ik-wl-stats .woocommerce-Price-currencySymbol {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 700 !important;
}

.ik-wl-stats-sep {
  color: #D0D0CE !important;
  -webkit-text-fill-color: #D0D0CE !important;
}

/* --- Filter bar — matches auctions page filter strip pattern --- */
.ik-wl-filter-bar {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-bottom: 28px !important;
  padding: 16px 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
}

.ik-wl-filters {
  display: flex !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
}

.ik-wl-filter-tab {
  padding: 8px 18px !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  transition: all 0.25s ease !important;
}

.ik-wl-filter-tab:hover {
  background: #F8F8F6 !important;
  border-color: #9A7E2E !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 3px 12px rgba(255,204,51,0.1) !important;
}

.ik-wl-filter-tab.ik-active {
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-color: #FFCC33 !important;
  box-shadow: none !important;
}

/* Star filter tab */
.ik-wl-filter-star {
  border-color: #D0D0CE !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.ik-wl-filter-star.ik-active {
  background: #FFCC33 !important;
  border-color: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  box-shadow: none !important;
}

/* Sort dropdown */
.ik-wl-sort select {
  height: 40px !important;
  padding: 0 32px 0 14px !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  background: #FFFFFF !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  font-family: var(--ik-font-body) !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  cursor: pointer !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}

.ik-wl-sort select:focus {
  outline: none !important;
  border-color: #9A7E2E !important;
  box-shadow: 0 0 0 3px rgba(154,126,46,0.1) !important;
}

.ik-wl-sort select option {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* --- Sections — flat layout, no wrapper boxes (matches auctions page pattern) --- */
.ik-wl-section {
  margin-bottom: 32px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.ik-wl-section-header {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin-bottom: 20px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

.ik-wl-section-header h2 {
  margin: 0 !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  letter-spacing: -0.2px !important;
}

.ik-wl-section-count {
  font-size: 13px !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

/* Section header color variants */
.ik-wl-header-finished h2 {
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
}

/* --- Card grid — matches auctions page grid pattern --- */
.ik-watchlist-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
}

/* --- Card — matches .ik-ac-card pattern (white, #E8E8E6 border) --- */
.ik-wl-card {
  position: relative !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  transition: transform 0.25s ease, box-shadow 0.3s ease !important;
}

.ik-wl-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(154,126,46,0.3) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.1) !important;
}

.ik-wl-card-urgent {
  border-color: rgba(154,126,46,0.3) !important;
}

.ik-wl-card.ik-removing {
  opacity: 0.3 !important;
  transform: scale(0.92) !important;
  transition: all 0.35s ease !important;
}

/* Card image */
.ik-wl-image {
  display: block !important;
  overflow: hidden !important;
}

.ik-wl-image img {
  width: 100% !important;
  height: 210px !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s ease !important;
}

.ik-wl-card:hover .ik-wl-image img {
  transform: scale(1.04) !important;
}

/* Card info */
.ik-wl-info {
  padding: 16px 18px 18px !important;
  background: #FFFFFF !important;
}

.ik-wl-top-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 10px !important;
  gap: 8px !important;
}

.ik-wl-badges {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
}

/* Card title */
.ik-wl-title {
  margin: 0 0 8px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

.ik-wl-title a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-decoration: none !important;
}

.ik-wl-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Status badges --- */
.ik-wl-status {
  display: inline-block !important;
  padding: 4px 12px !important;
  border-radius: 0 !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

/* Live = green on white (matches auctions page pattern) */
.ik-wl-wrap .ik-status-live {
  background: rgba(34,197,94,0.12) !important;
  color: #16A34A !important;
  -webkit-text-fill-color: #16A34A !important;
  border: none !important;
}

/* Finished = muted (matches auctions page pattern) */
.ik-wl-wrap .ik-status-finished {
  background: rgba(0,0,0,0.04) !important;
  color: #888 !important;
  -webkit-text-fill-color: #888 !important;
  border: none !important;
}

/* Upcoming = gold-tinted (matches auctions page pattern) */
.ik-wl-wrap .ik-status-upcoming {
  background: rgba(154,126,46,0.1) !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  border: none !important;
}

/* --- Bid indicators (semantic colors preserved) --- */
.ik-wl-wrap .ik-ac-indicator {
  display: inline-flex !important;
  align-items: center !important;
  gap: 3px !important;
  padding: 4px 12px !important;
  border-radius: 0 !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.3px !important;
}

.ik-wl-wrap .ik-indicator-winning {
  background: rgba(34,197,94,0.12) !important;
  color: #16A34A !important;
  -webkit-text-fill-color: #16A34A !important;
  border: none !important;
}

.ik-wl-wrap .ik-indicator-outbid {
  background: rgba(220,50,50,0.08) !important;
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  border: none !important;
  animation: ik-pulse 2s ease-in-out infinite !important;
}

.ik-wl-wrap .ik-indicator-won {
  background: rgba(100,181,246,0.12) !important;
  color: #1976D2 !important;
  -webkit-text-fill-color: #1976D2 !important;
  border: none !important;
}

.ik-wl-wrap .ik-indicator-hot {
  background: rgba(255,152,0,0.1) !important;
  color: #E65100 !important;
  -webkit-text-fill-color: #E65100 !important;
  border: none !important;
}

/* --- Countdown timer --- */
.ik-wl-countdown {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-variant-numeric: tabular-nums !important;
  white-space: nowrap !important;
  letter-spacing: 0.3px !important;
}

.ik-wl-countdown-upcoming {
  color: #ffb74d !important;
  -webkit-text-fill-color: #ffb74d !important;
}

.ik-wl-countdown-critical {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  animation: ik-pulse 1s ease-in-out infinite !important;
}

/* --- Price / bid display --- */
.ik-wl-price-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin-bottom: 4px !important;
}

.ik-wl-bid {
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
}

.ik-wl-bid strong {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 700 !important;
  font-size: 15px !important;
}

.ik-wl-bid .woocommerce-Price-amount,
.ik-wl-bid .woocommerce-Price-amount bdi,
.ik-wl-bid .woocommerce-Price-currencySymbol {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* "Your bid" — no italic (design rule) */
.ik-wl-your-bid {
  font-size: 12px !important;
  font-style: normal !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}

.ik-wl-your-bid .woocommerce-Price-amount,
.ik-wl-your-bid .woocommerce-Price-amount bdi {
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}

.ik-wl-bids {
  font-size: 13px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* --- Action buttons --- */

.ik-wl-actions {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  margin-top: 12px !important;
}

/* Bid Now — gold filled, black text (matches site button pattern)
   Specificity must beat astra-base's .ast-container .entry-content a.ik-wl-bid-btn */
body .ast-container .entry-content a.ik-wl-bid-btn,
body .ast-container .entry-content a.ik-wl-bid-btn:link,
body .ast-container .entry-content a.ik-wl-bid-btn:visited,
body .ast-container .entry-content a.ik-wl-bid-btn:hover,
body .ik-wl-bid-btn,
body .ik-wl-bid-btn:link,
body .ik-wl-bid-btn:visited {
  padding: 10px !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  font-family: var(--ik-font-body) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: all 0.25s ease !important;
  border: none !important;
  flex: 1 !important;
  text-align: center !important;
  display: block !important;
}

body .ast-container .entry-content a.ik-wl-bid-btn:hover,
body .ik-wl-bid-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* View button — outline (matches design system secondary button) */
body .ast-container .entry-content a.ik-wl-view-btn,
body .ast-container .entry-content a.ik-wl-view-btn:link,
body .ast-container .entry-content a.ik-wl-view-btn:visited,
body .ast-container .entry-content a.ik-wl-view-btn:hover,
body .ik-wl-view-btn,
body .ik-wl-view-btn:link,
body .ik-wl-view-btn:visited {
  padding: 10px !important;
  background: transparent !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  font-family: var(--ik-font-body) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: all 0.25s ease !important;
  flex: 1 !important;
  text-align: center !important;
  display: block !important;
}

body .ik-wl-view-btn:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Cart button — gold filled (same as Bid Now, our design system has no green buttons) */
body .ik-wl-cart-btn,
body .ik-wl-cart-btn:link,
body .ik-wl-cart-btn:visited {
  padding: 10px !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  font-family: var(--ik-font-body) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: all 0.25s ease !important;
  border: none !important;
  flex: 1 !important;
  text-align: center !important;
  display: block !important;
}

body .ik-wl-cart-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Paid button — disabled state */
.ik-wl-paid-btn {
  display: block !important;
  padding: 10px !important;
  background: #F0F0EE !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  border-radius: 0 !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  font-family: var(--ik-font-body) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: default !important;
  border: 1px solid #E8E8E6 !important;
  flex: 1 !important;
  text-align: center !important;
}

/* Browse Auctions button (empty state) — gold filled */
body .ik-wl-browse-btn,
body .ik-wl-browse-btn:link,
body .ik-wl-browse-btn:visited {
  display: inline-block !important;
  padding: 14px 32px !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  font-family: var(--ik-font-body) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border: none !important;
}

body .ik-wl-browse-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* --- Empty state classes (replaced inline styles in snippet) --- */
.ik-wl-empty-state {
  text-align: center !important;
  padding: 70px 24px !important;
  background: #F8F8F6 !important;
  border-radius: 8px !important;
  border: 2px dashed #D0D0CE !important;
}

.ik-wl-empty-text {
  font-size: 18px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  margin-bottom: 20px !important;
}

body .ik-wl-empty-btn,
body .ik-wl-empty-btn:link,
body .ik-wl-empty-btn:visited {
  display: inline-block !important;
  padding: 14px 32px !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  font-family: var(--ik-font-body) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border: none !important;
  box-shadow: none !important;
}

body .ik-wl-empty-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

.ik-wl-message {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.ik-wl-message-link {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Empty state — override developer's inline dark bg + red button --- */
/* The empty watchlist is a Block Editor page with a single div child.
   Developer used inline styles: background:#111111, border:2px dashed #333,
   red gradient button. We override everything except inline !important colors
   (those require editing the Block Editor content at implementation). */
body.page-id-2510 .entry-content > div:not(.ik-wl-wrap) {
  text-align: center !important;
  padding: 80px 24px !important;
  background: #F8F8F6 !important;
  border: 2px dashed #E8E8E6 !important;
  border-radius: 0 !important;
  max-width: 600px !important;
  margin: 60px auto !important;
}

body.page-id-2510 .entry-content > div:not(.ik-wl-wrap) p {
  font-size: 16px !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  margin-bottom: 24px !important;
  line-height: 1.5 !important;
}

body.page-id-2510 .entry-content > div:not(.ik-wl-wrap) a,
body.page-id-2510 .entry-content > div:not(.ik-wl-wrap) a:link,
body.page-id-2510 .entry-content > div:not(.ik-wl-wrap) a:visited {
  display: inline-block !important;
  padding: 14px 32px !important;
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  font-family: var(--ik-font-body) !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border: none !important;
  box-shadow: none !important;
  transition: background 0.25s ease !important;
}

body.page-id-2510 .entry-content > div:not(.ik-wl-wrap) a:hover {
  background: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Card actions row */
.ik-wl-actions {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  margin-top: 12px !important;
}

/* --- Icon buttons (star, remove, store link) --- */
.ik-wl-seller-link,
.ik-wl-card .ik-star-btn,
.ik-wl-remove-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  background: #FFFFFF !important;
  cursor: pointer !important;
  transition: all 0.25s ease !important;
  color: #777777 !important;
  -webkit-text-fill-color: #777777 !important;
}

.ik-wl-seller-link {
  text-decoration: none !important;
  color: #777777 !important;
  -webkit-text-fill-color: #777777 !important;
}

.ik-wl-seller-link:hover {
  background: #F8F8F6 !important;
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  transform: translateY(-1px) !important;
}

.ik-wl-card .ik-star-btn {
  color: #555555 !important;
  -webkit-text-fill-color: #555555 !important;
}

.ik-wl-card .ik-star-btn:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: #FFFCF0 !important;
  border-color: #9A7E2E !important;
  transform: translateY(-1px) !important;
}

.ik-wl-card .ik-star-btn.ik-starred {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: #FFFCF0 !important;
  border-color: #9A7E2E !important;
}

.ik-wl-remove-btn {
  color: #555555 !important;
  -webkit-text-fill-color: #555555 !important;
  margin-left: auto !important;
}

.ik-wl-remove-btn:hover {
  background: #FDF2F2 !important;
  border-color: #DC3232 !important;
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  transform: translateY(-1px) !important;
}

/* --- Seller groups — flat layout, no wrapper box --- */
.ik-wl-seller-group {
  margin-bottom: 24px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}

.ik-wl-seller-group:last-child {
  margin-bottom: 0 !important;
}

.ik-wl-seller-header {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin-bottom: 16px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  cursor: pointer !important;
  user-select: none !important;
}

.ik-wl-seller-header strong {
  font-size: 15px !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

.ik-wl-visit-store {
  margin-left: auto !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

.ik-wl-visit-store:hover {
  text-decoration: underline !important;
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* Combine shipping hint — inline text, no box */
.ik-wl-combine-hint {
  margin: 0 0 16px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 500 !important;
}

/* Shipping tip */
.ik-wl-shipping-tip {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Collapsible --- */
.ik-wl-collapsible {
  cursor: pointer !important;
  user-select: none !important;
}

/* Hide collapse arrows — flat layout doesn't need them,
   and they conflict visually with "Visit Store →" */
.ik-wl-collapse-icon {
  display: none !important;
}

.ik-wl-seller-group.ik-collapsed .ik-wl-collapse-icon,
.ik-wl-section.ik-collapsed .ik-wl-collapse-icon {
  transform: rotate(-90deg) !important;
}

.ik-wl-seller-group.ik-collapsed .ik-wl-collapsible-body,
.ik-wl-seller-group.ik-collapsed .ik-wl-combine-hint,
.ik-wl-section.ik-collapsed .ik-wl-collapsible-body,
.ik-wl-section.ik-collapsed .ik-wl-combine-hint {
  display: none !important;
}

.ik-wl-seller-group.ik-collapsed .ik-wl-seller-header {
  margin-bottom: 0 !important;
}

/* --- Empty states --- */
.ik-wl-empty {
  text-align: center !important;
  padding: 70px 24px !important;
  background: #F8F8F6 !important;
  border-radius: 0 !important;
  border: 2px dashed #E8E8E6 !important;
}

.ik-wl-empty p {
  font-size: 18px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  margin-bottom: 20px !important;
  font-family: var(--ik-font-body) !important;
}

.ik-priority-empty {
  grid-column: 1 / -1 !important;
  margin: 0 !important;
  padding: 24px 20px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  font-size: 14px !important;
  font-style: normal !important;
  text-align: center !important;
  border: 1px dashed #E8E8E6 !important;
  border-radius: 0 !important;
  background: #FAFAFA !important;
}

.ik-no-auctions {
  text-align: center !important;
  padding: 40px 20px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  font-size: 16px !important;
}

/* --- Animations --- */
@keyframes ik-urgentPulse {
  0%, 100% { box-shadow: 0 2px 8px rgba(154,126,46,0.05); }
  50% { box-shadow: 0 4px 20px rgba(154,126,46,0.12); }
}

@keyframes ik-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(0.97); }
}

/* --- Responsive: Tablet --- */
@media (max-width: 768px) {
  .ik-wl-wrap {
    padding: 14px 12px !important;
  }

  .ik-wl-stats {
    font-size: 12px !important;
    padding: 10px 14px !important;
    gap: 7px !important;
  }

  .ik-wl-filter-bar {
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 12px 14px !important;
    gap: 10px !important;
  }

  .ik-wl-sort select {
    width: 100% !important;
  }

  .ik-watchlist-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }

  .ik-wl-section {
    margin-bottom: 24px !important;
  }

  .ik-wl-section-header h2 {
    font-size: 16px !important;
  }

  .ik-wl-image img {
    height: 180px !important;
  }

  .ik-wl-info {
    padding: 12px 14px 14px !important;
  }

  .ik-wl-bid-btn,
  .ik-wl-view-btn,
  .ik-wl-cart-btn {
    padding: 9px 16px !important;
    font-size: 12px !important;
    flex: 1 !important;
    text-align: center !important;
  }

  .ik-wl-seller-link,
  .ik-wl-card .ik-star-btn,
  .ik-wl-remove-btn {
    width: 34px !important;
    height: 34px !important;
  }
}

@media (max-width: 480px) {
  .ik-watchlist-grid {
    grid-template-columns: 1fr !important;
  }

  .ik-wl-filter-tab {
    padding: 6px 10px !important;
    font-size: 11px !important;
  }

  .ik-wl-section-header h2 {
    font-size: 15px !important;
  }

  .ik-wl-title {
    font-size: 14px !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   31. WORDPRESS BLOCK EDITOR OVERRIDES
   Override WordPress Gutenberg block color classes (vivid-cyan-blue,
   pale-cyan-blue, etc.) to use gold palette instead of blue.
   Also covers widget calendar, skip links, and one host-installed plugin's
   button (CSS selector is the plugin's literal slug — kept as-is so the
   override targets the right element).
   ══════════════════════════════════════════════════════════════ */

/* Widget calendar — override blue #0274be */
.widget_calendar thead a {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}
.widget_calendar #today {
  background: var(--ik-gold) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Screen reader/skip links */
.screen-reader-text:focus,
.site .skip-link:focus {
  color: var(--ik-gold) !important;
  -webkit-text-fill-color: var(--ik-gold) !important;
}

/* WordPress block editor color palette overrides */
.has-vivid-cyan-blue-color { color: var(--ik-gold) !important; -webkit-text-fill-color: var(--ik-gold) !important; }
.has-vivid-cyan-blue-background-color { background-color: var(--ik-gold-dark) !important; }
.has-pale-cyan-blue-color { color: var(--ik-gold-light) !important; -webkit-text-fill-color: var(--ik-gold-light) !important; }
.has-pale-cyan-blue-background-color { background-color: var(--ik-bg-raised) !important; }
.has-cyan-bluish-gray-color { color: var(--ik-text-tertiary) !important; -webkit-text-fill-color: var(--ik-text-tertiary) !important; }
.has-cyan-bluish-gray-background-color { background-color: var(--ik-bg-elevated) !important; }

/* Host-installed plugin's CTA button — override to on-brand gold (selector is
   the plugin's literal slug; renaming would break the override) */
.hostinger-reach-block-dialog__button {
  background: var(--ik-gold-dark) !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}
.hostinger-reach-block-dialog__button:hover {
  background: var(--ik-gold) !important;
}


/* ══════════════════════════════════════════════════════════════
   32. RESPONSIVE — Tablet (max-width: 921px)
   Astra's tablet breakpoint. Stacks hero columns, adjusts
   container padding, hides desktop-only elements, and converts
   trust bar to grid layout.
   ══════════════════════════════════════════════════════════════ */

@media (max-width: 921px) {
  /* Watchlist button — full width below bid on tablet */
  .wsawl-link {
    display: block !important;
    width: 100% !important;
    flex: 0 0 100% !important;
    margin: 8px 0 16px 0 !important;
  }

  .wsawl-link a,
  .add-wsawl {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* Tablet and below — stacked hero, 2-col cards, trust grid */
@media (max-width: 921px) {

  /* Restore some container padding so content doesn't hit screen edges */
  .entry-content > .wp-block-group:nth-of-type(2) > *,
  .entry-content > .wp-block-group:nth-of-type(3) > * {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }

  /* Hero — reduce padding */
  .entry-content > .wp-block-group.alignfull:first-of-type {
    padding-top: clamp(3rem, 8vw, 5rem) !important;
    padding-bottom: clamp(3rem, 8vw, 5rem) !important;
  }

  /* Hide ALL header lines/borders on mobile */
  .site-header::after, #masthead::after {
    display: none !important;
  }
  .site-header, #masthead,
  .site-header *, #masthead *,
  #ast-mobile-header, #ast-mobile-header *,
  .ast-mobile-header-wrap, .ast-mobile-header-wrap * {
    border-bottom: none !important;
    border-top: none !important;
    box-shadow: none !important;
  }

  /* Re-add ONLY the subtle separators between menu items */
  #ast-mobile-header .main-header-menu > .menu-item > .menu-link {
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
  }

  /* Hero columns — stack vertically */
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-columns {
    flex-direction: column !important;
    padding-inline: 1.5rem !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:first-child {
    min-width: 100% !important;
    width: 100% !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin-top: 2rem !important;
    text-align: center !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child figure,
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child .wp-block-image {
    margin: 0 auto !important;
    text-align: center !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child figure img {
    max-width: 200px !important;
    margin: 0 auto !important;
  }

  /* Trust bar — 3-column grid on tablet */
  .ik-trust-bar-inner {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
  }
  span.ik-trust-item {
    white-space: normal !important;
  }
  span.ik-trust-item ~ span.ik-trust-item::before {
    display: none !important;
  }

  /* Hide the CSS-injected logo in nav on tablet (mobile has its own) */
  #ast-desktop-header ul#ast-hf-menu-1::before {
    display: none !important;
  }

  /* Nav — hide absolutely positioned items, they'll show in mobile menu */
  li#menu-item-1578,
  li#menu-item-1579 {
    position: static !important;
  }

  /* Species cards grid — 2 columns */
  .entry-content [style*="grid-template-columns"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Footer support — single column on tablet */
  .ik-footer-grid > div:nth-child(3) {
    grid-template-columns: 1fr !important;
  }

  .ik-footer-grid > div:nth-child(3) p:last-child {
    grid-column: 1 !important;
  }

  /* Prevent footer overflow on tablet */
  .ik-footer, .ik-footer-grid, .ik-footer-grid p, .ik-footer-grid a {
    overflow-wrap: break-word !important;
    word-break: break-word !important;
  }
}


/* ══════════════════════════════════════════════════════════════
   33. RESPONSIVE — Mobile (max-width: 768px)
   Mobile-first optimizations: larger tap targets, stacked
   layouts, generous text sizing, and full-width CTAs.
   Golden Ticket banner also stacks here (defined in section 11).
   ══════════════════════════════════════════════════════════════ */

/* Mobile nav logo — breathing room on the left */
@media (max-width: 921px) {
  .ast-site-identity,
  .site-branding,
  .custom-logo-link {
    padding-left: 1rem !important;
  }
}

/* Mobile GT banner (from section 11) */
@media (max-width: 768px) {
  .ik-gt-banner-inner {
    flex-direction: column !important;
    text-align: center !important;
    gap: 12px !important;
    padding: 28px 1.5rem !important;
  }

  .ik-gt-banner-icon {
    width: 38px !important;
    height: 38px !important;
  }

  .ik-gt-banner-hat {
    width: 28px !important;
    top: -8px !important;
    left: -4px !important;
  }

  .ik-gt-banner-text {
    align-items: center !important;
  }

  .ik-gt-banner-label {
    font-size: 20px !important;
  }

  .ik-gt-banner-tagline {
    font-size: 13px !important;
  }

  .ik-gt-banner-btn-img {
    height: 110px !important;
    margin: -10px 0 !important;
  }
}

/* Footer responsive — 768px */
@media (max-width: 768px) {
  .ik-footer-grid {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }
  .site-below-footer-inner-wrap {
    flex-direction: column !important; gap: 0.5rem !important; text-align: center !important;
  }
  .ik-footer-grid > div:nth-child(2) p { display: inline-block !important; margin-bottom: 0.5rem !important; }
}

/* Main mobile responsive block */
@media (max-width: 768px) {
  /* Container padding for mobile */
  .entry-content > .wp-block-group:nth-of-type(2) > *,
  .entry-content > .wp-block-group:nth-of-type(3) > * {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  /* Hero — compact on mobile */
  .entry-content > .wp-block-group.alignfull:first-of-type {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-columns {
    padding-inline: 1.25rem !important;
    gap: 1.5rem !important;
  }

  /* Hero overline */
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:first-child::before {
    font-size: 12px !important;
    letter-spacing: 0.2em !important;
    margin-bottom: 1rem !important;
  }

  /* Hero heading — smaller on mobile */
  .entry-content > .wp-block-group.alignfull:first-of-type h1,
  .entry-content > .wp-block-group.alignfull:first-of-type h1.wp-block-heading {
    font-size: clamp(2rem, 8vw, 3rem) !important;
  }

  /* Hero logo — prominent and centered */
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child figure img {
    max-width: 240px !important;
    margin: 0 auto !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child figure {
    margin: 0 auto !important;
    text-align: center !important;
  }

  /* Trust bar — single column, bordered list on mobile */
  .ik-trust-bar {
    padding: 0 !important;
    background: transparent !important;
    border-top: none !important;
  }

  .ik-trust-bar-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
  }

  span.ik-trust-item {
    font-size: 14px !important;
    letter-spacing: 0.08em !important;
    padding: 14px 1.5rem 14px 2rem !important;
    background: linear-gradient(180deg, #1A1810 0%, #151310 100%) !important;
    border-bottom: 1px solid rgba(255, 204, 51, 0.06) !important;
    border-left: 3px solid var(--ik-gold) !important;
    text-align: left !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    text-transform: uppercase !important;
  }

  span.ik-trust-item:first-child {
    border-top: 1px solid rgba(255, 204, 51, 0.15) !important;
  }

  span.ik-trust-item ~ span.ik-trust-item::before {
    display: none !important;
  }

  /* Footer — everything single column and centered on mobile */
  .ik-footer-grid {
    grid-template-columns: 1fr !important;
    text-align: center !important;
    gap: 2rem !important;
  }

  .ik-footer-grid > div:nth-child(3) {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }

  .ik-footer h3, .ik-footer-grid h3 {
    text-align: center !important;
  }

  .ik-footer-grid > div:nth-child(2) {
    margin-top: 1rem !important;
    padding-top: 1.5rem !important;
  }

  .ik-footer-bottom {
    margin-top: 1.5rem !important;
    padding-top: 1.5rem !important;
    padding-bottom: 2rem !important;
  }

  .site-primary-footer-wrap {
    padding: 2rem 1.25rem 0 1.25rem !important;
  }

  /* Prevent email/text overflow in footer */
  .ik-footer, .ik-footer-grid, .ik-footer-grid p, .ik-footer-grid a,
  .ik-footer-bottom, .ik-footer-bottom p,
  .site-primary-footer-wrap {
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    max-width: 100% !important;
  }

  /* Support sub-grid — fully stacked, no forced column placement */
  .ik-footer-grid > div:nth-child(3) {
    grid-template-columns: 1fr !important;
    gap: 8px 0 !important;
  }

  .ik-footer-grid > div:nth-child(3) p:last-child {
    grid-column: 1 !important;
  }

  .ik-footer a, .ik-footer-grid a {
    font-size: 12px !important;
  }

  /* Hero CTA — stacked, full width, with spacing on mobile.
     Force display:flex on the wrap (it computes to `block` here, so the
     inherited flex-direction/gap don't apply). Then stretch each button to
     100% so they render full-width with a real gap between them. */
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-buttons {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-top: 1.5rem !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-buttons .wp-block-button {
    width: 100% !important;
  }

  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-button__link {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
  }

  /* ---- MOBILE TEXT SIZING — generous, easy to read ---- */

  /* Body text baseline */
  body, .entry-content p, .entry-content {
    font-size: 16px !important;
  }

  /* Hero body text */
  .entry-content > .wp-block-group.alignfull:first-of-type p {
    font-size: 16px !important;
  }

  /* Buttons — bigger tap targets and text */
  .wp-block-button__link, .wp-element-button,
  .woocommerce a.button, .woocommerce button.button {
    font-size: 14px !important;
    padding: 16px 32px !important;
  }

  /* Hero CTA button — gold filled on mobile for strong CTA. Padding and
     font-size match the secondary button so heights align when stacked
     full-width; the 700 weight keeps it as the primary visually. */
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-button:first-child .wp-block-button__link {
    font-size: 14px !important;
    padding: 16px 44px !important;
    letter-spacing: 0.12em !important;
    background: var(--ik-gold) !important;
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
    border: 1px solid transparent !important;
    font-weight: 700 !important;
    box-shadow: none !important;
  }

  /* Hero logo — subtle gold glow */
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-column:last-child figure img {
    filter: drop-shadow(0 0 30px rgba(255, 204, 51, 0.15)) drop-shadow(0 8px 40px rgba(0, 0, 0, 0.5)) !important;
  }

  /* Nav links in mobile menu */
  #ast-mobile-header .main-header-menu .menu-link,
  #ast-mobile-header .main-header-menu .menu-item > a,
  .ast-mobile-header-content .main-header-menu .menu-link {
    font-size: 17px !important;
  }

  /* Announcement bar */
  .announcement-item {
    font-size: 11px !important;
  }

  /* Footer headings */
  .ik-footer h3, .ik-footer-grid h3 {
    font-size: 14px !important;
  }

  /* Footer body text and links */
  .ik-footer p, .ik-footer-grid p,
  .ik-footer a, .ik-footer-grid a {
    font-size: 15px !important;
  }

  /* Footer bottom bar */
  .ik-footer-bottom p {
    font-size: 13px !important;
  }

  /* Copyright bar */
  .ast-footer-copyright, .ast-footer-copyright p {
    font-size: 13px !important;
  }

  /* Species card names */
  .entry-content a[style*="background:#fff"] span {
    font-size: 16px !important;
    font-weight: 700 !important;
  }

  /* Founding keepers text */
  .entry-content p.has-text-align-center {
    font-size: 16px !important;
  }

  /* Quick Links */
  .ik-footer-grid > div:nth-child(2) p,
  .ik-footer-grid > div:nth-child(2) a {
    font-size: 15px !important;
  }

  /* Section headings — mobile sizing */
  .entry-content h2.wp-block-heading,
  .entry-content h2.wp-block-heading.has-text-align-center,
  h2.wp-block-heading {
    font-size: var(--ik-text-xl) !important;
    padding: 1.25rem 1.25rem !important;
    letter-spacing: 0.05em !important;
  }

  /* Species cards — 2 columns on small tablet, single on phone */
  .entry-content [style*="grid-template-columns"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Footer — single column everything */
  .ik-footer-grid {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }

  .ik-footer-grid > div:nth-child(3) {
    grid-template-columns: 1fr !important;
  }

  .ik-footer h3, .ik-footer-grid h3 {
    text-align: center !important;
  }

  /* Quick links — wrap */
  .ik-footer-grid > div:nth-child(2) p {
    display: inline-block !important;
    margin-bottom: 0.5rem !important;
  }

  .site-below-footer-inner-wrap {
    flex-direction: column !important;
    gap: 0.5rem !important;
    text-align: center !important;
  }

  /* Logo carousel — smaller */
  .sp-lc-logo {
    padding: 1rem 1.5rem !important;
  }
}


/* ══════════════════════════════════════════════════════════════
   34. RESPONSIVE — Small Mobile (max-width: 480px)
   Small phone tweaks: single-column species cards, tighter
   padding, smaller headings and trust bar items.
   ══════════════════════════════════════════════════════════════ */

@media (max-width: 480px) {
  .entry-content > .wp-block-group.alignfull:first-of-type .wp-block-columns {
    padding-inline: 1rem !important;
  }

  .entry-content > .wp-block-group:nth-of-type(2) > *,
  .entry-content > .wp-block-group:nth-of-type(3) > * {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .entry-content h2.wp-block-heading {
    font-size: var(--ik-text-xl) !important;
    padding: 1.5rem 1rem !important;
  }

  /* Species cards — single column on small phones */
  .entry-content [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }

  /* Trust bar — fully stacked */
  .ik-trust-bar-inner {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  span.ik-trust-item {
    font-size: 12px !important;
    padding: 11px 1.25rem !important;
  }

  .site-primary-footer-wrap {
    padding: 1.5rem 1rem 0 1rem !important;
  }

  /* Hero heading */
  .entry-content > .wp-block-group.alignfull:first-of-type h1 {
    font-size: 1.75rem !important;
  }
}


/* ══════════════════════════════════════════════════════════════
   34. CONTENT PAGES (About, Contact, FAQ, Policies, Isopod Care)
   Simple Block Editor pages with white content areas.
   These pages use standard WP block classes: wp-block-group,
   wp-block-columns, wp-block-details, wp-block-list, etc.
   Our global typography/color rules handle most styling.
   This section adds FAQ accordion styling and ensures
   Block Editor groups with inline dark backgrounds render correctly.
   ══════════════════════════════════════════════════════════════ */

/* --- Content page white background (scoped to #content to protect nav) --- */
body[class*="page-id-1388"] #content .ast-container,
body[class*="page-id-1390"] #content .ast-container,
body[class*="page-id-1392"] #content .ast-container,
body[class*="page-id-1394"] #content .ast-container,
body[class*="page-id-1744"] #content .ast-container,
body[class*="page-id-1388"] #content,
body[class*="page-id-1390"] #content,
body[class*="page-id-1392"] #content,
body[class*="page-id-1394"] #content,
body[class*="page-id-1744"] #content {
  background: #FFFFFF !important;
}

/* --- Content area text — dark on white --- */
body[class*="page-id-1388"] .entry-content,
body[class*="page-id-1390"] .entry-content,
body[class*="page-id-1392"] .entry-content,
body[class*="page-id-1394"] .entry-content,
body[class*="page-id-1744"] .entry-content {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

body[class*="page-id-1388"] .entry-content p,
body[class*="page-id-1390"] .entry-content p,
body[class*="page-id-1392"] .entry-content p,
body[class*="page-id-1394"] .entry-content p,
body[class*="page-id-1744"] .entry-content p {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-family: var(--ik-font-body) !important;
  font-style: normal !important;
}

body[class*="page-id-1388"] .entry-content a:not(.wp-block-button__link),
body[class*="page-id-1390"] .entry-content a:not(.wp-block-button__link),
body[class*="page-id-1392"] .entry-content a:not(.wp-block-button__link),
body[class*="page-id-1394"] .entry-content a:not(.wp-block-button__link),
body[class*="page-id-1744"] .entry-content a:not(.wp-block-button__link) {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

body[class*="page-id-1388"] .entry-content a:not(.wp-block-button__link):hover,
body[class*="page-id-1390"] .entry-content a:not(.wp-block-button__link):hover,
body[class*="page-id-1392"] .entry-content a:not(.wp-block-button__link):hover,
body[class*="page-id-1394"] .entry-content a:not(.wp-block-button__link):hover,
body[class*="page-id-1744"] .entry-content a:not(.wp-block-button__link):hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* Block Editor lists — proper indentation, bullets INSIDE the content area */
.entry-content ul,
.entry-content ol,
.entry-content .wp-block-list {
  padding-left: 1.5em !important;
  margin-left: 0 !important;
  list-style-position: outside !important;
}

.entry-content ul li,
.entry-content .wp-block-list li {
  padding-left: 0.25em !important;
  margin-bottom: 6px !important;
}

/* Content page h2 headings inside constrained groups — NOT gold bar style */
.entry-content .wp-block-group h2.wp-block-heading {
  background: none !important;
  border: none !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  padding: 0 !important;
  margin: 0 0 12px 0 !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  width: auto !important;
  max-width: none !important;
}

/* Dark background groups — preserve white text */
.entry-content .wp-block-group.has-background[style*="background-color:#0f2230"] h2.wp-block-heading,
.entry-content .wp-block-group.has-background[style*="background-color:#0f2230"] h2 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Block Editor lists */
.entry-content .wp-block-list li {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-family: var(--ik-font-body) !important;
  font-style: normal !important;
  line-height: 1.8 !important;
}

.entry-content .wp-block-list.has-white-color li {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

.entry-content .wp-block-list li::marker {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.entry-content .wp-block-list.has-white-color li::marker {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

/* Block Editor groups with light backgrounds — normalize to design system */
.entry-content .wp-block-group.has-background[style*="background-color:#f5f8f8"],
.entry-content .wp-block-group.has-background[style*="background-color:#f5f5f5"],
.entry-content .wp-block-group.has-background[style*="background-color:#f0f0f0"] {
  background-color: #F8F8F6 !important;
  border-radius: 0 !important;
  border: 1px solid #E8E8E6 !important;
}

/* Dark background groups — normalize to our design system dark, not developer's navy */
.entry-content .wp-block-group.has-background[style*="background-color:#0f2230"] {
  border-radius: 0 !important;
  background-color: var(--ik-bg-deep) !important;
}

/* Block Editor buttons — gold filled */
.entry-content .wp-block-button__link,
.entry-content .wp-element-button {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border-radius: 0 !important;
  border: none !important;
  padding: 14px 32px !important;
}

.entry-content .wp-block-button__link:hover,
.entry-content .wp-element-button:hover {
  background: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* --- FAQ Accordion (details/summary) ---
   IMPORTANT: scoped via :not(.ik-filter-dropdown) so the rules don't
   cascade onto our filter-dropdown component (`<details class="ik-filter-dropdown">`).
   Without this exclusion the FAQ rules inflate the dropdown trigger
   (font-size:15px, padding:16px 20px, border on the details element,
   margin-bottom:8px) and add a "+"/"−" indicator that conflicts with
   the dropdown's own caret. */
.entry-content details:not(.ik-filter-dropdown),
.entry-content .wp-block-details,
body.ik-product-catalog details.ik-shop-sidebar-collapsible,
body.dokan-store details.ik-shop-sidebar-collapsible,
body.woocommerce-account details.ik-shop-sidebar-collapsible {
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  margin-bottom: 8px !important;
  background: #FFFFFF !important;
  overflow: hidden !important;
}
/* Ruth 2026-05-19 (revised): the original 2026-05-19 attempt stripped the
   wrapper border to fix the 2px-thick edge, but that left the EXPANDED
   submenu without a visible left/bottom/right edge (Ruth observed: "looks
   like it didn't expand"). Correct fix lives in the @media (max-width:768px)
   block below — REMOVE the summary's mobile border (line ~17889) instead.
   That way: wrapper border surrounds the whole box (including expanded
   content) AND summary's border doesn't stack on top. */

.entry-content details:not(.ik-filter-dropdown) summary,
.entry-content .wp-block-details summary,
body.dokan-store details.ik-shop-sidebar-collapsible summary,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary {
  padding: 16px 20px !important;
  font-family: var(--ik-font-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  font-style: normal !important;
  line-height: 1 !important;  /* normalize so icon span + text + ::after sit on same y */
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  cursor: pointer !important;
  list-style: none !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  transition: background 0.2s ease !important;
}
/* Per-glyph normalization so the hamburger icon span, the "MENU"/"FILTERS"
   text node, and the "+/-" ::after all sit on the same baseline.
   Ruth 2026-05-19: visible mis-alignment on /my-account/ + /store-product/
   shop categories toggle. Use align-self: center on each flex item so the
   parent's align-items: center applies even with mixed glyph heights. */
.entry-content details:not(.ik-filter-dropdown) summary .ik-shop-sidebar-toggle-icon,
body.ik-product-catalog details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon,
body.dokan-store details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon {
  display: inline-block !important;
  line-height: 1 !important;
  font-size: 15px !important;
  vertical-align: middle !important;
  align-self: center !important;
  margin-right: 8px !important;
}
.entry-content details:not(.ik-filter-dropdown) summary::after,
body.dokan-store details.ik-shop-sidebar-collapsible summary::after,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary::after {
  line-height: 1 !important;
  vertical-align: middle !important;
  display: inline-block !important;
}

.entry-content details:not(.ik-filter-dropdown) summary:hover,
body.dokan-store details.ik-shop-sidebar-collapsible summary:hover,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary:hover {
  background: #F8F8F6 !important;
}

.entry-content details:not(.ik-filter-dropdown) summary::-webkit-details-marker,
body.dokan-store details.ik-shop-sidebar-collapsible summary::-webkit-details-marker,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary::-webkit-details-marker {
  display: none !important;
}

.entry-content details:not(.ik-filter-dropdown) summary::after,
body.dokan-store details.ik-shop-sidebar-collapsible summary::after,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary::after {
  content: '+' !important;
  /* 2026-05-19 Ruth: was font-size 18px which made the "+" glyph taller than
     surrounding text (15px) and sit visually higher than ☰ + MENU. Match
     size + line-height so flex align-items:center renders all 3 on the
     same horizontal line. */
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  transition: transform 0.2s ease !important;
  display: inline-block !important;
  align-self: center !important;
}

.entry-content details:not(.ik-filter-dropdown)[open] summary::after,
body.dokan-store details.ik-shop-sidebar-collapsible[open] summary::after,
body.woocommerce-account details.ik-shop-sidebar-collapsible[open] summary::after {
  content: '−' !important;
}

.entry-content details:not(.ik-filter-dropdown)[open] summary,
body.dokan-store details.ik-shop-sidebar-collapsible[open] summary,
body.woocommerce-account details.ik-shop-sidebar-collapsible[open] summary {
  border-bottom: 1px solid #E8E8E6 !important;
  background: #F8F8F6 !important;
}

.entry-content details p {
  padding: 16px 20px !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Content constrained group max-width — NOT on homepage (hero must be full-bleed) */
body:not(.page-id-1381):not(.page-id-2594) .entry-content > .wp-block-group.is-layout-constrained {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1.5rem, 4vw, 3rem) !important;
  padding-right: clamp(1.5rem, 4vw, 3rem) !important;
}

/* 2026-05-18 Ruth: home hero chest graphic image has an inline max-width:480px
   from WP's block-image markup. The image should always fill 100% of its
   column (no fixed pixel cap) so it scales with the responsive column width
   instead of overflowing into the headline column at smaller viewports. */
body.home .wp-block-columns.alignwide.are-vertically-aligned-center .wp-block-column figure.wp-block-image,
body.home .wp-block-columns.alignwide.are-vertically-aligned-center .wp-block-column figure.wp-block-image img,
body.page-id-1381 .wp-block-columns.alignwide.are-vertically-aligned-center .wp-block-column figure.wp-block-image,
body.page-id-1381 .wp-block-columns.alignwide.are-vertically-aligned-center .wp-block-column figure.wp-block-image img {
  max-width: 100% !important;
  height: auto !important;
}


/* --- WooCommerce notices on WHITE content pages --- */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-info,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-message {
  background: #F8F8F6 !important;
  border-left: 3px solid #9A7E2E !important;
  border-top: none !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 16px 20px !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  border-radius: 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-info::before,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-message::before {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Consistent empty state messages on white content pages ---
   All empty states use the same clean info bar with gold left accent.
   Used for: empty cart, empty won auctions, empty bids, empty orders. */
body:not(.page-id-1381):not(.page-id-2594) .cart-empty.woocommerce-info,
body:not(.page-id-1381):not(.page-id-2594) p.ik-no-auctions,
body:not(.page-id-1381):not(.page-id-2594) .wc-empty-cart-message .woocommerce-info {
  background: #F8F8F6 !important;
  border: none !important;
  border-left: 3px solid #9A7E2E !important;
  border-radius: 0 !important;
  padding: 16px 20px !important;
  margin: 0 !important;
  font-size: 15px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-family: var(--ik-font-body) !important;
  display: block !important;
  line-height: 1.6 !important;
}

/* Hide WooCommerce icon font ::before on ALL white-content notices.
   The icon font doesn't load locally and renders as an overlapping gold box.
   Use body:not(.page-id-1381):not(.page-id-2594) to catch ALL page types (page, single-product, etc.) */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-info::before,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-message::before,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-error::before,
body:not(.page-id-1381):not(.page-id-2594) p.ik-no-auctions::before {
  display: none !important;
}

/* Remove the left padding that was reserved for the icon */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-info,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-message,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-error {
  padding-left: 16px !important;
}

/* White-page notice styling for ALL non-homepage pages
   (single-product, woocommerce-cart, woocommerce-checkout, etc.) */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-info {
  background: #FAFAF8 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #E8E8E6 !important;
  border-left: 3px solid #9A7E2E !important;
  border-top: none !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-info a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

body:not(.page-id-1381):not(.page-id-2594) .cart-empty.woocommerce-info a,
body:not(.page-id-1381):not(.page-id-2594) p.ik-no-auctions a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

/* --- My Account — vertical sidebar navigation (standard WooCommerce layout) --- */

/* Wrapper — side-by-side: nav left, content right */
/* My Account sidebar layout — scope to the actual WooCommerce account wrapper,
   NOT the generic .woocommerce class (which Dokan also puts on seller card <li> elements!) */
body:not(.page-id-1381):not(.page-id-2594) .entry-content > .woocommerce:has(.woocommerce-MyAccount-navigation) {
  display: flex !important;
  gap: 32px !important;
  align-items: flex-start !important;
}

/* Sidebar nav — fixed width on the left */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-navigation {
  width: 220px !important;
  flex-shrink: 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-navigation ul li {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-navigation ul li a {
  display: block !important;
  /* 3px transparent left border on every item so the active state's gold bar
     doesn't shift text horizontally when toggled */
  border-left: 3px solid transparent !important;
  padding: 12px 0 12px 16px !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  background: transparent !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-navigation ul li a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* Active state — gold left bar + dark text, NO gray box. Selector includes
   #content so it beats the white-page link rule (1,2,2) on ID specificity. */
body:not(.page-id-1381):not(.page-id-2594) #content .woocommerce-MyAccount-navigation ul li.is-active a,
body:not(.page-id-1381):not(.page-id-2594) #content .woocommerce-MyAccount-navigation ul li.is-active a:link,
body:not(.page-id-1381):not(.page-id-2594) #content .woocommerce-MyAccount-navigation ul li.is-active a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
  background: transparent !important;
  border-left: 3px solid #FFCC33 !important;
}

/* Content area — takes remaining space */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-content {
  flex: 1 !important;
  min-width: 0 !important;
  padding: 0 !important;
}

/* My Account dashboard — comprehensive dark text on white background */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content div,
.woocommerce-account .woocommerce-MyAccount-content span,
.woocommerce-account .woocommerce-MyAccount-content li,
.woocommerce-account .woocommerce-MyAccount-content td,
.woocommerce-account .woocommerce-MyAccount-content th,
.woocommerce-account .woocommerce-MyAccount-content label,
.woocommerce-account .woocommerce-MyAccount-content address,
.woocommerce-account .woocommerce-MyAccount-content strong,
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.woocommerce-account .woocommerce-MyAccount-content a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

.woocommerce-account .woocommerce-MyAccount-content a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* Mobile — stack vertically */
@media (max-width: 768px) {
  body:not(.page-id-1381):not(.page-id-2594) .entry-content > .woocommerce:has(.woocommerce-MyAccount-navigation) {
    flex-direction: column !important;
  }
  body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-navigation {
    width: 100% !important;
  }
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-content a.dokan-btn,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-MyAccount-content .dokan-btn-theme {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border-radius: 0 !important;
  border: none !important;
  padding: 12px 24px !important;
  text-decoration: none !important;
}

/* ── My Account Sub-Pages — Common White-Page Overrides ──
   All sub-pages share: white bg, sidebar nav, dark text.
   These rules cover notices, addresses, select2, fieldsets,
   payment methods, Dokan support tickets, and vendor cards. */

/* --- Notices on white pages (info, message, error) ---
   Global rules use dark bg. Override to light bg + gold/red left border. */
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message {
  background: #FAFAF8 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #E8E8E6 !important;
  border-left: 3px solid #9A7E2E !important;
  border-top: none !important;
}

.woocommerce-account .woocommerce-error {
  background: #FEF8F8 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #F0D0D0 !important;
  border-left: 3px solid #CC0000 !important;
  border-top: none !important;
}

.woocommerce-account .woocommerce-info a,
.woocommerce-account .woocommerce-message a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Dokan notices on white */
.woocommerce-account .dokan-error,
.woocommerce-account .dokan-info,
.woocommerce-account .dokan-message {
  background: #FAFAF8 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #E8E8E6 !important;
}

.woocommerce-account .dokan-error {
  border-left: 3px solid #CC0000 !important;
}

/* --- Address display (view mode) — 2-column layout --- */
.woocommerce-account .woocommerce-Addresses {
  display: flex !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
  flex: 1 !important;
  min-width: 0 !important;
  float: none !important;
  width: auto !important;
}

.woocommerce-account .woocommerce-Addresses .col-1 {
  margin-right: 12px !important;
}

.woocommerce-account .woocommerce-Addresses .col-2 {
  margin-left: 12px !important;
}

.woocommerce-account .woocommerce-Address-title {
  background: #FAFAF8 !important;
  border: 1px solid #E8E8E6 !important;
  border-bottom: none !important;
  padding: 12px 16px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

/* Live WC renders the address title as <h2> on most builds; mockup used <h3>.
   Selector covers both tags so the rule applies regardless of WC template. */
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 {
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-account .woocommerce-Address-title a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-size: 13px !important;
  text-decoration: none !important;
}

.woocommerce-account address {
  border: 1px solid #E8E8E6 !important;
  padding: 16px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-style: normal !important;
  line-height: 1.7 !important;
}

@media (max-width: 768px) {
  .woocommerce-account .woocommerce-Addresses {
    flex-direction: column !important;
  }
}

/* --- Select2 dropdowns (country/state selectors on address forms) --- */
.woocommerce-account .select2-container .select2-selection--single {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  height: auto !important;
  padding: 10px 12px !important;
}

.woocommerce-account .select2-container .select2-selection--single .select2-selection__rendered {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  line-height: 1.5 !important;
  padding: 0 !important;
}

.woocommerce-account .select2-container .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 8px !important;
}

.select2-dropdown {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
}

.select2-results__option {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 8px 12px !important;
}

.select2-results__option--highlighted {
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* --- Fieldset / Legend (password change section on Account Details) --- */
.woocommerce-account fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 24px 0 0 !important;
}

.woocommerce-account fieldset legend {
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin-bottom: 16px !important;
  padding: 0 !important;
  border-bottom: 1px solid #E8E8E6 !important;
  width: 100% !important;
  padding-bottom: 12px !important;
}

/* --- Payment Methods list --- */
.woocommerce-account .woocommerce-PaymentMethods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce-account .woocommerce-PaymentMethod {
  border: 1px solid #E8E8E6 !important;
  padding: 16px !important;
  margin-bottom: 8px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.woocommerce-account .woocommerce-PaymentMethod label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
  flex: 1 !important;
}

.woocommerce-account .woocommerce-PaymentBox,
#add_payment_method #payment div.payment_box {
  border: 1px solid #E8E8E6 !important;
  padding: 16px !important;
  margin-top: -1px !important;
  background: #FAFAF8 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

#add_payment_method #payment div.payment_box label,
.woocommerce-account .woocommerce-PaymentBox label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

#add_payment_method #payment div.payment_box p {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Stripe elements */
.woocommerce-account .StripeElement,
#add_payment_method .StripeElement {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  padding: 12px !important;
  border-radius: 0 !important;
}

.woocommerce-account .StripeElement--focus,
#add_payment_method .StripeElement--focus {
  border-color: #9A7E2E !important;
}

/* Payment methods list on add-payment page */
#add_payment_method #payment ul.payment_methods {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

#add_payment_method #payment ul.payment_methods li {
  border: 1px solid #E8E8E6 !important;
  padding: 16px !important;
  margin-bottom: 8px !important;
  background: #FFFFFF !important;
}

#add_payment_method #payment ul.payment_methods li label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
}

/* --- Dokan Support Tickets --- */
.woocommerce-account .dokan-support-topic-counts.subsubsub {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 20px !important;
  display: flex !important;
  gap: 16px !important;
}

.woocommerce-account .dokan-support-topic-counts li {
  margin: 0 !important;
}

.woocommerce-account .dokan-support-topic-counts li a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
  font-size: 14px !important;
}

.woocommerce-account .dokan-support-topic-counts li a:hover,
.woocommerce-account .dokan-support-topic-counts li.active a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

.woocommerce-account .dokan-support-topics-list {
  width: 100% !important;
  border-collapse: collapse !important;
}

.woocommerce-account .dokan-support-topics-list th {
  background: #FAFAF8 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  text-align: left !important;
}

.woocommerce-account .dokan-support-topics-list td {
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
}

.woocommerce-account .dokan-support-topics-list td a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Vendors (Following) page — seller cards in content area --- */
/* Vendors page inside My Account — uses same Dokan seller card structure
   as the sellers page. The #dokan-seller-listing-wrap styles handle everything.
   Only override: 2-column grid since content area is narrower. */
.woocommerce-MyAccount-content #dokan-seller-listing-wrap ul.dokan-seller-wrap {
  grid-template-columns: repeat(2, 1fr) !important;
}

/* Follow button — gray outline to match secondary action style */
.woocommerce-account .dokan-follow-store-button {
  background: transparent !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 8px 16px !important;
}

/* --- Auction Settings — checkbox styling ---
   Target the actual input, NOT the .input-checkbox wrapper <p> */
.woocommerce-account input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  accent-color: #9A7E2E !important;
  margin-right: 8px !important;
}

/* --- WooCommerce tables on white (orders, downloads) --- */
.woocommerce-account .shop_table,
.woocommerce-account .woocommerce-table {
  width: 100% !important;
  border-collapse: collapse !important;
}

.woocommerce-account .shop_table th,
.woocommerce-account .woocommerce-table th {
  background: #FAFAF8 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  text-align: left !important;
}

.woocommerce-account .shop_table td,
.woocommerce-account .woocommerce-table td {
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
}

.woocommerce-account .shop_table td a,
.woocommerce-account .woocommerce-table td a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

@media (max-width: 768px) {
  .woocommerce-account .dokan-seller-wrap {
    grid-template-columns: 1fr !important;
  }
}

/* --- Order Success / Thank You page --- */
.woocommerce-thankyou-order-received {
  background: #F0F7E6 !important;
  border-left: 3px solid #4CAF50 !important;
  padding: 16px 20px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 15px !important;
  font-family: var(--ik-font-body) !important;
  margin-bottom: 24px !important;
}

/* Order overview summary (order number, date, email, total) */
.woocommerce-order-overview {
  list-style: none !important;
  padding: 16px 20px !important;
  margin: 0 0 24px !important;
  background: #FAFAF8 !important;
  border: 1px solid #E8E8E6 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 32px !important;
}

.woocommerce-order-overview li {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 14px !important;
  font-family: var(--ik-font-body) !important;
}

.woocommerce-order-overview li strong {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
  display: block !important;
  margin-top: 2px !important;
}

/* Order details section heading — top of a bordered box */
.woocommerce-order-details__title,
.woocommerce-customer-details .woocommerce-column__title {
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  background: #FAFAF8 !important;
  padding: 12px 16px !important;
  border: 1px solid #E8E8E6 !important;
  border-bottom: none !important;
  margin-bottom: 0 !important;
}

/* Order details table — left/right/bottom borders to complete the box */
.woocommerce-table--order-details,
.shop_table.order_details {
  border: 1px solid #E8E8E6 !important;
  border-top: none !important;
}

/* Order table footer (subtotal, shipping, total) */
.woocommerce-table--order-details tfoot th,
.shop_table.order_details tfoot th {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
  text-align: left !important;
}

.woocommerce-table--order-details tfoot td,
.shop_table.order_details tfoot td {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

/* Order status marks */
mark.order-number,
mark.order-date,
mark.order-status {
  background: none !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

/* Customer details addresses on order pages — 2-column */
.woocommerce-customer-details {
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce-customer-details .woocommerce-columns--addresses {
  display: flex !important;
  gap: 0 !important;
  margin-top: 24px !important;
  padding: 0 !important;
}

.woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column {
  flex: 1 !important;
  min-width: 0 !important;
  float: none !important;
  width: auto !important;
}

/* Left column gets a right border as the visual separator */
.woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column--1 {
  margin-right: 12px !important;
}

.woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column--2 {
  margin-left: 12px !important;
}

/* Hide WooCommerce icon font on email/phone — doesn't load locally */
.woocommerce-customer-details--email::before,
.woocommerce-customer-details--phone::before {
  display: none !important;
}

.woocommerce-customer-details--email,
.woocommerce-customer-details--phone {
  padding-left: 0 !important;
}

.woocommerce-customer-details address {
  border: 1px solid #E8E8E6 !important;
  padding: 16px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-style: normal !important;
  line-height: 1.7 !important;
}

.woocommerce-customer-details--email {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  margin-top: 8px !important;
}

/* Price amounts in order tables — dark, not gold */
.woocommerce-table--order-details .woocommerce-Price-amount,
.woocommerce-table--order-details .woocommerce-Price-currencySymbol,
.woocommerce-order-overview .woocommerce-Price-amount,
.woocommerce-order-overview .woocommerce-Price-currencySymbol {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

@media (max-width: 768px) {
  .woocommerce-order-overview {
    flex-direction: column !important;
    gap: 12px !important;
  }
  .woocommerce-customer-details .woocommerce-columns--addresses {
    flex-direction: column !important;
  }
}

/* ── Dokan Seller Listing (Sellers page) ──
   IMPORTANT: Dokan's grid-view CSS in astra-base.css already handles the overlay
   layout (.store-content positioned absolute over .store-banner). We work WITH
   that, not against it. We only override: colors, shadows, layout method (grid
   instead of floats), and typography.

   All selectors use #dokan-seller-listing-wrap prefix to beat Dokan's specificity. */

/* --- Seller application notice bar --- */
.ik-sellers-notice {
  display: block !important;
  text-align: center !important;
  background: linear-gradient(135deg, #0E0E0C 0%, #1A1A18 100%) !important;
  padding: 18px 24px !important;
  margin-bottom: 28px !important;
  border-left: 3px solid #FFCC33 !important;
}

/* Must beat: body.page:not(.page-id-1381) .entry-content span { color: #333 } */
body.page .entry-content .ik-sellers-notice .ik-sellers-notice-text {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-family: var(--ik-font-body) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

body.page .entry-content .ik-sellers-notice .ik-sellers-notice-email {
  color: #AAAAAA !important;
  -webkit-text-fill-color: #AAAAAA !important;
  font-family: var(--ik-font-body) !important;
  font-size: 13px !important;
  white-space: nowrap !important;
}

body.page .entry-content .ik-sellers-notice .ik-sellers-notice-email a {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-decoration: none !important;
}

body.page .entry-content .ik-sellers-notice .ik-sellers-notice-email a:hover {
  color: #FFDB66 !important;
  -webkit-text-fill-color: #FFDB66 !important;
}

/* --- Browse CTA (bottom of seller cards) --- */
.ik-sellers-browse-cta {
  text-align: center !important;
  margin: 40px 0 0 !important;
  padding: 24px 0 !important;
  border-top: 1px solid #E8E8E6 !important;
}

.ik-sellers-browse-cta p {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  margin: 0 !important;
}

.ik-sellers-browse-cta a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

.ik-sellers-browse-cta a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* --- Filter bar --- */
/* Kill Dokan's box-shadow and padding on filter wrap */
#dokan-store-listing-filter-wrap {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid #E8E8E6 !important;
  margin-bottom: 28px !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  box-shadow: none !important;
  background: transparent !important;
  border-radius: 0 !important;
}

#dokan-store-listing-filter-wrap .left {
  flex-shrink: 0 !important;
}

#dokan-store-listing-filter-wrap .right {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  max-width: 100% !important;  /* prevent overflow on mobile */
}
/* Constrain Dokan native sort-by form + its select so they shrink to fit
   the viewport on mobile (was 506px wide on a 375px viewport, causing
   horizontal scroll). Ruth 2026-05-16 mobile sweep. */
#dokan-store-listing-filter-wrap .right form.sort-by {
  max-width: 100% !important;
  min-width: 0 !important;
}
#dokan-store-listing-filter-wrap .right form.sort-by select {
  max-width: 100% !important;
  min-width: 0 !important;
}
@media (max-width: 768px) {
  #dokan-store-listing-filter-wrap {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  #dokan-store-listing-filter-wrap .left,
  #dokan-store-listing-filter-wrap .right {
    width: 100% !important;
  }
  #dokan-store-listing-filter-wrap .right {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  #dokan-store-listing-filter-wrap .right .item,
  #dokan-store-listing-filter-wrap .right form.sort-by {
    width: 100% !important;
  }
}

#dokan-store-listing-filter-wrap .store-count {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 14px !important;
  font-family: var(--ik-font-body) !important;
  margin: 0 !important;
}

/* Filter button — kill Dokan's purple .dokan-btn-theme bg and padding-left:35px */
#dokan-store-listing-filter-wrap .right .item button.dokan-store-list-filter-button {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid #D0D0CE !important;
  border-color: #D0D0CE !important;
  border-radius: 0 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  padding: 8px 16px !important;
  cursor: pointer !important;
  font-family: var(--ik-font-body) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

#dokan-store-listing-filter-wrap .dokan-store-list-filter-button:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Dokan filter icon — Dokan uses position:absolute white bars inside
   the button. We override to match our transparent button styling. */
#dokan-store-listing-filter-wrap .right .item .dokan-icons {
  position: static !important;
  display: inline-flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  margin-right: 6px !important;
  vertical-align: middle !important;
  transform: none !important;
  cursor: pointer !important;
}

#dokan-store-listing-filter-wrap .right .item .dokan-icons .dokan-icon-div {
  width: 15px !important;
  height: 2px !important;
  background: #333333 !important;
  border-radius: 0 !important;
}

#dokan-store-listing-filter-wrap .right .item .dokan-icons .dokan-icon-div:nth-child(2) {
  width: 10px !important;
}

#dokan-store-listing-filter-wrap .right .item .dokan-icons .dokan-icon-div:nth-child(3) {
  width: 5px !important;
}

/* Sort dropdown — override Dokan's reset and default select styles */
#dokan-store-listing-filter-wrap .right .item.sort-by label {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 13px !important;
  font-family: var(--ik-font-body) !important;
  margin-right: 8px !important;
  display: inline !important;
}

#dokan-store-listing-filter-wrap .right .item.sort-by select,
#dokan-store-listing-filter-wrap .right .item select#stores_orderby {
  border: 1px solid #D0D0CE !important;
  background: #FFFFFF !important;
  padding: 8px 12px !important;
  font-size: 13px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  -webkit-appearance: auto !important;
  appearance: auto !important;
}

/* Grid/List toggle */
#dokan-store-listing-filter-wrap .right .toggle-view {
  display: flex !important;
  gap: 4px !important;
  height: auto !important;
  line-height: normal !important;
  align-items: center !important;
}

#dokan-store-listing-filter-wrap .right .toggle-view .dashicons {
  cursor: pointer !important;
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  font-size: 20px !important;
  padding: 4px !important;
  transition: color 0.2s ease !important;
  display: inline-block !important;
  width: 20px !important;
  height: 20px !important;
}

#dokan-store-listing-filter-wrap .right .toggle-view .dashicons.active,
#dokan-store-listing-filter-wrap .right .toggle-view .dashicons:hover {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* --- Hidden filter form --- */
#dokan-store-listing-filter-form-wrap {
  background: #F8F8F6 !important;
  border: 1px solid #E8E8E6 !important;
  padding: 20px !important;
  margin-bottom: 24px !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Kill Dokan's ::before pseudo-element (triangle arrow) */
#dokan-store-listing-filter-form-wrap::before {
  display: none !important;
  content: none !important;
}

#dokan-store-listing-filter-form-wrap .store-search-input {
  border: 1px solid #D0D0CE !important;
  background: #FFFFFF !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border-radius: 0 !important;
  width: 100% !important;
  font-family: var(--ik-font-body) !important;
  box-sizing: border-box !important;
  margin-bottom: 16px !important;
}

#dokan-store-listing-filter-form-wrap label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 13px !important;
  font-family: var(--ik-font-body) !important;
}

#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap {
  display: flex !important;
  gap: 24px !important;
  flex-wrap: wrap !important;
  margin-bottom: 16px !important;
}

#dokan-store-listing-filter-form-wrap .apply-filter {
  display: flex !important;
  gap: 8px !important;
}

#dokan-store-listing-filter-form-wrap .apply-filter button {
  background: transparent !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 8px 20px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  cursor: pointer !important;
  font-family: var(--ik-font-body) !important;
}

#dokan-store-listing-filter-form-wrap #apply-filter-btn {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border-color: #FFCC33 !important;
  font-weight: 700 !important;
}

/* Star rating filter */
#dokan-store-listing-filter-form-wrap .dokan-stars .dashicons {
  color: #D0D0CE !important;
  -webkit-text-fill-color: #D0D0CE !important;
  cursor: pointer !important;
  font-size: 20px !important;
}

#dokan-store-listing-filter-form-wrap .dokan-stars .dashicons:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Dokan seller cards */
/* ── Dokan Seller Listing Grid ──
   Live site uses overlay layout: store name/rating overlaid on banner with
   dark gradient. Avatar sits at bottom-right of banner overlapping footer.
   Must beat Dokan's #dokan-seller-listing-wrap specificity everywhere. */

#dokan-seller-listing-wrap {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Grid — NUCLEAR OVERRIDE of Dokan's float layout.
   body prefix guarantees we beat every selector in astra-base.css.
   Grid items must have NO width/float — the grid controls sizing. */
body #dokan-seller-listing-wrap ul.dokan-seller-wrap {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}

body #dokan-seller-listing-wrap ul.dokan-seller-wrap::before,
body #dokan-seller-listing-wrap ul.dokan-seller-wrap::after {
  display: none !important;
  content: none !important;
}

/* Kill Dokan clearfix div that CSS Grid treats as a grid item */
body #dokan-seller-listing-wrap ul.dokan-seller-wrap .dokan-clearfix {
  display: none !important;
}

/* NUCLEAR: Kill ALL width/float/margin/padding on li elements.
   body prefix + every class combo = nothing in astra-base.css can beat this. */
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li,
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.coloum-3,
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.coloum-2,
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.dokan-single-seller,
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.dokan-single-seller.woocommerce.coloum-3 {
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
  margin-bottom: 0 !important;
  list-style: none !important;
  list-style-type: none !important;
  box-sizing: border-box !important;
}

/* Card wrapper — our standard card treatment, NO box-shadow */
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-wrapper {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  box-shadow: none !important;
  position: relative !important;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease !important;
}

body #dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-wrapper:hover {
  border-color: rgba(154, 126, 46, 0.3) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1) !important;
}

/* Store header — relative positioning for the overlay */
#dokan-seller-listing-wrap .dokan-single-seller .store-header {
  position: relative !important;
  overflow: hidden !important;
}

/* Banner — Dokan already handles absolute positioning of the img.
   We just set the height to match our card system. */
body #dokan-seller-listing-wrap .dokan-single-seller .store-header .store-banner {
  min-height: 220px !important;
  height: 220px !important;
}

/* Banner image must fill the banner area */
body #dokan-seller-listing-wrap .dokan-single-seller .store-header .store-banner img {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Store content — flows below banner in white area (NOT an overlay).
   Name, rating, and address display centered in white below the avatar. */
body #dokan-seller-listing-wrap.grid-view .store-content {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  z-index: 1 !important;
  text-align: center !important;
  padding: 70px 16px 16px !important;
}

#dokan-seller-listing-wrap.grid-view .store-content .store-data-container {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  height: auto !important;
  padding: 0 !important;
  background: none !important;
  background-color: transparent !important;
  box-sizing: border-box !important;
}

/* Banner gradient overlay — just for visual effect, no text */
body #dokan-seller-listing-wrap.grid-view .store-header {
  position: relative !important;
}

body #dokan-seller-listing-wrap.grid-view .store-header::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 50% !important;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%) !important;
  pointer-events: none !important;
}

/* Featured badge — pull up into banner area with negative top.
   .store-content is now below the banner, so we offset by banner height + padding. */
#dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-content .featured-favourite {
  position: absolute !important;
  top: -208px !important;
  left: 12px !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  float: none !important;
  z-index: 2 !important;
}

/* Featured badge — kill Dokan's blue bg and box-shadow */
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .featured-favourite .featured-label,
#dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-content .store-info .featured-favourite .featured-label {
  display: inline-block !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  background: rgba(0, 0, 0, 0.6) !important;
  background-color: rgba(0, 0, 0, 0.6) !important;
  padding: 4px 10px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  float: none !important;
  width: auto !important;
  font-family: var(--ik-font-body) !important;
}

/* Store name — dark text on white area (info now below avatar, not on overlay) */
#dokan-seller-listing-wrap .dokan-single-seller .store-wrapper .store-data {
  padding: 0 !important;
  text-align: center !important;
}

#dokan-seller-listing-wrap .dokan-single-seller .store-wrapper .store-data h2 {
  font-family: var(--ik-font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  margin: 0 0 4px !important;
  padding: 0 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  line-height: 1.3 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data h2 a,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data h2 a:link,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data h2 a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-decoration: none !important;
  text-shadow: none !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  display: block !important;
}

#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data h2 a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Rating stars — gold on white. ADA compliant #9A7E2E. */
#dokan-seller-listing-wrap .seller-listing-content .dokan-seller-wrap .dokan-single-seller .store-wrapper .store-data .dokan-seller-rating i.dashicons.dashicons-star-filled,
#dokan-seller-listing-wrap .seller-listing-content .dokan-seller-wrap .dokan-single-seller .store-wrapper .store-data .dokan-seller-rating i.dashicons.dashicons-star-half {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-size: 14px !important;
  width: 14px !important;
}

/* Rating text — show it now since we have room in the white area */
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data .dokan-seller-rating p.rating {
  display: inline !important;
  font-size: 12px !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  margin: 0 0 0 4px !important;
}

/* Rating container — flex with center alignment so dashicons star <i> elements
   (20px-tall glyphs) sit centered with the smaller p.rating text (14px). Default
   inline-baseline layout puts the dashicon glyphs too high in their line box,
   visually top-aligning the stars relative to the rating text. Flex + align-items
   center fixes that. (Ruth 2026-04-30) */
#dokan-seller-listing-wrap .dokan-seller-rating {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  margin: 4px 0 !important;
  float: none !important;
}

/* Address text — dark on white area */
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data .store-address,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data .store-address span,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data .store-address .city,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data .store-address .state,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data .store-address .country,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data .store-address .street_1 {
  font-size: 12px !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  margin: 0 !important;
  text-shadow: none !important;
  font-family: var(--ik-font-body) !important;
  display: inline !important;
}

#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data p,
#dokan-seller-listing-wrap.grid-view .store-content .store-data-container .store-data p span {
  color: rgba(255, 255, 255, 0.75) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.75) !important;
  text-shadow: none !important;
}

/* Store phone — hide on cards (too much info) */
#dokan-seller-listing-wrap .store-phone {
  display: none !important;
}

/* Open/Closed status badge — Dokan positions absolute top-right.
   Override to keep in the overlay flow. */
#dokan-seller-listing-wrap .dokan-store-is-open-close-status {
  font-size: 9px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 3px 8px !important;
  border-radius: 0 !important;
  display: inline-block !important;
  margin-bottom: 4px !important;
  position: static !important;
  box-shadow: none !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

#dokan-seller-listing-wrap .dokan-store-is-open-status {
  background: rgba(29, 191, 115, 0.8) !important;
}

#dokan-seller-listing-wrap .dokan-store-is-closed-status {
  background: rgba(0, 0, 0, 0.5) !important;
  /* 2026-05-19 Ruth: white text for contrast against the semi-transparent
     dark background — gray-on-gray was unreadable. */
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Store footer — buttons area below the info */
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-footer,
body #dokan-seller-listing-wrap.grid-view .store-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 0 16px 16px !important;
  border-top: none !important;
  background: #FFFFFF !important;
  position: static !important;
}

/* Seller avatar — centered at banner/content boundary.
   Position on .store-wrapper (the card) so it's independent of content height.
   Banner is 220px, avatar is 100px + 10px border = 110px. Center at 220px = top: 165px. */
body #dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-wrapper {
  position: relative !important;
}

body #dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-footer .seller-avatar {
  position: absolute !important;
  left: 50% !important;
  top: 165px !important;
  transform: translateX(-50%) !important;
  padding: 5px !important;
  background: #FFFFFF !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2) !important;
  border-radius: 50% !important;
  width: 100px !important;
  height: 100px !important;
  z-index: 3 !important;
  box-sizing: content-box !important;
}

body #dokan-seller-listing-wrap ul.dokan-seller-wrap li .store-footer .seller-avatar img {
  width: 100px !important;
  height: 100px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Visit Store text link */
body #dokan-seller-listing-wrap .store-footer a[title="Visit Store"] {
  text-decoration: none !important;
}

body #dokan-seller-listing-wrap .store-footer .ik-visit-store-text {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: #FFCC33 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border: none !important;
  padding: 8px 16px !important;
  transition: all 0.2s ease !important;
  display: inline-block !important;
}

body #dokan-seller-listing-wrap .store-footer a[title="Visit Store"]:hover .ik-visit-store-text {
  background: #FFDB66 !important;
}

/* Unicode star ratings (replaces dashicons) */
body.page .entry-content .ik-star {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-style: normal !important;
}

body.page .entry-content .ik-star.empty {
  color: #D0D0CE !important;
  -webkit-text-fill-color: #D0D0CE !important;
}

/* Visit Store button — gold filled CTA */
body #dokan-seller-listing-wrap .store-footer a.dokan-btn-theme {
  background: #FFCC33 !important;
  background-color: #FFCC33 !important;
  border: 1px solid #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  box-shadow: none !important;
  font-family: var(--ik-font-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 8px 16px !important;
  border-radius: 0 !important;
  text-decoration: none !important;
}

body #dokan-seller-listing-wrap .store-footer a.dokan-btn-theme:hover {
  background: #E6B800 !important;
  border-color: #E6B800 !important;
}

/* Visit Store round arrow icon — gold circle */
body #dokan-seller-listing-wrap .store-footer a[title="Visit Store"] .dokan-btn-round {
  background: #FFCC33 !important;
  background-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  box-shadow: none !important;
}

body #dokan-seller-listing-wrap .store-footer a[title="Visit Store"]:hover .dokan-btn-round {
  background: #E6B800 !important;
  background-color: #E6B800 !important;
}

/* Follow button — gray outline, secondary action */
body #dokan-seller-listing-wrap .store-footer button.dokan-follow-store-button,
body #dokan-seller-listing-wrap .store-footer .dokan-follow-store-button {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  box-shadow: none !important;
}

body #dokan-seller-listing-wrap .store-footer button.dokan-follow-store-button,
body #dokan-seller-listing-wrap .store-footer .dokan-follow-store-button {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid #D0D0CE !important;
  border-color: #D0D0CE !important;
  border-radius: 0 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 8px 16px !important;
  cursor: pointer !important;
  font-family: var(--ik-font-body) !important;
  box-shadow: none !important;
}

#dokan-seller-listing-wrap .store-footer button.dokan-follow-store-button:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* 2026-05-17 EOD: this rule used to hide the Unfollow span unconditionally
   with !important, which won the cascade over Dokan's hover-show rule and
   caused text to disappear on hover when in Following state (Ruth flagged
   2026-05-17 11:31pm: "when i hover over FOLLOWING the text disappears
   into white"). The fix: scope the hide to NOT include the hover state,
   so Dokan's own hover-show rule wins on hover. */
#dokan-seller-listing-wrap .dokan-follow-store-button:not([data-status="following"]:hover) .dokan-follow-store-button-label-unfollow {
  display: none !important;
}

/* Explicit show/hide for the ended-auction Follow CTA on single-product.
   `:not([attr]:hover)` proved unreliable in this context (matches() returns
   false in real-time DOM state), so use the positive form: hide unfollow by
   default + show it on hover only when in following state, swap which label
   is visible. */
body.single-product button.ik-ended-follow-vendor-link .dokan-follow-store-button-label-unfollow {
  display: none !important;
}
body.single-product button.ik-ended-follow-vendor-link[data-status="following"]:hover .dokan-follow-store-button-label-unfollow {
  display: inline !important;
}
body.single-product button.ik-ended-follow-vendor-link[data-status="following"]:hover .dokan-follow-store-button-label-current {
  display: none !important;
}

/* --- Pagination (sellers page + anywhere Dokan paginates) --- */
.pagination-container {
  margin-top: 32px !important;
  text-align: center !important;
}

.pagination-container .pagination {
  list-style: none !important;
  display: flex !important;
  gap: 4px !important;
  padding: 0 !important;
  margin: 0 !important;
  justify-content: center !important;
}

.pagination-container .pagination li {
  list-style: none !important;
}

body:not(.page-id-1381) #content .pagination-container .page-numbers,
body:not(.page-id-1381) #content .pagination-container a.page-numbers,
body:not(.page-id-1381) #content .pagination-container a.page-numbers:link,
body:not(.page-id-1381) #content .pagination-container a.page-numbers:visited {
  display: inline-block !important;
  padding: 8px 14px !important;
  border: 1px solid #D0D0CE !important;
  background: #FFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  text-decoration: none !important;
  font-size: 13px !important;
  font-family: var(--ik-font-body) !important;
  transition: all 0.2s ease !important;
}

body:not(.page-id-1381) #content .pagination-container .page-numbers.current {
  background: #FFCC33 !important;
  border-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-weight: 700 !important;
}

body:not(.page-id-1381) #content .pagination-container a.page-numbers:hover:not(.current) {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Dokan store-page pagination — match /sellers/ + /auctions/ canonical.
   Individual store pages render `.dokan-pagination-container > ul.dokan-pagination
   > li > a` (anchors have no .page-numbers class), so the rules above don't catch
   them. Re-style with the same tokens: white bg / #333 text / #D0D0CE border /
   8px 14px padding / sharp corners; #FFCC33 active state; #9A7E2E hover. */
.dokan-pagination-container {
  margin-top: 32px !important;
  text-align: center !important;
}

ul.dokan-pagination {
  list-style: none !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px !important;
  padding: 0 !important;
  margin: 0 !important;
  justify-content: center !important;
  border-radius: 0 !important;
}

ul.dokan-pagination li {
  list-style: none !important;
  display: inline-block !important;
  margin: 0 !important;
}

#content .dokan-pagination-container ul.dokan-pagination li a,
#content .dokan-pagination-container ul.dokan-pagination li a:link,
#content .dokan-pagination-container ul.dokan-pagination li a:visited {
  display: inline-block !important;
  padding: 8px 14px !important;
  border: 1px solid #D0D0CE !important;
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  text-decoration: none !important;
  font-size: 13px !important;
  font-family: var(--ik-font-body) !important;
  border-radius: 0 !important;
  min-width: 36px !important;
  text-align: center !important;
  line-height: 1.4 !important;
  transition: all 0.2s ease !important;
}

#content .dokan-pagination-container ul.dokan-pagination li.active a,
#content .dokan-pagination-container ul.dokan-pagination li.active a:link,
#content .dokan-pagination-container ul.dokan-pagination li.active a:visited {
  background: #FFCC33 !important;
  border-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-weight: 700 !important;
}

#content .dokan-pagination-container ul.dokan-pagination li.disabled a,
#content .dokan-pagination-container ul.dokan-pagination li.disabled a:link {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

#content .dokan-pagination-container ul.dokan-pagination li:not(.active):not(.disabled) a:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Founding Keepers section (sellers page) — leather texture, full-width breakout.
   All selectors must beat: body:not(.page-id-1381):not(.page-id-2594) .entry-content h2/p { color: dark } */
/* --- Founding Keepers section — NUCLEAR specificity to beat all white-page overrides.
   The white-page h2 rule has specificity (0,5,2). We need (0,6+,x) to win. */
body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section {
  background-color: #1A120B !important;
  background-image: url('../images/texture-leather.png') !important;
  background-repeat: repeat !important;
  padding: clamp(3rem, 6vw, 4rem) clamp(1rem, 4vw, 2rem) !important;
  margin-top: 48px !important;
  margin-bottom: -60px !important;
  width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin-left: -50vw !important;
  text-align: center !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section h2.ik-fk-heading {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-family: var(--ik-font-body) !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  font-weight: 600 !important;
  font-style: normal !important;
  margin: 0 0 8px !important;
  text-align: center !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section p.ik-fk-subtitle,
body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section p.ik-fk-credit {
  color: #AAAAAA !important;
  -webkit-text-fill-color: #AAAAAA !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-style: normal !important;
  margin: 0 0 24px !important;
  text-align: center !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section p.ik-fk-credit {
  margin: 24px 0 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section .ik-fk-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  max-width: 900px !important;
  margin: 0 auto !important;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%) !important;
  mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%) !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section .ik-fk-logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1.5rem 2rem !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section .ik-fk-logo img {
  max-height: 100px !important;
  max-width: 180px !important;
  width: auto !important;
  height: auto !important;
  opacity: 0.35 !important;
  filter: grayscale(100%) brightness(2) !important;
  transition: all 0.4s ease !important;
}

body:not(.page-id-1381):not(.page-id-2594) .entry-content .ik-founding-keepers-section .ik-fk-logo img:hover {
  opacity: 1 !important;
  filter: grayscale(0%) brightness(1) !important;
}

/* Responsive: seller grid.
   body prefix + !important in every media query to beat Dokan's tablet rules. */
@media (max-width: 991px) and (min-width: 769px) {
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap li,
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.coloum-3,
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.dokan-single-seller,
  body ul.dokan-seller-wrap li.dokan-single-seller {
    width: auto !important;
    float: none !important;
    margin-bottom: 0 !important;
  }
}

@media (max-width: 768px) {
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap li,
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.coloum-3,
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap li.dokan-single-seller,
  body ul.dokan-seller-wrap li.dokan-single-seller {
    width: auto !important;
    float: none !important;
    margin-bottom: 0 !important;
  }
  .ik-sellers-notice {
    flex-direction: column !important;
    text-align: center !important;
  }
}

@media (max-width: 480px) {
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap {
    grid-template-columns: 1fr !important;
  }
}

/* --- Dokan Individual Store Page --- */
.dokan-store-wrap {
  background: #FFFFFF !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 32px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Force all store page text to dark-on-white */
.dokan-store-wrap,
.dokan-store-wrap p,
.dokan-store-wrap span,
.dokan-store-wrap div,
.dokan-store-wrap li,
.dokan-store-wrap label,
.dokan-store-wrap h1,
.dokan-store-wrap h2,
.dokan-store-wrap h3 {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-family: var(--ik-font-body) !important;
  font-style: normal !important;
}

.dokan-store-wrap h1,
.dokan-store-wrap h2,
.dokan-store-wrap h3 {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

.dokan-store-wrap a:not(.dokan-btn) {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

.dokan-store-wrap a:not(.dokan-btn):hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

#dokan-primary.dokan-single-store {
  flex: 1 !important;
  min-width: 0 !important;
}

#dokan-secondary.dokan-store-sidebar {
  width: 240px !important;
  flex-shrink: 0 !important;
  order: -1 !important;
}

/* Sidebar widgets */
#dokan-secondary .widget-title {
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin: 0 0 12px !important;
  font-style: normal !important;
}

#dokan-secondary .widget {
  margin-bottom: 28px !important;
}

#dokan-secondary .store-cat-stack-dokan ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#dokan-secondary .store-cat-stack-dokan li {
  margin: 0 !important;
  padding: 0 !important;
}

#dokan-secondary .store-cat-stack-dokan a {
  display: block !important;
  padding: 8px 0 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-size: 14px !important;
  text-decoration: none !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

#dokan-secondary .dokan-form-control {
  width: 100% !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  padding: 10px 12px !important;
  font-size: 14px !important;
  font-family: var(--ik-font-body) !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  background: #FFFFFF !important;
  box-sizing: border-box !important;
  margin-bottom: 8px !important;
}

#dokan-secondary .dokan-form-control:focus {
  border-color: #9A7E2E !important;
  outline: none !important;
}

#dokan-secondary .seller-form ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#dokan-secondary textarea.dokan-form-control {
  resize: vertical !important;
  min-height: 100px !important;
}

.dokan-profile-frame-wrapper .profile-frame {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  margin-bottom: 28px !important;
}

.profile-info-box .profile-info-img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  display: block !important;
}

.profile-info-summery-wrapper {
  position: relative !important;
  padding: 0 20px 20px !important;
  text-align: center !important;
}

.profile-info-summery {
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding-top: 0 !important;
  width: 100% !important;
}

.profile-info-head {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
}

/* Dokan layout2 already applies margin-top: -75px on .profile-info-summery
   for the 50/50 avatar overlap — no additional negative margin needed. */

.profile-img-circle img {
  width: 140px !important;
  height: 140px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 5px solid #FFFFFF !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2) !important;
  display: block !important;
}

.profile-info {
  text-align: center !important;
  padding-top: 4px !important;
}

.profile-info .store-name {
  font-family: var(--ik-font-body) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  margin: 12px 0 8px !important;
  font-style: normal !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.dokan-store-info {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 4px 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.dokan-store-info li {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 13px !important;
  font-family: var(--ik-font-body) !important;
  list-style: none !important;
  margin-bottom: 0 !important;
  float: none !important;
  margin-right: 0 !important;
}

/* Dot separators between items — centered in the gap */
.dokan-store-info li::after {
  content: '·' !important;
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  position: relative !important;
  top: 1px !important;
  margin: 0 8px !important;
}

.dokan-store-info li:last-child::after {
  content: '' !important;
  margin: 0 !important;
}

.dokan-store-info li a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

.dokan-store-info li i {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  margin-right: 8px !important;
  width: 16px !important;
}

/* Store tabs — MUST match auction-item.html tab pattern exactly */
.dokan-store-tabs ul,
.dokan-store-tabs .dokan-list-inline {
  display: flex !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 0 28px !important;
  list-style: none !important;
  border-bottom: 2px solid #E8E8E6 !important;
}

.dokan-store-tabs ul li {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-bottom: none !important;
  margin: 0 0 -2px 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  list-style: none !important;
  transition: all 0.2s ease !important;
}

.dokan-store-tabs ul li.active {
  background: #F8F8F6 !important;
  border-color: #E8E8E6 !important;
  border-bottom: 2px solid #F8F8F6 !important;
}

.dokan-store-tabs ul li:not(.active):hover {
  background: rgba(0, 0, 0, 0.02) !important;
}

.dokan-store-tabs ul li a {
  display: block !important;
  padding: 12px 24px !important;
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.dokan-store-tabs ul li.active a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

/* Store product grid — override dark WooCommerce product defaults.
   .woocommerce ul.products li.product sets dark bg globally (line ~2121).
   Must beat that specificity for white content pages. */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce ul.products li.product,
.dokan-store-wrap .woocommerce ul.products li.product,
.seller-items .product {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce ul.products li.product:hover,
.dokan-store-wrap .woocommerce ul.products li.product:hover,
.seller-items .product:hover {
  border-color: rgba(154, 126, 46, 0.3) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1) !important;
}

/* Seller items card grid — uses .ik-ac-card pattern (already styled globally).
   2 columns because the sidebar narrows the content area. */
.seller-items .ik-auction-card-grid {
  margin-top: 8px !important;
  grid-template-columns: repeat(2, 1fr) !important;
}

.seller-items .woocommerce-result-count {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 14px !important;
  margin-bottom: 20px !important;
  font-family: var(--ik-font-body) !important;
}

/* Responsive: seller grids + store page
   921px = Astra tablet breakpoint — sidebar stacks below content */
@media (max-width: 921px) {
  .dokan-store-wrap {
    flex-direction: column !important;
  }
  #dokan-secondary.dokan-store-sidebar {
    width: 100% !important;
    order: 2 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   FUTURE-PROOFING — Defensive Styles for Plugin Defaults
   Covers states/elements users may encounter that aren't in mockups:
   form validation errors, modals, 404, search, breadcrumbs,
   reviews, related products, mini-cart, shipping calc, loading states.
   ══════════════════════════════════════════════════════════════ */

/* --- Form validation errors (field-level) --- */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row.woocommerce-invalid input,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row.woocommerce-invalid select,
body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row.woocommerce-invalid textarea {
  border-color: #DC3232 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row.woocommerce-invalid label {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
}

.woocommerce .form-row .woocommerce-password-strength {
  font-size: 12px !important;
  padding: 6px 10px !important;
  margin-top: 4px !important;
  text-align: center !important;
}

.woocommerce .form-row .woocommerce-password-strength.strong {
  color: #16A34A !important;
  -webkit-text-fill-color: #16A34A !important;
  border-color: #16A34A !important;
}

.woocommerce .form-row .woocommerce-password-strength.short,
.woocommerce .form-row .woocommerce-password-strength.bad {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  border-color: #DC3232 !important;
}

.woocommerce .form-row .woocommerce-password-strength.good {
  color: #E6B800 !important;
  -webkit-text-fill-color: #E6B800 !important;
  border-color: #E6B800 !important;
}

/* --- Error notices (payment failed, invalid coupon, etc.) --- */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-error {
  background: #FDF2F2 !important;
  border: 1px solid #DC3232 !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  margin-bottom: 20px !important;
  list-style: none !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-error li {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  font-size: 14px !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-error a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: underline !important;
}

/* --- Stripe payment errors --- */
.woocommerce-checkout .stripe-source-errors,
.woocommerce-checkout .wc-stripe-error,
.woocommerce-checkout .woocommerce-SavedPaymentMethods-saveNew + .wc-stripe-error {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  font-size: 13px !important;
  padding: 8px 0 !important;
}

/* --- Lost password / Reset password page --- */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-ResetPassword {
  max-width: 480px !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-ResetPassword p {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

/* --- 404 page --- */
.error-404 .page-content {
  text-align: center !important;
  padding: 60px 20px !important;
}

body:not(.page-id-1381):not(.page-id-2594) .error-404 .page-content h1,
body:not(.page-id-1381):not(.page-id-2594) .error-404 .entry-title {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 2rem !important;
}

body:not(.page-id-1381):not(.page-id-2594) .error-404 .page-content p {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .error-404 .search-form input[type="search"] {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 10px 14px !important;
}

body:not(.page-id-1381):not(.page-id-2594) .error-404 .search-form button,
body:not(.page-id-1381):not(.page-id-2594) .error-404 .search-form input[type="submit"] {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  padding: 10px 20px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  cursor: pointer !important;
}

/* --- Search results page --- */
body.search-results #content .ast-container {
  background: #FFFFFF !important;
}

body.search-results .entry-title a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

body.search-results .entry-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

body.search-results .entry-content,
body.search-results .entry-summary {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

body.search-results .page-numbers {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #D0D0CE !important;
  padding: 8px 14px !important;
  margin: 0 2px !important;
}

body.search-results .page-numbers.current {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border-color: #FFCC33 !important;
  font-weight: 700 !important;
}

/* --- Breadcrumbs (WooCommerce + Astra) --- */
.woocommerce-breadcrumb,
.ast-breadcrumbs-wrapper,
nav.woocommerce-breadcrumb {
  font-size: 12px !important;
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  padding: 12px 0 !important;
  margin-bottom: 8px !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-breadcrumb a,
body:not(.page-id-1381):not(.page-id-2594) .ast-breadcrumbs-wrapper a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-breadcrumb a:hover,
body:not(.page-id-1381):not(.page-id-2594) .ast-breadcrumbs-wrapper a:hover {
  color: #7A6420 !important;
  -webkit-text-fill-color: #7A6420 !important;
}

/* --- Product reviews (if enabled later) --- */
body:not(.page-id-1381):not(.page-id-2594) #reviews #comments {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #reviews .comment-text {
  border: none !important;
  border-radius: 0 !important;
  padding: 16px 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #reviews .comment-text .meta {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-size: 12px !important;
}

body:not(.page-id-1381):not(.page-id-2594) #reviews .comment-text .description p {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #review_form #respond .comment-reply-title {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 16px !important;
  font-weight: 600 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #review_form textarea {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border-radius: 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) #review_form .submit {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  padding: 12px 24px !important;
  cursor: pointer !important;
}

/* --- Related products / Upsells / Cross-sells --- */
body:not(.page-id-1381):not(.page-id-2594) .related.products > h2,
body:not(.page-id-1381):not(.page-id-2594) .upsells.products > h2,
body:not(.page-id-1381):not(.page-id-2594) .cross-sells > h2 {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  margin-bottom: 16px !important;
}

/* --- Mini-cart widget (header dropdown) --- */
.ast-site-header-cart .widget_shopping_cart,
.ast-site-header-cart .ast-site-header-cart-data .widget_shopping_cart {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.15) !important;
  min-width: 360px !important;
  max-width: 400px !important;
}

/* Cart list — remove default list styling */
.ast-site-header-cart .woocommerce-mini-cart,
.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

/* Each cart item — image absolutely positioned as left column, text stack as right column.
   Image (48px) at left:16px top:14px. Right column starts at 16+48+10=74px. */
.ast-site-header-cart .woocommerce-mini-cart .mini_cart_item,
.ast-site-header-cart .widget_shopping_cart .mini_cart_item,
.ast-site-header-cart-data .mini_cart_item,
.widget_shopping_cart_content .mini_cart_item {
  border-bottom: 1px solid #F0F0EE !important;
  padding: 14px 16px 14px 74px !important;
  position: relative !important;
  display: block !important;
  min-height: 76px !important;
  box-sizing: border-box !important;
}

/* Remove button (X) — top right corner, absolutely positioned. Sharp, no circle. */
.ast-site-header-cart .mini_cart_item > a.remove,
.ast-site-header-cart .mini_cart_item > a.remove_from_cart_button {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  width: 18px !important;
  height: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0.45 !important;
  transition: opacity 0.2s ease, color 0.2s ease !important;
  padding: 0 !important;
  z-index: 2 !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  font-size: 0 !important;  /* hide any text content */
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Hide Astra's default circle-with-x SVG; render a plain × via CSS instead */
.ast-site-header-cart .mini_cart_item > a.remove svg,
.ast-site-header-cart .mini_cart_item > a.remove_from_cart_button svg {
  display: none !important;
}

.ast-site-header-cart .mini_cart_item > a.remove::after,
.ast-site-header-cart .mini_cart_item > a.remove_from_cart_button::after {
  content: '×' !important;
  font-size: 18px !important;
  line-height: 1 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-weight: 400 !important;
  display: block !important;
}

.ast-site-header-cart .mini_cart_item > a.remove:hover,
.ast-site-header-cart .mini_cart_item > a.remove_from_cart_button:hover {
  opacity: 1 !important;
}

.ast-site-header-cart .mini_cart_item > a.remove:hover::after,
.ast-site-header-cart .mini_cart_item > a.remove_from_cart_button:hover::after {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
}

/* Product link — title text only (image is absolutely positioned at .mini_cart_item left) */
.mini_cart_item > a:not(.remove):not(.remove_from_cart_button) {
  display: block !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  padding-right: 24px !important;
  margin: 0 0 4px 0 !important;
}

/* Product thumbnail — absolutely positioned at left, vertically centered with the text stack.
   top:50% + translateY(-50%) is robust regardless of which ancestor becomes the containing block. */
.mini_cart_item img,
.mini_cart_item img.wp-post-image,
.mini_cart_item a img {
  position: absolute !important;
  left: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 48px !important;
  height: 48px !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  border: 1px solid #F0F0EE !important;
  background: #F8F8F6 !important;
  float: none !important;
  margin: 0 !important;
  display: block !important;
  flex-shrink: 0 !important;
}

/* Vendor variation info — sits directly below title, no extra indent (item padding handles it) */
.mini_cart_item .variation {
  overflow: hidden !important;
  margin: 0 0 2px 0 !important;
  padding: 0 !important;
  border: none !important;
  list-style: none !important;
}

.mini_cart_item .variation dt,
.mini_cart_item .variation dd {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  font-size: 11px !important;
  color: #888888 !important;
  -webkit-text-fill-color: #888888 !important;
  font-weight: 400 !important;
}

.mini_cart_item .variation dt {
  margin-right: 4px !important;
}

.mini_cart_item .variation dd p {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Quantity + price — directly below vendor row, tight stack */
.mini_cart_item .quantity {
  display: block !important;
  padding: 0 !important;
  margin: 2px 0 0 0 !important;
  border: none !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

/* Subtotal row */
.ast-site-header-cart .woocommerce-mini-cart__total,
.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__total {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  border-top: 1px solid #E8E8E6 !important;
  padding: 12px 16px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.ast-site-header-cart .woocommerce-mini-cart__total .amount {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 700 !important;
}

/* Buttons — stacked, full width */
.ast-site-header-cart .woocommerce-mini-cart__buttons,
.ast-site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons {
  padding: 12px 16px 16px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

/* View Cart button — gold filled, sharp corners (style guide: border-radius 0 on all buttons) */
.ast-site-header-cart .woocommerce-mini-cart__buttons .button.wc-forward,
.ast-site-header-cart .widget_shopping_cart .button.wc-forward,
p.woocommerce-mini-cart__buttons .button.wc-forward {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  padding: 12px 20px !important;
  text-align: center !important;
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
}

.ast-site-header-cart .woocommerce-mini-cart__buttons .button.wc-forward:hover,
.ast-site-header-cart .widget_shopping_cart .button.wc-forward:hover,
p.woocommerce-mini-cart__buttons .button.wc-forward:hover {
  background: #E6B800 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  transform: translateY(-1px) !important;
}

/* Checkout button — outlined */
.ast-site-header-cart .woocommerce-mini-cart__buttons .button.checkout.wc-forward,
.ast-site-header-cart .widget_shopping_cart .button.checkout.wc-forward,
p.woocommerce-mini-cart__buttons .button.checkout.wc-forward {
  background: transparent !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.ast-site-header-cart .woocommerce-mini-cart__buttons .button.checkout.wc-forward:hover,
.ast-site-header-cart .widget_shopping_cart .button.checkout.wc-forward:hover,
p.woocommerce-mini-cart__buttons .button.checkout.wc-forward:hover {
  background: #F5F5F3 !important;
  border-color: #BBBBBB !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* --- Shipping calculator (cart page) --- */
body:not(.page-id-1381):not(.page-id-2594) .shipping-calculator-form {
  padding: 12px 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .shipping-calculator-form select,
body:not(.page-id-1381):not(.page-id-2594) .shipping-calculator-form input {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 8px 12px !important;
  border-radius: 0 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .shipping-calculator-form button {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  padding: 10px 20px !important;
  margin-top: 8px !important;
  cursor: pointer !important;
}

/* --- Dokan modals (store support, share store) --- */
.iziModal {
  border-radius: 0 !important;
}

.iziModal .iziModal-header {
  background: #1A1A1A !important;
}

.iziModal .iziModal-header .iziModal-header-title {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-family: var(--ik-font-body) !important;
}

.iziModal .iziModal-content {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.iziModal .iziModal-content input,
.iziModal .iziModal-content textarea,
.iziModal .iziModal-content select {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border-radius: 0 !important;
  padding: 10px 12px !important;
}

.iziModal .iziModal-content label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 13px !important;
}

.iziModal .iziModal-content button,
.iziModal .iziModal-content input[type="submit"] {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  padding: 12px 24px !important;
  cursor: pointer !important;
}

/* --- Coupon applied / discount row in cart --- */
body:not(.page-id-1381):not(.page-id-2594) .cart-discount td {
  color: #16A34A !important;
  -webkit-text-fill-color: #16A34A !important;
}

body:not(.page-id-1381):not(.page-id-2594) .cart-discount .woocommerce-remove-coupon {
  color: #DC3232 !important;
  -webkit-text-fill-color: #DC3232 !important;
  font-size: 12px !important;
}

/* --- WooCommerce pagination (all pages) --- */
.woocommerce nav.woocommerce-pagination ul {
  border: none !important;
  display: flex !important;
  justify-content: center !important;
  gap: 4px !important;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #D0D0CE !important;
  padding: 8px 14px !important;
  background: #FFFFFF !important;
  min-width: 36px !important;
  text-align: center !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border-color: #FFCC33 !important;
  font-weight: 700 !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Disabled / Loading states --- */
.woocommerce .blockUI.blockOverlay {
  background: rgba(255,255,255,0.6) !important;
}

.woocommerce .blockUI.blockOverlay::before {
  border-color: #FFCC33 transparent transparent transparent !important;
}

.woocommerce .loader::before,
.woocommerce .loader::after {
  border-color: #FFCC33 transparent transparent transparent !important;
}

button[disabled],
.woocommerce button[disabled],
.woocommerce input[disabled] {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}

/* --- Dokan vendor registration / Become a Vendor --- */
body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap {
  max-width: 600px !important;
}

body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap h2 {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 18px !important;
  font-weight: 600 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap input[type="text"],
body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap input[type="email"],
body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap input[type="password"],
body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap input[type="url"],
body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap select,
body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap textarea {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 10px 12px !important;
  border-radius: 0 !important;
  width: 100% !important;
}

body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap label {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

body:not(.page-id-1381):not(.page-id-2594) .dokan-vendor-registration-wrap .dokan-btn-theme {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  padding: 12px 24px !important;
}

/* --- PhotoSwipe lightbox --- */
.pswp__bg {
  background: rgba(0,0,0,0.9) !important;
}

.pswp__top-bar,
.pswp__caption {
  background-color: rgba(0,0,0,0.5) !important;
}

.pswp__button {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* --- Select2 dropdowns (global) --- */
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

.select2-container--default .select2-results__option {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  padding: 8px 12px !important;
}

.select2-container--default .select2-selection--single {
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  height: auto !important;
  padding: 6px 10px !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

.select2-dropdown {
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
}

/* --- Terms & Conditions checkbox area (checkout) --- */
body:not(.page-id-1381):not(.page-id-2594) .woocommerce-terms-and-conditions-wrapper {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 13px !important;
}

body:not(.page-id-1381):not(.page-id-2594) .woocommerce-terms-and-conditions-wrapper a {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* --- Focus states (accessibility) --- */
body:not(.page-id-1381):not(.page-id-2594) input:focus,
body:not(.page-id-1381):not(.page-id-2594) select:focus,
body:not(.page-id-1381):not(.page-id-2594) textarea:focus {
  outline: 2px solid #9A7E2E !important;
  outline-offset: -2px !important;
}

body:not(.page-id-1381):not(.page-id-2594) a:focus-visible {
  outline: 2px solid #9A7E2E !important;
  outline-offset: 2px !important;
}


/* ══════════════════════════════════════════════════════════════
   COMPREHENSIVE RESPONSIVE OVERRIDES
   Consolidates all mobile/tablet responsive rules in one place.
   Breakpoints: 921px (Astra tablet), 768px (mobile), 480px (small)
   ══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   PAGE 7 — Cart / Checkout / Order success
   Body classes: body.woocommerce-cart, body.woocommerce-checkout
   STRICT FUNCTIONAL SAFETY: Stripe iframe / payment fields / auction
   qty hidden inputs ALL LEFT ALONE.
   ══════════════════════════════════════════════════════════════ */

/* PROCEED TO CHECKOUT button — fix gold-on-gold (BLOCKER).
   White-page link rule has :link pseudo-class adding 0,1,0 specificity, so
   my override needs :link/:visited too to match. Plus #content for ID. */
body.woocommerce-cart a.checkout-button,
body.woocommerce-cart a.checkout-button:link,
body.woocommerce-cart a.checkout-button:visited,
body.woocommerce-cart #content a.checkout-button,
body.woocommerce-cart #content a.checkout-button:link,
body.woocommerce-cart #content a.checkout-button:visited,
body.woocommerce-cart #content a.checkout-button.button.alt,
body.woocommerce-cart #content a.checkout-button.button.alt:link,
body.woocommerce-cart #content a.checkout-button.button.alt:visited {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: #FFCC33 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}
body.woocommerce-cart a.checkout-button:hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Cart + Checkout h1 → gold-bar wayfinding. The h1.entry-title is in the
   page header area (outside the WC content flex), so this rule is safe to
   apply directly without breaking layout. */
body.woocommerce-cart h1.entry-title,
body.woocommerce-checkout h1.entry-title {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 32px 0 !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Cart totals card — heading sits inside white surface, no inner gray panel */
body.woocommerce-cart .cart_totals h2,
body.woocommerce-cart .cart_totals > h2 {
  background: transparent !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0 0 12px 0 !important;
  margin: 0 0 16px 0 !important;
  border: none !important;
  border-bottom: 1px solid #E8E8E6 !important;
}

/* Update Cart disabled cursor */
body.woocommerce-cart button[name="update_cart"][disabled],
body.woocommerce-cart button[name="update_cart"]:disabled {
  cursor: not-allowed !important;
}

/* Mobile cart: hide empty "QUANTITY:" row label for auction items where the
   qty input is hidden (max=1). FUNCTIONAL SAFETY: target only the visual
   ::before pseudo-element / wrapper td label, NEVER the input element. */
@media (max-width: 768px) {
  body.woocommerce-cart table.cart tr.cart_item td.product-quantity:has(input[type="hidden"])::before {
    display: none !important;
  }
  body.woocommerce-cart table.cart tr.cart_item td.product-quantity:has(input[type="hidden"]) {
    display: none !important;
  }
}

/* === Checkout body === */

/* Checkout form labels — 600 weight per spec */
body.woocommerce-checkout .woocommerce-billing-fields label,
body.woocommerce-checkout .woocommerce-additional-fields label,
body.woocommerce-checkout form.checkout label,
body.woocommerce-checkout form.checkout .form-row label {
  font-weight: 600 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 13px !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* Checkout section headings (BILLING DETAILS, ADDITIONAL INFORMATION,
   YOUR ORDER) — 18-20px per spec, were 14px. */
body.woocommerce-checkout form.checkout h3,
body.woocommerce-checkout form.checkout #order_review_heading,
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
  font-size: 20px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  margin: 28px 0 16px 0 !important;
  padding: 0 0 8px 0 !important;
  border-bottom: 1px solid #E8E8E6 !important;
}


/* ══════════════════════════════════════════════════════════════
   PAGE 6 — My Account customer-side sub-pages
   Body class: body.woocommerce-account
   ══════════════════════════════════════════════════════════════ */

/* Form labels — 600 weight per spec (was 400 default) */
body.woocommerce-account .woocommerce-MyAccount-content label[for*="account_"],
body.woocommerce-account .woocommerce-MyAccount-content .form-row label,
body.woocommerce-account form.woocommerce-EditAccountForm label,
body.woocommerce-account form.edit-account label {
  font-weight: 600 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 13px !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* My Account gold-bar page title — injected by snippet "My Account Page Title (gold bar)".
   FULL-BLEED across viewport (universal rule: gold-bar headers always full-bleed).
   The h2 sits inside `.woocommerce` wrapper which is content-width 1200px and is a
   flex container. To avoid breaking flex layout, position the h2 absolutely so it
   takes itself out of flow, and add padding-top on the wrapper to reserve space.
   Scope tightly to page-id-1540: WC's [woocommerce_my_account] shortcode is also
   embedded on /register/ (1572) and /login/ (1569), which set body.woocommerce-account
   too — without the page-id constraint, the 109px scaffolding + injected gold-bar fire
   on those pages and stack on top of their own page H1, doubling the header. */
body.woocommerce-account.page-id-1540 .entry-content > .woocommerce {
  position: relative !important;
  padding-top: 109px !important; /* bar height ~77px + 32px gap below */
}

body.woocommerce-account .ik-myaccount-page-title,
body.woocommerce-account h2.ik-myaccount-page-title {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  /* Take out of flex flow and span full viewport */
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  right: auto !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 !important;
  margin-left: -50vw !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Logged-out /my-account/ (LOGIN + REGISTER stacked page) — same root cause as
   lost-password below: no dashboard <h2.ik-myaccount-page-title> is rendered
   when the user isn't logged in, so inject the gold-bar via ::before on the
   wrapper. :not(.woocommerce-lost-password) prevents conflict with the rule
   below; :not(.logged-in) keeps it off the dashboard. page-id-1540 scoping
   prevents firing on /register/ + /login/ which use the same WC shortcode
   and inherit body.woocommerce-account (matches the scaffolding rule above). */
body.woocommerce-account.page-id-1540:not(.logged-in):not(.woocommerce-lost-password) .entry-content > .woocommerce::before {
  content: "MY ACCOUNT" !important;
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 0 0 -50vw !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Lost password endpoints — the dashboard-injected <h2.ik-myaccount-page-title>
   isn't rendered on these states, so inject the gold-bar header via ::before
   on the .woocommerce wrapper. Same scaffolding (.woocommerce position:relative
   + padding-top:109px) handles the layout, so this overlays correctly without
   shifting content. Endpoint-specific class woocommerce-lost-password covers
   all three states: request form, reset-link-sent confirmation, reset-form. */
body.woocommerce-lost-password .entry-content > .woocommerce::before {
  content: "PASSWORD RESET" !important;
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 0 0 -50vw !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Mobile + tablet: all my-account form inputs + primary buttons full-width.
   Covers lost-password (text/password inputs + RESET PASSWORD/SAVE button),
   login (username/password + LOG IN), edit-account (text/email/password +
   SAVE CHANGES), edit-address (text/tel/select + SAVE ADDRESS), and any
   other WC account form. Mobile best-practice: full-width tap targets. */
@media (max-width: 768px) {
  body.woocommerce-account form input[type="text"],
  body.woocommerce-account form input[type="email"],
  body.woocommerce-account form input[type="password"],
  body.woocommerce-account form input[type="tel"],
  body.woocommerce-account form input[type="search"],
  body.woocommerce-account form select,
  body.woocommerce-account form textarea,
  body.woocommerce-account form button[type="submit"],
  body.woocommerce-account form button.button,
  body.woocommerce-account form input[type="submit"] {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    display: block !important;
  }
}

/* (Removed prior .entry-content / .woocommerce overrides that broke the
   nav+content flex layout. Astra's defaults handle the wrapper correctly.) */


/* ══════════════════════════════════════════════════════════════
   PAGE 5 — Public Sellers list (page-id-1386) + Public Store browse
   (body.dokan-store) — consumer-facing only. Vendor dashboard is
   out of scope per feedback_consumer_facing_only.md.
   ══════════════════════════════════════════════════════════════ */

/* Sellers page H1 → gold-bar wayfinding (matches Page 3 auctions H1 fix) */
body.page-id-1386 h1.wp-block-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
  display: block !important;
}

/* Sellers page entry-content: full-bleed white so the gold bar can extend edge-to-edge */
body.page-id-1386 .entry-content {
  background: #FFFFFF !important;
  padding: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
}

/* 2026-05-17 Ruth: spacing below the dark notice was asymmetric — 24px
   gap above, 56px below. Root cause: .entry-content is display:flex with
   CSS `order:` reordering children (the dark <p> appears in DOM BEFORE
   the .wp-block-buttons but renders AFTER it visually via order:-7 vs
   order:-8). So `.wp-block-buttons + p` doesn't match. Just target the
   direct <p> children and the filter wrapper directly. */
/* Spacing fix moved to JS (snippet 17 wp_footer hook for /sellers/).
   Two CSS attempts at (1,2,2) and (2,2,2) + !important both lost the
   cascade — something injects after the external sheet with equal-or-
   higher specificity. JS sets `element.style.setProperty('margin-bottom',
   '0', 'important')` which always wins. */
/* Filter row needs its top margin to stay (24px) — that's the symmetric gap
   matching the H1→notice gap above. No override needed there. */

/* /sellers/ sort dropdown — only thing scoped here is the .item slot styling
   (the Dokan-injected `.item` wrapper around the dropdown needs flex/center
   to align horizontally with the sibling search input's slot). All visual
   dropdown styling is now in the global ik-filter-dropdown rule above. */
body.page-id-1386 #dokan-store-listing-filter-wrap .right .item.ik-sellers-sort-slot {
  display: flex !important;
  align-items: center !important;
  height: 36px !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}
/* Dokan's `.item` wrapper has a `::after { content: "+" }` rule that
   creates a visible "+" after our dropdown. Kill it (the dropdown has its
   own caret). */
body.page-id-1386 .item.ik-sellers-sort-slot::after {
  content: none !important;
  display: none !important;
}
/* Pin the trigger height to 36px to match the sibling search input.
   Must force box-sizing:border-box — Astra cascades content-box onto
   summaries, which would inflate 36px to 54px with padding+border. */
body.page-id-1386 details.ik-filter-dropdown.ik-sellers-sort .ik-filter-dropdown-trigger {
  height: 36px !important;
  box-sizing: border-box !important;
}

/* 2026-05-17 Ruth: Dokan store-status icon was rendering 0×0 (broken).
   Root cause: Dokan ships Font Awesome 5.0.1 which is missing the
   ::before content rules for some `.fas` icons — `<i class="fas fa-
   shopping-cart">` and `.fas.fa-angle-down` compute `content: normal`
   (empty) and collapse to zero size. Customers see just "Store is open"
   / "Store is closed" text with a broken icon mark beside it.
   Fix: replace with inline SVG via CSS background (font-independent).
   Applies on any Dokan storefront where Dokan emits this widget. */
body.dokan-store li.dokan-store-open-close > i.fas.fa-shopping-cart,
body.dokan-store li.dokan-store-open-close span.fas.fa-angle-down {
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
  background: center/contain no-repeat !important;
  vertical-align: -2px !important;
  margin-right: 6px !important;
  color: transparent !important;
}
body.dokan-store li.dokan-store-open-close > i.fas.fa-shopping-cart {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' fill='%239A7E2E'><path d='M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z'/></svg>") !important;
}
body.dokan-store li.dokan-store-open-close span.fas.fa-angle-down {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%239A7E2E'><path d='M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/></svg>") !important;
  width: 12px !important;
  height: 12px !important;
  margin-left: 6px !important;
  margin-right: 0 !important;
}

/* 2026-05-17 EOD: HIDE the Dokan metadata icons next to address / email /
   rating / store hours. Ruth's call (2026-05-17 11:07pm): "I'd rather
   prefer that they not be there, actually coz I want the icons below to
   be the focus" — the action icons (Follow/Chat/Share) are the intended
   primary CTAs on the profile frame; the metadata pins compete visually.
   Earlier same-night fix made them VISIBLE for the first time (Dokan's
   FA 5.0.1 was rendering them 0×0); this revert hides them again.
   Text content (Colorado, US / email / 5.00 rating) stays visible. */
body.dokan-store li.dokan-store-address i.fas.fa-map-marker-alt,
body.dokan-store li.dokan-store-email i.far.fa-envelope,
body.dokan-store li.dokan-store-rating i.fas.fa-star,
body.dokan-store .store-times-heading i.fas.fa-calendar-day,
body.dokan-store li.dokan-store-open-close i.fas.fa-shopping-cart,
body.dokan-store li.dokan-store-open-close > i.fas.fa-shopping-cart {
  display: none !important;
}

/* 2026-05-19 Ruth: /sellers/ vendor card "Closed" status pill — Dokan ships
   gray text (rgb(170,170,170)) on semi-transparent black (rgba(0,0,0,0.5))
   which is gray-on-gray and unreadable. Force white text for contrast.
   Open status stays Dokan default (typically green text). */
.dokan-store-is-open-close-status.dokan-store-is-closed-status,
span.dokan-store-is-closed-status {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* 2026-05-19 Ruth: the Store Hours popout (#vendor-store-times) was falling
   BEHIND the star (watchlist) icons of the auction cards below it. Lift the
   popout above the entire card grid with a z-index that beats any conceivable
   card-stack value. First try at z-index:50 didn't beat the watchlist star
   pills — bumping to 9999 + ensuring stacking context with isolation. */
body.dokan-store #vendor-store-times,
body.dokan-store .store-open-close-notice #vendor-store-times {
  z-index: 9999 !important;
  position: absolute !important;
  isolation: isolate !important;
}

/* 2026-05-19 Ruth (revised): the FA chevron next to "Store is closed" was
   rendering as an empty 12x12 box (font-family cascade leaves it on Inter,
   not FontAwesome). First attempt used CSS-drawn border-arrow + rotate(45deg)
   but rotation looked off (pointed bottom-left / top-right diagonals instead
   of down/up). Replace with unicode chevron glyph emitted via ::before —
   universally rendered, perfectly aligned with surrounding text via
   vertical-align baseline + font-size match. */
body.dokan-store li.dokan-store-open-close .fas.fa-angle-down,
body.dokan-store li.dokan-store-open-close .fa-angle-down {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  border: none !important;
  background: none !important;
  transform: none !important;
  margin-left: 6px !important;
  /* 2026-05-19 Ruth: was vertical-align: middle which shifted the
     parent <li>'s baseline up by ~3px vs sibling "5.00 rating from 2
     reviews" <li>. Use baseline so "Store is closed" sits at the same
     y as the rating text. */
  vertical-align: baseline !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 10px !important;
  line-height: inherit !important;
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
/* Ensure the .dokan-store-open-close <li> sits at the same baseline as
   the .dokan-store-rating <li> beside it (Ruth 2026-05-19 tablet/mobile
   misalignment report). */
body.dokan-store li.dokan-store-open-close,
body.dokan-store .dokan-store-info li.dokan-store-open-close {
  margin-top: 0 !important;
  padding-top: 0 !important;
  line-height: inherit !important;
  vertical-align: baseline !important;
}
body.dokan-store li.dokan-store-open-close .fas.fa-angle-down::before,
body.dokan-store li.dokan-store-open-close .fa-angle-down::before {
  content: "\25BE" !important; /* ▾ down-pointing small triangle */
  display: inline-block !important;
  transition: transform 0.2s ease !important;
}
body.dokan-store li.dokan-store-open-close:hover .fa-angle-down::before,
body.dokan-store .store-open-close-notice:hover .fa-angle-down::before,
body.dokan-store li.dokan-store-open-close.open .fa-angle-down::before,
body.dokan-store .store-open-close-notice.open .fa-angle-down::before {
  content: "\25B4" !important; /* ▴ up-pointing small triangle */
}

/* 2026-05-17 EOD revised: Follow button MOVED out of action-icons row and
   styled as a text button in .ik-vendor-link-buttons row (alongside Reviews
   / About). Per Ruth (11:21pm): "make the follow button the same box icon
   and put it where the reviews and about are so that we can maintain the
   same design pattern... then we can also get rid of tooltips because chat
   and share is pretty universal."
   The heart-toggle SVG + action-icon tooltip CSS that used to live here
   have been REMOVED — both obsolete with the new design direction.
   JS in snippet 17 wp_footer moves the Follow button DOM node into
   .ik-vendor-link-buttons on storefront pages on load. */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button,
body.single-product button.ik-ended-follow-vendor-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  /* line-height matches sibling .ik-vendor-link-btn (1.2 = ~13.2px at 11px
     font) so the button is exactly the same height as Reviews/About.
     Without this Dokan's default 1.428 line-height made Follow 3px taller. */
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 8px 16px !important;
  /* No fixed height — natural height matches sibling .ik-vendor-link-btn
     (Reviews/About at h=31) for visual polish. min-width ensures the
     rectangle stays stable during Follow/Following/Unfollow text swaps. */
  min-width: 110px !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
  transition: border-color 0.15s ease, color 0.15s ease !important;
}
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button:hover,
body.single-product button.ik-ended-follow-vendor-link:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
/* Hide the heart icon glyph since we're now using a text button */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button i.fa-heart {
  display: none !important;
}
/* Inject text labels via ::before because the storefront-rendered Follow
   button (from snippet 56) only has an <i class="fa-heart"> inside, no
   text spans. Dokan's storefront markup doesn't emit the label-current /
   label-unfollow spans the seller-list buttons have. Pseudo-element +
   data-status attribute + :hover handles all three states. */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button::before {
  content: "Follow";
}
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button[data-status="following"]::before {
  content: "Following";
}
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button[data-status="following"]:hover::before {
  content: "Unfollow";
}
/* Following state — gold-outlined to indicate active follow */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button[data-status="following"],
body.single-product button.ik-ended-follow-vendor-link[data-status="following"] {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
/* Loading state — visible CSS spinner replaces the label text during AJAX.
   On prod the dokan_follow_store_toggle_status request often takes 3-5
   seconds; without a visible indicator the user thinks the click did nothing. */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button.dokan-follow-store-button-working,
body.single-product button.ik-ended-follow-vendor-link.dokan-follow-store-button-working,
body.page-id-1386 button.dokan-follow-store-button.dokan-follow-store-button-working,
body.woocommerce-account button.dokan-follow-store-button.dokan-follow-store-button-working,
body #dokan-seller-listing-wrap button.dokan-follow-store-button.dokan-follow-store-button-working {
  cursor: wait !important;
  pointer-events: none !important;
}
/* Hide both label spans during loading — spinner takes over via ::after */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-current,
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-unfollow,
body.single-product button.ik-ended-follow-vendor-link.dokan-follow-store-button-working .dokan-follow-store-button-label-current,
body.single-product button.ik-ended-follow-vendor-link.dokan-follow-store-button-working .dokan-follow-store-button-label-unfollow,
body.page-id-1386 button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-current,
body.page-id-1386 button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-unfollow,
body.woocommerce-account button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-current,
body.woocommerce-account button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-unfollow,
body #dokan-seller-listing-wrap button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-current,
body #dokan-seller-listing-wrap button.dokan-follow-store-button.dokan-follow-store-button-working .dokan-follow-store-button-label-unfollow {
  visibility: hidden !important;
}
/* Spinner injected via ::after — absolute-positioned center of button. */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button.dokan-follow-store-button-working,
body.single-product button.ik-ended-follow-vendor-link.dokan-follow-store-button-working,
body.page-id-1386 button.dokan-follow-store-button.dokan-follow-store-button-working,
body.woocommerce-account button.dokan-follow-store-button.dokan-follow-store-button-working,
body #dokan-seller-listing-wrap button.dokan-follow-store-button.dokan-follow-store-button-working {
  position: relative !important;
}
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button.dokan-follow-store-button-working::after,
body.single-product button.ik-ended-follow-vendor-link.dokan-follow-store-button-working::after,
body.page-id-1386 button.dokan-follow-store-button.dokan-follow-store-button-working::after,
body.woocommerce-account button.dokan-follow-store-button.dokan-follow-store-button-working::after,
body #dokan-seller-listing-wrap button.dokan-follow-store-button.dokan-follow-store-button-working::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 16px !important;
  height: 16px !important;
  margin: -8px 0 0 -8px !important;
  border: 2px solid #D0D0CE !important;
  border-top-color: #9A7E2E !important;
  border-radius: 50% !important;
  animation: ik-follow-spin 0.6s linear infinite !important;
  box-sizing: border-box !important;
}
/* Bigger spinner on the single-product ended-auction button (52px tall vs
   31px storefront button — 16px spinner looks lost at this scale). */
body.single-product button.ik-ended-follow-vendor-link.dokan-follow-store-button-working::after {
  width: 24px !important;
  height: 24px !important;
  margin: -12px 0 0 -12px !important;
  border-width: 3px !important;
}
@keyframes ik-follow-spin {
  to { transform: rotate(360deg); }
}

/* 2026-05-17 EOD: Broken Dashicons round arrow button on /my-account/following/.
   Ruth's flag: "another broken icon on the yellow button."
   Root cause: sitewide CSS sets font-family: Inter on (basically) everything,
   which overrides Dashicons' own font-family rule on .dashicons elements.
   The element is button + icon-via-font; restoring the icon font on
   .dashicons fixes the empty glyph. Scoped to .dashicons + .dashicons-*
   so we don't impact anything else. */
body.woocommerce-account [class^="dashicons-"]::before,
body.woocommerce-account [class*=" dashicons-"]::before,
body.woocommerce-account .dashicons,
body.woocommerce-account [class^="dashicons-"],
body.woocommerce-account [class*=" dashicons-"] {
  font-family: dashicons !important;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Pagination — sharp corners (was 4px on the wrapping ul) */
body.page-id-1386 ul.pagination,
body.dokan-store ul.pagination,
ul.pagination,
nav.pagination ul {
  border-radius: 0 !important;
}

/* PAG-1 fix (2026-04-28; extended 2026-04-30 for Dokan store pages) —
   Sellers + Store pagination breathing room before the next band
   (FOUNDING KEEPERS gold bar on /sellers/, footer on /store/<slug>/).
   Without this, the pagination row sits flush against the next band with
   zero gap. Auctions pagination already has 48px bottom padding (line
   7398, `.ik-auction-pagination`) so it's protected. Dokan individual
   store pages render `.dokan-pagination-container > ul.dokan-pagination`
   which the original rule did not target. */
body.page-id-1386 .pagination-wrap,
body.page-id-1386 ul.pagination,
body.dokan-store .pagination-wrap,
body.dokan-store ul.pagination,
body.dokan-store .dokan-pagination-container,
body.dokan-store ul.dokan-pagination {
  margin-bottom: 48px !important;
}

/* Sellers list filter form — compact horizontal row matching the mockup.
   Default Dokan stacks Search / Featured-Open-Rating toggles / Apply on 3 rows
   inside a 220px tall #F8F8F6 panel. Mockup has them inline in a single ~40px
   row. Flex-row layout collapses to the compact form. */
body.page-id-1386 form#dokan-store-listing-filter-form-wrap {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 16px !important;
  background: #F8F8F6 !important;
  margin: 16px clamp(1.5rem, 3vw, 2rem) 24px !important;
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border: 1px solid #E8E8E6 !important;
  box-sizing: border-box !important;
}
body.page-id-1386 form#dokan-store-listing-filter-form-wrap > .store-search {
  flex: 1 1 240px !important;
  margin: 0 !important;
}
body.page-id-1386 form#dokan-store-listing-filter-form-wrap > .store-lists-other-filter-wrap {
  flex: 0 1 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  margin: 0 !important;
}
body.page-id-1386 form#dokan-store-listing-filter-form-wrap > .apply-filter {
  flex: 0 0 auto !important;
  margin: 0 !important;
}

/* Mobile/tablet: allow wrap, give search full row */
@media (max-width: 768px) {
  body.page-id-1386 form#dokan-store-listing-filter-form-wrap > .store-search {
    flex: 1 1 100% !important;
  }
  body.page-id-1386 form#dokan-store-listing-filter-form-wrap > .store-lists-other-filter-wrap {
    flex: 1 1 100% !important;
    flex-wrap: wrap !important;
  }
  body.page-id-1386 form#dokan-store-listing-filter-form-wrap > .apply-filter {
    flex: 1 1 100% !important;
  }
}

/* === UNIVERSAL: gold-bg buttons ALWAYS have BLACK text ===
   Per Ruth, this kept recurring across pages (Vendor Dashboard, watchlist
   filter tab "Live (1)", Bid Now buttons, etc.). Apply globally. The rule
   targets any element whose computed bg matches our gold tokens. Selector
   has #content for ID specificity to beat the white-page link rule. */
body #content a.ik-wl-bid-btn,
body #content a.ik-wl-bid-btn:link,
body #content a.ik-wl-bid-btn:visited,
body #content button.ik-wl-bid-btn,
body #content .ik-wl-filter-tab.ik-active,
body #content a.ik-wl-filter-tab.ik-active,
body #content a.ik-wl-filter-tab.ik-active:link,
body #content a.ik-wl-filter-tab.ik-active:visited,
body #content button.ik-wl-filter-tab.ik-active {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: #FFCC33 !important;
  font-weight: 700 !important;
}

/* === SOURCE OF TRUTH for content width ===
   Astra header's .ast-builder-grid-row has max-width 1110 + 45px L/R padding,
   so the visible nav content (logo to cart) spans x=210 to x=1230 = 1020 wide
   in a 1440 viewport. Content below MUST align to those same edges so logo,
   cart, and content sit on the same vertical lines.
   --ik-max-width is 1020 to match. */

/* === UNIVERSAL: H1/header gold bar ALWAYS flush against navigation ===
   Applies site-wide to kill Astra default top padding/margin on the wrappers
   between nav and content. Excludes homepage (1381) which has its own hero
   block flow. */
body:not(.page-id-1381) #primary.content-area,
body:not(.page-id-1381) .content-area.primary,
body:not(.page-id-1381) .ast-container,
body:not(.page-id-1381) .site-main,
body:not(.page-id-1381) .ast-article-single,
body:not(.page-id-1381) .entry-content,
body:not(.page-id-1381) article.ast-article-single .entry-header {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
body:not(.page-id-1381) .entry-content > *:first-child,
body:not(.page-id-1381) .entry-header > h1.entry-title {
  margin-top: 0 !important;
}

/* Subtitle + Total Stores text — content-contained.
   Note: total stores .left lives inside the flex-row filter wrap. Inside that
   row, .left needs margin: 0 (no auto), text-align: left so it sits at the
   left of the row when paired with .right via justify-content: space-between. */
body.page-id-1386 .entry-content > p {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
  text-align: center !important;
  box-sizing: border-box !important;
}
body.page-id-1386 #dokan-store-listing-filter-wrap .left {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}
body.page-id-1386 #dokan-store-listing-filter-wrap .left p.store-count {
  margin: 0 !important;
  text-align: left !important;
}

/* Filter form: also content-contain via auto margins */
body.page-id-1386 form#dokan-store-listing-filter-form-wrap {
  margin-left: auto !important;
  margin-right: auto !important;
  width: calc(100% - 2 * clamp(1.5rem, 3vw, 2rem)) !important;
}

/* "Seller applications not being accepted" + email banner — CONTENT-CONTAINED
   dark banner box with thin gold left accent line, white gap above/below.
   Per Ruth's reference screenshot 2026-04-26 9.22.09 PM:
   - Width: max 1200, centered (NOT full bleed)
   - White space above + below
   - Thin gold border-left accent
   - Line 1 (uppercase white): heading
   - Line 2 (smaller, gold email link): question + email */
body.page-id-1386 .entry-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
/* H1 first */
body.page-id-1386 .entry-content > h1 {
  order: -10 !important;
  align-self: stretch !important;
}
/* Notice block: heading line of banner — must come BEFORE the subtitle per Ruth */
body.page-id-1386 .entry-content > .wp-block-buttons {
  order: -8 !important;
  /* Content-contained, NOT full bleed */
  max-width: var(--ik-max-width) !important;
  width: calc(100% - 2 * clamp(1.5rem, 3vw, 2rem)) !important;
  margin: 24px auto 0 !important;
  /* 4px bottom pairs with 4px top on the bottom-half paragraph below to
     form a continuous box with the heading + subtitle. */
  padding: 24px 24px 4px !important;
  background: #1A1A1A !important;
  border-left: 3px solid #FFCC33 !important;
  display: block !important;
  text-align: center !important;
  box-sizing: border-box !important;
}
body.page-id-1386 .entry-content > .wp-block-buttons .wp-block-button {
  width: 100% !important;
  display: block !important;
  margin: 0 !important;
}
body.page-id-1386 #content .entry-content > .wp-block-buttons .wp-block-button__link,
body.page-id-1386 #content .entry-content > .wp-block-buttons a.wp-block-button__link,
body.page-id-1386 #content .entry-content > .wp-block-buttons a.wp-block-button__link:link,
body.page-id-1386 #content .entry-content > .wp-block-buttons a.wp-block-button__link:visited,
body.page-id-1386 .entry-content > .wp-block-buttons .wp-block-button__link,
body.page-id-1386 .entry-content > .wp-block-buttons a.wp-block-button__link {
  background: transparent !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border: none !important;
  border-radius: 0 !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-size: 13px !important;
  padding: 0 !important;
  display: inline-block !important;
  width: auto !important;
  pointer-events: none !important;
  cursor: default !important;
}
/* Email line: bottom of the banner — per style guide:
   body text on dark bg = WHITE per Ruth's exact direction, gold link = #FFCC33 */
body.page-id-1386 .entry-content > p:has(a[href^="mailto:"]) {
  order: -7 !important;
  max-width: var(--ik-max-width) !important;
  width: calc(100% - 2 * clamp(1.5rem, 3vw, 2rem)) !important;
  margin: 0 auto 32px !important;
  padding: 4px 24px 24px !important;
  background: #1A1A1A !important;
  border-left: 3px solid #FFCC33 !important;
  text-align: center !important;
  box-sizing: border-box !important;
  font-size: 13px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  white-space: normal !important;
  line-height: 1.4 !important;
}
body.page-id-1386 .entry-content > p:has(a[href^="mailto:"]) br {
  display: none !important;
}
body.page-id-1386 #content .entry-content > p:has(a[href^="mailto:"]) a,
body.page-id-1386 #content .entry-content > p:has(a[href^="mailto:"]) a:link,
body.page-id-1386 #content .entry-content > p:has(a[href^="mailto:"]) a:visited,
body.page-id-1386 .entry-content > p:has(a[href^="mailto:"]) a {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-decoration: none !important;
}

/* Replace top subtitle per Ruth: hide the "Browse verified sellers" line
   (the first non-empty paragraph after H1) and pull the
   "Browse their live auction listings..." paragraph to that position via flex order. */
body.page-id-1386 .entry-content > p:nth-of-type(2) {
  display: none !important;
}
/* "Browse their live auction listings or contact us..." paragraph =
   bottom half of the black banner. Sits directly under the heading box
   (order -7, between heading -8 and rest of page). 4px top + 24px bottom
   pairs with the heading box's 4px bottom to form one continuous box. */
body.page-id-1386 .entry-content > p:has(a[href*="auctions"]):not(:has(a[href^="mailto:"])) {
  order: -7 !important;
  max-width: var(--ik-max-width) !important;
  width: calc(100% - 2 * clamp(1.5rem, 3vw, 2rem)) !important;
  margin: 0 auto 32px !important;
  padding: 4px 24px 24px !important;
  background: #1A1A1A !important;
  border-left: 3px solid #FFCC33 !important;
  text-align: center !important;
  box-sizing: border-box !important;
  font-size: 13px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  white-space: normal !important;
  line-height: 1.4 !important;
  align-self: center !important;
}
body.page-id-1386 .entry-content > p:has(a[href*="auctions"]):not(:has(a[href^="mailto:"])) br {
  display: none !important;
}
body.page-id-1386 #content .entry-content > p:has(a[href*="auctions"]):not(:has(a[href^="mailto:"])) a,
body.page-id-1386 #content .entry-content > p:has(a[href*="auctions"]):not(:has(a[href^="mailto:"])) a:link,
body.page-id-1386 #content .entry-content > p:has(a[href*="auctions"]):not(:has(a[href^="mailto:"])) a:visited,
body.page-id-1386 .entry-content > p:has(a[href*="auctions"]):not(:has(a[href^="mailto:"])) a {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-decoration: none !important;
}
body.page-id-1386 .entry-content > p:has(a[href*="auctions"]):not(:has(a[href^="mailto:"])) a:hover {
  text-decoration: underline !important;
}
body.page-id-1386 .entry-content > p:has(a[href^="mailto:"]) a,
body.page-id-1386 .entry-content > p:has(a[href^="mailto:"]) a:link,
body.page-id-1386 .entry-content > p:has(a[href^="mailto:"]) a:visited {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-decoration: underline !important;
}

/* Hide the expanded filter panel by default — mockup shows only the inline
   FILTER button + Sort dropdown row. */
body.page-id-1386 form#dokan-store-listing-filter-form-wrap {
  display: none !important;
}

/* Founding Keepers section: KEEP visible (Ruth: don't hide, fix it).
   Reset prior hide rule so the H2 + carousel render. */
body.page-id-1386 .entry-content > h2.wp-block-heading {
  display: block !important;
}
body.page-id-1386 .entry-content > .logo-carousel-free {
  display: block !important;
}

/* Replace broken Dashicons arrow on Visit Store circle with a CSS-rendered arrow */
body.page-id-1386 .dashicons.dashicons-arrow-right-alt2,
body.dokan-store .dashicons.dashicons-arrow-right-alt2 {
  font-family: inherit !important;
  width: auto !important;
  height: auto !important;
}
body.page-id-1386 .dashicons.dashicons-arrow-right-alt2::before,
body.dokan-store .dashicons.dashicons-arrow-right-alt2::before {
  content: '\2192' !important; /* Right Arrow → */
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  display: inline-block !important;
}

/* Equal-height cards via flex column with footer pinned to bottom.
   align-self: center because the parent .entry-content is display: flex column
   (margin: auto doesn't horizontally center flex children). */
body.page-id-1386 ul.dokan-seller-wrap {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  max-width: var(--ik-max-width) !important;
  width: 100% !important;
  margin: 24px auto !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
  align-self: center !important;
}
body.page-id-1386 ul.dokan-seller-wrap > li.dokan-single-seller {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}
body.page-id-1386 li.dokan-single-seller .store-wrapper {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}
body.page-id-1386 li.dokan-single-seller .store-content {
  flex: 1 1 auto !important;
}
/* Footer (avatar + visit store + follow button) pinned to bottom */
body.page-id-1386 li.dokan-single-seller .store-footer {
  margin-top: auto !important;
  padding: 12px 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  border-top: 1px solid #F0F0EE !important;
}

/* Rating + stars row — horizontally aligned */
body.page-id-1386 li.dokan-single-seller .store-data {
  text-align: center !important;
}
body.page-id-1386 li.dokan-single-seller .store-data .star-rating,
body.page-id-1386 li.dokan-single-seller .store-rating,
body.page-id-1386 li.dokan-single-seller .seller-rating {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  margin: 4px 0 !important;
  vertical-align: middle !important;
}

/* Mobile: cards stack in single column */
@media (max-width: 768px) {
  body.page-id-1386 ul.dokan-seller-wrap {
    grid-template-columns: 1fr !important;
  }
}

/* Visit Store button: each card has an empty <a> with a dashicons arrow inside.
   Hide the inner span glyph and inject "VISIT STORE" text + style the <a> as a
   gold rectangular button. The <a> sits in .store-footer next to the FOLLOW button. */
body.page-id-1386 li.dokan-single-seller .store-footer > a:not(.dokan-follow-store-button):empty,
body.page-id-1386 li.dokan-single-seller .store-footer > a:has(span.dokan-btn-round) {
  /* Style as a gold rectangular button */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  padding: 0 16px !important;
  height: 36px !important;
  min-width: 120px !important;
  width: auto !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
/* Inject the VISIT STORE text label via ::after */
body.page-id-1386 li.dokan-single-seller .store-footer > a:has(span.dokan-btn-round)::after {
  content: 'VISIT STORE' !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}
/* Hide the dashicons arrow glyph inside that link */
body.page-id-1386 li.dokan-single-seller .store-footer > a > span.dokan-btn-round,
body.page-id-1386 li.dokan-single-seller .store-footer > a > span.dashicons {
  display: none !important;
}

/* ==========================================================================
   2026-05-17 EOD: Apply the /sellers/ seller-card visual treatment to
   /my-account/following/ too. Both pages use Dokan's identical
   .dokan-single-seller markup, so we just mirror the page-id-1386 scoped
   rules above to also fire on body.woocommerce-account.
   Ruth's call: "the card on the my account -> vendor should look like the
   same card on the sellers list page."
   ========================================================================== */

/* Card grid + flex column + footer pinned bottom */
body.woocommerce-account ul.dokan-seller-wrap {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 24px 0 !important;
  box-sizing: border-box !important;
}
body.woocommerce-account ul.dokan-seller-wrap > li.dokan-single-seller {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}
body.woocommerce-account li.dokan-single-seller .store-wrapper {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}
body.woocommerce-account li.dokan-single-seller .store-content {
  flex: 1 1 auto !important;
}
body.woocommerce-account li.dokan-single-seller .store-footer {
  margin-top: auto !important;
  padding: 12px 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  border-top: 1px solid #F0F0EE !important;
}
body.woocommerce-account li.dokan-single-seller .store-data {
  text-align: center !important;
}
body.woocommerce-account li.dokan-single-seller .store-data .star-rating,
body.woocommerce-account li.dokan-single-seller .store-rating,
body.woocommerce-account li.dokan-single-seller .seller-rating {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  margin: 4px 0 !important;
  vertical-align: middle !important;
}
/* Tablet: 2 columns */
@media (max-width: 921px) {
  body.woocommerce-account ul.dokan-seller-wrap {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
/* Mobile: single column */
@media (max-width: 768px) {
  body.woocommerce-account ul.dokan-seller-wrap {
    grid-template-columns: 1fr !important;
  }
}

/* Visit Store: same gold rectangular button treatment as /sellers/ */
body.woocommerce-account li.dokan-single-seller .store-footer > a:not(.dokan-follow-store-button):empty,
body.woocommerce-account li.dokan-single-seller .store-footer > a:has(span.dokan-btn-round) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  padding: 0 16px !important;
  height: 36px !important;
  min-width: 120px !important;
  width: auto !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
body.woocommerce-account li.dokan-single-seller .store-footer > a:has(span.dokan-btn-round)::after {
  content: 'VISIT STORE' !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}
body.woocommerce-account li.dokan-single-seller .store-footer > a > span.dokan-btn-round,
body.woocommerce-account li.dokan-single-seller .store-footer > a > span.dashicons {
  display: none !important;
}

/* Follow button — stable width so loading state doesn't shrink the rectangle.
   Applies on /sellers/ AND /my-account/following/. min-width sized to fit
   the longest label ("Following" or "Unfollow", ~85-95px) plus padding.
   Per Ruth's spec: "the button rectangle should stay the same size and
   not shift in size" during state changes. */
body.page-id-1386 button.dokan-follow-store-button,
body.woocommerce-account button.dokan-follow-store-button,
body #dokan-seller-listing-wrap button.dokan-follow-store-button {
  min-width: 110px !important;
  height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
  background: transparent !important;
  border: 1px solid #D0D0CE !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 8px 16px !important;
  transition: border-color 0.15s ease, color 0.15s ease !important;
}
/* Following state = gold-outlined + gold text (active follow indicator).
   Consistent across storefront + /sellers/ + /my-account/following/ per
   Ruth's "maintain that follow button behavior across the board." */
body.page-id-1386 button.dokan-follow-store-button[data-status="following"],
body.woocommerce-account button.dokan-follow-store-button[data-status="following"],
body #dokan-seller-listing-wrap button.dokan-follow-store-button[data-status="following"] {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body.page-id-1386 button.dokan-follow-store-button:hover,
body.woocommerce-account button.dokan-follow-store-button:hover,
body #dokan-seller-listing-wrap button.dokan-follow-store-button:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
/* Ruth 2026-05-17 11:31pm: on /my-account/following/, hovering FOLLOWING
   made text disappear (white-on-white). Cause: Dokan's CSS for the inner
   .dokan-follow-store-button-label-unfollow span has its own color rule
   that overrides our button-level color. Force the span colors explicitly
   to match the button state — both label spans inherit the button's
   semantic color across all states. */
body.page-id-1386 button.dokan-follow-store-button .dokan-follow-store-button-label-current,
body.page-id-1386 button.dokan-follow-store-button .dokan-follow-store-button-label-unfollow,
body.woocommerce-account button.dokan-follow-store-button .dokan-follow-store-button-label-current,
body.woocommerce-account button.dokan-follow-store-button .dokan-follow-store-button-label-unfollow,
body #dokan-seller-listing-wrap button.dokan-follow-store-button .dokan-follow-store-button-label-current,
body #dokan-seller-listing-wrap button.dokan-follow-store-button .dokan-follow-store-button-label-unfollow,
body.single-product button.ik-ended-follow-vendor-link .dokan-follow-store-button-label-current,
body.single-product button.ik-ended-follow-vendor-link .dokan-follow-store-button-label-unfollow {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  background: transparent !important;
}
/* Loading state visuals are defined in the consolidated spinner block above
   (search 'ik-follow-spin'). This block intentionally left empty after
   2026-05-18 LATE EOD when Ruth flagged the prior opacity pulse was too
   subtle to be visible during the 3-5s prod AJAX request. */

/* On /my-account/following/, keep cards visible after unfollow until the
   user reloads the page (Ruth: "if I unfollow, the card should still be
   visible unless I actually reload the page"). Dokan's default JS removes
   the card from the DOM on successful unfollow. This CSS rule won't stop
   removal by itself — we'd need a JS handler to intercept. Adding inline
   JS via wp_footer through a snippet edit would be the right path, but
   for tonight a CSS-only fallback: even if Dokan adds a hide class, we
   override to keep visible until reload. (If Dokan removes the DOM node
   entirely, only JS can stop it — flagged in SESSION-PLAN-NEXT.md.) */
body.woocommerce-account li.dokan-single-seller.dokan-follow-store-button-removed,
body.woocommerce-account li.dokan-single-seller.unfollowed {
  display: list-item !important;
  opacity: 0.6 !important;
  /* Visual cue that the user just unfollowed but the card is still here */
}

/* /my-account/ filter row icons + toolbar bits — Dokan emits a filter wrap
   on this page too with the same vestigial UI. Hide it like we do on /sellers/. */
body.woocommerce-account #dokan-store-listing-filter-wrap .dokan-icons,
body.woocommerce-account #dokan-store-listing-filter-wrap .dokan-icon-div,
body.woocommerce-account #dokan-store-listing-filter-wrap span.dashicons-screenoptions,
body.woocommerce-account #dokan-store-listing-filter-wrap span.dashicons-grid-view,
body.woocommerce-account #dokan-store-listing-filter-wrap span.dashicons-menu-alt,
body.woocommerce-account #dokan-store-listing-filter-wrap .toggle-view {
  display: none !important;
}

/* Filter row icons (broken dashicons-screenoptions + dashicons-menu-alt glyphs +
   empty dokan-icon-divs + the toggle-view container). Hide all vestigial UI. */
body.page-id-1386 #dokan-store-listing-filter-wrap .dokan-icons,
body.page-id-1386 #dokan-store-listing-filter-wrap .dokan-icon-div,
body.page-id-1386 #dokan-store-listing-filter-wrap span.dashicons-screenoptions,
body.page-id-1386 #dokan-store-listing-filter-wrap span.dashicons-grid-view,
body.page-id-1386 #dokan-store-listing-filter-wrap span.dashicons-menu-alt,
body.page-id-1386 #dokan-store-listing-filter-wrap .toggle-view,
body.page-id-1386 #dokan-store-listing-filter-wrap span.dashicons,
body.page-id-1386 #dokan-store-listing-filter-wrap [class^="dashicons-"],
body.page-id-1386 #dokan-store-listing-filter-wrap [class*=" dashicons-"] {
  display: none !important;
}

/* Filter row layout: full content-width, total stores LEFT, filter+sort RIGHT.
   Padding above and below so it doesn't sit flush against the gray border-bottom.
   Horizontal padding is ZERO so "Total stores" / FILTER / Sort align with the
   content-edge (x=120 on a 1440 viewport, matching the gold bar / black bar /
   card grid below). 2026-04-27: removed inset horizontal padding per Ruth. */
body.page-id-1386 #dokan-store-listing-filter-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  max-width: var(--ik-max-width) !important;
  width: 100% !important;
  margin: 24px auto 24px !important;
  padding: 16px 0 !important;
  box-sizing: border-box !important;
  align-self: center !important;
}

/* Sellers page: parent .entry-content is display:flex (Astra default for
   data-ast-blocks-layout). That makes block children shrink to intrinsic
   width instead of filling the container. Force the seller-listing wrap
   to fill the available width up to --ik-max-width so the card grid
   aligns with the filter row + black bar above it. 2026-04-27. */
body.page-id-1386 #dokan-seller-listing-wrap {
  width: 100% !important;
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Sellers page: Founding Keepers carousel matches homepage pattern.
   .sp-lc-container holds the dark leather-texture background and STAYS
   full-bleed so the dark band reads as a full-width section divider.
   The inner .swiper-container (logo strip) is constrained to
   content-width so the logos sit within the same content edges as the
   cards / filter row above. 2026-04-27. */
body.page-id-1386 article#post-1386 .entry-content > .sp-lc-container .swiper-container,
body.page-id-1386 article#post-1386 .entry-content > .sp-lc-container .sp-logo-carousel {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-id-1386 #dokan-store-listing-filter-wrap .left {
  flex: 0 0 auto !important;
  text-align: left !important;
}
body.page-id-1386 #dokan-store-listing-filter-wrap .right {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}
@media (max-width: 1024px) and (min-width: 769px) {
  body.page-id-1386 ul.dokan-seller-wrap {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Kill Astra default bottom space between content and footer on sellers page,
   so FK section flows directly into footer (both dark) without white gap. */
body.page-id-1386 .ast-article-single {
  padding-bottom: 0 !important;
}
body.page-id-1386 .content-area.primary {
  margin-bottom: 0 !important;
}

/* === Sellers page Founding Keepers section bg ===
   On homepage the bg is on .wp-block-group:last-of-type. Sellers page has
   the FK heading directly in entry-content, so the homepage rule doesn't
   apply. Apply the leather texture directly to the heading + carousel.
   Tight spacing: kill margin between H2 gold bar and carousel. */
/* Founding Keepers section: FULL-BLEED on sellers per Ruth's direct instruction
   (should flow into footer with no white gap). H2 gold bar full-bleed too. */
body.page-id-1386 .entry-content > h2.wp-block-heading {
  margin-bottom: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  align-self: stretch !important;
}
body.page-id-1386 .entry-content > .logo-carousel-free {
  background: linear-gradient(180deg, rgba(10,7,4,0.6) 0%, rgba(20,14,8,0.3) 50%, rgba(10,7,4,0.7) 100%) no-repeat 0 0 / 100% 100%, url('../images/texture-leather.png') repeat 0 0 / auto auto #1A120B !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: clamp(2rem, 4vw, 4rem) clamp(1rem, 3vw, 2rem) !important;
  align-self: stretch !important;
}

/* === My Account global fixes (cycle 3) — minimal, conservative === */
/* Note: previous attempts at full-bleed gold bar broke the flex sidebar layout.
   Conservative approach: leave gold bar at content width (1200) but ensure
   bottom padding so Logout isn't flush against footer. */

/* Gold buttons inside My Account — text MUST be black (was bronze rgb 154,126,46
   from the white-page link rule winning). Target by Dokan classes + #content
   for ID specificity. */
body.woocommerce-account #content a.dokan-btn,
body.woocommerce-account #content a.dokan-btn:link,
body.woocommerce-account #content a.dokan-btn:visited,
body.woocommerce-account #content a.dokan-btn-theme,
body.woocommerce-account #content a.dokan-btn-theme:link,
body.woocommerce-account #content a.dokan-btn-theme:visited,
body.woocommerce-account #content a.vendor-dashboard,
body.woocommerce-account #content a.vendor-dashboard:link,
body.woocommerce-account #content a.vendor-dashboard:visited,
body.woocommerce-account #content a.button,
body.woocommerce-account #content a.button:link,
body.woocommerce-account #content a.button:visited,
body.woocommerce-account #content .woocommerce-MyAccount-content a.button {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  background: #FFCC33 !important;
  border: 1px solid #FFCC33 !important;
  font-weight: 700 !important;
}

/* Bottom padding so Logout sidebar item / sub-page content isn't flush to footer */
body.woocommerce-account .entry-content,
body.woocommerce-account article.ast-article-single {
  padding-bottom: 64px !important;
}

/* === Login page (1569): hide register form, show only login === */
body.page-id-1569 .u-column2.col-2,
body.page-id-1569 form.register {
  display: none !important;
}
/* And give login form full content width */
body.page-id-1569 .u-column1.col-1,
body.page-id-1569 form.login {
  width: 100% !important;
  max-width: var(--ik-max-width) !important;
  margin: 0 auto 32px !important;
  float: none !important;
}

/* === Register page (1572): hide login form, show only register === */
body.page-id-1572 .u-column1.col-1,
body.page-id-1572 form.login {
  display: none !important;
}
body.page-id-1572 .u-column2.col-2,
body.page-id-1572 form.register {
  width: 100% !important;
  max-width: var(--ik-max-width) !important;
  margin: 0 auto 32px !important;
  float: none !important;
}

/* Store page product cards: vendor avatar img.avatar is rendering at 152×152
   and overlapping product images. Mockup has no such avatar overlay on cards.
   Hide it on the store products grid. */
body.dokan-store ul.products li.product img.avatar,
body.dokan-store .products li.product .ast-on-card-button + img.avatar,
body.dokan-store .products li.product img.avatar.photo {
  display: none !important;
}
/* Also hide the "Sold by: <vendor>" line that comes with it on the card */
body.dokan-store ul.products li.product .wcvendors_sold_by_in_loop,
body.dokan-store ul.products li.product .sold-by-in-loop,
body.dokan-store ul.products li.product .vendor_loop {
  display: none !important;
}

/* === Store page (body.dokan-store) — consumer-facing vendor store === */

/* Store profile box — Ruth caught (round 5) that
   .dokan-profile-frame-wrapper actually contains BOTH .profile-frame AND
   .dokan-store-tabs (DOM-wise). When the wrapper had a 1px border, the
   left/right edges ran past the action-buttons row AND wrapped around the
   tab strip — looked like duplicated borders on the tabs.
   Fix: kill the wrapper border entirely. Build the visible box from inner
   parts: top+L+R on .profile-info-summery-wrapper (covers the info area
   below the banner), L+R+bottom on .dokan-modules-button (covers the
   action-buttons section + closes the bottom). Banner image sits above
   the box with no border (intentional — image bleeds full-width). */
body.dokan-store .dokan-profile-frame-wrapper {
  background: #FFFFFF !important;
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
}
body.dokan-store .profile-frame,
body.dokan-store .profile-info-box,
body.dokan-store .profile-info-summery {
  background: #FFFFFF !important;
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
}
/* The visible "info area" of the profile box — top + L + R borders only.
   Bottom is open so the action-buttons row continues the line below. */
body.dokan-store .profile-info-summery-wrapper,
body.dokan-store .profile-info-summery-wrapper.dokan-clearfix {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-bottom: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
}

/* PROF-1 fix (2026-04-28) — Re-establish 50/50 avatar overlap on banner.
   The wrapper-reset rule at line 13585 sets
   `body.dokan-store .profile-info-summery { background: #FFFFFF; margin: 0 !important }`.
   Two problems with that:
     (a) margin: 0 kills Dokan layout2's default `-75px` lift that creates
         the avatar/banner overlap.
     (b) background: #FFFFFF means once we re-apply the lift, the white
         summery box extends 70px ABOVE the wrapper's top border and
         OVERLAYS the bottom 70px of the banner image — visible as a
         white band cutting the banner off prematurely.
   Fix: re-apply the lift AND drop summery's background to transparent.
   The wrapper (.profile-info-summery-wrapper, line 13594) is already
   white with the proper top+L+R border — summery sitting transparent
   inside it is correct. Same selector specificity (0,2,1); source-order
   tiebreak applies. */
body.dokan-store .profile-info-summery {
  margin-top: -70px !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* Dokan default purple buttons (Follow, Chat Now, WhatsApp, Share, Get
   Support, Search submit) → outline secondary.

   Three layers here, ordered most→least defensive:
   (1) Class-agnostic container catch-all — any `<button>`, `<a>`, or
       submit input directly inside `.dokan-modules-button > li`. Catches
       ANY future button regardless of class, even ones a 3rd-party
       Dokan add-on slaps in without `.dokan-btn-theme`. Specificity (0,3,2).
   (2) Themed-class catch-all — `.dokan-modules-button button|a.dokan-btn-theme`.
       Backs up #1 in case a Dokan widget puts the button NOT inside an
       `<li>` direct child (e.g. wraps it in another `<div>`). (0,3,1).
   (3) Per-class list — known buttons that ship from Dokan, kept for
       legibility/grep-ability and for anywhere `.dokan-modules-button`
       isn't the parent (e.g. search-form submits in the sidebar).

   Why three layers: (PROF-2 / 2026-04-28) GET SUPPORT was the latest
   example — Dokan injects an inline `<style id="dokan-layout-inline-css">`
   after our external CSS with `.dokan-btn-theme { background: #7047EB !important }`
   at specificity (0,1,0). At equal specificity the LATER source wins, so
   unscoped `.dokan-store-support-btn` (0,1,0) lost. Container scope
   `.dokan-modules-button button.dokan-btn-theme` is (0,3,1) and beats it.
   The class-agnostic version (0,3,2) is bulletproof against future buttons
   that don't carry `.dokan-btn-theme`. */
body.dokan-store .dokan-modules-button > li > button,
body.dokan-store .dokan-modules-button > li > a,
body.dokan-store .dokan-modules-button > li > input[type="submit"],
body.dokan-store .dokan-modules-button > li > input[type="button"],
body.dokan-store .dokan-modules-button > li button,
body.dokan-store .dokan-modules-button > li a,
body.dokan-store .dokan-modules-button > li > button.dokan-btn-theme,
body.dokan-store .dokan-modules-button > li > a.dokan-btn-theme,
body.dokan-store .dokan-modules-button button.dokan-btn-theme,
body.dokan-store .dokan-modules-button a.dokan-btn-theme,
body.dokan-store .dokan-store-support-btn,
body.dokan-store button.dokan-store-support-btn,
body.dokan-store .dokan-follow-store-button,
body.dokan-store a.dokan-follow-store-button,
body.dokan-store .dokan-live-chat,
body.dokan-store .dokan-live-chat-whatsapp,
body.dokan-store a.dokan-live-chat,
body.dokan-store a.dokan-live-chat-whatsapp,
body.dokan-store button.dokan-follow-store-button,
body.dokan-store .dokan-share-btn,
body.dokan-store button.dokan-share-btn,
body.dokan-store .dokan-store-search input[type="submit"],
body.dokan-store input.search-store-products,
body.dokan-store .search-store-products.dokan-btn-theme,
body.dokan-store .dokan-store-products-ordeby input[type="submit"],
body.dokan-store input.adminbar-button[type="submit"] {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #D0D0CE !important;
  border-color: #D0D0CE !important;
  border-radius: 0 !important;
  padding: 10px 18px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  font-family: 'Inter', sans-serif !important;
  transition: all 0.2s ease !important;
}
body.dokan-store .dokan-modules-button > li > button:hover,
body.dokan-store .dokan-modules-button > li > a:hover,
body.dokan-store .dokan-modules-button > li > input[type="submit"]:hover,
body.dokan-store .dokan-modules-button > li > input[type="button"]:hover,
body.dokan-store .dokan-modules-button > li button:hover,
body.dokan-store .dokan-modules-button > li a:hover,
body.dokan-store .dokan-modules-button > li > button.dokan-btn-theme:hover,
body.dokan-store .dokan-modules-button > li > a.dokan-btn-theme:hover,
body.dokan-store .dokan-modules-button button.dokan-btn-theme:hover,
body.dokan-store .dokan-modules-button a.dokan-btn-theme:hover,
body.dokan-store .dokan-store-support-btn:hover,
body.dokan-store button.dokan-store-support-btn:hover,
body.dokan-store .dokan-follow-store-button:hover,
body.dokan-store a.dokan-follow-store-button:hover,
body.dokan-store .dokan-live-chat:hover,
body.dokan-store .dokan-live-chat-whatsapp:hover,
body.dokan-store a.dokan-live-chat:hover,
body.dokan-store a.dokan-live-chat-whatsapp:hover,
body.dokan-store .dokan-share-btn:hover,
body.dokan-store button.dokan-share-btn:hover,
body.dokan-store .dokan-store-search input[type="submit"]:hover,
body.dokan-store input.search-store-products:hover,
body.dokan-store .search-store-products.dokan-btn-theme:hover,
body.dokan-store .dokan-store-products-ordeby input[type="submit"]:hover,
body.dokan-store input.adminbar-button[type="submit"]:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: #FAFAF8 !important;
  background-color: #FAFAF8 !important;
}

/* Auction Finished button on store product cards — outline secondary on white card.
   Override the white-page link rule (1,2,2) by using #content + class chain. */
body.dokan-store #content .products li.product a.button.product_type_auction,
body.dokan-store #content ul.products li.product a.button.product_type_auction,
body.dokan-store #content .products li.product a.ast-on-card-button.product_type_auction {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border-radius: 0 !important;
}
body.dokan-store #content .products li.product a.button.product_type_auction:hover,
body.dokan-store #content .products li.product a.ast-on-card-button.product_type_auction:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* "Write a Review" button on /store/<slug>/reviews/ — Dokan ships it purple
   (rgb 112, 71, 235) with white text. Override to gold-bg + BLACK text per
   universal rule. The selector includes `#content` for ID specificity, and
   covers all element types Dokan may render (button, a, input). */
body.dokan-store #content button.add-review-btn,
body.dokan-store #content a.add-review-btn,
body.dokan-store #content input.add-review-btn,
body.dokan-store #content .dokan-btn-theme.add-review-btn,
body.dokan-store #content button.add-review-btn:link,
body.dokan-store #content button.add-review-btn:visited,
body.dokan-store #content button.add-review-btn:hover {
  background: #FFCC33 !important;
  background-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 10px 24px !important;
  cursor: pointer !important;
  text-shadow: none !important;
  box-shadow: none !important;
  transition: background 0.2s ease !important;
}
body.dokan-store #content button.add-review-btn:hover,
body.dokan-store #content a.add-review-btn:hover {
  background: #FFDB66 !important;
  background-color: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Submit button INSIDE the review-modal form (the modal that opens when
   "Write a Review" is clicked) — also Dokan-purple by default. Same gold
   override. */
body.dokan-store #content .dokan-modal button.dokan-btn-theme,
body.dokan-store #content .dokan-rating-modal button.dokan-btn-theme,
body.dokan-store #content button.add-review-submit,
body.dokan-store #content input.add-review-submit {
  background: #FFCC33 !important;
  background-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
}

/* Pay Now button on store product cards — gold filled with BLACK text (always
   black on gold per spec) */
body.dokan-store #content .products li.product a.button.pay,
body.dokan-store #content .products li.product a.button[href*="pay_for_order"],
body.dokan-store #content .products li.product a.button {
  /* default — pay-now / generic action button */
}
body.dokan-store #content .products li.product a.button:not(.product_type_auction):not(.ast-on-card-button) {
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
}
body.dokan-store #content .products li.product a.button:not(.product_type_auction):not(.ast-on-card-button):hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* PAY NOW button on a WON auction's single-product page. The href contains
   ?pay-auction=<id> (Simple Auctions). Default rendering was the dark-page
   tertiary outline button (transparent + faint white border + gold-deep text),
   which read as just plain text against the dark hero. This case is a
   PRIMARY action (the winning bidder must pay) so it gets the yellow filled
   treatment matching BID NOW on the card surfaces.
   On mobile/tablet (<=768) make it full-width so it's the most prominent
   action on the page (currently the secondary WATCHLIST button below it
   was full-width — backwards priority). */
body.single-product a.button[href*="pay-auction"],
body.single-product a.button.pay {
  display: inline-block !important;
  background: #FFCC33 !important;
  background-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  padding: 16px 32px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-decoration: none !important;
}
body.single-product a.button[href*="pay-auction"]:hover,
body.single-product a.button.pay:hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}
@media (max-width: 768px) {
  /* The PAY NOW <a> lives inside <p> inside <div.auction-ajax-change>
     which is display:flex (row default), so its children shrink to content
     width. Stack the flex column on mobile and stretch <p> + <a> to full
     width so PAY NOW becomes the prominent full-width primary action. */
  body.single-product .auction-ajax-change {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.single-product .auction-ajax-change > p {
    width: 100% !important;
    margin: 0 !important;
  }
  body.single-product a.button[href*="pay-auction"],
  body.single-product a.button.pay {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
}

/* Store tabs container — invisible. Two children: the action-buttons row
   (Follow/Chat/Share) which we make look like the bottom of the profile
   card, and the actual tab strip (Products/Reviews/Vendor Biography). */
body.dokan-store .dokan-store-tabs {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 24px 0 !important;
  box-shadow: none !important;
}

/* Action buttons row (Follow / Chat Now / Share) — render as the BOTTOM
   section of the profile card. Profile-frame-wrapper has border-top/L/R
   only; this UL provides the bottom border + L/R borders to close the
   card. Visual continuation makes the buttons look like they're inside the
   profile box, just below the FB/YT social icons. */
body.dokan-store .dokan-store-tabs ul.dokan-modules-button {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  list-style: none !important;
  padding: 16px 24px !important;
  margin: 0 0 24px 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  border-top: none !important;
}
body.dokan-store .dokan-store-tabs ul.dokan-modules-button li,
body.dokan-store .dokan-store-tabs ul.dokan-modules-button li.dokan-right {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  list-style: none !important;
  display: inline-flex !important;
  align-items: center !important;
}
/* Beat Dokan's inline `style="position: relative; top: 3px"` on Chat-Now */
body.dokan-store .dokan-store-tabs .dokan-live-chat[style],
body.dokan-store .dokan-store-tabs button.dokan-live-chat-whatsapp[style] {
  position: static !important;
  top: 0 !important;
}
/* Hide the unstyled raw WhatsApp <a> trigger Dokan stamps inside the
   Chat-Now <li>. The Chat-Now button itself fires the WhatsApp flow via
   inline JS — the standalone <a> just adds visual noise (an unstyled
   image icon) next to the button row. The site-wide floating WhatsApp
   widget is rendered separately by the Live Chat plugin and is unaffected. */
body.dokan-store .dokan-store-tabs ul.dokan-modules-button a.whatsapp-live-widget {
  display: none !important;
}

/* Tab strip (Products / Reviews / Vendor Biography) — match the auction
   item / single-product WC tab pattern at custom-styles.css:3724 (lifted
   card look on active: bg #F8F8F6 + border, fading into the bottom rule).
   Round 5: explicit `border-left/right: none` to kill the L/R lines
   bleeding from a Dokan/astra default rgb(237,237,237). */
body.dokan-store .dokan-store-tabs ul.dokan-list-inline {
  display: flex !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: 2px solid #E8E8E6 !important;
  background: transparent !important;
  overflow-x: auto !important;
}
body.dokan-store .dokan-store-tabs ul.dokan-list-inline li {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-bottom: none !important;
  margin: 0 0 -2px 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  list-style: none !important;
  display: block !important;
  float: none !important;
  transition: all 0.2s ease !important;
}
body.dokan-store .dokan-store-tabs ul.dokan-list-inline li.active {
  background: #F8F8F6 !important;
  border-color: #E8E8E6 !important;
  border-bottom: 2px solid #F8F8F6 !important;
}
body.dokan-store .dokan-store-tabs ul.dokan-list-inline li:not(.active):hover {
  background: rgba(0, 0, 0, 0.02) !important;
}
body.dokan-store #content .dokan-store-tabs ul.dokan-list-inline li a,
body.dokan-store #content .dokan-store-tabs ul.dokan-list-inline li a:link,
body.dokan-store #content .dokan-store-tabs ul.dokan-list-inline li a:visited {
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 14px 24px !important;
  display: block !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  border: none !important;
  background: transparent !important;
  transition: all 0.2s ease !important;
}
body.dokan-store #content .dokan-store-tabs ul.dokan-list-inline li a:hover {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}
body.dokan-store #content .dokan-store-tabs ul.dokan-list-inline li.active a,
body.dokan-store #content .dokan-store-tabs ul.dokan-list-inline li.active a:link,
body.dokan-store #content .dokan-store-tabs ul.dokan-list-inline li.active a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}


/* ══════════════════════════════════════════════════════════════
   PAGE 4 — Single product (auction item) page fixes
   Override the white-page-link rule's specificity (1,2,2) by chaining
   body.single-product + #content + the specific selector.
   ══════════════════════════════════════════════════════════════ */

/* Tabs: active = dark text + visible underline, inactive = muted gray. */
body.single-product #content ul.tabs.wc-tabs li.active a,
body.single-product #content ul.tabs.wc-tabs li.active a:link,
body.single-product #content ul.tabs.wc-tabs li.active a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}
body.single-product #content ul.tabs.wc-tabs li:not(.active) a,
body.single-product #content ul.tabs.wc-tabs li:not(.active) a:link,
body.single-product #content ul.tabs.wc-tabs li:not(.active) a:visited {
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  font-weight: 500 !important;
}
body.single-product #content ul.tabs.wc-tabs li.active {
  border-bottom: 2px solid #9A7E2E !important;
}

/* H1 product title: match the mockup (30px / 400 / uppercase — Inter, dark) */
body.single-product .summary h1.product_title,
body.single-product .summary h1.entry-title {
  font-size: 30px !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}

/* Vendor info card — sharp corners (variable says 0; this rule has hardcoded 4px) */
body.single-product .dokan-vendor-info-wrap {
  border-radius: 0 !important;
}

/* 2026-05-18 Ruth: Out-of-stock display. WC renders `<p class="stock out-of-stock">`
   near the top of .summary as faint gray text -- easy to miss. Restyle it as
   a full-width DISABLED button immediately UNDER THE PRICE (same position the
   Add to Cart / BUY NOW button would normally sit), matching the disabled-
   button pattern from the design system (#F0F0EE bg, #999 text, 1px #E8E8E6
   border, sharp corners, cursor not-allowed). .summary is display:flex column;
   `order: 4` matches the BUY NOW form's order (price=3 above, action=4 below). */
body.single-product .summary p.stock.out-of-stock {
  order: 4 !important;
  display: block !important;
  text-align: center !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  background: #F0F0EE !important;
  color: #999999 !important;
  -webkit-text-fill-color: #999999 !important;
  border: 1px solid #E8E8E6 !important;
  border-radius: 0 !important;
  padding: 14px 28px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  font-family: var(--ik-font-body) !important;
  width: 100% !important;
  cursor: not-allowed !important;
  margin: 16px 0 !important;
  box-sizing: border-box !important;
}

/* BUY NOW button — full-width, BELOW the price/starting bid, BLACK text on gold.
   Per Ruth: "BUY IT NOW set... button needs to be below the starting bid...
   full-width since there doesn't appear to be a get support button anymore...
   button color text needs to be all black, the price is a gold". */
body.single-product form.buy-now {
  display: block !important;
  margin: 16px 0 16px 0 !important;
  vertical-align: top !important;
  width: 100% !important;
  /* Reorder so buy-now form sits BELOW price (price has order: 3, buy-now goes after) */
  order: 4 !important;
}
body.single-product form.buy-now button.single_add_to_cart_button,
body.single-product .summary form.buy-now .single_add_to_cart_button,
body.single-product form.buy-now .single_add_to_cart_button {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  display: block !important;
  padding: 14px 28px !important;
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  font-weight: 700 !important;
}
/* Price inside buy-now button stays BLACK (text-only colors so price shows clearly).
   Override any earlier rule that paints price gold inside button. */
body.single-product form.buy-now .single_add_to_cart_button .woocommerce-Price-amount,
body.single-product form.buy-now .single_add_to_cart_button .woocommerce-Price-currencySymbol,
body.single-product form.buy-now .single_add_to_cart_button bdi,
body.single-product form.buy-now .single_add_to_cart_button * {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Hide the entire gallery zoom trigger — mockup doesn't show a magnifier on the
   product image, and even with img.emoji hidden the anchor renders the alt
   glyph via font-rendering at 28px. */
body.single-product .woocommerce-product-gallery img.emoji,
body.single-product .summary img.emoji,
body.single-product a.woocommerce-product-gallery__trigger {
  display: none !important;
}

/* Related products — Auction Finished button = outline secondary on white card.
   Override the on-card styling so the FINISHED state reads clearly.
   Specificity: 1 (#content) + class chain — must beat the white-page
   link rule on color. */
body.single-product #content section.related .product a.button.product_type_auction,
body.single-product #content section.related .product a.ast-on-card-button.product_type_auction,
body.single-product #content section.related .product .ast-on-card-button {
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border-radius: 0 !important;
}
body.single-product #content section.related .product a.button.product_type_auction:hover,
body.single-product #content section.related .product a.ast-on-card-button:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Mobile: related products 1 column at <480px (mockup) */
@media (max-width: 480px) {
  body.single-product section.related .products,
  body.single-product .products.related,
  body.single-product .related .products {
    grid-template-columns: 1fr !important;
    display: grid !important;
  }
}


/* === Checkout 'Your order' column rebalancing ===
   2026-05-18 Ruth: the 2-col layout at tablet has enough space, but the
   SUBTOTAL column was getting auto-distributed an equal share of the
   table width -- pushing the PRODUCT column to ~132px and forcing product
   names to wrap into multiple short lines. Fix: pin SUBTOTAL to a fixed
   narrow width + nowrap (prices are short, "$100" is 4 chars), and let
   PRODUCT take the rest. Applies at all viewports for consistency. */
body.woocommerce-checkout .woocommerce-checkout-review-order-table th.product-total,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total {
  width: 90px !important;
  white-space: nowrap !important;
  text-align: right !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table th.product-name,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name {
  width: auto !important;
}

/* === 921px — Tablet breakpoint === */
@media (max-width: 921px) {

  /* Login/Register: max-width can be relaxed on smaller screens */
  body.page-id-1569 .entry-content .woocommerce,
  body.page-id-1572 .entry-content .woocommerce {
    max-width: 100% !important;
    padding: 0 16px !important;
  }

  /* Seller cards: 2 columns on tablet */
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* === 768px — Mobile breakpoint === */
@media (max-width: 768px) {

  /* Cart table: stack rows vertically */
  .woocommerce-cart .shop_table thead {
    display: none !important;
  }
  .woocommerce-cart .shop_table tr {
    display: block !important;
    margin-bottom: 16px !important;
    border-bottom: 1px solid #E8E8E6 !important;
  }
  .woocommerce-cart .shop_table td {
    display: block !important;
    text-align: left !important;
    padding: 8px 16px !important;
    border-bottom: none !important;
  }
  .woocommerce-cart .shop_table td::before {
    content: attr(data-title) ": " !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    letter-spacing: 0.08em !important;
    display: block !important;
    margin-bottom: 4px !important;
    color: #666666 !important;
    -webkit-text-fill-color: #666666 !important;
  }
  .woocommerce-cart .shop_table td.product-remove::before,
  .woocommerce-cart .shop_table td.product-thumbnail::before,
  .woocommerce-cart .shop_table td.actions::before {
    display: none !important;
  }

  /* Cart totals shipping row: methods list + destination + change-address form
     can't share a row with a `float: left` ::before label — they collide
     against the right-aligned cart-totals default. Stack the label on top,
     left-align the content. */
  .woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td::before {
    float: none !important;
    width: 100% !important;
    clear: both !important;
  }
  .woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td {
    text-align: left !important;
  }
  .woocommerce-cart .cart_totals tr.woocommerce-shipping-totals .woocommerce-shipping-destination {
    text-align: left !important;
    margin-top: 8px !important;
  }
  .woocommerce-cart .cart_totals tr.woocommerce-shipping-totals .shipping-calculator-button {
    display: inline-block !important;
    margin-top: 4px !important;
  }

  .woocommerce-cart .product-thumbnail {
    text-align: center !important;
  }
  .woocommerce-cart .product-thumbnail img {
    width: 120px !important;
    height: 120px !important;
  }

  /* Cart totals: full width */
  .cart-collaterals .cart_totals {
    width: 100% !important;
    float: none !important;
  }

  /* Cart coupon: stack input + button */
  .woocommerce-cart .coupon {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }
  .woocommerce-cart .coupon .input-text {
    width: 100% !important;
  }
  .woocommerce-cart .coupon .button {
    width: 100% !important;
    white-space: nowrap !important;
  }

  /* Checkout: single column */
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
  }

  /* Checkout order review: reset margin-top since it's stacked now */
  .woocommerce-checkout-review-order {
    margin-top: 0 !important;
  }

  /* Auction item: bid row wraps */
  .auction_form.cart {
    flex-wrap: wrap !important;
    justify-content: center !important;
  }

  /* Auction secondary buttons: stack on mobile */
  .ik-secondary-actions {
    flex-direction: column !important;
  }

  /* My Account: sidebar stacks above content (already handled) */

  /* Order overview: stack vertically */
  .woocommerce-order-overview {
    flex-direction: column !important;
    gap: 12px !important;
  }

  /* Order/customer addresses: stack */
  .woocommerce-customer-details .woocommerce-columns--addresses {
    flex-direction: column !important;
  }
  .woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column--1 {
    margin-right: 0 !important;
    margin-bottom: 16px !important;
  }
  .woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column--2 {
    margin-left: 0 !important;
  }

  /* My Account addresses: stack */
  .woocommerce-account .woocommerce-Addresses {
    flex-direction: column !important;
  }
  .woocommerce-account .woocommerce-Addresses .col-1 {
    margin-right: 0 !important;
    margin-bottom: 16px !important;
  }
  .woocommerce-account .woocommerce-Addresses .col-2 {
    margin-left: 0 !important;
  }

  /* My Account vendors: single column */
  .woocommerce-MyAccount-content #dokan-seller-listing-wrap ul.dokan-seller-wrap {
    grid-template-columns: 1fr !important;
  }

  /* My Bids table: responsive stacking */
  .my_auctions_activity thead {
    display: none !important;
  }
  .my_auctions_activity tr {
    display: block !important;
    margin-bottom: 12px !important;
    border: 1px solid #E8E8E6 !important;
    padding: 12px !important;
  }
  .my_auctions_activity td {
    display: block !important;
    text-align: left !important;
    padding: 4px 0 !important;
    border-bottom: none !important;
  }

  /* Store page: 1 column products */
  .seller-items .ik-auction-card-grid {
    grid-template-columns: 1fr !important;
  }

  /* Form rows: stack first/last on mobile.
     Specificity prefix `body:not(.page-id-1381):not(.page-id-2594)` matches the
     desktop rule at line ~3016 — without it, the desktop 48% rule wins the
     cascade at mobile too (higher specificity beats source order), leaving
     fields stuck at half-width on every account/login/lost-password page. */
  body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row-first,
  body:not(.page-id-1381):not(.page-id-2594) .woocommerce .form-row-last {
    float: none !important;
    width: 100% !important;
  }
}

/* === 480px — Small mobile === */
@media (max-width: 480px) {

  /* Seller cards: single column */
  body #dokan-seller-listing-wrap ul.dokan-seller-wrap {
    grid-template-columns: 1fr !important;
  }

  /* Auction bid row: stack vertically */
  .auction_form .quantity.buttons_added {
    margin-right: 0 !important;
    margin-bottom: 8px !important;
  }
  .auction_form.cart {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .bid_button {
    width: 100% !important;
  }

  /* Secondary actions: full width stacked */
  .ik-secondary-actions {
    flex-direction: column !important;
    gap: 8px !important;
  }

  /* Watchlist link: full width */
  .wsawl-link,
  .wsawl-link a {
    width: 100% !important;
  }

  /* Cart: remove button inline with product name */
  .woocommerce-cart .product-remove {
    position: absolute !important;
    right: 8px !important;
    top: 8px !important;
  }
  .woocommerce-cart .shop_table tr {
    position: relative !important;
  }

  /* Gold bar heading: smaller on mobile */
  .ik-gold-bar {
    font-size: 20px !important;
    padding: 12px 20px !important;
  }

  /* Order overview: compact */
  .woocommerce-order-overview li {
    font-size: 13px !important;
  }

  /* Checkout place order button: smaller padding */
  #place_order {
    padding: 14px 20px !important;
    font-size: 14px !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   35. PRINT
   Strip backgrounds, hide non-essential chrome for clean printing.
   ══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   MOBILE NAV + HERO CENTERING (added 2026-04-26 evening)
   - Kill hamburger left/right borders (Astra default)
   - Align logo+hamburger to same horizontal padding as content
   - Center hero text + buttons on mobile
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 921px) {
  /* Logo + hamburger horizontal padding matches content area edge.
     Site uses .ast-below-header-bar layout (NOT #ast-mobile-header). Target both. */
  #ast-mobile-header .ast-builder-grid-row,
  .ast-mobile-header-wrap .ast-builder-grid-row,
  .ast-mobile-header-wrap .main-header-bar-wrap .main-header-bar,
  .ast-below-header-bar .ast-builder-grid-row,
  .site-below-header-wrap .ast-builder-grid-row {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  /* Strip ALL internal padding on the brand/logo wrap that pushes the logo inward */
  #ast-mobile-header .site-branding,
  #ast-mobile-header .ast-site-identity,
  .ast-below-header-bar .site-branding,
  .ast-below-header-bar .ast-site-identity,
  body .site-branding.ast-site-identity {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Hamburger sits flush with right padding edge */
  #ast-mobile-header .ast-mobile-menu-buttons,
  #ast-mobile-header .site-header-section-right,
  .ast-below-header-bar .ast-mobile-menu-buttons,
  .ast-below-header-bar .site-header-section-right {
    padding-right: 0 !important;
    margin-right: 0 !important;
  }
  button.menu-toggle,
  button.main-header-menu-toggle,
  .ast-mobile-menu-trigger-fill,
  .ast-mobile-menu-trigger-minimal {
    border: none !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
}

/* Trust bar mobile: stacked items, edge-to-edge, gray separators (no gold borders) */
@media (max-width: 768px) {
  .ik-trust-bar {
    padding: 0 !important;
    margin: 0 !important;
  }
  .ik-trust-bar-inner {
    flex-direction: column !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    gap: 0 !important;
  }
  .ik-trust-bar-inner p {
    display: block !important;
    width: 100% !important;
  }
  /* Force the trust bar wrapper itself to be dark on mobile in case some
     other rule kills its gradient — belt-and-suspenders */
  .ik-trust-bar {
    background: #110F0A !important;
    background-image: none !important;
  }
  span.ik-trust-item,
  .ik-trust-bar-inner p span.ik-trust-item {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 14px 16px !important;
    margin: 0 !important;
    border: none !important;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    background: #1A1815 !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    white-space: normal !important;
  }
  /* No bottom border on the last item — let the trust bar gradient end clean */
  .ik-trust-bar-inner p:last-child span.ik-trust-item,
  .ik-trust-bar-inner > span.ik-trust-item:last-child {
    border-bottom: none !important;
  }
  /* Hide the diamond separators on mobile (they're for horizontal layout) */
  span.ik-trust-item ~ span.ik-trust-item::before,
  .ik-trust-bar-inner p ~ p span.ik-trust-item::before {
    display: none !important;
  }
}

/* Hero centering on mobile (homepage). Hero is a .wp-block-group with .wp-block-columns inside,
   NOT a .wp-block-cover — target the actual DOM. */
@media (max-width: 768px) {
  body.page-id-1381 .entry-content > .wp-block-group:first-of-type,
  body.page-id-1381 .entry-content > .wp-block-group:first-of-type .wp-block-columns,
  body.page-id-1381 .entry-content > .wp-block-group:first-of-type .wp-block-column,
  body.page-id-1381 .entry-content > .wp-block-group:first-of-type h1,
  body.page-id-1381 .entry-content > .wp-block-group:first-of-type h2,
  body.page-id-1381 .entry-content > .wp-block-group:first-of-type h3,
  body.page-id-1381 .entry-content > .wp-block-group:first-of-type p {
    text-align: center !important;
  }
  body.page-id-1381 .wp-block-buttons {
    justify-content: center !important;
    text-align: center !important;
    align-items: center !important;
  }
  body.page-id-1381 .wp-block-buttons .wp-block-button {
    text-align: center !important;
  }
  body.page-id-1381 .wp-block-buttons .wp-block-button .wp-block-button__link {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* === Sellers (page-id-1386) tablet/mobile fixes (Ruth round 5+) === */

/* At ≤1199px the entry-content drops to full-bleed (no auto margins to hold
   content-width 1200), so Dokan's #dokan-seller-listing-wrap and the
   filter row sit flush against the viewport edges. Add horizontal padding
   so cards + filter bar have breathing room. The card grid stays 2-col
   per existing media query — only the wrapping containers shift. */
@media (max-width: 1199px) {
  body.page-id-1386 #dokan-store-listing-filter-wrap,
  body.page-id-1386 #dokan-seller-listing-wrap,
  body.page-id-1386 .grid-view#dokan-seller-listing-wrap {
    padding-left: clamp(1.5rem, 3vw, 2rem) !important;
    padding-right: clamp(1.5rem, 3vw, 2rem) !important;
    box-sizing: border-box !important;
  }
  /* Filter form panel — keep its existing 16px L/R margin from the auto
     margins, but ensure padding-inline adapts. Already responsive via clamp. */
}

/* The Founding Keepers gold-bar h2 is preceded by a wp-block-spacer
   (Gutenberg-inserted, 20px tall, white bg) — visible as a "white line"
   above the gold bar at all viewports. Hide all wp-block-spacers on the
   sellers page (only one exists, right above the FK section). */
body.page-id-1386 .entry-content .wp-block-spacer,
body.page-id-1386 .wp-block-spacer {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Kill the white bar UNDER the FK section — `#primary.content-area` has
   `padding-bottom: 64px` (Astra default), bg white. FK is the last child
   of primary, so the 64px renders as a white strip between FK's dark
   background and the footer's dark background. Sellers page is full-bleed
   white so we lose nothing by zeroing this padding here. Caught at 768/375
   (Ruth round 5+); at 1440 it happens too but the gap is partially hidden
   by other layout. */
body.page-id-1386 #primary.content-area,
body.page-id-1386 #primary {
  padding-bottom: 0 !important;
}

/* Also kill empty <p> elements that Gutenberg leaves between blocks —
   they collect default margin and add ~16px of white space. The FK gold
   bar has an empty <p> immediately before it. */
body.page-id-1386 .entry-content > p:empty,
body.page-id-1386 .entry-content p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}

/* ══════════════════════════════════════════════════════════════
   PAGE 5b — Vendor Store page (/store/<slug>/) — body.dokan-store
   Comprehensive cleanup pass 2026-04-27.
   Container width, SELLER STORE gold bar, search/sort styling,
   sidebar/forms, tabs, profile card, card grid 2-col.
   The card chrome itself (.ik-ac-card mockup pattern) requires a
   snippet edit — deferred to round 2.
   ══════════════════════════════════════════════════════════════ */

/* Container: constrain to content-width 1200, center, with consistent
   horizontal padding matching .single-product. The ast-woocommerce-container
   was sprawling full-bleed (1440) so everything inside sat at x=94.
   2026-05-19 Ruth: padding-bottom dropped from clamp(2rem,4vw,3rem)
   to 0 — stacks below the storefront were adding ~185px of dead space
   between pagination and footer. Canonical /auctions/ gap is ~32px
   delivered by .content-area.primary's outer margin (see SECTION 77). */
body.dokan-store .ast-woocommerce-container {
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding-top: clamp(2rem, 4vw, 3rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
  padding-bottom: 0 !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  background: #FFFFFF !important;
}

/* Old generic "SELLER STORE" pseudo-element gold bar — DISABLED 2026-05-16
   per Ruth. Static text can't carry the vendor's actual name. Replaced
   by a real HTML gold bar with "<vendor> Store" injected by the
   "Vendor Store Bar" snippet (.ik-vendor-store-bar). */
body.dokan-store .ast-woocommerce-container::before {
  content: none !important;
  display: none !important;
}

/* New dynamic "<vendor> Store" gold bar — full-bleed band injected by
   the "Vendor Store Bar" snippet just before .dokan-profile-frame-wrapper.
   Matches the visual treatment of the prior static SELLER STORE bar:
   gold linear gradient, black bold uppercase, centered. */
body.dokan-store .ik-vendor-store-bar {
  display: block;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: var(--ik-text-2xl);
  font-weight: 700;
  line-height: 1;
  color: #000000;
  -webkit-text-fill-color: #000000;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00);
  border-top: 1px solid rgba(255, 220, 100, 0.6);
  border-bottom: 1px solid rgba(160, 130, 40, 0.5);
  padding: 1.25rem 2rem;
  text-align: center;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 0;
  margin-bottom: 0;
  box-sizing: border-box;
}

/* --- STOREFRONT HEADER CLEANUP — 2026-05-16 Ruth ---
   Banner image (the wide cover photo above the avatar) goes full-bleed
   to the viewport edges and sits flush against the site-header. Hide
   the woocommerce breadcrumb (Home / Store / pods4you) and the
   duplicate h1.store-name beneath the avatar. Avatar position + size
   stay exactly as Dokan / the dev's plugin places them. */

/* Kill the 20px top gap between the black site-header and the gold
   vendor-store-bar — Dokan's .dokan-store-wrap has a default 20px
   margin-top. 2026-05-16 Ruth flagged this gap. */
body.dokan-store .dokan-store-wrap,
body.dokan-store .dokan-store-wrap.layout-left {
  margin-top: 0 !important;
}

/* Remove the subtle 1px box border around the white card that holds
   the avatar / location / social / FOLLOW/CHAT/SHARE buttons. The
   box is split across .profile-info-summery-wrapper (top/L/R) and
   .dokan-modules-button (bottom/L/R) — both need their border
   stripped. #content prefix beats earlier .dokan-clearfix-suffixed
   rule (0,3,1) by adding ID weight (1,2,1). 2026-05-16 Ruth. */
body.dokan-store #content .profile-info-summery-wrapper,
body.dokan-store #content .profile-info-summery-wrapper.dokan-clearfix,
body.dokan-store #content .dokan-modules-button,
body.dokan-store #content .dokan-store-tabs ul.dokan-modules-button {
  border: 0 !important;
  box-shadow: none !important;
}

/* Products tab content was 1140px wide because .ast-woocommerce-container
   has 30px L/R padding constraining children inside the 1200 max-width.
   Zero that padding on storefront so the products area fills the full
   1200px content width. The gold bar + banner stay at 100vw via their
   own breakout rules. 2026-05-16 Ruth. */
body.dokan-store .ast-woocommerce-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 2026-05-18 Ruth: at viewport < 1200, the .ast-woocommerce-container's
   max-width:1200 can no longer center with natural margins, so it fills
   the viewport. The zero-padding rule above then leaves storefront
   content flush to the page edges (iPad Pro 12" portrait at 1024 made
   this obvious). Restore page-edge padding ONLY below the max-width
   threshold; at >=1200 the centering still works and no padding is
   needed (preserves the 5/16 intent of filling the 1200 content width). */
@media (max-width: 1199px) {
  body.dokan-store .ast-woocommerce-container {
    padding-left: clamp(1.5rem, 4vw, 3rem) !important;
    padding-right: clamp(1.5rem, 4vw, 3rem) !important;
  }
}

/* .ik-storefront (18px L/R) and .ik-home-section (20px) padding stacked
   38px of inset, leaving the home-tab headings + cards at 1124px while
   the tab row above sits at the full 1200px. Zero the L/R on both so
   "Featured Live Auctions" / "VIEW ALL AUCTIONS" / cards align with
   the PRODUCTS / REVIEWS / VENDOR BIOGRAPHY tab row. Vertical padding
   stays — only horizontal is removed. 2026-05-16 Ruth. */
body.dokan-store .ik-storefront {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.dokan-store .ik-home-section {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Banner: full-bleed, flush against header (no top gap) */
body.dokan-store .dokan-profile-frame-wrapper {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.dokan-store .profile-frame,
body.dokan-store .profile-info-box {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.dokan-store img.profile-info-img {
  display: block !important;
  width: 100vw !important;
  max-width: none !important;
  height: 240px !important;   /* fixed band height; natural aspect (~2:1) would otherwise give 689px at 1440vw */
  object-fit: cover !important;
  object-position: center !important;
  /* 100vw breakout from the constrained content container */
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  margin-top: 0 !important;
}
@media (max-width: 768px) {
  body.dokan-store img.profile-info-img {
    height: 180px !important;
  }
}
@media (max-width: 480px) {
  body.dokan-store img.profile-info-img {
    height: 140px !important;
  }
}

/* Remove the small white padding gap above the banner that came from
   ast-woocommerce-container's content padding */
body.dokan-store .ast-woocommerce-container {
  padding-top: 0 !important;
}

/* Hide the WC breadcrumb on the storefront */
body.dokan-store nav.woocommerce-breadcrumb {
  display: none !important;
}

/* Hide the duplicate vendor name h1 below the round avatar */
body.dokan-store h1.store-name {
  display: none !important;
}

/* Wrap: balance sidebar + main, sharper gap, no extra background */
body.dokan-store .dokan-store-wrap.layout-left {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 32px !important;
  background: transparent !important;
}
body.dokan-store #dokan-secondary.dokan-store-sidebar {
  flex: 0 0 280px !important;
  width: 280px !important;
}
body.dokan-store #dokan-primary.dokan-single-store {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
/* 2026-05-16: Dokan ships a default `margin-left: 0.7em` (≈11.25px at default
   font-size) on .dokan-single-store. On mobile this offsets the entire
   storefront 11px right of the viewport's left edge, creating horizontal
   scroll (Ruth: "mobile has white space on left pushing everything to
   the right"). Zero it out site-wide. */
.dokan-single-store {
  margin-left: 0 !important;
}

/* === Sidebar === */
body.dokan-store .dokan-store-sidebar .widget {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin-bottom: 28px !important;
}
body.dokan-store .dokan-store-sidebar .widget h3,
body.dokan-store .dokan-store-sidebar .widget-title,
body.dokan-store .dokan-store-sidebar .dokan-widget-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}
body.dokan-store .dokan-store-sidebar ul,
body.dokan-store .dokan-store-sidebar ol {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.dokan-store .dokan-store-sidebar ul li {
  padding: 6px 0 !important;
  margin: 0 !important;
  border: none !important;
}
body.dokan-store .dokan-store-sidebar ul li a {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}
body.dokan-store .dokan-store-sidebar ul li a:hover {
  color: #6F5A1F !important;
  -webkit-text-fill-color: #6F5A1F !important;
}

/* === Contact Vendor form (sidebar) — match style guide forms === */
body.dokan-store .dokan-store-contact form input[type="text"],
body.dokan-store .dokan-store-contact form input[type="email"],
body.dokan-store .dokan-store-contact form textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  padding: 10px 14px !important;
  outline: none !important;
  margin-bottom: 12px !important;
  resize: vertical !important;
}
body.dokan-store .dokan-store-contact form input[type="text"]:focus,
body.dokan-store .dokan-store-contact form input[type="email"]:focus,
body.dokan-store .dokan-store-contact form textarea:focus {
  border-color: #9A7E2E !important;
}
body.dokan-store .dokan-store-contact form .description,
body.dokan-store .dokan-store-contact form p {
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  margin: 0 0 12px 0 !important;
  line-height: 1.5 !important;
}
/* SEND MESSAGE button — gold filled, BLACK text per universal rule */
body.dokan-store .dokan-store-contact form input[type="submit"],
body.dokan-store .dokan-store-contact input.dokan-btn-theme[type="submit"] {
  width: 100% !important;
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  cursor: pointer !important;
}
body.dokan-store .dokan-store-contact form input[type="submit"]:hover,
body.dokan-store .dokan-store-contact input.dokan-btn-theme[type="submit"]:hover {
  background: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* === Profile card === */
body.dokan-store .dokan-profile-frame-wrapper {
  margin-bottom: 20px !important;
}
/* Banner inside profile-frame */
body.dokan-store .profile-frame .profile-info-img {
  border-radius: 0 !important;
}
/* Vendor name */
body.dokan-store .profile-frame .profile-info-summery-wrapper .store-name,
body.dokan-store .profile-frame h1.store-name,
body.dokan-store .profile-frame .store-name {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.25rem, 2vw, 1.5rem) !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  margin: 16px 0 8px 0 !important;
}
/* Sub-info row (location, email, rating) */
body.dokan-store .profile-frame .store-address,
body.dokan-store .profile-frame .store-rating,
body.dokan-store .profile-frame .store-email,
body.dokan-store .profile-frame .profile-info-summery-wrapper > p {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  color: #555555 !important;
  -webkit-text-fill-color: #555555 !important;
  text-align: center !important;
}

/* Action button row inside profile card (Follow / Chat / Share) — center it,
   keep outline-secondary look from existing rules at line 13262 */
body.dokan-store .profile-frame .dokan-store-share-buttons,
body.dokan-store .profile-frame .dokan-store-follow,
body.dokan-store .profile-frame .dokan-store-contact-btn,
body.dokan-store .profile-frame .store-button-area {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin: 12px 0 16px 0 !important;
}

/* === Search + Sort row (.dokan-store-products-filter-area) — single
       horizontal row: text input, gold SEARCH button, sort dropdown.
       Tight spacing: minimal padding above/below so the row sits close
       to the tab strip without dead space. */
body.dokan-store .dokan-store-products-filter-area {
  display: block !important;
  margin: 0 0 20px 0 !important;
  padding: 16px 0 0 0 !important;
  border: none !important;
}

/* The single Dokan form contains text input, search submit, and sort
   select — give it a flex row layout with all three baseline-aligned
   to a uniform 40px height. At ≤480 the row wraps to keep the sort
   dropdown from overflowing the viewport. */
body.dokan-store .dokan-store-products-filter-area form.dokan-store-products-ordeby,
body.dokan-store form.dokan-store-products-ordeby {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  flex-wrap: wrap !important;
}
@media (max-width: 480px) {
  body.dokan-store .dokan-store-products-filter-area input.product-name-search {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
  body.dokan-store .dokan-store-products-filter-area input.search-store-products {
    flex: 0 0 auto !important;
  }
  body.dokan-store .dokan-store-products-filter-area select[name="product_orderby"],
  body.dokan-store select[name="product_orderby"] {
    flex: 1 1 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
  }
}

/* Text input — flex-1, max 360 */
body.dokan-store .dokan-store-products-filter-area input.product-name-search,
body.dokan-store input.product-name-search,
body.dokan-store input.dokan-store-products-filter-search {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: 360px !important;
  box-sizing: border-box !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  padding: 0 14px !important;
  outline: none !important;
  height: 40px !important;
  margin: 0 !important;
}
body.dokan-store input.product-name-search:focus {
  border-color: #9A7E2E !important;
}

/* AJAX results dropdown — keep out of flex flow so it doesn't disrupt
   the row layout */
body.dokan-store #dokan-store-products-search-result.dokan-ajax-store-products-search-result {
  flex: 0 0 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  position: absolute !important;
}

/* SEARCH submit — gold filled, BLACK text. Override the outline-secondary
   rule above (line 13262) which sweeps `input.search-store-products` into
   the white-bg group. Higher specificity via `body.dokan-store #content`. */
body.dokan-store #content input.search-store-products,
body.dokan-store #content input.search-store-products[type="submit"],
body.dokan-store #content input.search-store-products.dokan-btn-theme,
body.dokan-store #content .search-store-products[type="submit"] {
  background: #FFCC33 !important;
  background-color: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  border: 1px solid #FFCC33 !important;
  border-radius: 0 !important;
  height: 40px !important;
  padding: 0 20px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  cursor: pointer !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}
body.dokan-store #content input.search-store-products:hover,
body.dokan-store #content input.search-store-products[type="submit"]:hover {
  background: #FFDB66 !important;
  background-color: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* Sort dropdown — pin to right edge via auto left-margin, 40px height */
body.dokan-store .dokan-store-products-filter-area select.orderby,
body.dokan-store .dokan-store-products-filter-area select[name="product_orderby"],
body.dokan-store select[name="product_orderby"],
body.dokan-store .dokan-store-products-ordeby select,
body.dokan-store select[name="orderby"] {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  padding: 0 14px !important;
  outline: none !important;
  cursor: pointer !important;
  min-width: 200px !important;
  height: 40px !important;
  margin: 0 0 0 auto !important;
  flex: 0 0 auto !important;
  box-sizing: border-box !important;
}
body.dokan-store select[name="product_orderby"]:focus,
body.dokan-store .dokan-store-products-ordeby select:focus,
body.dokan-store select[name="orderby"]:focus {
  border-color: #9A7E2E !important;
}

/* === Card grid: 4-col → 2-col matching mockup. Force grid layout. === */
body.dokan-store .seller-items ul.products,
body.dokan-store ul.products.columns-4,
body.dokan-store ul.products.columns-3 {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 20px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.dokan-store .seller-items ul.products li.product,
body.dokan-store ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
}
@media (max-width: 600px) {
  body.dokan-store .seller-items ul.products,
  body.dokan-store ul.products.columns-4,
  body.dokan-store ul.products.columns-3 {
    grid-template-columns: 1fr !important;
  }
}

/* Hide the empty .auction-bage span on store cards (same trick as on
   product page Related Products — the snippet doesn't populate it). */
body.dokan-store ul.products li.product .auction-bage:empty {
  display: none !important;
}

/* BID NOW / VIEW AUCTION buttons on .ik-ac-card chrome — Ruth caught these
   rendering with bronze text (#9A7E2E) instead of black (BID NOW) or dark
   gray (VIEW AUCTION). Cause: the white-page link rule
   (`body:not(.page-id-1381):not(.page-id-2594) #content a:link`) has
   specificity (1,3,2) — beats the existing card-button rules at (0,3,2).
   Override here at (1,4,2) by chaining `.ik-ac-card` after `#content`.
   Applies site-wide (auctions listing, related products, store cards). */
body #content .ik-ac-card a.ik-ac-bid-btn,
body #content .ik-ac-card a.ik-ac-bid-btn:link,
body #content .ik-ac-card a.ik-ac-bid-btn:visited,
body #content .ik-ac-card a.ik-ac-bid-btn:hover,
body #content .ik-ac-card .ik-ac-actions a.ik-ac-bid-btn,
body #content .ik-ac-card .ik-ac-actions a.ik-ac-bid-btn:link,
body #content .ik-ac-card .ik-ac-actions a.ik-ac-bid-btn:visited {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}
body #content .ik-ac-card a.ik-ac-view-btn,
body #content .ik-ac-card a.ik-ac-view-btn:link,
body #content .ik-ac-card a.ik-ac-view-btn:visited,
body #content .ik-ac-card .ik-ac-actions a.ik-ac-view-btn,
body #content .ik-ac-card .ik-ac-actions a.ik-ac-view-btn:link,
body #content .ik-ac-card .ik-ac-actions a.ik-ac-view-btn:visited {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}
body #content .ik-ac-card a.ik-ac-view-btn:hover,
body #content .ik-ac-card .ik-ac-actions a.ik-ac-view-btn:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Breadcrumb on the LEFT (sidebar column) instead of full-width above the
   wrap. Per Ruth (round 4): position over the sidebar's top space.
   Round 5 fix: previous `top: clamp(2rem, 4vw, 3rem)` (32-48px) put the
   breadcrumb INSIDE the gold bar's vertical area (gold bar bottom is at
   ~76px in container coords + 40px margin-bottom = 116px clear). Bump
   `top` to 130px so the breadcrumb lands BELOW the gold bar and ABOVE
   the first sidebar widget (Store Product Category). */
body.dokan-store .ast-woocommerce-container > nav.woocommerce-breadcrumb,
body.dokan-store .ast-woocommerce-container nav.woocommerce-breadcrumb {
  position: absolute !important;
  top: 130px !important;
  left: clamp(1.5rem, 3vw, 2rem) !important;
  width: 280px !important;
  max-width: 280px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  color: #666666 !important;
  -webkit-text-fill-color: #666666 !important;
  z-index: 2 !important;
}
body.dokan-store .ast-woocommerce-container nav.woocommerce-breadcrumb a,
body.dokan-store .ast-woocommerce-container nav.woocommerce-breadcrumb a:link,
body.dokan-store .ast-woocommerce-container nav.woocommerce-breadcrumb a:visited {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
}

/* Push sidebar widgets below the absolute-positioned breadcrumb */
body.dokan-store #dokan-secondary.dokan-store-sidebar {
  padding-top: 32px !important;
}

/* Tablet (≤768): unstack — breadcrumb returns to normal flow above the
   stacked layout, sidebar padding-top zeroed. */
@media (max-width: 768px) {
  body.dokan-store .ast-woocommerce-container > nav.woocommerce-breadcrumb,
  body.dokan-store .ast-woocommerce-container nav.woocommerce-breadcrumb {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    top: auto !important;
    left: auto !important;
    margin: 0 0 16px 0 !important;
  }
  body.dokan-store #dokan-secondary.dokan-store-sidebar {
    padding-top: 0 !important;
  }
}

/* Active-tab state — Dokan doesn't add `.active` class to the current tab
   (the tabs are full-page-reload links, not JS toggles). Use `:has()` to
   detect the current sub-page from elements only present on that page,
   then highlight the matching tab via :nth-child().
   - Products page: contains `.dokan-store-products-filter-area` (the search/sort row)
   - Reviews page: contains `#reviews` or `.commentlist`
   - Vendor Biography page: contains `.dokan-store-biography` or `.vendor-biography` */
body.dokan-store:has(.dokan-store-products-filter-area) .dokan-store-tabs ul.dokan-list-inline li:nth-child(1),
body.dokan-store:has(.seller-items) .dokan-store-tabs ul.dokan-list-inline li:nth-child(1) {
  background: #F8F8F6 !important;
  border-color: #E8E8E6 !important;
  border-bottom: 2px solid #F8F8F6 !important;
}
body.dokan-store:has(.dokan-store-products-filter-area) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(1) a,
body.dokan-store:has(.seller-items) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(1) a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

body.dokan-store:has(#reviews) .dokan-store-tabs ul.dokan-list-inline li:nth-child(2),
body.dokan-store:has(.commentlist) .dokan-store-tabs ul.dokan-list-inline li:nth-child(2),
body.dokan-store:has(.add-review-btn) .dokan-store-tabs ul.dokan-list-inline li:nth-child(2) {
  background: #F8F8F6 !important;
  border-color: #E8E8E6 !important;
  border-bottom: 2px solid #F8F8F6 !important;
}
body.dokan-store:has(#reviews) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(2) a,
body.dokan-store:has(.commentlist) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(2) a,
body.dokan-store:has(.add-review-btn) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(2) a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

body.dokan-store:has(.dokan-store-biography) .dokan-store-tabs ul.dokan-list-inline li:nth-child(3),
body.dokan-store:has(.vendor-biography) .dokan-store-tabs ul.dokan-list-inline li:nth-child(3),
body.dokan-store:has(.dokan-vendor-biography) .dokan-store-tabs ul.dokan-list-inline li:nth-child(3) {
  background: #F8F8F6 !important;
  border-color: #E8E8E6 !important;
  border-bottom: 2px solid #F8F8F6 !important;
}
body.dokan-store:has(.dokan-store-biography) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(3) a,
body.dokan-store:has(.vendor-biography) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(3) a,
body.dokan-store:has(.dokan-vendor-biography) #content .dokan-store-tabs ul.dokan-list-inline li:nth-child(3) a {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

/* === Tablet stacking === */
@media (max-width: 768px) {
  body.dokan-store .dokan-store-wrap.layout-left {
    flex-direction: column !important;
    flex-wrap: wrap !important;
  }
  body.dokan-store #dokan-secondary.dokan-store-sidebar,
  body.dokan-store #dokan-primary.dokan-single-store {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
  body.dokan-store #dokan-secondary.dokan-store-sidebar {
    order: 2 !important;
  }
}

@media print {
  body { background: #fff !important; color: #000 !important; -webkit-text-fill-color: #000 !important; }
  body::before { display: none !important; }
  .top-announcement-bar, .site-header, .site-footer, .logo-carousel-free { display: none !important; }
}

/* (Removed 2026-04-27: Golden Ticket :first-child override. It was patching
   the symptom of the unconditional `.menu-item:first-child { display: none }`
   rule above, which has now been removed. With that rule gone, all top-level
   items render naturally per the WP menu admin and no override is needed.) */

/* ══════════════════════════════════════════════════════════════
   MINI-CART — broaden selectors so the .astra-cart-drawer (the
   slide-out drawer used on tablet/mobile when the cart icon is
   clicked) gets the same text treatment as the desktop hover dropdown.
   The original rules required a `.ast-site-header-cart` ancestor that
   the drawer doesn't have, so subtotal + amounts were inheriting
   `--ik-text-secondary` (#D5D5D5 dark-bg body) and rendering near-
   invisible on the drawer's white background.
   ══════════════════════════════════════════════════════════════ */

/* Subtotal row */
.astra-cart-drawer .woocommerce-mini-cart__total,
.widget_shopping_cart_content .woocommerce-mini-cart__total,
p.woocommerce-mini-cart__total {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  border-top: 1px solid #E8E8E6 !important;
  padding: 12px 16px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.astra-cart-drawer .woocommerce-mini-cart__total .amount,
.widget_shopping_cart_content .woocommerce-mini-cart__total .amount,
p.woocommerce-mini-cart__total .amount {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 700 !important;
}

/* Quantity row inside cart items */
.astra-cart-drawer .mini_cart_item .quantity,
.widget_shopping_cart_content .mini_cart_item .quantity {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Vendor variation text */
.astra-cart-drawer .mini_cart_item .variation dt,
.astra-cart-drawer .mini_cart_item .variation dd,
.widget_shopping_cart_content .mini_cart_item .variation dt,
.widget_shopping_cart_content .mini_cart_item .variation dd {
  color: #888888 !important;
  -webkit-text-fill-color: #888888 !important;
}

/* "Your cart is currently empty." text */
.astra-cart-drawer p.woocommerce-mini-cart__empty-message,
.widget_shopping_cart_content p.woocommerce-mini-cart__empty-message {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Buttons row — already has `p.woocommerce-mini-cart__buttons` selectors
   in the existing CSS, but the `<p>` itself inherits #D5D5D5 from html.
   Force dark on white so any direct text in the wrapper is readable. */
p.woocommerce-mini-cart__buttons,
.astra-cart-drawer .woocommerce-mini-cart__buttons,
.widget_shopping_cart_content .woocommerce-mini-cart__buttons {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* Remove (×) button on items inside the drawer */
.astra-cart-drawer .mini_cart_item > a.remove,
.astra-cart-drawer .mini_cart_item > a.remove_from_cart_button,
.widget_shopping_cart_content .mini_cart_item > a.remove,
.widget_shopping_cart_content .mini_cart_item > a.remove_from_cart_button {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}
.astra-cart-drawer .mini_cart_item > a.remove::after,
.astra-cart-drawer .mini_cart_item > a.remove_from_cart_button::after,
.widget_shopping_cart_content .mini_cart_item > a.remove::after,
.widget_shopping_cart_content .mini_cart_item > a.remove_from_cart_button::after {
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
}

/* "Shopping Cart" header title at the top of the slideout drawer.
   2026-05-18 Ruth: was rendering as light gray (#D5D5D5) because Astra's
   drawer-title inherits -webkit-text-fill-color from the dark-bg body-text
   variable. Explicit fill override + color makes it black/heading-dark like
   the rest of the cart content. */
.astra-cart-drawer .astra-cart-drawer-title,
.astra-cart-drawer-title {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 600 !important;
}

/* ==========================================================================
   Dokan single-store header — cosmetic spacing polish (2026-05-02).
   Scoped to body.dokan-store so it can't leak to listings or other pages.
   Pure visual fix — no markup, no functional change. The dev's seller-storefront
   WIP can rename/restructure these elements without breaking the site; the
   rules just stop matching. */

/* Tighten the store-name H1 — Dokan default leaves a wide gap below it. */
body.dokan-store .profile-info-summery-wrapper h1.store-name {
  margin-top: 8px !important;
  margin-bottom: 4px !important;
}

/* Trim the per-row bottom padding on the address/phone/email/rating list
   so the rows don't read as widely-spaced when rating wraps to a new line.
   Also enable wrap with a row-gap so wrapped rows get breathing room without
   forcing a baseline drop on the single-row case. (Earlier `margin-top: 4px`
   on .dokan-store-rating + `::after` suppression on .dokan-store-email
   broke single-row vendors like mikes-bug-box and lana — separator vanished
   and rating sat 4px below the baseline. row-gap covers the wrap case
   without those side effects.) */
body.dokan-store ul.dokan-store-info {
  flex-wrap: wrap !important;
  row-gap: 4px !important;
}
body.dokan-store ul.dokan-store-info > li {
  padding-bottom: 0 !important;
}

/* Hide the empty social-icons wrapper. Vendors without social links (most of
   them right now) get an unused 24px box of dead space. :has() keeps the
   wrapper visible for vendors who DO have social links. */
body.dokan-store .profile-info-summery-wrapper .store-social-wrapper:not(:has(.store-social > li)) {
  display: none !important;
}

/* Tighten the bottom padding on the profile-info-summery-wrapper so the
   FOLLOW / CHAT NOW / SHARE button row sits closer to the rating row. */
body.dokan-store .profile-info-summery-wrapper {
  padding-bottom: 8px !important;
}

/* Fix Dokan info notice text color on dark bg.
   The base rule at line 6047 sets text to var(--ik-text-secondary) but a
   later/more-specific Dokan or theme rule pushes it back to #333, which on
   the #1E1E1B notice bg renders as black-on-black. Use a higher-specificity
   selector here to lock the text + heading + link colors readable. */
body.dokan-store p.dokan-info,
body.dokan-store .dokan-store-wrap p.dokan-info,
body.dokan-store .dokan-message,
body.dokan-store .dokan-store-wrap .dokan-message {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
body.dokan-store p.dokan-info a,
body.dokan-store p.dokan-info a:link,
body.dokan-store p.dokan-info a:visited,
body.dokan-store .dokan-message a,
body.dokan-store .dokan-message a:link,
body.dokan-store .dokan-message a:visited {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
}

/* Universal rule: gold background = black foreground.
   The "i" glyph in .dokan-info::before sits on a gold square but defaults
   to white. Lock it to black. */
body.dokan-store p.dokan-info::before,
body.dokan-store .dokan-store-wrap p.dokan-info::before {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

/* ──────────────────────────────────────────────────────────────────
   Repeat-buyer free-shipping snippet banners (cart + checkout).
   Source: ik_repeat_buyer_free_shipping snippet, action hooks
   woocommerce_before_cart and woocommerce_before_checkout_form.
   Two banners:
     .ik-repeat-buyer-hint   — pale info banner ("Buy isopods from … again
                                this week and your next isopod order ships
                                free!"). Snippet sets these inline; we
                                re-assert with !important so cache state
                                or other plugins can never strip them.
     .ik-repeat-buyer-notice — green success banner ("Free isopod shipping
                                from … — You can still win more from this
                                seller before sunday and ship everything
                                together for free!").
   Reason: dev's 2026-05-05 screenshot showed the hint banner rendering
   pale on near-white bg (text barely legible). We could not reproduce the
   pale state on prod via DOM injection, but inline-style-only is fragile
   per feedback_snippet_inline_vs_custom_styles_cascade.md. Locking the
   contrast in custom-styles.css with body-class scoping defends against
   it permanently. */
body.woocommerce-cart .ik-repeat-buyer-hint,
body.woocommerce-checkout .ik-repeat-buyer-hint {
  background: #F8F8F6 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #E8E8E6 !important;
  border-left: 3px solid #9A7E2E !important;
  padding: 14px 20px !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 14px !important;
  text-align: center !important;
  margin-bottom: 16px !important;
}
body.woocommerce-cart .ik-repeat-buyer-hint strong,
body.woocommerce-checkout .ik-repeat-buyer-hint strong {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 700 !important;
}

body.woocommerce-cart .ik-repeat-buyer-notice,
body.woocommerce-checkout .ik-repeat-buyer-notice {
  background: linear-gradient(135deg, #2d7d3a, #1a5c27) !important;
  background-color: #2d7d3a !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border: none !important;
  padding: 14px 20px !important;
  border-radius: 0 !important;
  font-family: var(--ik-font-body) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-align: center !important;
  margin-bottom: 16px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
}
body.woocommerce-cart .ik-repeat-buyer-notice strong,
body.woocommerce-checkout .ik-repeat-buyer-notice strong {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight: 700 !important;
}


/* ══════════════════════════════════════════════════════════════
   SECTION 58. /STORE-PRODUCT/ (page-id-5254) — .ik-product-catalog
   ══════════════════════════════════════════════════════════════
   Applies the auctions-page shortcode styling to the cross-vendor
   product catalog page. The dev re-used our existing class names
   (.ik-shipping-banner-block, .ik-auction-rules-banner,
   .ik-auction-filter-form, .ik-auction-filter-group, .ik-ac-card,
   .ik-ac-bid-btn, .ik-auction-filter-btn, .ik-status-live,
   .ik-status-upcoming, etc.), but the typography / color / button
   rules in this file were all scoped body.page-id-1384, so the new
   page rendered unstyled.

   The shared class .ik-product-catalog is added to the body of
   page 5254 by Code Snippet ID 56 ("IK: Add ik-product-catalog
   body class to /store-product/"). Future cross-vendor catalog
   pages get the same styling by adding their page IDs to that
   snippet — no CSS edit needed.

   These rules MIRROR the existing body.page-id-1384 rules; the
   original auctions selectors are intentionally left untouched
   so any dev code referencing page-id-1384 keeps working.

   Audit doc: /workspace/docs/audits/page-5254-store-product-2026-05-15.md
   Authored: 2026-05-15 (PST)
   ══════════════════════════════════════════════════════════════ */

/* Override Astra's default .entry-content (1200px max-width + 45px L/R padding).
   Without this override, the card grid and filter form inherit the 45px padding
   and become 1110 wide instead of the design-system 1200. Banners still go
   full-bleed via their negative-margin trick; cards + filter explicitly
   constrained back to max-width 1200 below. Mirrors line 7528.
   #content prefix needed to beat the universal
   body:not(.page-id-1381):not(.page-id-2594)... .entry-content rule with max-width var(--ik-max-width)
   at specificity ~(0,10,1). #content adds ID weight giving (1,2,1) which dominates. */
body.ik-product-catalog #content .entry-content {
  background: #FFFFFF !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* Filter form needs an explicit max-width constraint now that entry-content
   is full-bleed — otherwise it would stretch to 1440. */
body.ik-product-catalog form.ik-auction-filter-form,
body.ik-product-catalog .ik-auction-filter-form {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
}

/* Suppress Astra's auto-rendered <h1 class="entry-title">page title</h1>.
   The dev's H1 gold bar ("SHOP ISOPOD PRODUCTS") serves as the real page
   heading; Astra's title is a duplicate that surfaces visibly at narrower
   viewports. Hide it but keep it in the DOM for SEO. */
body.ik-product-catalog .entry-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* H1 gold bar flush against shipping banner below (mirrors line 7597).
   Without margin-bottom:0 there's a 32px white gap between the gold bar
   and the dark shipping banner — breaks the full-bleed banner stack flow
   that auctions has. #content prefix needed to beat the universal
   body:not(.page-id-1381):not(.page-id-2594):not(.page-id-1384):not(.page-id-1386) .entry-content > h1 rule
   which sets margin-bottom: 32px !important at specificity (0,5,2). #content
   adds ID weight giving (1,2,2) which dominates. */
body.ik-product-catalog #content h1.wp-block-heading {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* H2 "PRODUCT LISTINGS" full-bleed gold bar (mirrors the auctions h2 gold-bar
   treatment at line 7457). On /store-product/ the dev uses h2.wp-block-heading
   (not h2.ik-gold-bar like auctions); without these rules the h2 renders
   constrained to the entry-content 1200px width with a default 37px margin
   below — breaks the full-bleed banner rhythm. Treats it as a major section
   divider, same as the H1, per style guide H2 gold-bar exception. */
body.ik-product-catalog h2.wp-block-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  /* full-bleed: extend to viewport edges past entry-content's 1200px constraint */
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
  display: block !important;
  position: relative !important;
}

/* Banner sections full-bleed (mirrors line 7603-7610) */
body.ik-product-catalog .ik-shipping-banner-block,
body.ik-product-catalog .ik-auction-rules-banner {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  position: relative !important;
}

/* Shipping banner typography (mirrors lines 7761-7813) */
body.ik-product-catalog .entry-content .ik-shipping-banner-block .ik-shipping-banner-title {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  text-align: center !important;
}
body.ik-product-catalog .entry-content .ik-shipping-banner-block .ik-shipping-banner-intro {
  font-size: 15px !important;
  color: rgba(255,255,255,0.75) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.75) !important;
  margin: 0 0 36px 0 !important;
  padding: 0 !important;
  text-align: center !important;
  max-width: 100% !important;
}
body.ik-product-catalog .entry-content .ik-shipping-banner-block .ik-shipping-banner-price {
  font-size: 36px !important;
  font-weight: 700 !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  line-height: 1 !important;
  margin-bottom: 8px !important;
  font-family: 'Inter', sans-serif !important;
}
body.ik-product-catalog .entry-content .ik-shipping-banner-block .ik-shipping-banner-desc {
  font-size: 13px !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}
/* Shipping banner footer note (mirrors line 7817).
   "If you purchase from more than one seller..." — without this the p inherits
   the white-page body color #333 on the dark band and is barely readable. */
body.ik-product-catalog .entry-content .ik-shipping-banner-block .ik-shipping-banner-note {
  font-size: 13px !important;
  color: rgba(255,255,255,0.8) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.8) !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  max-width: 100% !important;
}

/* Rules banner body text + title + links (mirrors lines 7686-7715, 7733-7736, 7848-7861).
   Rules-banner-title must be gold/uppercase — without these color/font rules the
   h3 inherits dark heading color and becomes invisible on the dark band. */
body.ik-product-catalog .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  text-align: center !important;
}
body.ik-product-catalog .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-rule {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: rgba(255,255,255,0.9) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.9) !important;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
}
body.ik-product-catalog .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-rule:last-child {
  margin-bottom: 0 !important;
}
body.ik-product-catalog .entry-content .ik-auction-rules-banner .ik-auction-rules-banner-rule strong {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  font-weight: 600 !important;
}
/* #content prefix to beat the white-page link rule */
body.ik-product-catalog #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a,
body.ik-product-catalog #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a:link,
body.ik-product-catalog #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a:visited {
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  text-decoration: underline !important;
}
body.ik-product-catalog #content .ik-auction-rules-banner .ik-auction-rules-banner-rule a:hover {
  color: #FFD966 !important;
  -webkit-text-fill-color: #FFD966 !important;
}

/* Filter form: labels + selects + text/search inputs (mirrors 7461-7462, 7934-7949) */
body.ik-product-catalog .ik-auction-filter-group label {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}
body.ik-product-catalog .ik-auction-filter-form input[type="text"],
body.ik-product-catalog .ik-auction-filter-form input[type="search"],
body.ik-product-catalog .ik-auction-filter-form input[type="number"],
body.ik-product-catalog .ik-auction-filter-form select,
body.ik-product-catalog .ik-auction-filter-group input[type="text"],
body.ik-product-catalog .ik-auction-filter-group input[type="search"],
body.ik-product-catalog .ik-auction-filter-group input[type="number"],
body.ik-product-catalog .ik-auction-filter-group select {
  background: #FFFFFF !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  border: 1px solid #D0D0CE !important;
  height: 36px !important;
  padding: 6px 12px !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
}
body.ik-product-catalog .ik-auction-filter-form input:focus,
body.ik-product-catalog .ik-auction-filter-form select:focus,
body.ik-product-catalog .ik-auction-filter-group input:focus,
body.ik-product-catalog .ik-auction-filter-group select:focus {
  outline: 1px solid #9A7E2E !important;
  outline-offset: -1px !important;
  border-color: #9A7E2E !important;
}

/* Filter form base buttons + Apply Filters gold primary (mirrors line 7463) */
body.ik-product-catalog .ik-auction-filter-form a,
body.ik-product-catalog .ik-auction-filter-form button,
body.ik-product-catalog .ik-auction-filter-form a:link,
body.ik-product-catalog .ik-auction-filter-form a:visited {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  font-family: Inter, sans-serif !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  background: #FFF !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  text-decoration: none !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}
body.ik-product-catalog .ik-auction-filter-form a:hover,
body.ik-product-catalog .ik-auction-filter-form button:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: #FAFAF8 !important;
}
/* Apply Filters — gold filled primary */
body.ik-product-catalog .ik-auction-filter-btn,
body.ik-product-catalog button.ik-auction-filter-btn,
body.ik-product-catalog .ik-auction-filter-form .ik-auction-filter-btn {
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-color: #FFCC33 !important;
  font-weight: 700 !important;
  align-self: flex-end !important;
  height: 36px !important;
  max-height: 36px !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
  line-height: 1 !important;
  border-radius: 0 !important;
}
body.ik-product-catalog .ik-auction-filter-btn:hover,
body.ik-product-catalog button.ik-auction-filter-btn:hover,
body.ik-product-catalog .ik-auction-filter-form .ik-auction-filter-btn:hover {
  background: #FFDB66 !important;
  border-color: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}
/* Keep filter form buttons on one line */
body.ik-product-catalog form.ik-auction-filter-form a,
body.ik-product-catalog form.ik-auction-filter-form button {
  white-space: nowrap !important;
}

/* Card status + indicator badges (mirrors lines 7479-7486).
   #content prefix added to beat the universal `body:not(.page-id-1381):not(.page-id-2594) .entry-content span`
   rule (priority !important, specificity 0,3,2). With #content this selector
   is (1,2,1), winning by ID weight.
   The dev re-used .ik-status-upcoming for SALE products on this page —
   the existing bronze treatment (rgba(154,126,46,0.1) / #9A7E2E) reads
   as "deal/value" on white cards and distinguishes from the green
   .ik-status-live IN STOCK badge. No new SALE class required. */
body.ik-product-catalog #content .ik-ac-status {
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 3px 8px !important;
  border-radius: 0 !important;
}
body.ik-product-catalog #content .ik-status-live {
  background: rgba(34,197,94,0.12) !important;
  color: #16A34A !important;
  -webkit-text-fill-color: #16A34A !important;
}
body.ik-product-catalog #content .ik-status-finished {
  background: rgba(0,0,0,0.04) !important;
  color: #888 !important;
  -webkit-text-fill-color: #888 !important;
}
body.ik-product-catalog #content .ik-status-upcoming {
  background: rgba(154,126,46,0.1) !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Card category meta (mirrors line 7487). #content prefix for same reason as badges. */
body.ik-product-catalog #content .ik-ac-cat {
  font-size: 10px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 4px !important;
  display: block !important;
}

/* Card title heading + link color (mirrors lines 7488-7490).
   #content prefix is required to beat the white-page link rule which
   paints #content a:link/:visited as #9A7E2E (bronze). */
body.ik-product-catalog h3.ik-ac-title {
  margin: 0 0 8px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  width: auto !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
body.ik-product-catalog #content .ik-ac-title a,
body.ik-product-catalog #content .ik-ac-title a:link,
body.ik-product-catalog #content .ik-ac-title a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
}
body.ik-product-catalog #content .ik-ac-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Card price/bid info (mirrors lines 7491-7493). #content prefix for entry-content rule precedence. */
body.ik-product-catalog #content .ik-ac-bid {
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  margin: 0 0 4px !important;
}
body.ik-product-catalog #content .ik-ac-bid strong {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body.ik-product-catalog #content .ik-ac-bids {
  font-size: 12px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  margin: 0 0 8px !important;
}

/* Card vendor row (mirrors lines 7495-7496) */
body.ik-product-catalog .ik-ac-vendor img {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
}
body.ik-product-catalog #content .ik-ac-vendor span {
  font-size: 11px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}
body.ik-product-catalog #content .ik-ac-vendor strong {
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
}

/* Add-to-cart button = ik-ac-bid-btn (gold primary; mirrors lines 7498-7499).
   The dev used ik-ac-bid-btn for the ADD TO CART button on this page. */
body.ik-product-catalog #content a.ik-ac-bid-btn,
body.ik-product-catalog #content a.ik-ac-bid-btn:link,
body.ik-product-catalog #content a.ik-ac-bid-btn:visited {
  display: block !important;
  text-align: center !important;
  padding: 10px !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border: none !important;
  border-radius: 0 !important;
  text-decoration: none !important;
}
body.ik-product-catalog #content a.ik-ac-bid-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Pagination (mirrors lines 7503-7505) */
body.ik-product-catalog .ik-page-btn,
body.ik-product-catalog a.ik-page-btn,
body.ik-product-catalog a.ik-page-btn:link,
body.ik-product-catalog a.ik-page-btn:visited {
  padding: 8px 14px !important;
  font-size: 13px !important;
  border: 1px solid #D0D0CE !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: #FFF !important;
  border-radius: 0 !important;
}
body.ik-product-catalog a.ik-page-btn:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body.ik-product-catalog .ik-page-current {
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border-color: #FFCC33 !important;
}

/* Card grid + pagination content-contained (mirrors lines 7670-7682) */
body.ik-product-catalog .ik-auction-card-grid,
body.ik-product-catalog .ik-auction-pagination {
  max-width: var(--ik-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(1.5rem, 3vw, 2rem) !important;
  padding-right: clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
}
body.ik-product-catalog .ik-auction-pagination {
  margin-top: 32px !important;
}

/* Section title h3 (mirrors lines 7613-7627) */
body.ik-product-catalog .entry-content h3.ik-auction-section-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  max-width: var(--ik-max-width) !important;
  margin: 24px auto 12px !important;
  padding: 0 clamp(1.5rem, 3vw, 2rem) !important;
  background: none !important;
  border: none !important;
  text-align: left !important;
}

/* H2 gold-bar "PRODUCT LISTINGS" — share the H1 gold-bar treatment.
   Astra's h2 default is the gradient gold bar; mirror line 7457 pattern. */
body.ik-product-catalog h2.ik-gold-bar {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  border-left: none !important;
  border-right: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  max-width: none !important;
  box-sizing: border-box !important;
  text-shadow: none !important;
  display: block !important;
}

/* Responsive: 3-col at 921px, 2-col at 768, 1-col at 480.
   Note: the unscoped .ik-auction-card-grid base rule (line 7468) sets
   4 columns; the unscoped media queries at lines 7510-7512 cover the
   breakpoints. They apply on /store-product/ already, no need to mirror. */



/* ══════════════════════════════════════════════════════════════
   SECTION 59. Single-product page (body.single-product) — fix
   add-to-cart form layout. The form.cart contains a quantity
   wrapper + single_add_to_cart_button as siblings with no flex,
   so the qty input shrinks to ~58px and the button squishes to
   ~34px wide (text wraps to 3 lines). Make the row a flex
   row, give qty fixed width, button takes remaining space.
   Authored 2026-05-15 (PST) — Ruth flagged on /product/test-different-categories-scorpions/
   ══════════════════════════════════════════════════════════════ */
body.single-product .summary form.cart {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin-bottom: 24px !important;
}
body.single-product .summary form.cart .quantity {
  display: inline-block !important;
}
body.single-product .summary form.cart input.qty,
body.single-product .summary form.cart input[type="number"].qty {
  background: #FFFFFF !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  width: 72px !important;
  min-width: 72px !important;
  height: 44px !important;
  padding: 0 12px !important;
  font-size: 14px !important;
  text-align: center !important;
  box-sizing: border-box !important;
}
body.single-product .summary form.cart .single_add_to_cart_button,
body.single-product .summary form.cart button.single_add_to_cart_button {
  flex: 1 1 200px !important;
  min-width: 200px !important;
  height: 44px !important;
  padding: 0 24px !important;
  background: #FFCC33 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body.single-product .summary form.cart .single_add_to_cart_button:hover,
body.single-product .summary form.cart button.single_add_to_cart_button:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}


/* ══════════════════════════════════════════════════════════════
   SECTION 60. /sellers/ (page-id-1386) — "Most Recent" sort
   dropdown: push form flush-right to match content width, add
   padding-right inside the select so the native dropdown arrow
   has breathing room from the right edge.
   Authored 2026-05-15 (PST) — Ruth flagged: "the arrow needs padding
   to the right, and that drop-down is not flush to the right of the
   content width"
   ══════════════════════════════════════════════════════════════ */
body.page-id-1386 #dokan-store-listing-filter-wrap .right .item.sort-by {
  margin-left: auto !important;
  margin-right: 0 !important;
}
/* Specificity (2,3,2) beats existing (2,2,1) for padding-right override */
body.page-id-1386 #dokan-store-listing-filter-wrap .right .item select#stores_orderby {
  padding-right: 32px !important;
}


/* ══════════════════════════════════════════════════════════════
   SECTION 61. Shop catalog sidebar layout (.ik-shop-layout)
   ══════════════════════════════════════════════════════════════
   Two-column grid for /store-product/: left sidebar (Categories +
   Vendors auto-populating, each item deep-links to filtered catalog),
   right main area (sort icon top-right + cards + pagination).
   Mobile: stacks to single column at ≤768px.

   All classes here are emitted by snippet 53's [custom_product_listings]
   shortcode. Body-class `.ik-product-catalog` is added by snippet 56.

   Authored 2026-05-15 (PST).
   ══════════════════════════════════════════════════════════════ */

/* === Mobile-collapsible sidebar wrapper (.ik-shop-sidebar-collapsible) ===
   At desktop the <summary> is hidden and the sidebar is forced visible
   regardless of [open] state. At mobile (≤768px) we drop the overrides
   and let native <details> handle the toggle. Pattern source: industry
   standard mobile-catalog Filter drawer; we use the simpler inline
   collapsible variant since it requires zero JS and matches the existing
   Sort/Show <details> primitive on the same page. */
body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible {
  display: contents !important;
}
body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible > .ik-shop-sidebar-toggle {
  display: none !important;
}
/* Override the user-agent's `details:not([open]) > :not(summary)` hide
   rule so the sidebar stays visible at desktop regardless of [open].
   2026-05-18 Ruth: extended the child selector to ALSO cover
   .woocommerce-MyAccount-navigation (snippet 56 wraps WC's account nav
   directly without a .ik-shop-sidebar inner). Previously only
   .ik-shop-sidebar matched, leaving the my-account sidenav hidden by
   the UA collapse rule at desktop+tablet -- a regression introduced by
   yesterday's mobile-collapsible work that wasn't scoped to mobile only. */
body:is(.ik-product-catalog, .dokan-store, .woocommerce-account)
  #content .ik-shop-sidebar-collapsible:not([open])
  > :is(.ik-shop-sidebar, .woocommerce-MyAccount-navigation) {
  display: block !important;
}
@media (max-width: 768px) {
  body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible {
    display: block !important;
    grid-column: 1 / -1 !important;
    margin-bottom: 16px !important;
  }
  body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible > .ik-shop-sidebar-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    height: 44px !important;  /* taller on mobile for thumb target */
    padding: 0 16px !important;
    background: #FFFFFF !important;
    /* 2026-05-19 Ruth: was border: 1px solid #D0D0CE — stacked with the
       wrapper details' 1px border making a 2px-thick edge. Wrapper border
       defines the outer box; summary now borderless. */
    border: none !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: #333 !important;
    -webkit-text-fill-color: #333 !important;
    cursor: pointer !important;
    list-style: none !important;
  }
  body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible > .ik-shop-sidebar-toggle::-webkit-details-marker,
  body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible > .ik-shop-sidebar-toggle::marker {
    display: none !important;
    content: '' !important;
  }
  body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible[open] > .ik-shop-sidebar-toggle {
    border-bottom: none !important;
  }
  body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible[open] > .ik-shop-sidebar {
    position: static !important;
    margin-top: 0 !important;
    border: 1px solid #D0D0CE !important;
    border-top: none !important;
    padding: 20px 16px !important;
    background: #FAFAF8 !important;
  }
  body:is(.ik-product-catalog, .dokan-store, .woocommerce-account) #content .ik-shop-sidebar-collapsible:not([open]) > .ik-shop-sidebar {
    display: none !important;
  }
  /* Sidebar's sticky-position default doesn't make sense in collapsed
     overlay context — already overridden above. */
}

/* Layout container — 2-col grid, constrained to content width.
   #content prefix for ID specificity (beats Astra defaults). */
body.ik-product-catalog #content .ik-shop-layout {
  display: grid !important;
  grid-template-columns: 220px 1fr !important;
  gap: 32px !important;
  max-width: var(--ik-max-width) !important;
  margin: 24px auto 0 !important;  /* was 32px bottom — trimmed; the page-wrap below carries enough space */
  padding: 0 clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
  align-items: start !important;
}

/* /store-product/ catalog has cards + pagination then nothing; Astra's
   default article padding-bottom (~75px) + #primary margin-bottom (~56px)
   stack with .ik-shop-layout's margin and leave ~163px of empty space
   below the pagination before the footer. Trim to a single ~32px gap.
   Scoped to body.ik-product-catalog so other pages keep Astra defaults.
   2026-05-16 Ruth. */
body.ik-product-catalog article.ast-article-single {
  padding-bottom: 0 !important;
}
body.ik-product-catalog #primary.content-area {
  margin-bottom: 32px !important;
}

/* Sidebar */
body.ik-product-catalog #content .ik-shop-sidebar {
  position: sticky !important;
  top: 24px !important;
  align-self: start !important;
}
body.ik-product-catalog #content .ik-shop-sidebar-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 8px 0 !important;
  padding: 0 12px !important;
}
/* Second heading (Vendors) gets top margin to separate from Categories list */
body.ik-product-catalog #content .ik-shop-sidebar-heading + ul + .ik-shop-sidebar-heading,
body.ik-product-catalog #content .ik-shop-sidebar h3.ik-shop-sidebar-heading:nth-of-type(2) {
  margin-top: 28px !important;
}

body.ik-product-catalog #content .ik-shop-cat-list,
body.ik-product-catalog #content .ik-shop-vendor-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.ik-product-catalog #content .ik-shop-cat-item,
body.ik-product-catalog #content .ik-shop-vendor-item {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Sidebar link items — block-level clickable rows */
body.ik-product-catalog #content .ik-shop-sidebar-link,
body.ik-product-catalog #content .ik-shop-sidebar-link:link,
body.ik-product-catalog #content .ik-shop-sidebar-link:visited {
  display: block !important;
  padding: 8px 12px !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  text-decoration: none !important;
  border-left: 2px solid transparent !important;
  transition: all 0.15s ease !important;
  line-height: 1.3 !important;
}
body.ik-product-catalog #content .ik-shop-sidebar-link:hover {
  background: #FAFAF8 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  border-left-color: #E8E8E6 !important;
}
body.ik-product-catalog #content .ik-shop-sidebar-link.is-active,
body.ik-product-catalog #content .ik-shop-sidebar-link.is-active:link,
body.ik-product-catalog #content .ik-shop-sidebar-link.is-active:visited {
  background: #FAFAF8 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 700 !important;
  border-left-color: #FFCC33 !important;
}

/* Main column */
body.ik-product-catalog #content .ik-shop-main {
  min-width: 0 !important;
  width: 100% !important;
}

/* Toolbar: results count on the left, Show/Sort dropdowns on the right.
   2026-05-19 Ruth: was justify-content:flex-end (dropdowns only); now
   space-between so the canonical "Showing 1-N of M auctions/products"
   count sits left-aligned on the same row as the dropdowns. */
body.ik-product-catalog #content .ik-shop-toolbar {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
}
/* Results count — matches the storefront .ik-results-count look (13px #666).
   margin-right:auto keeps it pinned left when only one dropdown follows. */
body.ik-product-catalog #content .ik-shop-toolbar .ik-results-count {
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  margin-right: auto !important;
  white-space: nowrap !important;
}
/* Bottom repeat — centered beneath the pagination (2026-05-19 Ruth).
   Appears on /auctions/, /store-product/ (.ik-results-count-bottom emitted by
   snippets 17 + 53) and /sellers/ (injected by snippet 17 JS after Dokan's
   pagination). Scoped broadly so it works on the Dokan store-listing page too. */
.ik-results-count-bottom {
  display: block !important;
  text-align: center !important;
  margin-top: 14px !important;
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
}

/* Mobile: toolbar should not orphan-center Show/Sort — make them stretch
   evenly across the row so they don't sit lonely on the right. Pair with
   the FILTERS button (which lives in the sidebar-collapsible <summary>
   above) to form a 3-button filter bar pattern at very narrow widths. */
@media (max-width: 768px) {
  body.ik-product-catalog #content .ik-shop-toolbar {
    justify-content: stretch !important;
    gap: 8px !important;
  }
  body.ik-product-catalog #content .ik-shop-toolbar > details.ik-shop-sort {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
  body.ik-product-catalog #content .ik-shop-toolbar > details.ik-shop-sort > summary.ik-shop-sort-trigger {
    width: 100% !important;
    box-sizing: border-box !important;
    justify-content: center !important;
  }
}

/* Sort dropdown — uses native <details>/<summary> for no-JS open/close */
body.ik-product-catalog #content .ik-shop-sort {
  position: relative !important;
  display: inline-block !important;
}
body.ik-product-catalog #content .ik-shop-sort-trigger {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 12px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  list-style: none !important;
  user-select: none !important;
  line-height: 1 !important;
}
/* Suppress default <summary> disclosure triangle */
body.ik-product-catalog #content .ik-shop-sort-trigger::-webkit-details-marker {
  display: none !important;
}
body.ik-product-catalog #content .ik-shop-sort-trigger::marker {
  content: '' !important;
}
body.ik-product-catalog #content .ik-shop-sort-trigger:hover {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body.ik-product-catalog #content .ik-shop-sort-icon {
  flex-shrink: 0 !important;
  width: 14px !important;
  height: 14px !important;
  display: inline-block !important;
}
body.ik-product-catalog #content .ik-shop-sort-label {
  display: inline-block !important;
  white-space: nowrap !important;
}

/* Sort dropdown menu — opens below trigger */
body.ik-product-catalog #content .ik-shop-sort-menu {
  position: absolute !important;
  top: calc(100% + 4px) !important;
  right: 0 !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #D0D0CE !important;
  border-radius: 0 !important;
  min-width: 200px !important;
  z-index: 100 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}
body.ik-product-catalog #content .ik-shop-sort-menu li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.ik-product-catalog #content .ik-shop-sort-option,
body.ik-product-catalog #content .ik-shop-sort-option:link,
body.ik-product-catalog #content .ik-shop-sort-option:visited {
  display: block !important;
  padding: 8px 14px !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  text-decoration: none !important;
  transition: background 0.1s ease !important;
}
body.ik-product-catalog #content .ik-shop-sort-option:hover {
  background: #FAFAF8 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}
body.ik-product-catalog #content .ik-shop-sort-option.is-active {
  background: #FAFAF8 !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* Card grid inside the new layout: override the constrained-to-1200
   rule from Section 58 since now the grid lives inside .ik-shop-main
   which is already in the main column of the layout. Let it fill its
   container, drop to 3 cols (since main is narrower than before). */
body.ik-product-catalog #content .ik-shop-main .ik-auction-card-grid {
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  grid-template-columns: repeat(3, 1fr) !important;
}
body.ik-product-catalog #content .ik-shop-main .ik-auction-pagination {
  max-width: 100% !important;
  margin: 32px 0 0 !important;
  padding: 0 !important;
}

/* Responsive: stack sidebar above main at tablet */
@media (max-width: 921px) {
  body.ik-product-catalog #content .ik-shop-layout {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  body.ik-product-catalog #content .ik-shop-sidebar {
    position: static !important;
  }
  /* Inside main column at tablet — 2 cols */
  body.ik-product-catalog #content .ik-shop-main .ik-auction-card-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px) {
  body.ik-product-catalog #content .ik-shop-main .ik-auction-card-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ──────────────────────────────────────────────────────────────────────
   SECTION 61 hotfix: <details> default overflow: hidden was clipping
   the absolutely-positioned sort menu. Force visible on .ik-shop-sort.
   ────────────────────────────────────────────────────────────────────── */
body.ik-product-catalog #content .ik-shop-sort,
body.ik-product-catalog #content details.ik-shop-sort {
  overflow: visible !important;
}


/* ──────────────────────────────────────────────────────────────────────
   SECTION 62 — Single-product page (simple) qty + Add-to-Cart row
   2026-05-16 — Ruth flagged on /product/<simple>/: qty box was 12px
   off the right column's left edge (not flush), and the Add to Cart
   button stretched to ~77% of the column. Fix: zero the .quantity
   wrapper margin/padding so qty sits at form.x; constrain Add to Cart
   to fit-content with a 220px max so the action stays compact.
   ────────────────────────────────────────────────────────────────────── */
body.single-product .summary form.cart {
  align-items: center !important;
}
/* Kill the WP clearfix ::before/::after — they become zero-width flex
   items and inherit the form's `gap: 12px`, pushing .quantity 12px right
   of the form's left edge. */
body.single-product .summary form.cart::before,
body.single-product .summary form.cart::after {
  content: none !important;
  display: none !important;
}
body.single-product .summary form.cart > .quantity {
  margin: 0 !important;
  padding: 0 !important;
}
/* 2026-05-18 Ruth: the 220px max-width cap previously here was making BUY
   NOW look small on desktop + tablet (Ruth wants 100% width at all viewports
   that aren't mobile-already-handled). Removing the cap lets BUY NOW grow
   per `flex: 1 1 200px` from the rule above, filling the form's available
   width on every viewport. Mobile still gets its zero-gap + flex:1 1 100%
   override below for the form-gap edge case. */

/* 2026-05-18 Ruth: auction page bid form alignment + auction-end spacing.
   The minus/plus buttons in .quantity are 52px tall but the qty input
   between them is only 44px tall, breaking visual horizontal alignment
   across the -/$/+/BID row. Force the input to 52px so all four elements
   line up. Also halve the doubled spacing under the "Auction ends" line
   (the parent .auction-ajax-change adds 22.5px on top of the <p>'s own
   21px = ~43px gap; zeroing the inner p's margin gives a cleaner ~22px
   below the line).
   2026-05-18 Ruth (later): BID button was visually higher than the
   -/$/+ wrapper by ~6.5px despite both being 52 tall (something in the
   .quantity wrapper baseline offsets the children vs the standalone BID
   button). Force align-self center on both + explicit height match.
   Also zero form.buy-now's gap so BUY NOW button truly takes the full
   form width (the form's 12px gap was leaving ~24px of empty space
   between hidden sibling elements). */
body.single-product .summary form.auction_form .quantity > input.qty {
  height: 52px !important;
  box-sizing: border-box !important;
}
body.single-product .summary form.auction_form {
  align-items: center !important;
}
body.single-product .summary form.auction_form .quantity,
body.single-product .summary form.auction_form .bid_button {
  align-self: center !important;
  height: 52px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
/* On mobile the bid form stacks vertically (qty row above, BID button below).
   The earlier mobile rule that zeroes form.cart gap (for the BUY NOW button)
   accidentally zeroes auction_form gap too -- bid button ends up touching the
   qty row. Restore a row gap specifically for auction_form at mobile + center
   the qty row within the column. */
@media (max-width: 768px) {
  body.single-product .summary form.auction_form {
    row-gap: 16px !important;
    align-items: center !important;
  }
  body.single-product .summary form.auction_form .quantity {
    align-self: center !important;
  }
}
body.single-product .summary p.auction-end {
  margin-bottom: 0 !important;
}

/* 2026-05-18 Ruth: mobile auction page spacing -- the inner elements of
   .auction-ajax-change (reserve text, ADD TO WATCHLIST, TIME LEFT box,
   bid form, Auction ends notice) all sit at margin:0 and touch each other
   visually on mobile. Add a row-gap on the parent at mobile so every
   adjacent pair gets ~16px of breathing room. Desktop keeps the tighter
   default spacing. */
@media (max-width: 768px) {
  body.single-product .summary .auction-ajax-change {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
  }
}

/* 2026-05-18 Ruth: /my-bids/ Status column ("Winning Bid: $1") was wrapping
   the label + amount to 2-3 lines, inflating row height for no reason.
   Force nowrap on the Status column (4th column) of the auctions activity
   table at all viewports. */
body.woocommerce-account table.my_auctions_activity th:nth-child(4),
body.woocommerce-account table.my_auctions_activity td:nth-child(4) {
  white-space: nowrap !important;
}
body.single-product .summary form.buy-now.cart {
  gap: 0 !important;
}

/* 2026-05-18 Ruth: Ended auction -> "Follow <vendor>" CTA. Replaces the
   Add-to-Watchlist link (which is dead-end UX once the auction is over).
   Matches the canonical .dokan-follow-store-button styling from /sellers/
   + /store/<v>/ -- gray outline default, gold-on-hover, full-width on the
   product summary. Functionally a link to the vendor store where Dokan's
   real follow button + state machine lives. */
/* Full-width override only — visual styling inherited from the canonical
   storefront .dokan-follow-store-button rule above (broadened to include
   body.single-product). Width/padding/margin overrides specific to the
   summary slot layout. */
body.single-product button.ik-ended-follow-vendor-link {
  display: flex !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 14px 28px !important;
  margin: 16px 0 !important;
  white-space: normal !important;
}
@media (max-width: 768px) {
  body.single-product .summary form.cart {
    gap: 0 !important;
  }
  body.single-product .summary form.cart .single_add_to_cart_button {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: none !important;
  }
}

/* Hide the duplicate "ISOPOD" small-text category label that renders
   between the cart form and the product title on single-product pages.
   The breadcrumb (Home / Isopod) and the product_meta line already
   surface the category; this third copy is noise. 2026-05-16 Ruth. */
body.single-product .summary .single-product-category {
  display: none !important;
}

/* Disable click affordance on every product-category archive link
   sitewide. The default `/product-category/<slug>/` archive page is
   the unstyled Astra layout — until we either redirect it into
   /store-product/?product_cat=<slug> or theme it, we don't want users
   landing there. Keeps the text visible but non-interactive.
   2026-05-16 Ruth: "we shouldn't make the categories clickable if
   this entire section is broken". */
a[href*="/product-category/"] {
  pointer-events: none !important;
  cursor: default !important;
  text-decoration: none !important;
  color: inherit !important;
}

/* ──────────────────────────────────────────────────────────────────────
   SECTION 63 — VENDOR STOREFRONT (/store/<vendor>/) CARD STYLING
   ────────────────────────────────────────────────────────────────────── */
/* The dev's vendor-storefront plugin renders product/auction cards on
   the storefront using its own .ik-product family (article.ik-product
   > a.ik-product-img > .ik-product-body containing .ik-product-title,
   .ik-price-line, .ik-muted-line, .ik-countdown, a.ik-product-btn).
   Unlike the unified .ik-ac-card markup used on /auctions/,
   /store-product/, and single-product More-Products tabs, the
   storefront cards have NO border, NO button styling on .ik-product-btn
   (it renders as a plain gold text link), and a fixed 240px grid that
   overflows narrow viewports. This section mirrors the .ik-ac-card
   visual treatment for the .ik-product family so every card-rendering
   surface on the storefront — Home tab's "Featured ..." sections,
   STORE ▼ category-filtered views, Auctions sub-tab listing — matches
   the design system. 2026-05-16 Ruth. */

/* Grid: enforce EXACTLY 4 columns at desktop on every .ik-products-grid
   surface on the storefront (Home tab Featured Auctions/Products, SHOP
   tab catalog, AUCTIONS tab listing). 2026-05-16 Ruth: cards were
   rendering smaller — 5 per row at 1200px container — because the
   prior auto-fill/minmax(220px) packed an extra column. Fixed 4-col
   produces ~280px cards matching the /store-product/ catalog's
   .ik-ac-card grid sizing. */
body.dokan-store .ik-products-grid,
body.dokan-store .ik-products-grid.ik-grid-4col {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
/* 2026-05-16 Ruth: SHOP tab has a categories sidebar taking one column
   of width. Drop to 3-col so cards stay the same visual size as the
   home tab's 4-col-no-sidebar grid (instead of squishing 4 cards into
   the narrower main area). */
body.dokan-store .ik-layout-with-sidebar .ik-products-grid,
body.dokan-store .ik-shop-main .ik-products-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
@media (max-width: 1100px) {
  body.dokan-store .ik-products-grid,
  body.dokan-store .ik-products-grid.ik-grid-4col {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  body.dokan-store .ik-layout-with-sidebar .ik-products-grid,
  body.dokan-store .ik-shop-main .ik-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 860px) {
  body.dokan-store .ik-products-grid,
  body.dokan-store .ik-products-grid.ik-grid-4col {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 480px) {
  body.dokan-store .ik-products-grid,
  body.dokan-store .ik-products-grid.ik-grid-4col,
  body.dokan-store .ik-layout-with-sidebar .ik-products-grid,
  body.dokan-store .ik-shop-main .ik-products-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Card container: white bg, subtle border, hover lift */
body.dokan-store article.ik-product {
  background: #FFFFFF !important;
  border: 1px solid #E8E8E6 !important;
  display: flex !important;
  flex-direction: column !important;
  width: auto !important;        /* override dev's fixed 240px */
  overflow: hidden !important;
  transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease !important;
}
body.dokan-store article.ik-product:hover {
  border-color: rgba(154, 126, 46, 0.3) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1) !important;
}

/* Image wrap: fill column, fixed 1:1 aspect, zoom on hover */
body.dokan-store .ik-product-img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  position: relative !important;
}
body.dokan-store .ik-product-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s ease !important;
}
body.dokan-store article.ik-product:hover .ik-product-img img {
  transform: scale(1.04) !important;
}

/* Body: vertical rhythm, push button to bottom */
body.dokan-store .ik-product-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  padding: 16px !important;
  flex: 1 !important;
}

/* Title: dark, bold, no underline */
body.dokan-store .ik-product-title {
  margin: 0 0 4px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.dokan-store #content .ik-product-title a,
body.dokan-store #content .ik-product-title a:link,
body.dokan-store #content .ik-product-title a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
body.dokan-store #content .ik-product-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* Price line: "Starting bid: $10" / "$100" / sale del+ins */
body.dokan-store .ik-price-line {
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  margin: 0 !important;
}
body.dokan-store .ik-price-line strong,
body.dokan-store .ik-price-line .woocommerce-Price-amount {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 700 !important;
}
body.dokan-store .ik-price-line del {
  opacity: 0.6 !important;
  margin-right: 6px !important;
}
body.dokan-store .ik-price-line del .woocommerce-Price-amount {
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  font-weight: 400 !important;
}
body.dokan-store .ik-price-line ins {
  background: none !important;
  text-decoration: none !important;
}

/* Muted line: "0 bids" small gray */
body.dokan-store .ik-muted-line {
  font-size: 12px !important;
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
  margin: 0 !important;
}

/* Countdown: small, gold for time-remaining emphasis */
body.dokan-store .ik-countdown {
  font-size: 12px !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-weight: 600 !important;
  margin: 0 !important;
}

/* Button: gold filled, black bold uppercase, full-width, pinned to
   the bottom of the card. Covers all three variants (Bid Now / View
   Auction / Add to Cart) which all share .ik-product-btn. The #content
   ID prefix beats the storefront's blanket `#content a` and
   `.dokan-store-wrap a:not(.dokan-btn)` gold-link overrides. */
body.dokan-store #content a.ik-product-btn,
body.dokan-store #content a.ik-product-btn:link,
body.dokan-store #content a.ik-product-btn:visited {
  display: block !important;
  margin-top: auto !important;
  text-align: center !important;
  padding: 10px 12px !important;
  background: #FFCC33 !important;
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border: none !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  transition: background 0.2s ease !important;
}
body.dokan-store #content a.ik-product-btn:hover {
  background: #FFDB66 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
}

/* Section heading row: "Featured Live Auctions" + "View all auctions" */
body.dokan-store .ik-home-head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 12px !important;
  margin: 0 0 16px !important;
  padding-bottom: 10px !important;
  /* 2026-05-16 Ruth: removed border-bottom — too many lines */
  border-bottom: none !important;
}
body.dokan-store .ik-home-head h1,
body.dokan-store .ik-home-head h2,
body.dokan-store .ik-home-head h3,
body.dokan-store .ik-home-head h4 {
  margin: 0 !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}
body.dokan-store #content .ik-home-head a,
body.dokan-store #content .ik-home-head a:link,
body.dokan-store #content .ik-home-head a:visited {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}
/* 2026-05-16 Ruth: right-caret after "View All ..." links */
body.dokan-store #content .ik-home-head a::after {
  content: " \203A" !important;   /* › single right-pointing angle quote */
  margin-left: 4px !important;
  display: inline-block !important;
  font-size: 14px !important;
  line-height: 1 !important;
  transition: transform 0.2s !important;
}
body.dokan-store #content .ik-home-head a:hover::after {
  transform: translateX(2px) !important;
}
body.dokan-store #content .ik-home-head a:hover {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}

/* Spacing rhythm between the home sections */
body.dokan-store .ik-home-section {
  margin: 0 0 40px !important;
}
body.dokan-store .ik-home-section:last-child {
  margin-bottom: 0 !important;
}

/* ──────────────────────────────────────────────────────────────────────
   SECTION 64 — STOREFRONT SHOP TAB + AUCTIONS TAB LAYOUT (Phase 2)
   ────────────────────────────────────────────────────────────────────── */
/* Snippet 54's IK_Vendor_Storefront::get_store_tabs() now returns just
   Home / Shop / Auctions (no STORE dropdown). Home is hidden from the
   tab nav; avatar link covers it. SHOP renders categories-sidebar + grid
   reusing the .ik-shop-sidebar class family from /store-product/ (which
   is currently scoped to body.ik-product-catalog). AUCTIONS renders
   single-column (sort dropdown only, no filter sidebar) via the new
   sidebar='none' tab flag.

   This section mirrors the storefront-side styling for:
   - .ik-shop-sidebar (categories list — used inside the dev's existing
     <aside class="ik-sidebar"> wrapper on SHOP tab)
   - .ik-storefront-section-no-sidebar (full-width container for AUCTIONS)

   Pulls visual treatment from Section 61 (the /store-product/ sidebar)
   so SHOP looks the same on both surfaces.
   2026-05-16 Ruth — Phase 2.
   ────────────────────────────────────────────────────────────────────── */

/* SHOP: 2-col layout — left sidebar + main.
   margin-bottom was 32px (2026-05-19 Ruth: removed to bring storefront
   pagination→footer gap in line with canonical /auctions/ 32px). The
   outer .content-area.primary already adds 32px (see SECTION 77). */
body.dokan-store .ik-storefront .ik-layout-with-sidebar {
  display: grid !important;
  grid-template-columns: 220px 1fr !important;
  gap: 32px !important;
  align-items: start !important;
  margin: 16px 0 0 !important;
}

/* SHOP sidebar wrapper (aside.ik-sidebar contains our .ik-shop-sidebar) */
body.dokan-store .ik-storefront .ik-sidebar {
  position: sticky !important;
  top: 24px !important;
  align-self: start !important;
  padding: 0 !important;
  background: transparent !important;
}

/* SHOP sidebar content (the .ik-shop-sidebar div inside the aside) */
body.dokan-store .ik-shop-sidebar {
  background: transparent !important;
}

body.dokan-store .ik-shop-sidebar-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 8px 0 !important;
  padding: 0 12px !important;
}

body.dokan-store .ik-shop-sidebar-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.dokan-store .ik-shop-sidebar-list li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.dokan-store #content .ik-shop-sidebar-link,
body.dokan-store #content .ik-shop-sidebar-link:link,
body.dokan-store #content .ik-shop-sidebar-link:visited {
  display: block !important;
  padding: 8px 12px !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #333 !important;
  -webkit-text-fill-color: #333 !important;
  text-decoration: none !important;
  border-left: 2px solid transparent !important;
  transition: all 0.15s ease !important;
  line-height: 1.3 !important;
}
body.dokan-store #content .ik-shop-sidebar-link:hover {
  background: #FAFAF8 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  border-left-color: #E8E8E6 !important;
}
body.dokan-store #content .ik-shop-sidebar-link.is-active,
body.dokan-store #content .ik-shop-sidebar-link.is-active:link,
body.dokan-store #content .ik-shop-sidebar-link.is-active:visited {
  background: #FAFAF8 !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  font-weight: 700 !important;
  border-left-color: #FFCC33 !important;
}

/* SHOP main column */
body.dokan-store .ik-storefront .ik-main {
  min-width: 0 !important;
  width: 100% !important;
}

/* Mobile/tablet: storefront wrappers stack 21px L/R padding twice (.ik-storefront
   + .ik-main), making cards 290px in a 375px viewport (22% of viewport lost to
   gutters). Zero the inner .ik-main padding so cards get the full content area
   inside .ik-storefront's 16px outer gutter. Also make .ik-filter-row fill the
   row instead of inline-flex sizing to dropdown content. 2026-05-18 Ruth flag. */
@media (max-width: 768px) {
  body.dokan-store .ik-storefront,
  body.dokan-store section.ik-storefront {
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-inline: 16px !important;
  }
  body.dokan-store .ik-storefront .ik-main,
  body.dokan-store .ik-storefront .ik-layout-with-sidebar {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-inline: 0 !important;
  }
  body.dokan-store .ik-storefront .ik-filter-row {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
  }
  /* .ik-results-header has its own 21px L/R padding that further insets
     the Show/Sort dropdowns. Zero it on mobile so the dropdowns reach
     the same edge as the cards in the row below. */
  body.dokan-store .ik-storefront .ik-results-header {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-inline: 0 !important;
  }
}

/* 2026-05-18 Ruth NEW-D: /my-account/ inner pages (Dashboard, Orders, Edit
   Account, Edit Address, etc.) render with the inner .woocommerce wrapper
   getting its own 21px L/R padding on top of .entry-content's 21px padding,
   so the content area is x=42 w=290 in a 375 viewport (84px of gutters lost).
   Zero the inner .woocommerce wrapper padding on mobile so the side nav and
   the content fill the full content area. Scoped to logged-in my-account
   (page-id-1540) to avoid affecting /register/ + /login/. */
@media (max-width: 768px) {
  body.woocommerce-account.page-id-1540.logged-in .entry-content > .woocommerce {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-inline: 0 !important;
  }
}

/* 2026-05-18 Ruth NEW-A: /cart/ at mobile uses WC's responsive table where
   each cell renders a `::before { content: "Label: " }` label (Product:,
   Quantity:, Price:, Subtotal:) in #666 light gray, plus `<dt>` Vendor:
   variation labels also in #666. Hard to read. Force black + slightly
   bolder on mobile so the labels read clearly. */
@media (max-width: 768px) {
  body.woocommerce-cart td.product-name::before,
  body.woocommerce-cart td.product-price::before,
  body.woocommerce-cart td.product-quantity::before,
  body.woocommerce-cart td.product-subtotal::before,
  body.woocommerce-cart td.product-remove::before {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
    font-weight: 600 !important;
  }
  body.woocommerce-cart dl.variation dt,
  body.woocommerce-cart .variation-Vendor {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
    font-weight: 600 !important;
  }
}

/* 2026-05-18 Ruth NEW-C: /my-account/ sidenav collapsible — the WC nav now
   wraps in <details class="ik-shop-sidebar-collapsible"> via snippet 56 hooks.
   The existing CSS at line ~17574 broadened to .woocommerce-account makes the
   toggle visible on mobile, but parent .woocommerce uses align-items:flex-start
   so the block details doesn't stretch to row width. Force width 100% +
   align-self stretch. Also trim the gold-bar scaffolding padding-top from
   109px (desktop) to 85px on mobile (gold-bar is shorter on mobile per the
   clamp font-size) so the toggle sits closer to the bar, and hide WC's empty
   notices wrapper that adds a 32px gap before content. */
@media (max-width: 768px) {
  body.woocommerce-account.page-id-1540.logged-in details.ik-shop-sidebar-collapsible {
    width: 100% !important;
    align-self: stretch !important;
  }
  body.woocommerce-account.page-id-1540.logged-in .entry-content > .woocommerce {
    padding-top: 85px !important;
  }
  body.woocommerce-account.page-id-1540.logged-in .woocommerce-notices-wrapper:empty {
    display: none !important;
  }
}

/* 2026-05-18 Ruth fix #6: storefront SHOP tab categories — snippet 54 wraps
   the .ik-shop-sidebar in <details class="ik-shop-sidebar-collapsible"> with
   <summary class="ik-shop-sidebar-toggle">☰ Filters</summary>. The existing
   rules at line ~17574 (originally body.ik-product-catalog scoped) have been
   broadened to body:is(.ik-product-catalog, .dokan-store) so the storefront
   inherits the same canonical styling automatically. Only the Categories h3
   needs hiding on mobile here (existing rules don't know about it). Per
   Ruth's hard rule: extend existing rules, don't invent new classes
   (feedback_reuse_existing_styling). */
@media (max-width: 768px) {
  body.dokan-store details.ik-shop-sidebar-collapsible .ik-shop-sidebar-heading {
    display: none !important;
  }
}

/* 2026-05-18 Ruth NEW-B: mobile drawer submenu items should ALL show a gold
   `›` caret prefix uniformly. Astra ships an inconsistent <span.ast-icon
   icon-arrow> SVG only on some items (MY ACCOUNT submenu has it, HELP
   submenu does not). Hide Astra's SVG everywhere in mobile drawer submenus
   + inject a uniform ::before so future menu additions get the same treatment
   automatically.
   2026-05-18 Ruth (later): extended ceiling from 768 to 1099 so the carets
   ALSO appear at our tablet drawer range (the body-class flipper makes
   tablet behave like mobile for nav -- the drawer styling has to follow). */
@media (max-width: 1099px) {
  /* Hide Astra's default ast-icon arrow inside submenu links to avoid
     double-rendering when we add the ::before below. */
  .ast-mobile-header-content li.menu-item ul.sub-menu li.menu-item > a > .ast-icon.icon-arrow {
    display: none !important;
  }
  /* Uniform gold `›` chevron on every drawer submenu item link. */
  .ast-mobile-header-content li.menu-item ul.sub-menu li.menu-item > a::before {
    content: "\203A" !important;
    color: #FFCC33 !important;
    -webkit-text-fill-color: #FFCC33 !important;
    margin-right: 10px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    display: inline-block !important;
    line-height: 1 !important;
  }
}

/* AUCTIONS: no sidebar — main fills full width */
body.dokan-store .ik-storefront-section-no-sidebar {
  width: 100% !important;
  margin: 16px 0 32px !important;
}
body.dokan-store .ik-main-full {
  width: 100% !important;
  min-width: 0 !important;
}

/* Results header (count + sort dropdown) — applies to both SHOP + AUCTIONS */
body.dokan-store .ik-storefront .ik-results-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  margin: 0 0 16px !important;
  padding-bottom: 10px !important;
  /* 2026-05-16 Ruth: no underline below the Showing/Sort row */
  border-bottom: none !important;
}
body.dokan-store .ik-storefront .ik-results-count {
  font-size: 13px !important;
  color: #666 !important;
  -webkit-text-fill-color: #666 !important;
}
body.dokan-store .ik-storefront .ik-sort-form label {
  font-size: 12px !important;
  color: #666 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}
body.dokan-store .ik-storefront .ik-sort-form select {
  margin-left: 8px !important;
  padding: 6px 10px !important;
  border: 1px solid #E8E8E6 !important;
  background: #FFF !important;
  font-size: 13px !important;
  font-family: 'Inter', sans-serif !important;
  cursor: pointer !important;
}
/* 2026-05-16 Ruth: status filter (Live/Upcoming/Past) sits left of sort
   in the auctions header. Give it breathing room. */
body.dokan-store .ik-storefront .ik-sort-form .ik-status-filter {
  margin-right: 16px !important;
}

/* Empty-state copy */
body.dokan-store .ik-storefront .ik-empty {
  text-align: center !important;
  padding: 48px 24px !important;
  color: #888 !important;
  font-size: 14px !important;
}

/* Responsive: stack sidebar above main at tablet */
@media (max-width: 921px) {
  body.dokan-store .ik-storefront .ik-layout-with-sidebar {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  body.dokan-store .ik-storefront .ik-sidebar {
    position: static !important;
  }
}

/* ====================================================================
   PHASE 3 — VENDOR CARD REARRANGE (2026-05-16 Ruth)

   Snippet 56 JS:
   - Moves Dokan's action buttons (Follow / Live Chat WhatsApp /
     Store Support / Share) into a new `.ik-vendor-action-icons` row,
     placed BEFORE `.store-social-wrapper` so the action icons sit
     LEFT of the social-platform icons.
   - Builds a `.ik-vendor-link-buttons` row from the Dokan sub-tabs
     (Reviews / Vendor Biography / Terms & Conditions), placed AFTER
     the icon+social row inside `.profile-info`.

   This CSS:
   1. Hides the legacy `.dokan-modules-button` (the old box buttons)
      and `.dokan-list-inline` (the old text sub-nav). Any future Dokan
      module that adds something to either list is hidden by default;
      we explicitly re-surface only what we've decided to keep, via the
      JS iconMap / linkMap.
   2. Styles the new `.ik-vendor-action-icons` icon row.
   3. Styles the new `.ik-vendor-link-buttons` button row.
   ==================================================================== */

/* Phase 3 v2 (Ruth 2026-05-16): REUSE existing design elements; the
   only change is which links live where. Three sections, three preserved
   looks:
   - Icon row look = Astra social-icon glyphs (monochrome, no border, no
     circle). Action icons match social icons EXACTLY so they appear as
     "more icons added to the same row" rather than a different chrome.
   - Black button look = existing .dokan-btn-theme dark-gold styling
     (defined at line ~5990). JS adds those classes to the new Reviews/
     Bio/Terms anchors so they inherit the existing button paint with
     ZERO custom styling.
   - Tab nav look = bordered-bottom pill tabs (matches site design system,
     replaces the prior plain gold-text tabs that Ruth flagged).
   The legacy .dokan-modules-button + .dokan-list-inline ULs are hidden
   (JS has already moved their contents out into our new rows). */

/* Hide the legacy Dokan ULs after JS has moved their contents elsewhere. */
body.dokan-store .dokan-profile-frame-wrapper .dokan-store-tabs > ul.dokan-modules-button,
body.dokan-store .dokan-profile-frame-wrapper .dokan-store-tabs > ul.dokan-list-inline {
  display: none !important;
}

/* Action icons row: sits inline with the social-links row. Looks
   identical to the social icons next to it (same 28px box, 18px glyph,
   gray default, gold hover, no border/background). */
body.dokan-store .ik-vendor-action-icons {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 12px 0 0;
  vertical-align: middle;
}

/* Action icons: brand gold #9A7E2E (matches the "View All Auctions" link
   color used elsewhere on the site). */
body.dokan-store .ik-vendor-action-icons .ik-vendor-icon-btn,
body.dokan-store #content .ik-vendor-action-icons .ik-vendor-icon-btn {
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #9A7E2E !important;     /* brand gold, matches View All link */
  font-size: 0 !important;       /* zero out any leftover text in spans */
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: color 0.2s !important;
}
body.dokan-store .ik-vendor-action-icons .ik-vendor-icon-btn:hover,
body.dokan-store .ik-vendor-action-icons .ik-vendor-icon-btn:focus,
body.dokan-store #content .ik-vendor-action-icons .ik-vendor-icon-btn:hover,
body.dokan-store #content .ik-vendor-action-icons .ik-vendor-icon-btn:focus {
  background: transparent !important;
  border-color: transparent !important;
  color: #1A1A1A !important;     /* dark on hover */
}
body.dokan-store .ik-vendor-action-icons .ik-vendor-icon-btn i {
  font-size: 22px !important;
  line-height: 1 !important;
  color: #9A7E2E !important;
  /* WebKit uses text-fill-color to paint text glyphs, overriding `color`.
     Force it so Dokan's button .dokan-btn text-fill-color: #333 doesn't win. */
  -webkit-text-fill-color: #9A7E2E !important;
  /* Vertical-centering aid: align FA glyphs by their middle, not baseline. */
  vertical-align: middle !important;
  display: inline-block !important;
  margin-top: 0 !important;
}
/* 2026-05-16 Ruth: fa-whatsapp glyph sits lower than the other action
   icons by ~3px. Ruth verified -3px in dev tools aligns it with the row. */
body.dokan-store .ik-vendor-action-icons .ik-vendor-icon-btn i.fa-whatsapp {
  margin-top: -3px !important;
}
/* Visually hide any leftover text spans inside the icon button
   (e.g. Follow/Unfollow label spans) while keeping them accessible. */
body.dokan-store .ik-vendor-icon-btn > span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

/* Social-icons wrapper: same box size + glyph size + COLOR as action icons.
   Brand colors (FB blue, YT red, etc.) overridden to bright gold #FFCC33
   to match action icons so all icons in the row read as one visual group. */
body.dokan-store .store-social-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  vertical-align: middle !important;
}
body.dokan-store .store-social-wrapper ul.store-social {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.dokan-store .store-social-wrapper ul.store-social li { margin: 0 !important; padding: 0 !important; }
body.dokan-store #content .store-social-wrapper ul.store-social a,
body.dokan-store #content .store-social-wrapper ul.store-social a:link,
body.dokan-store #content .store-social-wrapper ul.store-social a:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  color: #9A7E2E !important;     /* brand gold, identical to action icons */
  transition: color 0.2s !important;
  background: transparent !important;
  border: none !important;
}
body.dokan-store #content .store-social-wrapper ul.store-social a:hover {
  color: #1A1A1A !important;
}
body.dokan-store .store-social-wrapper ul.store-social i {
  font-size: 22px !important;
  line-height: 1 !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  vertical-align: middle !important;
  display: inline-block !important;
}

/* Ensure the action-icon row + social-wrapper sit on the same baseline */
body.dokan-store .ik-vendor-action-icons {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
}

/* Link-buttons row (Reviews / Vendor Biography / Terms).
   Each anchor gets .dokan-btn + .dokan-btn-theme classes via snippet 56
   JS, so they inherit the existing dark-gold button paint defined
   at custom-styles.css:5990. We only set spacing here. align-items:center
   guarantees consistent vertical alignment regardless of how many
   buttons render. */
body.dokan-store .ik-vendor-link-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 14px;
}
/* Phase 3 link buttons — match the EXISTING `.dokan-follow-store-button`
   render on /sellers/ exactly (custom-styles.css:11580-11607). Ruth:
   "it needs to follow the same styles as the dokan-btn dokan-btn-theme
    dokan-follow-store-button dokan-btn-sm class we use". JS adds those
   classes to the anchor; this CSS mirrors the seller-listing styling
   under the storefront scope. */
body.dokan-store #content .ik-vendor-link-buttons a.dokan-follow-store-button,
body.dokan-store #content .ik-vendor-link-buttons a.dokan-follow-store-button:link,
body.dokan-store #content .ik-vendor-link-buttons a.dokan-follow-store-button:visited {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid #D0D0CE !important;
  border-color: #D0D0CE !important;
  border-radius: 0 !important;
  color: #333333 !important;
  -webkit-text-fill-color: #333333 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 8px 16px !important;
  cursor: pointer !important;
  font-family: var(--ik-font-body) !important;
  box-shadow: none !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.2 !important;
}
body.dokan-store #content .ik-vendor-link-buttons a.dokan-follow-store-button:hover,
body.dokan-store #content .ik-vendor-link-buttons a.dokan-follow-store-button:focus {
  border-color: #9A7E2E !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  background: transparent !important;
}
body.dokan-store #content .ik-vendor-link-buttons a.dokan-follow-store-button.is-active {
  background: #1A1A1A !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  border-color: #1A1A1A !important;
}

/* Tab nav: large tabbed-card style per Ruth's reference (2026-05-16).
   Two equal-width tabs side-by-side with shared bottom border. Active
   tab gets a light-gray fill + dark text; inactive stays transparent
   with gray text. Specificity stack beats sitewide #content a !important
   via body.dokan-store #content .ik-tabs .ik-tab (1,3,1). */
body.dokan-store .ik-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 24px 0 0;
  border-bottom: 1px solid #E0E0E0;
}
body.dokan-store #content .ik-tabs .ik-tab,
body.dokan-store #content .ik-tabs .ik-tab:link,
body.dokan-store #content .ik-tabs .ik-tab:visited {
  flex: 1 1 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px 32px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: #999 !important;
  text-decoration: none !important;
  background: transparent !important;
  border-top: 1px solid transparent !important;
  border-left: 1px solid transparent !important;
  border-right: 1px solid transparent !important;
  border-bottom: 1px solid transparent !important;
  cursor: pointer !important;
  transition: color 0.2s, background 0.2s, border-color 0.2s !important;
  margin-bottom: -1px !important;
}
body.dokan-store #content .ik-tabs .ik-tab:hover,
body.dokan-store #content .ik-tabs .ik-tab:focus {
  color: #1A1A1A !important;
  background: rgba(0, 0, 0, 0.02) !important;
}
body.dokan-store #content .ik-tabs .ik-tab.active,
body.dokan-store #content .ik-tabs .ik-tab.active:link,
body.dokan-store #content .ik-tabs .ik-tab.active:visited {
  color: #1A1A1A !important;
  background: #F5F5F5 !important;
  border-top-color: #E0E0E0 !important;
  border-left-color: #E0E0E0 !important;
  border-right-color: #E0E0E0 !important;
  border-bottom-color: #F5F5F5 !important;
}

/* Mobile: storefront tabs (Featured / Auctions / Shop) overflow at 375px
   because of generous 32px horizontal padding. Shrink padding + font on
   narrow viewports so all 3 fit in the row without horizontal scroll.
   Ruth 2026-05-16 mobile sweep. */
@media (max-width: 480px) {
  body.dokan-store #content .ik-tabs .ik-tab,
  body.dokan-store #content .ik-tabs .ik-tab:link,
  body.dokan-store #content .ik-tabs .ik-tab:visited {
    padding: 14px 8px !important;
    font-size: 12px !important;
    letter-spacing: 0.06em !important;
  }
}

@media (max-width: 600px) {
  /* 2026-05-16 Ruth: keep action-icons + socials on ONE row on mobile.
     The earlier `display: flex` override turned them into block-level
     flex containers, forcing them to stack onto two lines. Reverting
     to inline-flex (default) keeps them inline. */
  body.dokan-store .ik-vendor-action-icons {
    margin: 0 0 0 0 !important;
    display: inline-flex !important;
    gap: 8px !important;
  }
  body.dokan-store .store-social-wrapper {
    display: inline-flex !important;
  }
  body.dokan-store .ik-tabs .ik-tab {
    padding: 10px 16px !important;
    font-size: 12px !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   SECTION: Homepage "Auctions Ending Soon" module (.ik-home-ending-soon)
   Scoped to body.page-id-1381 so it never leaks elsewhere.
   1 row of up to 4 .ik-ac-card via the canonical renderer; the
   .ik-auction-card-grid CSS already handles 4 / 3 / 2 / 1 col
   collapse at narrower widths. The header pairs the heading on
   the left with a "View all auctions →" link on the right.
   2026-05-16 Ruth.
   ══════════════════════════════════════════════════════════════ */
body.page-id-1381 .ik-home-ending-soon {
  margin: 0 0 32px !important;
}
/* Full-bleed gold bar heading — matches AUCTION LISTINGS / SHOP ISOPOD
   PRODUCTS / APPROVED SELLERS bars site-wide. Uses 100vw breakout from
   the entry-content constrained width. */
body.page-id-1381 .ik-home-ending-soon-title {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin: 0 -50vw 24px !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  display: block !important;
}
/* ══════════════════════════════════════════════════════════════
   SECTION: Homepage SHOP panel + product tiles (.ik-home-shop-grid)
   Row 1 = SHOP panel (spans 2 cols) + 2 product tiles
   Row 2 = 4 product tiles (auto-flow into grid). Total = 6 product
   tiles + 1 SHOP panel. Tiles are image-only with a price overlay.
   Mobile collapses to single col with SHOP panel as a banner card.
   Ruth 2026-05-17 ref: storefront "SHOP from the latest items" layout.
   ══════════════════════════════════════════════════════════════ */
/* Section spacing follows the other homepage sections — no gray band,
   no extra inner padding. Sits flush after the categories tiles
   (which carries the 64px gap below) and before Founding Keepers. */
body.page-id-1381 .ik-home-shop-grid {
  margin: 0 0 64px !important;
  padding: 0 !important;
}
body.page-id-1381 .ik-home-shop-grid-inner {
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: 0 clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
}
/* SHOP panel: spans 2 cols. Brand-aligned — white bg + thin gold border
   + dark Inter typography + gold icon, matching the .ik-auction-gt-btn /
   .ik-coming-soon-btn outline family on the site. Quieter than the
   gold-gradient version Ruth nixed; still reads "IK" via the gold
   accents. Ruth 2026-05-17. */
body.page-id-1381 #content .ik-home-shop-panel,
body.page-id-1381 #content .ik-home-shop-panel:link,
body.page-id-1381 #content .ik-home-shop-panel:visited {
  grid-column: span 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  background: #FFFFFF !important;
  border: 1px solid #E8E5DE !important;
  border-radius: 0 !important;
  padding: 36px 24px !important;
  text-decoration: none !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  gap: 14px !important;
  position: relative !important;
}
body.page-id-1381 #content .ik-home-shop-panel:hover {
  border-color: #9A7E2E !important;
  box-shadow: 0 4px 18px rgba(154,126,46,0.08) !important;
}
body.page-id-1381 .ik-home-shop-panel-icon {
  width: 52px !important;
  height: 52px !important;
  color: #9A7E2E !important;
  display: block !important;
}
body.page-id-1381 .ik-home-shop-panel-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
  line-height: 1 !important;
}
body.page-id-1381 .ik-home-shop-panel-sub {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #6E6E6E !important;
  -webkit-text-fill-color: #6E6E6E !important;
  letter-spacing: 0.02em !important;
}
/* Product tile: image + title+price bar at the bottom (white opaque
   strip) so the photo dominates but the name is always readable. */
body.page-id-1381 #content .ik-home-shop-tile-product,
body.page-id-1381 #content .ik-home-shop-tile-product:link,
body.page-id-1381 #content .ik-home-shop-tile-product:visited {
  position: relative !important;
  display: block !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  background: #1A1A1A !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
  border-radius: 0 !important;
}
body.page-id-1381 #content .ik-home-shop-tile-product:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 18px rgba(0,0,0,0.18) !important;
}
body.page-id-1381 .ik-home-shop-tile-product-img {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  transition: transform 0.4s ease !important;
}
body.page-id-1381 .ik-home-shop-tile-product:hover .ik-home-shop-tile-product-img {
  transform: scale(1.04) !important;
}
/* Title + price overlay on the image. Dark gradient from bottom →
   transparent so white text stays legible regardless of the image
   beneath. Mirrors the category-tile caption pattern. */
body.page-id-1381 .ik-home-shop-tile-product::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.35) 28%, transparent 55%) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}
body.page-id-1381 .ik-home-shop-tile-product-meta {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  padding: 14px 14px 12px !important;
  background: transparent !important;
  border-top: none !important;
}
body.page-id-1381 #content .ik-home-shop-tile-product-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  line-height: 1.25 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.45) !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 1 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
body.page-id-1381 #content .ik-home-shop-tile-product-price {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #FFCC33 !important;
  -webkit-text-fill-color: #FFCC33 !important;
  line-height: 1 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.45) !important;
}
body.page-id-1381 #content .ik-home-shop-tile-product-price .woocommerce-Price-amount {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}
@media (max-width: 921px) {
  body.page-id-1381 .ik-home-shop-grid-inner {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  body.page-id-1381 #content .ik-home-shop-panel {
    grid-column: span 2 !important;
  }
}
@media (max-width: 768px) {
  body.page-id-1381 .ik-home-shop-grid {
    margin: 0 0 40px !important;
  }
  body.page-id-1381 .ik-home-shop-grid-inner {
    grid-template-columns: 1fr !important;
  }
  body.page-id-1381 #content .ik-home-shop-panel,
  body.page-id-1381 #content .ik-home-shop-grid-inner > .ik-home-shop-panel {
    grid-column: 1 / -1 !important;
    padding: 28px 16px !important;
  }
  body.page-id-1381 #content .ik-home-shop-tile-product,
  body.page-id-1381 #content .ik-home-shop-grid-inner > .ik-home-shop-tile-product {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
  body.page-id-1381 .ik-home-shop-panel-heading {
    font-size: 22px !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   SECTION: Homepage "SHOP" category tiles (.ik-home-shop-categories)
   Full-bleed gold bar heading + row of 4 category tiles. Each tile
   is a 16:9-ish image with a dark gradient overlay and category name
   bottom-left in white. Mirrors the storefront category-tile feel
   Ruth referenced. Mobile collapses to 1 col, tablet 2 cols.
   2026-05-17.
   ══════════════════════════════════════════════════════════════ */
body.page-id-1381 .ik-home-shop-categories {
  margin: 0 0 64px !important;
}
body.page-id-1381 .ik-home-shop-categories-title {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #000 !important;
  -webkit-text-fill-color: #000 !important;
  background: linear-gradient(90deg, #C99A00, #FFCC33 30%, #FFD966 50%, #FFCC33 70%, #C99A00) !important;
  border-top: 1px solid rgba(255,220,100,0.6) !important;
  border-bottom: 1px solid rgba(160,130,40,0.5) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin: 0 -50vw 24px !important;
  padding: 1.5rem 2rem !important;
  text-align: center !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-sizing: border-box !important;
  display: block !important;
}
body.page-id-1381 .ik-home-shop-categories-grid {
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: 0 clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
}
/* Ruth 2026-05-19: snippet 17 emits a count-N class so the grid collapses
   gracefully when fewer than 4 cats have active products. Without this, a
   3-tile render leaves an empty 4th-column slot (unbalanced look). */
body.page-id-1381 .ik-home-shop-categories-grid.count-1 {
  grid-template-columns: minmax(280px, 480px) !important;
  justify-content: center !important;
}
body.page-id-1381 .ik-home-shop-categories-grid.count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  max-width: 800px !important;
}
body.page-id-1381 .ik-home-shop-categories-grid.count-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.page-id-1381 #content .ik-home-shop-tile,
body.page-id-1381 #content .ik-home-shop-tile:link,
body.page-id-1381 #content .ik-home-shop-tile:visited {
  position: relative !important;
  display: block !important;
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
  text-decoration: none !important;
  border-radius: 4px !important;
  background: #1A1A1A !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
body.page-id-1381 #content .ik-home-shop-tile:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 18px rgba(0,0,0,0.18) !important;
}
body.page-id-1381 .ik-home-shop-tile-img {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  transition: transform 0.4s ease !important;
}
body.page-id-1381 .ik-home-shop-tile:hover .ik-home-shop-tile-img {
  transform: scale(1.04) !important;
}
/* Caption overlay: dark gradient bottom → readable white text */
body.page-id-1381 .ik-home-shop-tile::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.2) 40%, transparent 70%) !important;
  pointer-events: none !important;
}
body.page-id-1381 #content .ik-home-shop-tile-name {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  padding: 14px 16px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  letter-spacing: 0.02em !important;
  z-index: 1 !important;
}
@media (max-width: 921px) {
  body.page-id-1381 .ik-home-shop-categories-grid,
  body.page-id-1381 .ik-home-shop-categories-grid.count-1,
  body.page-id-1381 .ik-home-shop-categories-grid.count-2,
  body.page-id-1381 .ik-home-shop-categories-grid.count-3,
  body.page-id-1381 .ik-home-shop-categories-grid.count-4 {
    grid-template-columns: repeat(2, 1fr) !important;
    max-width: var(--ik-max-width) !important;
    justify-content: stretch !important;
  }
}
@media (max-width: 768px) {
  body.page-id-1381 .ik-home-shop-categories {
    margin: 0 0 40px !important;
  }
  body.page-id-1381 .ik-home-shop-categories-grid,
  body.page-id-1381 .ik-home-shop-categories-grid.count-1,
  body.page-id-1381 .ik-home-shop-categories-grid.count-2,
  body.page-id-1381 .ik-home-shop-categories-grid.count-3,
  body.page-id-1381 .ik-home-shop-categories-grid.count-4 {
    grid-template-columns: 1fr !important;
    max-width: var(--ik-max-width) !important;
    justify-content: stretch !important;
  }
}

/* "View all auctions →" link sits BELOW the card grid, centered
   (Ruth 2026-05-17). */
body.page-id-1381 .ik-home-ending-soon-link-wrap {
  max-width: var(--ik-max-width) !important;
  margin: 24px auto 0 !important;
  padding: 0 clamp(1.5rem, 3vw, 2rem) !important;
  text-align: center !important;
  box-sizing: border-box !important;
}
body.page-id-1381 #content .ik-home-ending-soon-link,
body.page-id-1381 #content .ik-home-ending-soon-link:link,
body.page-id-1381 #content .ik-home-ending-soon-link:visited {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
  text-decoration: none !important;
  transition: color 0.15s ease !important;
}
body.page-id-1381 #content .ik-home-ending-soon-link:hover {
  color: #6F5A1F !important;
  -webkit-text-fill-color: #6F5A1F !important;
}
/* Card grid container under the bar — width-constrained */
body.page-id-1381 .ik-home-ending-soon .ik-auction-card-grid {
  max-width: var(--ik-max-width) !important;
  margin: 0 auto !important;
  padding: 0 clamp(1.5rem, 3vw, 2rem) !important;
  box-sizing: border-box !important;
}
@media (max-width: 480px) {
  body.page-id-1381 .ik-home-ending-soon {
    margin: 32px 0 40px !important;
  }
}

/* ============================================================================
   SESSION A FIX BATCH 1 — 2026-05-17 Sunday afternoon
   Backup: docs/css-backups/custom-styles-2026-05-17-1340-pre-session-A-fix-batch-1.css
   Findings doc: docs/SESSION-A-SWEEP-FINDINGS-2026-05-17.md
   Covers HIGH-priority items H1-H5 from the sweep TL;DR:
   - H1 + H3: dropdowns full-width on mobile, menu doesn't clip off-screen
   - H2: mobile content area horizontal padding (WC + storefront surfaces)
   - H4: card title links dark on storefront + PDP related (was rendering gold)
   - H5: homepage [ik_home_shop_grid] — every other tile no longer collapses
   ============================================================================ */

/* H1 + H3: mobile filter dropdowns universal full-width + no off-screen clip */
@media (max-width: 768px) {
  .ik-filter-dropdown,
  .ik-filter-dropdown summary.ik-filter-dropdown-trigger {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
  .ik-filter-dropdown-menu {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
  /* Stack dropdown rows vertically on mobile (was side-by-side at desktop) */
  .ik-auction-filter-row,
  .ik-shop-toolbar,
  .ik-storefront-toolbar,
  .ik-dropdowns-row,
  .ik-results-header {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-items: stretch !important;
  }
}

/* H2: mobile content area horizontal padding (WC + storefront surfaces)
   2026-05-18 Ruth: extended the @media ceiling from 768 to 1099 so it
   covers the same tablet range as our nav extension. When body has
   `ast-header-break-point` (added by our JS flipper at <=1099), Astra
   zeroes the content padding for these surfaces -- this rule restores
   it across the extended range so dashboard/cart/checkout content
   doesn't run flush to the viewport edges at iPad Pro 12" portrait. */
@media (max-width: 1099px) {
  body.woocommerce-cart .entry-content,
  body.woocommerce-checkout .entry-content,
  body.woocommerce-account .entry-content,
  body.woocommerce-order-received .entry-content,
  body.dokan-store .entry-content,
  body.woocommerce-account .woocommerce {
    padding-left: clamp(1.5rem, 4vw, 3rem) !important;
    padding-right: clamp(1.5rem, 4vw, 3rem) !important;
    box-sizing: border-box !important;
  }
  /* 2026-05-18 Ruth: previously the cart-form ALSO got clamp padding,
     which doubled with the .entry-content padding above and pushed the
     cart table 41px deeper than the notice above it. The .entry-content
     padding is enough; explicitly zero the form's padding so it inherits
     from its parent. */
  body.woocommerce-cart form.woocommerce-cart-form {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 2026-05-18 Ruth: logged-out /my-account/ renders the LOGIN + REGISTER
     forms as direct children of .entry-content > .woocommerce. Both wrappers
     get the clamp() padding from the rule above, so the form ends up with
     ~85px total inset on each side (page + entry-content padding + inner
     .woocommerce padding + form's own card border + padding). Zero the inner
     .woocommerce padding for the LOGGED-OUT case only -- the logged-IN inner
     pages (dashboard, edit-account, addresses, etc.) keep the inner padding
     they need for the sidenav+content layout. */
  body.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* H4: card title links dark on storefront + PDP related (override the
   universal #content a:link rule that paints links gold on white pages) */
body.dokan-store #content .ik-ac-card .ik-ac-title a,
body.dokan-store #content .ik-ac-card .ik-ac-title a:link,
body.dokan-store #content .ik-ac-card .ik-ac-title a:visited,
body.single-product #content .ik-ac-card .ik-ac-title a,
body.single-product #content .ik-ac-card .ik-ac-title a:link,
body.single-product #content .ik-ac-card .ik-ac-title a:visited {
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}
body.dokan-store #content .ik-ac-card .ik-ac-title a:hover,
body.single-product #content .ik-ac-card .ik-ac-title a:hover {
  color: #9A7E2E !important;
  -webkit-text-fill-color: #9A7E2E !important;
}

/* H5: superseded by Fix Batch 2.5 — the correct fix bumps the existing
   line-18591 mobile breakpoint from 480 to 768 (targets the right element
   .ik-home-shop-grid-inner). Removing the failed attempt that targeted
   .ik-home-shop-grid outer (wrong element). */
/* END SESSION A FIX BATCH 1 */

/* ============================================================================
   SESSION A FIX BATCH 1.1 — 2026-05-17 (post-verification extensions)
   - H2 padding extended to inner WC + storefront wrappers (initial selectors
     hit outer .entry-content but inner sidebar wrappers still at 0)
   - H1+H3 dropdown full-width extended to .ik-filter-row (storefront SHOP
     Sort dropdown's flex parent was constraining it to 175px)
   ============================================================================ */

@media (max-width: 768px) {
  /* H2 extension: inner WC account wrappers */
  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account .woocommerce-MyAccount-content {
    padding-left: clamp(1rem, 4vw, 1.5rem) !important;
    padding-right: clamp(1rem, 4vw, 1.5rem) !important;
    box-sizing: border-box !important;
  }

  /* H2 extension: storefront content wrappers (no .entry-content here) */
  body.dokan-store .ik-storefront,
  body.dokan-store .ik-main,
  body.dokan-store .ik-layout-with-sidebar,
  body.dokan-store .ik-storefront-shop,
  body.dokan-store .ik-results-header {
    padding-left: clamp(1.5rem, 4vw, 3rem) !important;
    padding-right: clamp(1.5rem, 4vw, 3rem) !important;
    box-sizing: border-box !important;
  }

  /* H1+H3 extension: any immediate flex parent of a dropdown becomes
     vertical-stack on mobile so the dropdown can expand to full width */
  .ik-filter-row,
  .ik-storefront-toolbar,
  .ik-results-header > div,
  body.dokan-store .ik-filter-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
  }
}
/* END SESSION A FIX BATCH 1.1 */

/* ============================================================================
   SESSION A FIX BATCH 2 — 2026-05-17 Sunday late afternoon
   Backup: docs/css-backups/custom-styles-2026-05-17-1407-pre-fix-batch-2.css
   MED-priority items from SESSION-A-SWEEP-FINDINGS-2026-05-17.md:
   - M1: homepage trust strip → AUCTIONS ENDING SOON 32px white gap (mobile)
   - M2: PDP "Auction ends... Timezone: UTC -5" info box missing top border
   - M3: PDP Related Auctions grid inset 6px from heading edge
   - M9: /sellers/ mobile spacing + search field width
   - L5/cosmetic: storefront SHOP Sort trigger flex parent width fix
   ============================================================================ */

/* M1: zero the section.ik-home-ending-soon top margin (was 32px) so the
   gold bar sits flush against the trust strip on mobile */
@media (max-width: 768px) {
  body.page-id-1381 section.ik-home-ending-soon {
    margin-top: 0 !important;
  }
}

/* M2: PDP "Auction ends:" info panel — add top border to match other 3 sides */
body.single-product p.auction-end,
body.single-product .auction-ajax-change .auction-end {
  border-top: 1px solid #E8E8E6 !important;
}

/* M3: PDP Related Auctions/Products grid — flush with heading + container,
   not 6px inset on each side */
body.single-product .related .ik-auction-card-grid,
body.single-product .related.products .ik-auction-card-grid,
body.single-product .ik-related-auctions .ik-auction-card-grid {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

/* M9: /sellers/ mobile spacing + full-width search */
@media (max-width: 768px) {
  body.page-id-1386 .ik-seller-search-slot,
  body.page-id-1386 .ik-sellers-sort-slot {
    width: 100% !important;
    margin-top: 12px !important;
  }
  body.page-id-1386 .ik-seller-search-slot input[type="text"],
  body.page-id-1386 .ik-seller-search-slot input[type="search"],
  body.page-id-1386 .ik-seller-search-slot input {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
  /* Tighten gap above search/sort area (Total stores label → search 16px instead of 75) */
  body.page-id-1386 #dokan-seller-listing-filter-wrap,
  body.page-id-1386 .ik-sellers-filter-area {
    margin-top: 16px !important;
    margin-bottom: 0 !important;
  }
}

/* L5 / cosmetic: storefront SHOP Sort dropdown flex parent — full width.
   Earlier Fix Batch 1.1 made .ik-filter-row column-flex but its width still
   sized to flex-item content. Force it to fill its parent. */
@media (max-width: 768px) {
  body.dokan-store .ik-results-header,
  body.dokan-store .ik-filter-row {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
  }
  body.dokan-store .ik-filter-row > details.ik-filter-dropdown,
  body.dokan-store .ik-filter-row > details.ik-filter-dropdown > summary {
    width: 100% !important;
    max-width: none !important;
  }
}
/* END SESSION A FIX BATCH 2 */

/* ============================================================================
   SESSION A FIX BATCH 2.1 — 2026-05-17 (corrected selectors after verify)
   - M9: search input class is .ik-seller-search-input (not parent slot class)
   - L5: .ik-results-header itself wasn't full-width — needs explicit width
   ============================================================================ */

@media (max-width: 768px) {
  /* M9 corrected: target the input class directly */
  body.page-id-1386 input.ik-seller-search-input {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  /* L5 corrected: force .ik-results-header to stretch full width inside .ik-main */
  body.dokan-store .ik-main > .ik-results-header,
  body.dokan-store .ik-results-header {
    width: 100% !important;
    max-width: 100% !important;
    align-self: stretch !important;
  }
  body.dokan-store .ik-results-header .ik-filter-row {
    width: 100% !important;
  }
}
/* END SESSION A FIX BATCH 2.1 */

/* ============================================================================
   SESSION A FIX BATCH 2.2 — 2026-05-17 (Ruth: mobile is priority)
   - M9 search input: hyper-specific selector + flex sizing
   - M9 sellers spacing: zero the .right + unclassed wrapper margins
   - L5 storefront filter row: align-self stretch
   - M6 mobile nav sub-menu full content width of drawer
   - M7 mobile nav caret vertically aligned with menu item label
   ============================================================================ */

@media (max-width: 768px) {
  /* M9: force search input full-width via flex + hyper specificity */
  body.page-id-1386 input[type="search"].ik-seller-search-input,
  body.page-id-1386 .ik-seller-search-slot > input.ik-seller-search-input {
    width: 100% !important;
    flex: 1 1 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  /* M9: tighten /sellers/ vertical rhythm — collapse the unclassed wrapper
     extra margin-top + .right margin-top */
  body.page-id-1386 #dokan-seller-listing-filter-wrap > div,
  body.page-id-1386 .right {
    margin-top: 8px !important;
    padding-top: 0 !important;
  }
  body.page-id-1386 .ik-seller-search-slot {
    margin-top: 8px !important;
  }
  body.page-id-1386 .ik-sellers-sort-slot {
    margin-top: 8px !important;
  }

  /* L5: force every direct child of .ik-results-header to stretch full-width */
  body.dokan-store .ik-results-header > * {
    width: 100% !important;
    align-self: stretch !important;
    flex-grow: 1 !important;
    flex-shrink: 1 !important;
    flex-basis: auto !important;
  }
  body.dokan-store .ik-filter-row > details,
  body.dokan-store .ik-filter-row > details > summary {
    width: 100% !important;
    align-self: stretch !important;
  }

  /* M6 sub-menu styling moved to source rules at line ~1080
     (#ast-mobile-header .main-header-menu .sub-menu / .menu-link). The earlier
     overrides here were band-aids; the source rules now handle it. */

  /* M7: caret toggle moved out to its own 1099 @media block below so it fires
     at tablet drawer too (Ruth 2026-05-18 mobile-tablet parity audit). */
}

/* M7 drawer caret-toggle vertical center -- drawer-related, extended to 1099
   so the toggle button positions correctly when the drawer renders at our
   tablet range. 2026-05-18 Ruth. */
@media (max-width: 1099px) {
  body button.ast-menu-toggle {
    top: 50% !important;
    transform: translateY(-50%) !important;
  }
}
/* END SESSION A FIX BATCH 2.2 */

/* ============================================================================
   SESSION A FIX BATCH 3.1 — 2026-05-17 (M5 mobile cart label) — FINAL
   Mirrors MY ACCOUNT row styles (inspected live via getComputedStyle):
     17px / weight 500 / #FFFFFF / uppercase / letter-spacing 1.7px /
     line-height 51px / padding 14px 0 / border-bottom 1px rgba(255,255,255,0.06)
     / row width 248px centered (matches drawer menu items)

   Visible drawer cart wrapper:
     .ast-mobile-header-content .ast-header-woo-cart (outer 333w row)
       container .ast-site-header-cart (inner 135w — bump to 248 centered)
         a.cart-container (style as MY ACCOUNT .menu-link)
            .ast-addon-cart-wrap (flex row: "MY CART" text + bag)
               span.ast-woo-header-cart-info-wrap (HIDE — "Cart/$X" text)
               i.astra-icon.ast-icon-shopping-bag (the bag glyph)

   2026-05-18 Ruth (later): extended ceiling 768->1099 so the cart wrapper
   styling AND the "MY CART" label show at our extended tablet range too.
   Without this extension the tablet drawer had no MY CART label (Ruth's
   side-by-side comparison flagged the divergence vs mobile).
   ============================================================================ */

@media (max-width: 1099px) {
  /* 1. Hide Astra default "Cart/$X" text (no price wanted per Ruth) */
  body .ast-mobile-header-content .ast-woo-header-cart-info-wrap {
    display: none !important;
  }

  /* 2. Outer wrapper: full-width row, zero padding. Inherits the drawer's
        single 1.5rem padding from .ast-mobile-header-content (per root fix
        at line ~1007). Astra defaults of padding:15px 20px get killed so the
        cart row sits flush in the drawer's natural inset like every menu item. */
  body .ast-mobile-header-content .ast-header-woo-cart {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  /* 3. Inner cart block: stretch full-width within the drawer's natural inset
        (so MY CART left edge aligns with menu items' left edge at every viewport) */
  body .ast-mobile-header-content .ast-site-header-cart {
    width: 100% !important;
    max-width: none !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  body .ast-mobile-header-content .ast-site-header-cart-li {
    width: 100% !important;
    display: block !important;
  }

  /* 4. The a.cart-container styled like MY ACCOUNT .menu-link.
        Astra ships .ast-menu-cart-outline a.cart-container with a full border;
        we need to wipe all-sides border then re-set just the bottom one. */
  body .ast-mobile-header-content a.cart-container,
  body .ast-mobile-header-content .ast-menu-cart-outline a.cart-container {
    display: block !important;
    width: 100% !important;
    padding: 14px 0 !important;
    border: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: 0 !important;
    color: #FFFFFF !important;
    text-decoration: none !important;
    background: transparent !important;
  }

  /* 5. The wrap inside <a> holds "MY CART" text + bag.
        justify-content: space-between — MY CART hugs left (matching MY ACCOUNT
        left edge), bag icon hugs right (matching the caret position on
        MY ACCOUNT / HELP rows). Mirror layout pattern of the menu items. */
  body .ast-mobile-header-content .ast-addon-cart-wrap {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    gap: 0 !important;
    padding: 0 !important;
    padding-left: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    text-indent: 0 !important;
  }

  /* 6. Inject "MY CART" matching MY ACCOUNT computed font EXACTLY.
        order: -1 forces ::before first (so text is leftmost, bag is rightmost
        under space-between). All padding/margin/text-indent explicitly zero
        so text starts AT the wrap's left edge (which is at the same x as
        MY ACCOUNT's text in the .menu-link). */
  body .ast-mobile-header-content .ast-addon-cart-wrap::before {
    content: "MY CART" !important;
    display: inline-block !important;
    order: -1 !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.7px !important;
    line-height: 51px !important;
    padding: 0 !important;
    padding-left: 0 !important;
    margin: 0 !important;
    text-indent: 0 !important;
    text-align: left !important;
  }

  /* 6b. The hidden Cart/$X span — collapse it fully so it can't influence flex flow */
  body .ast-mobile-header-content .ast-woo-header-cart-info-wrap {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 7. Bag icon: pushed to right via space-between, no extra spacing */
  body .ast-mobile-header-content .astra-icon.ast-icon-shopping-bag {
    margin: 0 !important;
    padding: 0 !important;
    margin-left: auto !important;
  }

  /* 8. Kill Astra cart-container's -webkit-text-fill-color override at the <a> level too */
  body .ast-mobile-header-content a.cart-container {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
  }

  /* 9. Astra adds padding-bottom:21px to BOTH .main-header-bar-navigation
        AND .main-navigation (nested) inside the mobile drawer, creating a
        ~42px visual gap between MY ACCOUNT and MY CART that breaks the
        menu-item rhythm. Zero both (scoped to mobile drawer only). */
  body .ast-mobile-header-content .main-header-bar-navigation,
  body .ast-mobile-header-content .main-navigation {
    padding-bottom: 0 !important;
  }
}
/* END SESSION A FIX BATCH 3.1 */

/* ============================================================================
   SESSION A FIX BATCH 2.4 — 2026-05-17 (Ruth: 'fixed' = looks good at every
   viewport in context, not just one viewport)
   - H5 SHOP grid: extend the 1-col stack from <=480 to <=768 so the panel +
     tiles share consistent full-width on all mobile/tablet-portrait viewports
   ============================================================================ */

/* H5 extension — superseded by Fix Batch 2.5 line-18591 breakpoint bump
   which targets .ik-home-shop-grid-inner correctly. Below was failed
   attempt at outer .ik-home-shop-grid. Removed. */
@media (max-width: 768px) {
  /* Categories single-column to align with shop grid */
  body.page-id-1381 .ik-home-shop-categories {
    grid-template-columns: 1fr !important;
  }
  body.page-id-1381 .ik-home-shop-categories > a {
    width: 100% !important;
    grid-column: 1 / -1 !important;
  }
}
/* END SESSION A FIX BATCH 2.4 */


/* ══════════════════════════════════════════════════════════════
   SECTION 73. Single-product page — External/Affiliate product
   button layout (BUY product + GET SUPPORT).
   WC renders <button.single_add_to_cart_button>Buy product</button>
   then Dokan injects <button.dokan-store-support-btn-product>Get
   Support</button> as flex siblings inside form.cart. The generic
   form.cart flex rule at SECTION 59 gives BUY flex:1 1 200px and
   GET SUPPORT auto width — looks unbalanced on desktop, and on
   older prod CSS the two collide / overlap.
   Spec: distinct buttons with proper spacing. >=769 side-by-side
   equal width; <=768 stacked full-width with consistent gap.
   Authored 2026-05-18 — Ruth flagged on prod /product/25+-dubia-roaches/.
   Reproduced on staging with test product id 5503.
   ══════════════════════════════════════════════════════════════ */
body.single-product .product.product-type-external .summary form.cart {
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}
body.single-product .product.product-type-external .summary form.cart > .single_add_to_cart_button,
body.single-product .product.product-type-external .summary form.cart > button.single_add_to_cart_button,
body.single-product .product.product-type-external .summary form.cart > .dokan-store-support-btn,
body.single-product .product.product-type-external .summary form.cart > .dokan-store-support-btn-product,
body.single-product .product.product-type-external .summary form.cart > button.dokan-store-support-btn,
body.single-product .product.product-type-external .summary form.cart > button.dokan-store-support-btn-product {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
}
@media (max-width: 768px) {
  body.single-product .product.product-type-external .summary form.cart > .single_add_to_cart_button,
  body.single-product .product.product-type-external .summary form.cart > button.single_add_to_cart_button,
  body.single-product .product.product-type-external .summary form.cart > .dokan-store-support-btn,
  body.single-product .product.product-type-external .summary form.cart > .dokan-store-support-btn-product,
  body.single-product .product.product-type-external .summary form.cart > button.dokan-store-support-btn,
  body.single-product .product.product-type-external .summary form.cart > button.dokan-store-support-btn-product {
    flex: 1 1 100% !important;
    min-width: 100% !important;
  }
}
/* END SECTION 73 */


/* ══════════════════════════════════════════════════════════════
   SECTION 74. Single-product page — Simple product with vendor
   Get Support button. PREEMPTIVE FIX.

   For simple-products owned by a vendor that has Store Support
   enabled, form.cart has THREE flex children: quantity input,
   Add to Cart button, Get Support button. SECTION 59 was authored
   against the 2-element case (qty + Add) so the 3rd child (Get
   Support) inherits no layout rule and gets auto width.

   At desktop (533px summary): qty 72 + 12gap + Add (flex:1 1 200px,
   takes ~440) + 12gap = 536 — already past container width. Get
   Support then wraps OR squishes depending on cascade.

   Spec: Get Support flows to its own row, full-width, with the
   same 12px row-gap that SECTION 59 set on the form.

   Why preemptive: couldn't test on staging because no staging
   vendor has BOTH a simple product AND Store Support enabled in
   their settings. Defensive CSS removes the unknown — even if the
   3rd-child wrap was already working via flex-wrap inheritance,
   this rule makes it explicit + future-proof.

   Authored 2026-05-19 — preemptive hotfix for prod
   /product/armadillidium-espanyoli-marbelized-10-count/ (which has
   the 3-element case live).
   ══════════════════════════════════════════════════════════════ */
body.single-product .product.product-type-simple .summary form.cart > .dokan-store-support-btn,
body.single-product .product.product-type-simple .summary form.cart > .dokan-store-support-btn-product,
body.single-product .product.product-type-simple .summary form.cart > button.dokan-store-support-btn,
body.single-product .product.product-type-simple .summary form.cart > button.dokan-store-support-btn-product {
  flex: 1 1 100% !important;
  min-width: 100% !important;
  width: 100% !important;
  margin-top: 0 !important;
  /* 12px row-gap from form.cart provides spacing above */
}
/* END SECTION 74 */


/* ══════════════════════════════════════════════════════════════
   SECTION 76. Canonical .ik-ac-card "Sold by:" anchored to bottom.
   ══════════════════════════════════════════════════════════════

   Ruth 2026-05-19: across a row of canonical product/auction cards
   (storefront, /store-product/, /auctions/, homepage SHOP grid),
   the "Sold by: <vendor>" line and "Add to Cart"/"Bid Now" button
   weren't aligned horizontally when titles varied in length. A 2-line
   title pushed those rows down ~24px compared to a 1-line title in
   the adjacent card.

   Root cause: .ik-ac-info is `display: flex; flex-direction: column`
   but no child was anchored to the bottom of the flex container.
   The title (.ik-ac-title) has natural height (1-3 lines), so all
   downstream rows shifted with it.

   Fix: `margin-top: auto` on .ik-ac-vendor pushes the vendor row +
   everything below (the actions button) to the bottom of the card.
   Cross-card alignment is now guaranteed: vendor line always sits
   at the same offset from the card's bottom edge, regardless of
   title length variation.

   2026-05-23 correction (Ruth caught on prod homepage): the rule above
   was necessary but not sufficient. .ik-ac-actions ALSO carries
   `margin-top: auto` (SECTION near line 6054). In a flex column, when
   two siblings both have `margin-top: auto`, the free space is split
   EQUALLY between them — so the button still pinned to the bottom, but
   the vendor row floated to the MIDPOINT of the leftover space, landing
   at a different height in every card as the title length varied. The
   cards with a shorter title showed the most drift.

   Real fix: zero the actions auto-margin so the vendor row absorbs ALL
   the slack and the vendor+button group pins to the bottom as one unit.
   Scoped with :has(.ik-ac-vendor) so cards rendered WITHOUT a "Sold by"
   row (e.g. on a vendor's own storefront) keep the button's own
   margin-top:auto and stay bottom-pinned. If :has() is unsupported the
   rule is simply ignored and we fall back to the prior behavior.

   Applies to every canonical card surface (snippet 17 renders them
   the same way everywhere) — no per-page scoping needed. */
.ik-ac-card .ik-ac-info {
  display: flex !important;
  flex-direction: column !important;
}
.ik-ac-card .ik-ac-vendor {
  margin-top: auto !important;
  flex: 0 0 auto !important;
}
.ik-ac-card .ik-ac-info:has(.ik-ac-vendor) .ik-ac-actions {
  margin-top: 0 !important;
}
/* END SECTION 76 */

/* ══════════════════════════════════════════════════════════════
   SECTION 77. Storefront pagination to footer spacing parity (Ruth 2026-05-19)
   ══════════════════════════════════════════════════════════════
   Issue: /store/<v>/?ik_tab=shop and ?ik_tab=auctions show ~185px of
   blank space between the pagination buttons and the footer. Canonical
   /auctions/ has only ~32px gap. The difference: Dokan single-store
   pages stack five separate bottom contributions that /auctions/ does
   not have (.ik-storefront padding-bottom 32 + .ik-layout-with-sidebar
   margin-bottom 32 + .dokan-store-wrap margin-bottom 20 + .ast-
   woocommerce-container padding-bottom 45 + .content-area.primary
   margin-bottom 56 = 185px).

   Fix happens in TWO places:
   • Source rules updated in-place (per [fix-at-source-not-overrides]):
       - line 18693 `.ik-layout-with-sidebar` margin-bottom 32 → 0
       - line 16350 `.ast-woocommerce-container` padding-bottom dropped
         out of the shorthand (now longhand with bottom=0)
   • Two follow-up rules below for the wrappers we don't author —
     `.dokan-store-wrap` (Dokan plugin) and `.ik-storefront` (left for
     scoping safety even though source-touched would work).

   Net: storefront gap drops from ~185 to ~32 (canonical), no impact on
   non-storefront WooCommerce archives. */
body.dokan-store .ik-storefront {
  padding-bottom: 0 !important;
}
body.dokan-store .dokan-store-wrap {
  margin-bottom: 0 !important;
}
/* Astra's default for .content-area.primary is margin-bottom: ~56px.
   The Dokan store wrapper (.dokan-single-store, a flex item) also contains
   a fixed ~32px of trailing space below .store-page-wrap that we can't zero
   at its source (intrinsic flex-wrapper artifact, consistent across vendors
   + tabs). So we zero this outer margin entirely — the storefront's
   content-to-footer gap then settles at that ~32px, matching the canonical
   /auctions/ gap. 2026-05-19 Ruth. */
body.dokan-store .content-area.primary {
  margin-bottom: 0 !important;
}
/* END SECTION 77 */

/* ══════════════════════════════════════════════════════════════
   SECTION 75. Mobile storefront fixes — Ruth 2026-05-19
   ══════════════════════════════════════════════════════════════
   Issue 1: /store/<v>/?ik_tab=shop mobile — Reviews/About/Follow
   wraps to two lines because stacked parent padding (.profile-info
   30+30 + .profile-info-summery-wrapper 20+20 = 100px) leaves only
   233px for the buttons in a 375px viewport. Three buttons at
   default 110px min-width + 10px gap = 290px+ — doesn't fit.

   Issue 2: Follow button text looks visually different from the
   Reviews/About sibling buttons even though the computed font-size
   matches. The inner Dokan label spans inherit from a different
   cascade and break visual consistency.

   Issue 3: ☰ unicode hamburger glyph's visual center isn't at its
   bounding-box center, so even with align-items:center the MENU
   toggle looks off. Replace with a CSS-drawn 3-bar hamburger of
   exact known dimensions.
   ══════════════════════════════════════════════════════════════ */

@media (max-width: 480px) {
  /* Reduce stacked padding on Dokan profile info wrapper at narrow widths.
     Was 30px each side; trim to 12px so the 3 vendor-link buttons fit on
     one row without wrapping. */
  body.dokan-store .profile-info {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  body.dokan-store .profile-info-summery-wrapper {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* Shrink Follow button on mobile so 3 buttons fit on one row.
     Reviews + About are auto-width based on text padding. Follow had
     min-width: 110px (line 14384) — drop it on mobile so it sizes to
     content like its siblings. Also shrink horizontal padding. */
  body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button {
    min-width: 0 !important;
    padding: 8px 12px !important;
  }
  body.dokan-store .ik-vendor-link-buttons .ik-vendor-link-btn {
    padding: 8px 12px !important;
  }
  body.dokan-store .ik-vendor-link-buttons {
    gap: 6px !important;
  }
}

/* Force the Follow button's inner label spans to inherit ALL font properties
   from the parent button, not Dokan's defaults. Without this the spans use
   Dokan's font-size cascade and look slightly different from Reviews/About
   text. Applies at all viewports. */
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button .dokan-follow-store-button-label-follow,
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button .dokan-follow-store-button-label-unfollow,
body.dokan-store .ik-vendor-link-buttons button.dokan-follow-store-button .dokan-follow-store-button-label-current {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-transform: inherit !important;
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

/* CSS-drawn 3-bar hamburger for the sidebar-collapsible toggle so the
   visual glyph center matches the flex align-items:center calculation
   (the ☰ unicode char's bounding box centers != its visual stroke center
   in most fonts, producing apparent mis-alignment with MENU text + ::after). */
.entry-content details:not(.ik-filter-dropdown) summary .ik-shop-sidebar-toggle-icon,
body.ik-product-catalog details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon,
body.dokan-store details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon {
  /* Hide the unicode glyph */
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  text-shadow: none !important;
  /* Build the bars via background image so the parent flex centers a
     known-dimension box. */
  width: 14px !important;
  height: 12px !important;
  background-image: linear-gradient(to bottom,
    currentColor 0, currentColor 2px,
    transparent 2px, transparent 5px,
    currentColor 5px, currentColor 7px,
    transparent 7px, transparent 10px,
    currentColor 10px, currentColor 12px
  ) !important;
  background-color: transparent !important;
  background-size: 100% 100% !important;
  background-repeat: no-repeat !important;
  /* Use the surrounding text's color for the bars */
  color: #333 !important;
}
/* The above sets color: transparent on the span (to hide ☰) but uses
   currentColor for the gradient — which would render transparent. Re-fix:
   use an explicit color in the gradient via a CSS variable approach. */
.entry-content details:not(.ik-filter-dropdown) summary .ik-shop-sidebar-toggle-icon,
body.ik-product-catalog details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon,
body.dokan-store details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon,
body.woocommerce-account details.ik-shop-sidebar-collapsible summary .ik-shop-sidebar-toggle-icon {
  background-image: linear-gradient(to bottom,
    #333 0, #333 2px,
    transparent 2px, transparent 5px,
    #333 5px, #333 7px,
    transparent 7px, transparent 10px,
    #333 10px, #333 12px
  ) !important;
}
/* END SECTION 75 */
