#vsplash, html body #vsplash { position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 999999 !important; overflow: hidden !important; display: flex !important; }
/* Vifique Custom CSS - Clean Reset */

/* Swatches */
.vifique-has-swatches .variations select { display: none !important; }
.vifique-swatch-group { margin: 16px 0; }
.vifique-swatch-label { display: block; font-size: 0.82rem; font-weight: 700; color: #6B3A45; margin-bottom: 10px; letter-spacing: 0.06em; text-transform: uppercase; }
.vifique-swatch-label .selected-swatch-name { font-weight: 400; text-transform: none; color: #9B6B75; margin-left: 4px; }
.vifique-swatches { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vifique-swatch { width: 36px; height: 36px; border-radius: 50%; border: 2.5px solid transparent; padding: 0; cursor: pointer; position: relative; transition: all 0.22s ease; flex-shrink: 0; outline: none; }
.vifique-swatch:hover { transform: scale(1.14); border-color: rgba(180,120,130,0.5); }
.vifique-swatch.active { border-color: #C97B8B; box-shadow: 0 0 0 3px rgba(201,123,139,0.28); transform: scale(1.1); }
.vifique-swatch-tip { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); background: #2A1A20; color: #fff; font-size: 0.7rem; padding: 4px 8px; border-radius: 6px; white-space: nowrap; pointer-events: none; z-index: 10; }

/* Splash */
#vsplash { position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; overflow: hidden !important; font-family: 'Space Grotesk', sans-serif !important; transition: opacity 0.7s ease; }
#vsplash.vsp-hiding { opacity: 0 !important; pointer-events: none !important; }
.vsp-bg { position: absolute; inset: -20px; background-size: cover; background-position: center; filter: blur(28px); transform: scale(1.12); z-index: 0; }
.vsp-overlay { position: absolute; inset: 0; background: rgba(10,5,8,0.72); z-index: 1; }
.vsp-close { position: absolute; top: 20px; right: 24px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.25); color: #fff; width: 34px; height: 34px; border-radius: 50%; font-size: 1.2rem; cursor: pointer; z-index: 10; display: flex; align-items: center; justify-content: center; }
.vsp-content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 900px; padding: 24px 20px; gap: 18px; max-height: 100vh; overflow-y: auto; scrollbar-width: none; box-sizing: border-box; text-align: center; }
.vsp-content::-webkit-scrollbar { display: none; }
.vsp-eyebrow { font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin: 0; }
.vsp-logo { font-size: clamp(2.5rem, 8vw, 5rem); font-weight: 200; letter-spacing: 0.38em; color: #fff; margin: 0; text-transform: uppercase; line-height: 1; }
.vsp-tagline { font-size: 0.72rem; color: rgba(255,255,255,0.55); letter-spacing: 0.16em; text-transform: uppercase; font-weight: 300; margin: 0; }
.vsp-carousel-section { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.vsp-carousel-wrapper { position: relative; width: 100%; max-width: 700px; display: flex; align-items: center; gap: 8px; }
.vsp-carousel-track { flex: 1; overflow: hidden; position: relative; height: 200px; border-radius: 14px; }
.vsp-slide { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.5s ease; }
.vsp-slide.active { opacity: 1; }
.vsp-slide img { height: 170px; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 8px 24px rgba(0,0,0,0.4)); }
.vsp-slide-name { font-size: 0.65rem; color: rgba(255,255,255,0.65); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 6px; }
.vsp-arrow { background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.2); color: #fff; width: 32px; height: 32px; border-radius: 50%; cursor: pointer; font-size: 0.9rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.vsp-arrow:hover { background: rgba(255,255,255,0.22); }
.vsp-dots { display: flex; gap: 6px; justify-content: center; }
.vsp-dot { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,0.3); border: none; cursor: pointer; padding: 0; transition: all 0.25s ease; }
.vsp-dot.active { background: #fff; width: 14px; border-radius: 3px; }
.vsp-reels-section { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.vsp-reels-label { font-size: 0.58rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.35); margin: 0; }
.vsp-reels-wrapper { display: flex; align-items: center; gap: 8px; width: 100%; max-width: 700px; }
.vsp-reels-track { display: flex; gap: 8px; overflow-x: auto; flex: 1; scroll-behavior: smooth; scrollbar-width: none; }
.vsp-reels-track::-webkit-scrollbar { display: none; }
.vsp-reel-item { flex-shrink: 0; }
.vsp-reel-item a { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; }
.vsp-reel-thumb { width: 75px; height: 112px; border-radius: 10px; background-size: cover; background-position: center; border: 1px solid rgba(255,255,255,0.12); }
.vsp-reel-label { font-size: 0.55rem; color: rgba(255,255,255,0.38); letter-spacing: 0.08em; text-transform: uppercase; }
.vsp-reel-prev, .vsp-reel-next { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15); color: rgba(255,255,255,0.7); width: 26px; height: 26px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.vsp-cta { display: inline-block; padding: 13px 44px; border: 1.5px solid rgba(255,255,255,0.75); color: #fff !important; font-size: 0.72rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none !important; border-radius: 10px; background: rgba(255,255,255,0.08); backdrop-filter: blur(10px); transition: all 0.3s ease; cursor: pointer; }
.vsp-cta:hover { background: rgba(255,255,255,0.18) !important; transform: translateY(-2px); }


/* ===== SPLASH CRITICAL FIXES ===== */

/* Contain the entire splash - nothing bleeds out */
#vsplash {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  z-index: 999999 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(10,5,8,0.72) !important;
}

/* Blurred background */
.vsp-bg {
  position: absolute !important;
  inset: -30px !important;
  background-size: cover !important;
  background-position: center !important;
  filter: blur(30px) !important;
  transform: scale(1.15) !important;
  z-index: 0 !important;
  width: calc(100% + 60px) !important;
  height: calc(100% + 60px) !important;
}

/* Dark overlay sits on top of blur */
.vsp-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(10,5,8,0.65) !important;
  z-index: 1 !important;
}

/* Content sits above everything */
.vsp-content {
  position: relative !important;
  z-index: 2 !important;
  max-height: 100vh !important;
  overflow-y: auto !important;
  width: 100% !important;
  max-width: 800px !important;
  padding: 30px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 16px !important;
  box-sizing: border-box !important;
}

/* Carousel track fixed height */
.vsp-carousel-track {
  position: relative !important;
  height: 260px !important;
  width: 100% !important;
  overflow: hidden !important;
}

/* Slides centered, image contained */
.vsp-slide {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0 !important;
  transition: opacity 0.5s ease !important;
}

.vsp-slide.active {
  opacity: 1 !important;
}

/* THIS IS THE KEY FIX - constrain image size */
.vsp-slide img {
  max-height: 220px !important;
  max-width: 280px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,0.5)) !important;
}

.vsp-slide a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
}

/* SPLASH FULLSCREEN FIX */
body.splash-open {
  overflow: hidden !important;
  height: 100% !important;
}
html.splash-open {
  overflow: hidden !important;
  height: 100% !important;
}
#vsplash {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 999999 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.vsp-close {
  position: fixed !important;
  top: 16px !important;
  right: 16px !important;
  z-index: 9999999 !important;
  width: 40px !important;
  height: 40px !important;
  cursor: pointer !important;
  pointer-events: all !important;
}

/* Arrows closer to carousel image */
.vsp-carousel-wrapper {
  max-width: 420px !important;
  margin: 0 auto !important;
}
.vsp-arrow {
  flex-shrink: 0 !important;
}

/* Carousel arrows tight to image */
.vsp-carousel-wrapper {
  max-width: 360px !important;
}
.vsp-carousel-track {
  border-radius: 12px !important;
}

/* =============================================
   VIFIQUE COLOR + FONT THEME
   Safe append — no hero/image/swatch changes
   ============================================= */

/* Tokens */
:root {
  --vf-bg:         #F2F0ED;
  --vf-text:       #1C1A18;
  --vf-muted:      #7A7570;
  --vf-faint:      #B0ADA8;
  --vf-red:        #B84040;
  --vf-teal:       #5B8C85;
  --vf-pink:       #D4A0A8;
  --vf-border:     #E0DDD8;
  --vf-surface:    #FFFFFF;
  --vf-font:       'Space Grotesk', sans-serif;
  --vf-mono:       'DM Mono', monospace;
}

/* Body font only — no background override */
body {
  font-family: var(--vf-font) !important;
  -webkit-font-smoothing: antialiased !important;
}

/* Navigation */
nav a,
.main-navigation a,
.site-nav a,
header nav a {
  font-family: var(--vf-font) !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

nav a:hover,
.main-navigation a:hover {
  color: var(--vf-red) !important;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--vf-font) !important;
  font-weight: 300 !important;
  letter-spacing: 0.06em !important;
}

/* Prices — monospace */
.price,
.woocommerce-Price-amount,
span.amount {
  font-family: var(--vf-mono) !important;
  font-size: 0.8rem !important;
  color: var(--vf-muted) !important;
  letter-spacing: 0.06em !important;
}

ins .woocommerce-Price-amount { color: var(--vf-red) !important; }
del .woocommerce-Price-amount { color: var(--vf-faint) !important; }

/* Product titles on cards */
.woocommerce-loop-product__title,
.wc-block-grid__product-title {
  font-family: var(--vf-font) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.add_to_cart_button,
.single_add_to_cart_button {
  font-family: var(--vf-font) !important;
  font-size: 0.7rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border-radius: 10px !important;
  transition: all 0.25s ease !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.add_to_cart_button:hover,
.single_add_to_cart_button:hover {
  background: var(--vf-red) !important;
  color: #fff !important;
}

/* Sale badge */
.onsale {
  background: var(--vf-red) !important;
  color: #fff !important;
  font-family: var(--vf-mono) !important;
  font-size: 0.6rem !important;
  letter-spacing: 0.1em !important;
  border-radius: 4px !important;
}

/* Category labels */
.posted_in a,
.product-cat a {
  color: var(--vf-teal) !important;
  font-family: var(--vf-mono) !important;
  font-size: 0.62rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

/* Breadcrumbs */
.woocommerce-breadcrumb {
  font-family: var(--vf-mono) !important;
  font-size: 0.62rem !important;
  letter-spacing: 0.1em !important;
  color: var(--vf-faint) !important;
  text-transform: uppercase !important;
}

/* Product page title */
h1.product_title {
  font-weight: 300 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

/* Variation labels */
.variations label,
.variations th {
  font-family: var(--vf-mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--vf-muted) !important;
}

/* Short description */
.woocommerce-product-details__short-description {
  font-family: var(--vf-font) !important;
  font-size: 0.82rem !important;
  line-height: 1.8 !important;
  color: var(--vf-muted) !important;
}

/* Footer */
.site-footer,
footer.site-footer {
  font-family: var(--vf-font) !important;
}

.site-footer a,
footer a {
  font-size: 0.7rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* Inputs */
input[type="text"],
input[type="email"],
input[type="search"],
textarea,
select {
  font-family: var(--vf-font) !important;
  font-size: 0.8rem !important;
  border-radius: 6px !important;
}

/* Scrollbar */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-thumb { background: var(--vf-border); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--vf-muted); }

/* Selection */
::selection { background: var(--vf-red); color: #fff; }

/* Tabs on product page */
.woocommerce-tabs ul.tabs li a {
  font-family: var(--vf-mono) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

/* Cart table headers */
.woocommerce table.shop_table th {
  font-family: var(--vf-mono) !important;
  font-size: 0.62rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--vf-muted) !important;
}
