/* Rivrun WooCommerce performance layer v8.0.3 */

/* Button safety: never cut text or force strange fixed widths. */
.wp-block-button:not(.rivrun-products-view-more),
.wp-block-button .wp-block-button__link,
.wp-block-button__link,
.wc-block-components-product-button__button,
.single_add_to_cart_button {
  width: auto;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  text-align: center;
}

@media (max-width: 640px) {
  .wp-block-buttons {
    justify-content: flex-start !important;
  }
  .wp-block-buttons > .wp-block-button {
    flex: 0 1 auto;
  }
  .wp-block-button .wp-block-button__link,
  .wp-block-button__link {
    padding: 0.7rem 1rem;
    font-size: 0.9rem;
  }
}

/* AJAX load more */
.rivrun-ajax-load-more {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 28px 16px 10px;
  clear: both;
}
.rivrun-load-more-button {
  border-radius: 999px !important;
  padding: 12px 28px !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  box-shadow: 0 12px 34px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.14);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
}
.rivrun-load-more-button[disabled] { opacity: .55; cursor: wait; }
.rivrun-load-more-loader { width: 42px; height: 42px; object-fit: contain; }
.rivrun-ajax-load-more:not(.is-loading) .rivrun-load-more-loader { display: none; }
.rivrun-load-more-status { color: rgba(255,255,255,.6); font-size: 13px; }
.rivrun-load-more-sentinel { display: block; width: 100%; height: 1px; }

/* Single-product swatches only. Archive swatches are intentionally disabled for speed. */
body:not(.single-product) .rivrun-loop-swatches,
body:not(.single-product) .rivrun-variation-swatches,
body:not(.single-product) .rivrun-swatch-row {
  display: none !important;
}
body.single-product form.variations_form select[data-rivrun-select="1"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  opacity: 0 !important;
}
body.single-product table.variations,
body.single-product table.variations tbody,
body.single-product table.variations tr,
body.single-product table.variations th,
body.single-product table.variations td {
  display: block;
  width: 100%;
}
body.single-product table.variations th.label {
  display: none !important;
}
body.single-product table.variations td.value {
  padding: 0 !important;
}
body.single-product .rivrun-swatch-row,
body.single-product .wp-block-woocommerce-add-to-cart-with-options [class*="variation-selector"],
body.single-product [class*="add-to-cart-with-options"] [class*="variation-selector"] {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin: 10px 0 !important;
}
body.single-product .rivrun-swatch-attribute-name,
body.single-product [class*="variation-selector-attribute-name"] {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  min-width: auto !important;
  margin: 0 !important;
  color: rgba(255,255,255,.86) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
body.single-product .rivrun-variation-swatches,
body.single-product [class*="variation-selector-attribute-options"] {
  flex: 1 1 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  min-width: 0 !important;
}
body.single-product .reset_variations {
  display: inline-flex !important;
  align-items: center;
  margin-left: 10px !important;
  color: rgba(255,255,255,.62) !important;
  font-size: 14px !important;
  text-decoration: none !important;
}
body.single-product .reset_variations::before { content: "×"; margin-right: 5px; font-size: 18px; line-height: 1; }
body.single-product .rivrun-swatch,
body.single-product [class*="variation-selector-attribute-options"] button,
body.single-product [class*="variation-selector-attribute-options"] [role="button"] {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 36px;
  padding: 7px 13px;
  border: 1px solid rgba(255,255,255,.22) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.07) !important;
  color: #fff !important;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 7px 20px rgba(0,0,0,.22);
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
body.single-product .rivrun-swatch:hover,
body.single-product [class*="variation-selector-attribute-options"] button:hover,
body.single-product [class*="variation-selector-attribute-options"] [role="button"]:hover {
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.48) !important;
}
body.single-product .rivrun-swatch.is-selected,
body.single-product .rivrun-swatch[aria-pressed="true"],
body.single-product [class*="variation-selector-attribute-options"] button[aria-pressed="true"],
body.single-product [class*="variation-selector-attribute-options"] .is-selected,
body.single-product [class*="variation-selector-attribute-options"] .is-active {
  border-color: rgba(255,255,255,.92) !important;
  background: rgba(255,255,255,.16) !important;
  box-shadow: 0 0 0 2px rgba(255,255,255,.08), 0 10px 28px rgba(0,0,0,.3);
}
body.single-product .rivrun-swatch.is-disabled,
body.single-product .rivrun-swatch[disabled] {
  display: none !important;
}
body.single-product .rivrun-color-swatch {
  width: 38px;
  min-width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
}
body.single-product .rivrun-swatch-color-dot {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--rivrun-swatch-color, #fff);
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.18);
}
body.single-product .rivrun-swatch[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 9px);
  transform: translateX(-50%) translateY(4px);
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
  z-index: 50;
  padding: 6px 9px;
  border-radius: 8px;
  background: rgba(0,0,0,.92);
  color: #fff;
  font-size: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
  transition: opacity .16s ease, transform .16s ease;
}
body.single-product .rivrun-swatch[data-tooltip]:hover::after,
body.single-product .rivrun-swatch[data-tooltip]:focus-visible::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
@keyframes heartbeat-glow {
  0% { box-shadow: 0 0 10px 2px rgba(255,20,20,.55); }
  50% { box-shadow: 0 0 22px 7px rgba(255,20,20,1); }
  100% { box-shadow: 0 0 10px 2px rgba(255,20,20,.55); }
}
body.single-product .rivrun-swatch-heartbeat,
body.single-product .rivrun-field-needs-attention {
  border-radius: 12px;
  animation: heartbeat-glow 1s infinite cubic-bezier(.25,.46,.45,.94);
}
.swal2-popup.rivrun-glass {
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: 18px !important;
  background: rgba(0,0,0,.45) !important;
  box-shadow: 0 0 30px rgba(0,0,0,.7) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.swal2-popup.rivrun-glass .swal2-confirm {
  border-radius: 10px !important;
  background: linear-gradient(90deg,#A2FF00,#00FF9C) !important;
  color: #000 !important;
  font-weight: 700 !important;
}
.swal2-popup.rivrun-glass .swal2-cancel {
  border-radius: 10px !important;
  background: linear-gradient(135deg,#0084FF,#0057d9) !important;
  color: #fff !important;
  font-weight: 700 !important;
}
.rivrun-popup-gif { max-width: 400px; height: 100px; display: block; margin: 0 auto 20px; object-fit: contain; }
@media (max-width: 576px) { .rivrun-popup-gif { width: 100%; height: auto; max-width: 100%; } }

/* Featured/product card design: clean one button only. */
.rivrun-duplicate-product-button { display: none !important; }
.rivrun-products-premium-ui {
  --rr-bg: #050505;
  --rr-text: rgba(255,255,255,.84);
  --rr-muted: rgba(255,255,255,.54);
  --rr-red: #4b0d13;
  --rr-red-2: #7b1822;
  --rr-hover-lift: -66px;
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 18% 0%, rgba(123,24,34,.13), transparent 32%), radial-gradient(circle at 86% 88%, rgba(75,13,19,.20), transparent 36%), #050505;
}
.rivrun-products-premium-ui::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .08;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.38) 1px, transparent 0);
  background-size: 34px 34px;
}
.rivrun-products-premium-ui > * { position: relative; z-index: 2; }
.rivrun-products-logo { margin-bottom: 14px !important; }
.rivrun-products-subtitle { max-width: 640px; margin-inline: auto !important; color: rgba(255,255,255,.66); font-size: clamp(15px,1.4vw,18px); line-height: 1.65; }
.rivrun-products-heading { color: #fff; font-size: clamp(28px,3.4vw,46px); line-height: 1.05; letter-spacing: -.035em; }
.rivrun-products-premium-ui .wc-block-product-template,
.rivrun-products-premium-ui ul.wc-block-product-template,
.rivrun-products-premium-ui .wp-block-woocommerce-product-template { gap: 22px !important; align-items: stretch !important; }
.rivrun-products-premium-ui .wc-block-product,
.rivrun-products-premium-ui .wc-block-product-template > li,
.rivrun-products-premium-ui .wp-block-post.product,
.rivrun-ajax-product-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 0 22px 22px !important;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 22px;
  background: radial-gradient(circle at 78% 18%, rgba(255,255,255,.055), transparent 30%), linear-gradient(145deg,#19191f 0%,#111117 58%,#09090d 100%);
  box-shadow: 0 24px 65px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.06);
  transition: box-shadow .24s ease, border-color .24s ease, transform .24s ease;
}
.rivrun-products-premium-ui .wc-block-product:hover,
.rivrun-products-premium-ui .wc-block-product-template > li:hover,
.rivrun-products-premium-ui .wp-block-post.product:hover { transform: translateY(-3px); border-color: rgba(255,255,255,.18); }
.rivrun-products-premium-ui .wc-block-components-product-image,
.rivrun-products-premium-ui .wp-block-woocommerce-product-image,
.rivrun-ajax-product-card .wp-block-woocommerce-product-image {
  position: relative;
  z-index: 2;
  width: calc(100% + 44px);
  aspect-ratio: 1 / .78;
  margin: 0 -22px 20px !important;
  overflow: hidden;
  border-radius: 22px 22px 0 0;
  background: rgba(255,255,255,.05);
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.rivrun-products-premium-ui .wc-block-components-product-image img,
.rivrun-products-premium-ui .wp-block-woocommerce-product-image img,
.rivrun-ajax-product-card .wp-block-woocommerce-product-image img { width: 100% !important; height: 100%; object-fit: cover !important; display: block; filter: brightness(.92) contrast(1.04); transition: transform .26s ease, filter .26s ease; }
.rivrun-products-premium-ui .wc-block-product:hover img,
.rivrun-products-premium-ui .wp-block-post.product:hover img { transform: scale(1.035); filter: brightness(.96) contrast(1.05); }
.rivrun-products-premium-ui .wp-block-post-title,
.rivrun-products-premium-ui .wc-block-components-product-title,
.rivrun-products-premium-ui .wp-block-post-title a,
.rivrun-ajax-product-card .wp-block-post-title a { color: var(--rr-text) !important; font-size: clamp(17px,1.18vw,22px) !important; font-weight: 780; line-height: 1.18 !important; text-decoration: none !important; }
.rivrun-products-premium-ui .wp-block-post-title a,
.rivrun-ajax-product-card .wp-block-post-title a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rivrun-product-category { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px !important; }
.rivrun-product-category a { display: inline-flex; width: fit-content; padding: 3px 8px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(255,255,255,.055); color: rgba(255,255,255,.56) !important; font-size: 10.5px; font-weight: 650; line-height: 1.2; text-decoration: none !important; }
.rivrun-products-premium-ui .wp-block-woocommerce-product-price,
.rivrun-products-premium-ui .wc-block-components-product-price,
.rivrun-products-premium-ui .woocommerce-Price-amount,
.rivrun-ajax-product-card .price { color: rgba(255,255,255,.78) !important; font-size: clamp(16px,1.05vw,20px); font-weight: 850; line-height: 1.25; }
.rivrun-products-premium-ui del,
.rivrun-products-premium-ui del .woocommerce-Price-amount { color: rgba(255,255,255,.38) !important; font-weight: 500 !important; }
.rivrun-products-premium-ui ins,
.rivrun-products-premium-ui ins .woocommerce-Price-amount { color: rgba(255,255,255,.84) !important; text-decoration: none; font-weight: 850 !important; }
.rivrun-products-premium-ui .wp-block-woocommerce-product-button,
.rivrun-ajax-product-card .wp-block-woocommerce-product-button {
  position: relative;
  z-index: 12;
  margin: 14px auto 0 !important;
  width: min(100%, 340px);
}
.rivrun-products-premium-ui .wp-block-woocommerce-product-button .wp-block-button__link,
.rivrun-products-premium-ui .wc-block-components-product-button__button,
.rivrun-ajax-product-card .wp-block-button__link {
  position: relative !important;
  overflow: hidden !important;
  width: 100% !important;
  padding: 14px 18px !important;
  border-radius: 100px !important;
  border: 1.5px solid rgba(255,255,255,.82) !important;
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 800;
  line-height: 1 !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-shadow: 0 2px 4px rgba(0,0,0,.45);
  box-shadow: 0 4px 15px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.rivrun-products-more-wrap { margin-top: 32px !important; }
.rivrun-products-view-more .wp-block-button__link { min-width: 150px; border: 1px solid rgba(255,255,255,.16) !important; border-radius: 999px !important; background: rgba(255,255,255,.08) !important; color: #fff !important; font-weight: 750; }
@media (min-width: 982px) { .rivrun-products-premium-ui .wc-block-product-template, .rivrun-products-premium-ui ul.wc-block-product-template, .rivrun-products-premium-ui .wp-block-woocommerce-product-template { grid-template-columns: repeat(4,minmax(0,1fr)) !important; } }
@media (max-width: 640px) {
  .rivrun-products-premium-ui { --rr-hover-lift: 0; padding-left: 12px !important; padding-right: 12px !important; }
  .rivrun-products-premium-ui .wc-block-product-template,
  .rivrun-products-premium-ui ul.wc-block-product-template,
  .rivrun-products-premium-ui .wp-block-woocommerce-product-template { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 12px !important; }
  .rivrun-products-premium-ui .wc-block-product,
  .rivrun-products-premium-ui .wc-block-product-template > li,
  .rivrun-products-premium-ui .wp-block-post.product,
  .rivrun-ajax-product-card { padding: 0 10px 10px !important; border-radius: 16px; }
  .rivrun-products-premium-ui .wc-block-components-product-image,
  .rivrun-products-premium-ui .wp-block-woocommerce-product-image,
  .rivrun-ajax-product-card .wp-block-woocommerce-product-image { width: calc(100% + 20px); aspect-ratio: 1 / .82; margin: 0 -10px 10px !important; border-radius: 16px 16px 0 0; }
  .rivrun-products-premium-ui .wp-block-post-title,
  .rivrun-products-premium-ui .wp-block-post-title a,
  .rivrun-ajax-product-card .wp-block-post-title a { font-size: 14.5px !important; line-height: 1.16 !important; }
  .rivrun-product-category a { padding: 2px 6px; font-size: 9.5px; }
  .rivrun-products-premium-ui .wp-block-woocommerce-product-price,
  .rivrun-products-premium-ui .wc-block-components-product-price,
  .rivrun-products-premium-ui .woocommerce-Price-amount,
  .rivrun-ajax-product-card .price { font-size: 12.5px !important; }
  .rivrun-products-premium-ui .wp-block-woocommerce-product-button,
  .rivrun-ajax-product-card .wp-block-woocommerce-product-button { width: 86%; margin-top: 9px !important; }
  .rivrun-products-premium-ui .wp-block-woocommerce-product-button .wp-block-button__link,
  .rivrun-products-premium-ui .wc-block-components-product-button__button,
  .rivrun-ajax-product-card .wp-block-button__link { padding: 9px 10px !important; font-size: 11px !important; }
}

/* Related products horizontal carousel. */
.rivrun-related-carousel-ready { overflow: hidden; }
.rivrun-related-carousel-ready .rivrun-related-carousel-track,
.rivrun-related-carousel-ready ul.wc-block-product-template,
.rivrun-related-carousel-ready .wp-block-woocommerce-product-template {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 18px !important;
  overflow-x: auto !important;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.rivrun-related-carousel-ready .rivrun-related-carousel-track::-webkit-scrollbar,
.rivrun-related-carousel-ready ul.wc-block-product-template::-webkit-scrollbar,
.rivrun-related-carousel-ready .wp-block-woocommerce-product-template::-webkit-scrollbar { display: none; }
.rivrun-related-carousel-ready .rivrun-related-carousel-track > *,
.rivrun-related-carousel-ready ul.wc-block-product-template > *,
.rivrun-related-carousel-ready .wp-block-woocommerce-product-template > * { flex: 0 0 calc((100% - 72px) / 5) !important; scroll-snap-align: start; }
@media (max-width: 900px) { .rivrun-related-carousel-ready .rivrun-related-carousel-track > *, .rivrun-related-carousel-ready ul.wc-block-product-template > *, .rivrun-related-carousel-ready .wp-block-woocommerce-product-template > * { flex-basis: calc((100% - 18px) / 2) !important; } }

/* Checkout reserve timer hard responsive repair. */
html body.woocommerce-checkout .rivrun-checkout-reserve-timer,
html body.woocommerce-checkout [class*="rivrun-checkout"][class*="timer"] {
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
html body.woocommerce-checkout .rivrun-checkout-reserve-timer *,
html body.woocommerce-checkout [class*="rivrun-checkout"][class*="timer"] * {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}
@media (max-width: 640px) {
  html body.woocommerce-checkout .rivrun-checkout-reserve-timer,
  html body.woocommerce-checkout [class*="rivrun-checkout"][class*="timer"] {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  html body.woocommerce-checkout .rivrun-checkout-reserve-timer .rivrun-timer-title,
  html body.woocommerce-checkout .rivrun-checkout-reserve-timer .rivrun-timer-subtitle {
    font-size: clamp(12px,3.2vw,15px) !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
  }
  html body.woocommerce-checkout .rivrun-checkout-reserve-timer .rivrun-timer-count,
  html body.woocommerce-checkout [class*="timer"] [class*="count"] {
    font-size: clamp(17px,5vw,24px) !important;
    white-space: nowrap !important;
  }
}

/* WooCommerce Product Gallery / PhotoSwipe polish */
body.single-product .wc-block-product-gallery,
body.single-product .woocommerce-product-gallery {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  background: #050505;
}
body.single-product .wc-block-product-gallery img,
body.single-product .woocommerce-product-gallery img {
  border-radius: 18px;
}
body.single-product .wp-block-woocommerce-product-gallery-large-image-next-previous,
body.single-product .wc-block-product-gallery .wc-block-product-gallery-large-image__next-previous {
  pointer-events: none;
}
body.single-product .wp-block-woocommerce-product-gallery-large-image-next-previous a,
body.single-product .wp-block-woocommerce-product-gallery-large-image-next-previous button,
body.single-product .wc-block-product-gallery button[class*="next"],
body.single-product .wc-block-product-gallery button[class*="previous"] {
  pointer-events: auto;
  width: 42px !important;
  height: 42px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(0,0,0,.48) !important;
  color: #fff !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.pswp,
.pswp__bg { background: rgba(0,0,0,.94) !important; }
.pswp__img { border-radius: 18px; box-shadow: 0 28px 80px rgba(0,0,0,.58); }
.pswp__top-bar { background: linear-gradient(180deg, rgba(0,0,0,.68), transparent) !important; }
.pswp__button { border-radius: 999px !important; margin: 10px !important; background-color: rgba(255,255,255,.08) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.pswp__button:hover { background-color: rgba(255,255,255,.18) !important; }
.pswp__button--arrow--left,
.pswp__button--arrow--right { width: 48px !important; height: 48px !important; background: rgba(0,0,0,.45) !important; border: 1px solid rgba(255,255,255,.18) !important; border-radius: 999px !important; }
@media (max-width: 640px) {
  body.single-product .wc-block-product-gallery,
  body.single-product .woocommerce-product-gallery { border-radius: 16px; }
  .pswp__img { border-radius: 10px; }
  .pswp__button--arrow--left,
  .pswp__button--arrow--right { width: 40px !important; height: 40px !important; }
}
