/* ================================================================
 *  single-product.css — Product page
 *  Path: kadence-child/assets/single-product.css  (REPLACE old file)
 *  Design: 04-ragnarok-product-page.html / 05-fully-upgraded-product-page.html
 *  All classes are prefixed "lvx-" so the theme can't clash.
 * ================================================================ */

/* ---------- Page background + remove Kadence boxes ---------- */
html { scroll-behavior: smooth; }
body.single-product {
  background: #f4f2ef !important;
  color: #121417;
  overflow-x: clip;
}
body.single-product #wrapper,
body.single-product #inner-wrap,
body.single-product .site,
body.single-product .site-main,
body.single-product .content-bg,
body.single-product .content-area,
body.single-product .entry-content-wrap {
  background: transparent !important;
  box-shadow: none !important;
}
body.single-product .content-area {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.single-product .kadence-breadcrumbs,
body.single-product .product-title.product-above,
body.single-product .entry-hero,
body.single-product .woocommerce-breadcrumb,
body.single-product .rank-math-breadcrumb,
body.single-product .yoast-breadcrumbs {
  display: none !important;
}

/* ---------- Scope + full-bleed layout ---------- */
.lvx-product {
  --lvx-bg: #f4f2ef;
  --lvx-card: #ffffff;
  --lvx-line: #e6e2dc;
  --lvx-text: #121417;
  --lvx-muted: #666d76;
  --lvx-gold: #d6a84f;
  --lvx-green: #12d768;
  --lvx-shadow: 0 16px 44px rgba(0,0,0,.08);

  width: 100vw;
  margin-left: calc(50% - 50vw);
  font-family: Inter, Arial, sans-serif;
  background: var(--lvx-bg);
  color: var(--lvx-text);
  line-height: normal;
  font-size: 16px;
}
.lvx-product *,
.lvx-product *:before,
.lvx-product *:after { box-sizing: border-box; }
.lvx-product img { display: block; max-width: 100%; }
.lvx-product a { text-decoration: none; color: inherit; }
.lvx-product button,
.lvx-product input { font: inherit; }
.lvx-product h1,
.lvx-product h2,
.lvx-product h3 {
  font-family: Inter, Arial, sans-serif;
  font-weight: 700;
  color: var(--lvx-text);
  text-transform: none;
  padding: 0;
}
.lvx-product p { font-size: inherit; }
.lvx-product #reviews,
.lvx-product #specs,
.lvx-product #description { scroll-margin-top: 90px; }

.lvx-wrap { width: min(1240px, calc(100% - 34px)); margin: auto; }

/* ---------- Breadcrumb ---------- */
.lvx-crumbs { padding: 22px 0 10px; font-size: 14px; color: #555d66; }
.lvx-product .lvx-crumbs a { text-decoration: underline; color: #555d66; }

/* ---------- Hero grid ---------- */
.lvx-product-shell { padding: 10px 0 56px; }
.lvx-product-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 54px;
  align-items: start;
}

/* Gallery */
.lvx-gallery-main {
  position: relative;
  background: #fff;
  border: 1px solid var(--lvx-line);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--lvx-shadow);
  aspect-ratio: 1.1/1;
}
.lvx-product .lvx-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .35s;
  border-radius: 0;
  margin: 0;
}
.lvx-sale-badge {
  position: absolute; top: 18px; left: 18px;
  background: #0e1116; color: #fff; border-radius: 10px;
  padding: 12px 16px; font-weight: 800; font-size: 14px; z-index: 2;
}
.lvx-product .lvx-zoom-badge {
  position: absolute; top: 18px; right: 18px;
  width: 54px; height: 54px; border-radius: 50%;
  background: #fff; display: grid; place-items: center;
  font-size: 26px; color: #121417;
  box-shadow: 0 12px 30px rgba(0,0,0,.12); z-index: 2;
}
.lvx-thumbs { display: flex; gap: 12px; margin-top: 14px; padding-left: 14px; flex-wrap: wrap; }
.lvx-product .lvx-thumb {
  width: 76px; height: 76px; border-radius: 10px; overflow: hidden;
  border: 2px solid transparent; background: #fff; cursor: pointer; opacity: .7;
  padding: 0; margin: 0; box-shadow: none; min-height: 0;
}
.lvx-product .lvx-thumb:hover,
.lvx-product .lvx-thumb:focus { background: #fff; box-shadow: none; }
.lvx-product .lvx-thumb.active { border-color: #1d222a; opacity: 1; }
.lvx-product .lvx-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Info */
.lvx-product .lvx-info h1 {
  font-size: 56px; line-height: 1.02; margin: 10px 0 10px; letter-spacing: -.03em;
}
.lvx-meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 15px; }
.lvx-stars { color: #f7c843; letter-spacing: 1px; font-size: 18px; }
.lvx-product .lvx-reviews-link { text-decoration: underline; color: var(--lvx-text); }

.lvx-price { display: flex; align-items: center; gap: 10px; margin: 26px 0 24px; flex-wrap: wrap; }
.lvx-price .lvx-old { font-size: 24px; color: #90959b; text-decoration: line-through; }
.lvx-price .lvx-new { font-size: 44px; font-weight: 900; color: var(--lvx-text); }
.lvx-product .lvx-price .woocommerce-Price-amount,
.lvx-product .lvx-price .woocommerce-Price-currencySymbol,
.lvx-product .lvx-price bdi {
  color: inherit !important;
  font: inherit !important;
  background: none !important;
}
.lvx-product .lvx-price del,
.lvx-product .lvx-price ins { text-decoration: none; background: none; }

.lvx-intro { font-size: 18px; line-height: 1.6; margin-bottom: 14px; }

.lvx-product .lvx-bullet-box { padding: 0; margin: 0 0 26px 0; list-style: none; }
.lvx-product .lvx-bullet-box li {
  position: relative; padding-left: 22px; margin: 0 0 12px 0;
  font-size: 18px; line-height: 1.55; list-style: none; color: var(--lvx-text);
}
.lvx-product .lvx-bullet-box li:before {
  content: "•"; position: absolute; left: 0; top: 0;
  color: #171a1f; font-size: 26px; line-height: 1;
}

/* ---------- Add to cart ---------- */
.lvx-product form.lvx-cart-form { margin: 0; padding: 0; display: block; }
.lvx-cart-row { display: flex; gap: 14px; align-items: stretch; margin-top: 18px; }

.lvx-qty {
  display: flex; align-items: center; justify-content: space-between;
  width: 150px; min-height: 58px; flex: 0 0 150px;
  background: #fff; border: 1px solid #d8dce1; border-radius: 10px; overflow: hidden;
}
.lvx-product .lvx-qty .lvx-qty-btn {
  border: 0 !important; background: #fff !important; color: #121417 !important;
  width: 42px; height: 100%; min-height: 56px; font-size: 28px; line-height: 1;
  cursor: pointer; padding: 0 !important; margin: 0; box-shadow: none !important; border-radius: 0 !important;
}
.lvx-product .lvx-qty .quantity { margin: 0 !important; padding: 0 !important; display: flex; flex: 1; justify-content: center; }
.lvx-product .lvx-qty .quantity .minus,
.lvx-product .lvx-qty .quantity .plus,
.lvx-product .lvx-qty .quantity button { display: none !important; }
html body .lvx-product .lvx-qty input.qty {
  width: 56px !important; height: auto !important; min-height: 0 !important;
  border: 0 !important; background: transparent !important; box-shadow: none !important; outline: none !important;
  padding: 0 !important; margin: 0 !important; text-align: center !important;
  font-weight: 700 !important; font-size: 26px !important; color: #121417 !important;
  -webkit-text-fill-color: #121417 !important;
  -moz-appearance: textfield !important; appearance: textfield !important;
}
.lvx-product .lvx-qty input.qty::-webkit-outer-spin-button,
.lvx-product .lvx-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

html body .lvx-product .lvx-add-btn {
  border: 0 !important; background: #080b10 !important; color: #fff !important;
  border-radius: 10px !important; padding: 0 24px !important;
  font-weight: 800 !important; font-size: 18px !important; letter-spacing: normal !important;
  text-transform: uppercase !important; cursor: pointer; min-width: 190px; min-height: 58px;
  box-shadow: none !important; margin: 0 !important; width: auto !important; flex: 0 0 auto;
  display: inline-flex !important; align-items: center; justify-content: center;
  font-family: Inter, Arial, sans-serif !important; transition: opacity .2s ease;
}
html body .lvx-product .lvx-add-btn:hover,
html body .lvx-product .lvx-add-btn:focus { background: #080b10 !important; color: #fff !important; opacity: .88; }
html body .lvx-product .lvx-add-btn::before,
html body .lvx-product .lvx-add-btn::after { content: none !important; display: none !important; }
html body .lvx-product .lvx-add-btn.is-loading { opacity: .6; pointer-events: none; }

/* Stripe express buttons (Apple Pay / Google Pay / Link) */
.lvx-pay-zone { margin: 18px 0 12px; }
.lvx-pay-zone:empty { display: none; }
.lvx-product #wc-stripe-payment-request-wrapper,
.lvx-product #wc-stripe-express-checkout-element,
.lvx-product [id^="wc-stripe-express-checkout"],
.lvx-product .wcpay-express-checkout-wrapper {
  width: 100% !important; margin: 0 !important; padding: 0 !important; clear: both;
}
.lvx-product #wc-stripe-payment-request-button-separator,
.lvx-product #wc-stripe-express-checkout-button-separator,
.lvx-product .wc-stripe-payment-request-button-separator { display: none !important; }

/* Variable / out-of-stock products use WooCommerce's own form */
.lvx-native-cart { margin-top: 18px; }
.lvx-native-cart .single_add_to_cart_button {
  background: #080b10 !important; color: #fff !important; border-radius: 10px !important;
  min-height: 58px; padding: 0 24px !important; font-weight: 800 !important; border: 0 !important;
}
.lvx-native-cart .stock { color: var(--lvx-muted); }

/* Trust cards */
.lvx-mini-trust {
  margin-top: 24px; padding: 18px 0 0; border-top: 1px solid var(--lvx-line);
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
}
.lvx-trust-card { background: #fff; border: 1px solid var(--lvx-line); border-radius: 16px; padding: 16px; }
.lvx-trust-card b { display: block; font-size: 14px; color: var(--lvx-text); }
.lvx-trust-card span { display: block; font-size: 13px; color: var(--lvx-muted); margin-top: 6px; line-height: 1.5; }

/* Anchor tabs */
.lvx-anchor-tabs { display: flex; gap: 18px; align-items: center; margin: 30px 0 0; padding-top: 12px; flex-wrap: wrap; }
.lvx-product .lvx-anchor-tabs a {
  font-weight: 700; color: #222; padding-bottom: 4px; border-bottom: 2px solid transparent;
}
.lvx-product .lvx-anchor-tabs a:hover,
.lvx-product .lvx-anchor-tabs a.active { border-bottom-color: #111; }

/* ---------- Common section ---------- */
.lvx-section { padding: 70px 0; }
.lvx-product .lvx-section h2,
.lvx-product .lvx-reviews-zone h2 { font-size: 38px; line-height: 1.05; margin: 8px 0 12px; }
.lvx-eyebrow { font-size: 12px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; color: #a67b31; }
.lvx-product .lvx-muted { color: var(--lvx-muted); line-height: 1.75; margin: 0 0 16px; }

/* ---------- Reviews ---------- */
.lvx-reviews-zone {
  background: #f4f2ef; color: #121417; padding: 76px 0;
  border-top: 1px solid #e6e2dc; border-bottom: 1px solid #e6e2dc;
}
.lvx-reviews-top { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.lvx-reviews-top p { color: #666d76; max-width: 700px; line-height: 1.6; margin: 0; }
.lvx-review-controls { display: flex; gap: 10px; }
.lvx-product .lvx-review-controls button {
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid #d8dce1 !important;
  background: #fff !important; color: #121417 !important; font-size: 20px; cursor: pointer;
  padding: 0 !important; box-shadow: none !important; display: grid; place-items: center; min-height: 0;
}
.lvx-reviews-scroll {
  display: flex; gap: 22px; overflow: auto; scroll-behavior: smooth;
  padding: 10px 4px 30px; scrollbar-width: none;
}
.lvx-reviews-scroll::-webkit-scrollbar { display: none; }
.lvx-review-card {
  min-width: 430px; max-width: 430px; flex: 0 0 auto; background: #fff;
  border: 1px solid #e1e3e6; border-radius: 30px; padding: 34px 32px;
  box-shadow: 0 10px 40px rgba(0,0,0,.2);
}
.lvx-review-head { display: flex; gap: 18px; align-items: flex-start; }
.lvx-avatar {
  width: 64px; height: 64px; flex: 0 0 64px; border-radius: 50%; background: #121417;
  border: 1px solid #121417; display: grid; place-items: center;
  color: #fff; font-size: 34px; font-family: Georgia, serif;
}
.lvx-review-name-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.lvx-review-name { font-size: 22px; font-weight: 700; }
.lvx-review-stars { color: #f4c44f; font-size: 14px; letter-spacing: 1px; margin-top: 6px; }
.lvx-review-text { margin: 34px 0 38px; color: #444a51; font-size: 17px; line-height: 1.8; min-height: 150px; }
.lvx-review-foot {
  border-top: 1px solid #e6e2dc; padding-top: 26px;
  display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap;
}
.lvx-product .lvx-helpful {
  border: 1px solid #d8dce1 !important; color: #555b63 !important; background: #fff !important;
  padding: 10px 16px !important; border-radius: 999px !important; font-weight: 600; font-size: 16px;
  cursor: pointer; box-shadow: none !important; min-height: 0; line-height: 1.3;
}
.lvx-product .lvx-helpful.is-voted { border-color: #121417 !important; color: #121417 !important; cursor: default; }
.lvx-review-product { color: #7d838a; }

/* ---------- Specs ---------- */
.lvx-specs-wrap { background: #fff; border: 1px solid var(--lvx-line); border-radius: 24px; overflow: hidden; box-shadow: var(--lvx-shadow); }
.lvx-specs-head { padding: 30px 30px 14px; }
.lvx-specs-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--lvx-line); }
.lvx-spec-card { padding: 24px 24px 26px; border-right: 1px solid var(--lvx-line); }
.lvx-spec-card:last-child { border-right: none; }
.lvx-spec-card .lvx-label { font-size: 12px; font-weight: 800; letter-spacing: .16em; color: #8b6a2b; text-transform: uppercase; }
.lvx-spec-card .lvx-value { margin-top: 10px; font-size: 22px; font-weight: 800; }
.lvx-product .lvx-spec-card p { margin: 8px 0 0; color: var(--lvx-muted); font-size: 14px; line-height: 1.6; }

/* Accordion */
.lvx-accordion {
  margin-top: 18px; background: #fff; border: 1px solid var(--lvx-line); border-radius: 20px;
  overflow: hidden; box-shadow: var(--lvx-shadow);
}
.lvx-accordion details { border-top: 1px solid var(--lvx-line); margin: 0; }
.lvx-accordion details:first-child { border-top: 0; }
.lvx-accordion summary {
  list-style: none; cursor: pointer; padding: 22px 24px; font-size: 20px; font-weight: 800;
  display: flex; justify-content: space-between; align-items: center; color: var(--lvx-text);
}
.lvx-accordion summary::-webkit-details-marker { display: none; }
.lvx-accordion summary::marker { content: ''; }
.lvx-detail-body { padding: 0 24px 22px; color: var(--lvx-muted); line-height: 1.8; }
.lvx-product .lvx-detail-body ul { margin: 0; padding-left: 20px; list-style: disc; }
.lvx-product .lvx-detail-body li { list-style: disc; color: var(--lvx-muted); }

/* ---------- Description ---------- */
.lvx-desc-card { background: #fff; border: 1px solid var(--lvx-line); border-radius: 24px; box-shadow: var(--lvx-shadow); padding: 34px; }
.lvx-desc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.lvx-desc-block { background: #faf8f5; border: 1px solid #ece6dc; border-radius: 18px; padding: 24px; }
.lvx-product .lvx-desc-block h3 { margin: 0 0 10px; font-size: 28px; line-height: 1.2; }
.lvx-product .lvx-desc-block p { margin: 0; color: var(--lvx-muted); line-height: 1.8; }
.lvx-full-desc { margin-top: 24px; background: #faf8f5; border: 1px solid #ece6dc; border-radius: 18px; padding: 28px; }
.lvx-full-desc--first { margin-top: 0; }
.lvx-product .lvx-full-desc h3 { margin: 0 0 10px; font-size: 28px; line-height: 1.2; }
.lvx-product .lvx-full-desc p { color: var(--lvx-muted); line-height: 1.9; margin: 0 0 18px; }
.lvx-product .lvx-full-desc ul { color: #666d76; line-height: 1.9; padding-left: 20px; margin: 0 0 18px; }
.lvx-product .lvx-full-desc li { list-style: disc; }
.lvx-product .lvx-full-desc a { text-decoration: underline; }

/* ---------- Toast ---------- */
.lvx-toast {
  position: fixed; right: 20px; bottom: 20px; background: #111; color: #fff; padding: 14px 16px;
  border-radius: 10px; opacity: 0; transform: translateY(10px); transition: .2s;
  pointer-events: none; z-index: 99999; font-family: Inter, Arial, sans-serif;
}
.lvx-toast.show { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .lvx-product-grid, .lvx-desc-grid { grid-template-columns: 1fr; }
  .lvx-product .lvx-info h1 { font-size: 46px; }
  .lvx-specs-grid { grid-template-columns: 1fr 1fr; }
  .lvx-review-card { min-width: 360px; max-width: 360px; }
}
@media (max-width: 700px) {
  .lvx-wrap { width: min(100% - 22px, 1240px); }
  .lvx-product .lvx-info h1 { font-size: 38px; }
  .lvx-price .lvx-new { font-size: 34px; }
  .lvx-product .lvx-bullet-box li { font-size: 17px; }
  .lvx-cart-row { flex-direction: column; }
  .lvx-qty { width: 100%; flex: 0 0 auto; }
  html body .lvx-product .lvx-add-btn { min-height: 58px; width: 100% !important; }
  .lvx-mini-trust, .lvx-specs-grid { grid-template-columns: 1fr; }
  .lvx-spec-card { border-right: none; border-bottom: 1px solid var(--lvx-line); }
  .lvx-spec-card:last-child { border-bottom: none; }
  .lvx-review-card { min-width: 90%; max-width: 90%; }
  .lvx-reviews-top { flex-direction: column; align-items: flex-start; }
  .lvx-section, .lvx-reviews-zone { padding: 58px 0; }
  .lvx-accordion summary { font-size: 18px; }
  .lvx-desc-card { padding: 22px; }
}

/* =================================================================
 *  Kept from your old product page (site-wide header/footer fixes)
 * ================================================================= */
.site-footer, footer.site-footer, #colophon, #footer {
  background-color: #ffffff !important;
}
.site-footer, .site-footer *,
#colophon, #colophon * { color: #111315 !important; }
.site-footer a:hover, #colophon a:hover { color: #C0883C !important; }

html body #mobile-drawer a, html body #mobile-drawer span,
html body .mobile-navigation a, html body .mobile-navigation span,
html body .drawer-nav-drop-wrap, html body .drawer-nav-drop-wrap * {
  color: #F1E9DA !important;
}