/* ============================================================
   Shilpakala — Premium WooCommerce product UI + animations
   Loaded site-wide by prajah-woo-menu.php
   ============================================================ */

/* ---------- Premium product cards ---------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  border: 1px solid var(--pv-border);
  border-radius: var(--pv-radius);
  background: #fff;
  box-shadow: var(--pv-shadow-sm);
  transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-7px);
  box-shadow: var(--pv-shadow-lg);
  border-color: var(--pv-gold-soft);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; overflow: hidden; }
.woocommerce ul.products li.product a img {
  margin: 0 !important;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 0;
  transition: transform .7s cubic-bezier(.2,.6,.2,1);
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.08); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding: 14px 16px 2px;
  font-family: var(--pv-h-font);
  color: var(--pv-dark);
  font-size: 16px;
}
.woocommerce ul.products li.product .price { display: block; padding: 2px 16px; color: var(--pv-accent-dark); font-weight: 700; }
.woocommerce ul.products li.product .star-rating { margin: 4px 16px; color: var(--pv-gold); }

/* Add-to-cart reveals on hover (desktop) */
.woocommerce ul.products li.product .button {
  margin: 12px 16px 18px !important;
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .35s ease, transform .35s ease, filter .2s;
}
.woocommerce ul.products li.product:hover .button { opacity: 1; transform: none; }
.woocommerce ul.products li.product .button.loading,
.woocommerce ul.products li.product .button.added { opacity: 1; transform: none; }
.woocommerce ul.products li.product .button:hover { filter: brightness(.95); transform: translateY(-1px); }
@media (max-width: 768px) { .woocommerce ul.products li.product .button { opacity: 1; transform: none; } }

/* Sale ribbon */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
  position: absolute; top: 12px; left: 12px; margin: 0;
  min-height: auto; min-width: auto; line-height: 1;
  padding: 6px 13px; border-radius: 40px;
  background: var(--pv-gold-grad) !important; color: #fff;
  font-size: 12px; font-weight: 600; letter-spacing: .02em; z-index: 3;
}

/* ---------- Wishlist heart (injected by JS) ---------- */
.pv-wish {
  position: absolute; top: 12px; right: 12px; z-index: 4;
  width: 38px; height: 38px; border-radius: 50%; border: 0;
  background: #fff; box-shadow: var(--pv-shadow-sm); color: var(--pv-primary);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  opacity: 0; transform: translateY(-6px);
  transition: transform .25s ease, background .25s, color .25s, opacity .3s;
}
.woocommerce ul.products li.product:hover .pv-wish { opacity: 1; transform: none; }
.pv-wish:hover, .pv-wish.active { background: var(--pv-primary); color: #fff; }
.pv-wish.pop { animation: pvpop .42s ease; }
@keyframes pvpop { 0%{transform:scale(1)} 40%{transform:scale(1.35)} 70%{transform:scale(.9)} 100%{transform:scale(1)} }
@media (max-width: 768px) { .pv-wish { opacity: 1; transform: none; } }

/* ---------- Cart icon bump ---------- */
.pv-bump { animation: pvbump .55s ease; display: inline-block; }
@keyframes pvbump { 0%,100%{transform:scale(1)} 30%{transform:scale(1.45)} 60%{transform:scale(.85)} }

/* ---------- Flying image to cart ---------- */
.pv-fly {
  position: fixed; z-index: 9998; border-radius: 10px; object-fit: cover;
  pointer-events: none; opacity: .95;
  transition: left .9s cubic-bezier(.2,.6,.3,1), top .9s cubic-bezier(.4,.1,.3,1), width .9s, height .9s, opacity .9s;
}

/* ---------- Toasts ---------- */
.pv-toast-wrap { position: fixed; right: 20px; bottom: 20px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; }
.pv-toast {
  background: var(--pv-dark); color: #fff; padding: 12px 18px;
  border-radius: var(--pv-radius); box-shadow: var(--pv-shadow-lg);
  font-size: 14px; display: flex; align-items: center; gap: 10px;
  border-left: 3px solid var(--pv-gold);
  transform: translateY(20px); opacity: 0; transition: transform .35s ease, opacity .35s ease;
}
.pv-toast.show { transform: none; opacity: 1; }
.pv-toast i { color: var(--pv-gold); }

/* ---------- Single product gallery polish ---------- */
.woocommerce div.product div.images img { border-radius: var(--pv-radius); }
.woocommerce div.product form.cart .button.single_add_to_cart_button { transition: transform .2s, filter .2s; }
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover { transform: translateY(-2px); filter: brightness(.96); }

/* ---------- Homepage category cards hover ---------- */
.cat-card { transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.cat-card:hover { transform: translateY(-6px); box-shadow: var(--pv-shadow-lg); border-color: var(--pv-gold-soft); }
.cat-card .ic { transition: transform .45s ease, color .3s; }
.cat-card:hover .ic { transform: scale(1.18) rotate(-5deg); color: var(--pv-gold); }
.cat-chip .circle { transition: transform .35s ease, box-shadow .35s; }
.cat-chip:hover .circle { transform: translateY(-4px) scale(1.06); box-shadow: var(--pv-shadow); }

/* ---------- Quick View ---------- */
.pv-qv-btn {
  position: absolute; left: 50%; top: 40%; transform: translate(-50%,-50%) scale(.9); z-index: 4;
  background: #fff; color: var(--pv-primary); border: 0; border-radius: 40px;
  padding: 9px 18px; font-weight: 600; font-size: 13px; cursor: pointer;
  box-shadow: var(--pv-shadow); opacity: 0; transition: opacity .3s, transform .3s, background .25s, color .25s;
}
.woocommerce ul.products li.product:hover .pv-qv-btn { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.pv-qv-btn:hover { background: var(--pv-primary); color: #fff; }
.pv-qv-overlay { position: fixed; inset: 0; background: rgba(40,15,25,.55); z-index: 10000; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .3s; padding: 20px; }
.pv-qv-overlay.show { opacity: 1; }
.pv-qv-dialog { background: #fff; border-radius: var(--pv-radius-lg); max-width: 760px; width: 100%; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; transform: translateY(16px); transition: transform .3s; box-shadow: var(--pv-shadow-lg); }
.pv-qv-overlay.show .pv-qv-dialog { transform: none; }
.pv-qv-dialog img { width: 100%; height: 100%; object-fit: cover; }
.pv-qv-body { padding: 28px; position: relative; }
.pv-qv-close { position: absolute; top: 12px; right: 14px; border: 0; background: transparent; font-size: 24px; line-height: 1; cursor: pointer; color: var(--pv-muted); }
@media (max-width: 640px) { .pv-qv-dialog { grid-template-columns: 1fr; } .pv-qv-dialog img { height: 220px; } }

/* Rich .product-card thumb image (homepage [pv_products]) fills the frame */
.product-card .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; position: relative; z-index: 1; }

/* Keyword-injected images (images.js) must FILL their panel — override theme's img{height:auto} */
.ph-img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.showcase-visual, .about-img { aspect-ratio: 4 / 3; }

/* Homepage shortcode sections contain themselves via .container-pv (1480px). Boxed sections too. */
.elementor-section.elementor-section-boxed > .elementor-container { max-width: 1480px; }
/* make sure .container-pv keeps its real width even inside Elementor full-width sections */
.elementor-widget-shortcode .container-pv { max-width: 1480px; margin-left: auto; margin-right: auto; padding-left: 28px; padding-right: 28px; }

/* Newsletter (CF7) form inline inside the gold band */
.newsletter-band .wpcf7-form p { display: flex; gap: 10px; align-items: center; margin: 0; flex-wrap: wrap; }
.newsletter-band .wpcf7-form input.wpcf7-email,
.newsletter-band input[type="email"] { flex: 1; min-width: 230px; height: 52px; border-radius: 40px; border: 0; padding: 0 20px; font-size: 15px; }
.newsletter-band .wpcf7-form input.wpcf7-submit,
.newsletter-band button { height: 52px; border-radius: 40px; border: 0; padding: 0 30px; background: var(--pv-primary); color: #fff; font-weight: 600; white-space: nowrap; cursor: pointer; transition: background .2s; }
.newsletter-band .wpcf7-form input.wpcf7-submit:hover,
.newsletter-band button:hover { background: var(--pv-primary-dark); }
.newsletter-band .wpcf7-spinner { display: none; }
.newsletter-band .wpcf7 { margin: 0; }

/* Safety: product cards must always be visible (never trapped at opacity 0 by AOS) */
.woocommerce ul.products li.product { opacity: 1; }
.woocommerce ul.products li.product[data-aos] { opacity: 1 !important; transform: none !important; }

/* Loop items that use the brass .product-card: strip the default WooCommerce li frame */
.woocommerce ul.products li.product.pv-loop-card,
.woocommerce-page ul.products li.product.pv-loop-card { background: transparent; border: 0; box-shadow: none; padding: 0 !important; overflow: visible; }
.woocommerce ul.products li.product.pv-loop-card:hover { transform: none; box-shadow: none; border-color: transparent; }
.woocommerce ul.products li.product.pv-loop-card .pv-wish, .woocommerce ul.products li.product.pv-loop-card .pv-qv-btn { display: none; } /* card has its own controls */

/* ============================================================
   Single Product page — match product-details design
   ============================================================ */
/* Break the product content out of the theme's narrow column and centre it at the
   homepage container width (same as shop/account). */
.single-product .woocommerce { width: auto !important; max-width: none !important; margin: 0 !important; transform: none !important; }
.single-product .entry-content, .single-product .site-content, .single-product main, .single-product .page-content, .single-product .woocommerce { overflow: visible !important; }
.single-product div.product { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 40px; align-items: start; width: min(1480px, 94vw) !important; max-width: none !important; margin: 24px 0 !important; margin-left: 50% !important; transform: translateX(-50%) !important; box-sizing: border-box; }
/* Gallery in row 1 only. NOT sticky — a sticky gallery's containing block is the
   whole product grid (which includes the full-width tabs + related rows below), so
   on scroll it stayed pinned and overlapped that content. Static layout fixes it. */
.single-product div.product .pv-pgallery, .single-product div.product .woocommerce-product-gallery { width: 100% !important; float: none; margin: 0; grid-row: 1; grid-column: 1; position: static !important; overflow: hidden; }
.single-product div.product .summary.entry-summary { grid-row: 1; grid-column: 2; }
.single-product div.product .summary.entry-summary { width: 100% !important; max-width: none !important; float: none; margin: 0; }
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells { grid-column: 1 / -1; width: 100%; }
@media (max-width: 900px) { .single-product div.product { grid-template-columns: 1fr; } }
@media (max-width: 900px) {
  .single-product div.product { gap: 24px; }
  .single-product div.product .woocommerce-product-gallery,
  .single-product div.product .summary.entry-summary { width: 100%; position: static; }
}
/* gallery thumbnails */
.single-product .flex-control-thumbs li img { border-radius: var(--pv-radius-sm); border: 2px solid transparent; transition: border-color .2s; }
.single-product .flex-control-thumbs li img.flex-active,
.single-product .flex-control-thumbs li img:hover { border-color: var(--pv-gold); }

/* ---- Vertical thumbnail strip beside the main image (big image left, thumbs right) ---- */
/* Absolute-position the thumbnail strip on the RIGHT; main image fills the space left of it.
   This is robust against flexslider's inline widths (flex layout gets overridden by them). */
.single-product div.product .woocommerce-product-gallery {
  position: relative !important;
  padding-right: 104px !important;
  overflow: visible !important;
}
.single-product div.product .woocommerce-product-gallery .flex-viewport,
.single-product div.product .woocommerce-product-gallery__wrapper {
  width: 100% !important;
  margin: 0 !important;
}
.single-product div.product .flex-control-thumbs,
.single-product div.product ol.flex-control-thumbs {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 90px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}
.single-product div.product .flex-control-thumbs li {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  display: block !important;
}
.single-product div.product .flex-control-thumbs li img { width: 100% !important; height: auto !important; display: block !important; cursor: pointer; }
.single-product div.product .woocommerce-product-gallery__trigger { right: 106px; }
/* Mobile: put the strip back under the main image. */
@media (max-width: 700px) {
  .single-product div.product .woocommerce-product-gallery { padding-right: 0 !important; }
  .single-product div.product .flex-control-thumbs,
  .single-product div.product ol.flex-control-thumbs {
    position: static !important;
    width: 100% !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    margin-top: 10px !important;
  }
  .single-product div.product .flex-control-thumbs li { width: 72px !important; }
  .single-product div.product .woocommerce-product-gallery__trigger { right: 12px; }
}
/* summary */
.single-product .summary .product_title { font-family: var(--pv-h-font); color: var(--pv-dark); font-size: 40px; line-height: 1.15; margin-bottom: 8px; }
.single-product .summary .woocommerce-product-rating { margin-bottom: 12px; }
.single-product .summary .woocommerce-product-rating .star-rating { color: var(--pv-gold); }
.single-product .summary .price { font-size: 26px; color: var(--pv-accent-dark); font-weight: 700; margin-bottom: 6px; }
.single-product .summary .price del { color: #8a1c3b; font-weight: 400; font-size: 18px; margin-right: 8px; }
.single-product .summary .stock.in-stock { color: var(--pv-success); font-weight: 600; }
.single-product .summary .stock.out-of-stock { color: var(--pv-danger); font-weight: 600; }
.single-product .summary .woocommerce-product-details__short-description { color: var(--pv-body); line-height: 1.8; margin: 14px 0 4px; }
.single-product .summary form.cart { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--pv-border); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.single-product .summary form.cart .quantity .qty { padding: 11px 8px; max-width: 84px; }
.single-product .summary form.cart .single_add_to_cart_button { padding: 12px 30px; }
.single-product .summary .product_meta { margin-top: 18px; font-size: 13px; color: var(--pv-muted); border-top: 1px solid var(--pv-border); padding-top: 14px; }
.single-product .summary .product_meta a { color: var(--pv-accent-dark); }
/* category eyebrow above title (posted_in / first meta) */
.single-product .summary .posted_in { display: block; }
/* related / upsell grid heading centered like the design */
.single-product .related h2, .single-product .upsells h2 { font-family: var(--pv-h-font); color: var(--pv-dark); font-size: 26px; margin-bottom: 22px; }

/* ============================================================
   Shop archive — filter sidebar + 2-column layout (injected by JS)
   ============================================================ */
/* Filters as a LEFT sidebar (like the design), products on the right — centered in a container */
.woocommerce-page.woocommerce-shop .woocommerce, .tax-product_cat .woocommerce, .tax-product_tag .woocommerce { max-width: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
/* Break the listing out of the theme's narrow content column and center it at the
   homepage container width (viewport-breakout, same as the account page). */
.pv-shop-layout {
  display: flex; gap: 32px; align-items: flex-start;
  width: min(1480px, 94vw) !important; max-width: none !important;
  margin: 32px 0 !important; margin-left: 50% !important;
  transform: translateX(-50%) !important;
  padding: 0 !important; box-sizing: border-box;
}
.pv-shop-sidebar { flex: 0 0 264px; width: 264px; }
.pv-shop-main { flex: 1; min-width: 0; }
.pv-shop-sidebar .filter-box { background: #fff; border: 1px solid var(--pv-border); border-radius: var(--pv-radius); padding: 18px 20px; margin-bottom: 18px; box-shadow: var(--pv-shadow-sm); }
.pv-shop-sidebar .filter-box h6 { font-family: var(--pv-h-font); color: var(--pv-dark); margin: 0 0 12px; padding-bottom: 10px; border-bottom: 2px solid var(--pv-gold); display: inline-block; }
.pv-shop-sidebar .pv-fcat { display: flex; align-items: center; gap: 8px; padding: 5px 0; cursor: pointer; color: var(--pv-body); font-size: 14px; }
.pv-shop-sidebar .pv-fcat input { accent-color: var(--pv-gold); }
.pv-shop-sidebar .pv-fcat .c { margin-left: auto; color: var(--pv-muted); font-size: 12px; }
.pv-shop-sidebar .pv-price-row { display: flex; gap: 8px; }
.pv-shop-sidebar .pv-price-row input { width: 100%; padding: 8px; border: 1px solid var(--pv-border); border-radius: var(--pv-radius-sm); }
.pv-shop-sidebar .btn-pv-primary { width: 100%; margin-top: 10px; }

/* Colour swatches */
.pv-shop-sidebar .pv-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.pv-shop-sidebar .pv-swatch { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1px solid var(--pv-border); border-radius: 20px; padding: 4px 10px 4px 4px; cursor: pointer; font-size: 12px; color: var(--pv-body); transition: border-color .15s, box-shadow .15s; }
.pv-shop-sidebar .pv-swatch .sw { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); display: inline-block; flex: 0 0 18px; }
.pv-shop-sidebar .pv-swatch em { font-style: normal; }
.pv-shop-sidebar .pv-swatch:hover { border-color: var(--pv-gold); }
.pv-shop-sidebar .pv-swatch.active { border-color: var(--pv-primary); box-shadow: 0 0 0 2px var(--pv-gold-soft, rgba(200,160,75,.35)); color: var(--pv-primary); font-weight: 600; }

/* Dual-handle price range slider */
.pv-shop-sidebar .pv-range { position: relative; height: 34px; margin-top: 6px; }
.pv-shop-sidebar .pv-range-track { position: absolute; top: 15px; left: 0; right: 0; height: 4px; background: var(--pv-border); border-radius: 3px; }
.pv-shop-sidebar .pv-range-fill { position: absolute; top: 0; bottom: 0; background: var(--pv-gold); border-radius: 3px; }
.pv-shop-sidebar .pv-range input[type=range] { position: absolute; top: 0; left: 0; width: 100%; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; height: 34px; }
.pv-shop-sidebar .pv-range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--pv-primary); cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,.2); margin-top: 8px; }
.pv-shop-sidebar .pv-range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--pv-primary); cursor: pointer; }
.pv-shop-sidebar .pv-range input[type=range]::-webkit-slider-runnable-track { background: none; }
.pv-shop-sidebar .pv-range-vals { display: flex; justify-content: space-between; font-size: 13px; font-weight: 600; color: var(--pv-accent-dark); margin-top: 4px; }
.pv-shop-empty { padding: 40px 0; text-align: center; color: var(--pv-muted); }
/* Toolbar (results count + sort) as a card bar like the design */
.pv-shop-main .woocommerce-result-count, .pv-shop-main .woocommerce-ordering { background: #fff; border: 1px solid var(--pv-border); box-shadow: var(--pv-shadow-sm); border-radius: var(--pv-radius); padding: 14px 18px; margin: 0 0 22px; }
.pv-shop-main .woocommerce-result-count { float: left; color: var(--pv-muted); }
.pv-shop-main .woocommerce-ordering { float: right; margin-bottom: 22px; }
.pv-shop-main .woocommerce-ordering select { border: 0; background: transparent; color: var(--pv-dark); font-weight: 600; }
.pv-shop-main::after { content: ""; display: table; clear: both; }
@media (max-width: 991px) { .pv-shop-layout { flex-direction: column; } .pv-shop-sidebar { width: 100%; flex: none; } }

/* Shop listing product grid — deterministic columns (overrides the float layout).
   Desktop 4-up; scales down cleanly to 2-up on phones. */
.pv-shop-main ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  margin: 0 !important; padding: 0 !important;
}
.pv-shop-main ul.products::before,
.pv-shop-main ul.products::after { content: none !important; display: none !important; }
.pv-shop-main ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important;
}
@media (max-width: 1200px) { .pv-shop-main ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 820px)  { .pv-shop-main ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; } }
@media (max-width: 400px)  { .pv-shop-main ul.products { grid-template-columns: 1fr !important; } }

/* ===== Footer contact block (real business details) ===== */
.pv-footer .pv-foot-contact{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px}
.pv-footer .pv-foot-contact li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:rgba(255,255,255,.82)}
.pv-footer .pv-foot-contact li i{color:var(--pv-gold);margin-top:3px;width:16px;text-align:center;flex:0 0 16px}
.pv-footer .pv-foot-contact a{color:rgba(255,255,255,.82);text-decoration:none}
.pv-footer .pv-foot-contact a:hover{color:var(--pv-gold)}

/* ===== Page hero (Contact / About) ===== */
.pv-page-hero{background:linear-gradient(120deg,var(--pv-primary-light),#fff);padding:64px 0 46px;border-bottom:1px solid var(--pv-border)}
.pv-page-hero h1{font-size:clamp(30px,4vw,46px);color:var(--pv-dark);margin:6px 0 10px}
.pv-page-hero .lead-2{max-width:720px;margin:0 auto;color:var(--pv-muted);font-size:17px}
.pv-page-hero.text-center .lead-2{margin-left:auto;margin-right:auto}
/* ===== Contact form ===== */
.pv-contact-form label{display:block;font-weight:600;color:var(--pv-dark);margin-bottom:5px;font-size:14px}
.pv-contact-form input,.pv-contact-form select,.pv-contact-form textarea{width:100%;border:1px solid var(--pv-border);border-radius:var(--pv-radius-sm);padding:11px 13px;font-size:15px;background:#fff;color:var(--pv-body)}
.pv-contact-form input:focus,.pv-contact-form select:focus,.pv-contact-form textarea:focus{outline:0;border-color:var(--pv-gold);box-shadow:0 0 0 3px rgba(200,160,75,.18)}
.btn-pv-outline{display:inline-flex;align-items:center;border:1.5px solid var(--pv-primary);color:var(--pv-primary);background:#fff;border-radius:var(--pv-radius-sm);padding:12px 22px;font-weight:600;text-decoration:none;transition:.2s}
.btn-pv-outline:hover{background:var(--pv-primary);color:#fff}
.pv-map-wrap{box-shadow:var(--pv-shadow-sm);border-radius:14px;overflow:hidden;line-height:0}

/* ===== CTA band (About) ===== */
.pv-cta-band{background:linear-gradient(120deg,var(--pv-primary),var(--pv-primary-dark));color:#fff;padding:56px 0;text-align:center}
.pv-cta-band h2{color:#fff;margin-bottom:8px}
.pv-cta-band p{color:rgba(255,255,255,.85);margin-bottom:20px}
.pv-cta-band .btn-pv-outline{border-color:rgba(255,255,255,.7);color:#fff;background:transparent}
.pv-cta-band .btn-pv-outline:hover{background:#fff;color:var(--pv-primary)}
/* ===== Homepage banner hero ===== */
.pv-hero-banner{display:block;line-height:0;background:var(--pv-primary-light)}
.pv-hero-banner img{width:100%;height:auto;display:block}

/* ===== Make Shop/category loop cards pixel-identical to the homepage .product-card =====
   WooCommerce's default `li.product` element rules (higher specificity) leak into our
   card — neutralise them so the loop card matches [pv_products] on the homepage exactly. */
.woocommerce ul.products li.product.pv-loop-card .product-card .price,
.woocommerce-page ul.products li.product.pv-loop-card .product-card .price{padding:0!important;margin:0!important;display:block;font-size:18px;font-weight:700;color:var(--pv-accent-dark)}
.woocommerce ul.products li.product.pv-loop-card .product-card .price .old{font-size:13px;color:var(--pv-muted);text-decoration:line-through;font-weight:500;margin-left:6px}
.woocommerce ul.products li.product.pv-loop-card .product-card .thumb{aspect-ratio:1/1;border-radius:0;margin:0}
.woocommerce ul.products li.product.pv-loop-card .product-card .thumb img{width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important;margin:0!important;border-radius:0!important}
.woocommerce ul.products li.product.pv-loop-card .product-card .body{padding:14px 16px 18px}
.woocommerce ul.products li.product.pv-loop-card .product-card .title{font-family:var(--pv-h-font);font-size:15px;font-weight:600;margin:0 0 4px;padding:0}
.woocommerce ul.products li.product.pv-loop-card .product-card .cat{padding:0;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--pv-muted)}
.woocommerce ul.products li.product.pv-loop-card .product-card .btn{opacity:1!important;transform:none!important;position:static!important;margin:0}
.woocommerce ul.products li.product.pv-loop-card .product-card .stars{margin:0 0 8px;color:var(--pv-gold)}
.woocommerce ul.products li.product.pv-loop-card .product-card .stars .text-muted-2{color:var(--pv-muted)}

/* ===== Single product: clean 2-column layout (gallery left, summary right) ===== */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 44px; align-items: start; }
.woocommerce div.product .woocommerce-product-gallery { width: 100% !important; margin: 0 !important; float: none !important; }
.woocommerce div.product .summary { width: 100% !important; margin: 0 !important; float: none !important; }
.woocommerce div.product .woocommerce-product-gallery__image img { border-radius: var(--pv-radius); }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells { grid-column: 1 / -1; }
@media (max-width: 820px) { .woocommerce div.product { grid-template-columns: 1fr; gap: 24px; } }

/* ===== WooCommerce Blocks cart & checkout — brand styling ===== */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout .wc-block-components-button.contained,
.wc-block-cart .wc-block-components-button.contained { background: var(--pv-primary) !important; color: #fff !important; border-radius: var(--pv-radius-sm) !important; font-weight: 600 !important; }
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--pv-primary-dark) !important; }
.wc-block-components-product-price__value,
.wc-block-cart-item__total .wc-block-formatted-money-amount,
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount { color: var(--pv-accent-dark) !important; }
.wp-block-woocommerce-cart .wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-components-order-summary__title { font-family: var(--pv-h-font); color: var(--pv-dark); }
.wc-block-checkout__sidebar, .wc-block-cart .wc-block-cart__sidebar .wc-block-components-panel,
.wp-block-woocommerce-checkout-order-summary-block { background: #fff; border: 1px solid var(--pv-border); border-radius: var(--pv-radius); box-shadow: var(--pv-shadow-sm); }
.wc-block-components-text-input input, .wc-block-components-address-form input, .wc-block-components-address-form select { border: 1px solid var(--pv-border) !important; border-radius: var(--pv-radius-sm) !important; }
.wc-block-components-text-input input:focus { border-color: var(--pv-gold) !important; box-shadow: 0 0 0 3px rgba(200,160,75,.18) !important; }
.wc-block-components-order-summary-item__image img { border-radius: var(--pv-radius-sm); }
