/*
Theme Name: VeldPaws Child
Theme URI: https://veldpaws.co.za
Description: VeldPaws brand child theme for Hello Commerce. Bright, warm, product-forward brand system. Natural. Nurturing. Adventurous.
Author: Veldpaws
Template: hello-commerce
Version: 2.0.75
Text Domain: veldpaws-child
*/

/* ==========================================================================
   VELDPAWS BRAND SYSTEM  v2
   ========================================================================== */
:root{
  --vp-gold:#C8992F; --vp-gold-dark:#A87D22; --vp-gold-soft:#E8CE86;
  --vp-charcoal:#151310; --vp-ink:#2C2823;
  --vp-cream:#FAF5EC; --vp-cream-2:#F3EADB;
  --vp-kraft:#C9A87C; --vp-kraft-soft:#EADDC7;
  --vp-green:#4A5A34; --vp-rust:#9C4A22;
  --vp-radius:16px; --vp-radius-lg:26px;
  --vp-shadow:0 10px 34px rgba(21,19,16,.10);
  --vp-shadow-lg:0 24px 60px rgba(21,19,16,.16);
  --vp-font-head:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --vp-font-body:'Nunito Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --vp-container:1200px;
}

/* ---- Base typography ---------------------------------------------------- */
body{ background:var(--vp-cream); }
body,.elementor-widget-text-editor,p,li,a,span,input,textarea,select,button{
  font-family:var(--vp-font-body); color:var(--vp-ink);
}
h1,h2,h3,h4,h5,h6,.elementor-heading-title{
  font-family:var(--vp-font-head);
  color:var(--vp-charcoal) !important;   /* beat Elementor kit default blue */
  font-weight:800; letter-spacing:-0.02em; line-height:1.08;
}
a{ color:var(--vp-gold-dark); transition:color .2s ease; }
a:hover{ color:var(--vp-gold); }
img{ max-width:100%; height:auto; }

/* ---- Buttons ------------------------------------------------------------ */
.elementor-button,.wp-element-button,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt{
  background-color:var(--vp-gold) !important; color:#fff !important; border:none !important;
  border-radius:999px !important; font-family:var(--vp-font-head) !important; font-weight:600 !important;
  letter-spacing:.01em; padding:.9em 2em !important; font-size:1rem !important;
  box-shadow:0 8px 22px rgba(200,153,47,.30); transition:transform .15s ease,background-color .2s ease,box-shadow .2s ease;
}
.elementor-button:hover,.wp-element-button:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{
  background-color:var(--vp-gold-dark) !important; color:#fff !important; transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(200,153,47,.38);
}
/* Outline (dark ground) + light (photo/dark ground) */
/* variant class lands on the widget wrapper, so target both wrapper-descendant and the button itself */
.vp-btn-outline .elementor-button,.elementor-button.vp-btn-outline{ background:transparent !important; color:var(--vp-charcoal) !important; border:2px solid var(--vp-charcoal) !important; box-shadow:none !important; }
.vp-btn-outline .elementor-button:hover,.elementor-button.vp-btn-outline:hover{ background:var(--vp-charcoal) !important; color:#fff !important; }
.vp-btn-light .elementor-button,.elementor-button.vp-btn-light{ background:#fff !important; color:var(--vp-charcoal) !important; box-shadow:0 8px 22px rgba(0,0,0,.18) !important; }
.vp-btn-light .elementor-button:hover,.elementor-button.vp-btn-light:hover{ background:var(--vp-cream) !important; color:var(--vp-charcoal) !important; }
.vp-btn-ghost .elementor-button,.elementor-button.vp-btn-ghost{ background:transparent !important; color:#fff !important; border:2px solid rgba(255,255,255,.65) !important; box-shadow:none !important; }
.vp-btn-ghost .elementor-button:hover,.elementor-button.vp-btn-ghost:hover{ background:#fff !important; color:var(--vp-charcoal) !important; border-color:#fff !important; }

/* ==========================================================================
   HEADER  (dark, sticky) — .vp-header
   ========================================================================== */
.vp-header{ background:var(--vp-charcoal) !important; position:sticky; top:0; z-index:999; box-shadow:0 6px 24px rgba(0,0,0,.22); }
.vp-header .elementor-widget-image{ margin-bottom:0; }
.vp-header .elementor-widget-image img{ border-radius:0 !important; display:block; }
/* nav */
.vp-header .hfe-nav-menu a.hfe-menu-item,
.vp-header .elementor-nav-menu a.elementor-item{
  color:#F3ECDD !important; font-family:var(--vp-font-head) !important; font-weight:600 !important;
  font-size:15px !important; letter-spacing:.04em; text-transform:uppercase; padding:8px 18px !important; transition:color .2s ease;
}
.vp-header .hfe-nav-menu a.hfe-menu-item:hover,
.vp-header .hfe-nav-menu .current-menu-item>a.hfe-menu-item,
.vp-header .hfe-nav-menu .current_page_item>a.hfe-menu-item{ color:var(--vp-gold-soft) !important; }
.vp-header .hfe-nav-menu ul.sub-menu{ background:#201c17 !important; border-top:3px solid var(--vp-gold); box-shadow:var(--vp-shadow); }
.vp-header .hfe-nav-menu ul.sub-menu a.hfe-menu-item{ text-transform:none; letter-spacing:0; }
.vp-header .elementor-widget-navigation-menu .hfe-nav-menu{ justify-content:flex-end; }
/* hamburger */
.vp-header .hfe-nav-menu-icon i,.vp-header .hfe-nav-menu-icon svg,
.vp-header span.hfe-menu-toggle,.vp-header .elementor-menu-toggle{ color:#F3ECDD !important; fill:#F3ECDD !important; }
/* cart — force off theme green */
.vp-header .elementor-widget-hfe-cart .elementor-widget-container{ display:flex; justify-content:flex-end; }
.vp-header .elementor-widget-hfe-cart a,.vp-header .elementor-widget-hfe-cart svg,
.vp-header .elementor-widget-hfe-cart i,.vp-header .elementor-widget-hfe-cart svg path{ color:#F3ECDD !important; fill:#F3ECDD !important; stroke:#F3ECDD !important; }
.vp-header .elementor-widget-hfe-cart a:hover,.vp-header .elementor-widget-hfe-cart a:hover svg{ color:var(--vp-gold-soft) !important; fill:var(--vp-gold-soft) !important; }
.vp-header .hfe-cart-count,.vp-header .elementor-button-icon-qty[data-counter]:before{
  background:var(--vp-gold) !important; color:#fff !important; font-family:var(--vp-font-head); font-weight:700; border:none !important;
}

/* ==========================================================================
   REUSABLE HELPERS
   ========================================================================== */
.vp-eyebrow .elementor-heading-title{ color:var(--vp-gold-dark) !important; font-weight:700; text-transform:uppercase; letter-spacing:.26em; font-size:.8rem; }
.vp-eyebrow.vp-on-dark .elementor-heading-title{ color:var(--vp-gold-soft) !important; }
.vp-title .elementor-heading-title{ font-size:clamp(2rem,4.2vw,3.3rem); }
.vp-title-xl .elementor-heading-title{ font-size:clamp(2.6rem,6vw,4.5rem); line-height:1.02; }
.vp-on-dark .elementor-heading-title{ color:var(--vp-cream) !important; }
.vp-lead p{ font-size:1.18rem; line-height:1.7; color:var(--vp-ink); }
.vp-lead.vp-on-dark p,.vp-on-dark .vp-lead p{ color:#EDE6D6 !important; }
.vp-muted p{ color:#6E6559 !important; font-size:1.06rem; line-height:1.65; }
.vp-fill-img .elementor-widget-container,.vp-fill-img img{ height:100%; width:100%; object-fit:cover; display:block; }

/* inline CTA button rows (works whether class lands on column or its wrap) */
.vp-cta-row .elementor-widget-wrap,.vp-cta-row.elementor-widget-wrap,
.vp-cta-row>.elementor-element-populated>.elementor-widget-wrap{
  display:flex !important; flex-flow:row wrap; gap:14px; align-items:center;
}
.vp-cta-row .elementor-widget-button{ width:auto !important; max-width:none !important; }
.vp-cta-row.vp-center .elementor-widget-wrap{ justify-content:center; }
/* pull the hero button row to the same left edge as heading/paragraph/badge (kills the 24px inner-section offset) */
@media (min-width:1025px){ .vp-vhero .vp-cta-row{ margin-left:-24px; } }

/* ==========================================================================
   HERO  (bright split) — .vp-hero-split
   ========================================================================== */
.vp-hero-split .vp-hero-copy{ padding:clamp(36px,5vw,72px) clamp(28px,3.5vw,56px) clamp(36px,5vw,72px) 0 !important; }
.vp-hero-split .vp-hero-photo{ min-height:340px; }
.vp-hero-badge p{ display:inline-block; background:#fff; color:var(--vp-ink) !important; font-weight:700;
  font-family:var(--vp-font-head); font-size:.85rem; padding:.5em 1.1em; border-radius:999px; box-shadow:var(--vp-shadow); }
@media (max-width:1024px){ .vp-hero-split .vp-hero-photo{ min-height:420px; } }

/* ==========================================================================
   SECTION RHYTHM
   ========================================================================== */
.vp-band>.elementor-container{ max-width:var(--vp-container); }
.vp-soft{ background:var(--vp-cream) !important; }
.vp-soft-2{ background:var(--vp-cream-2) !important; }
.vp-white{ background:#fff !important; }
.vp-dark{ background:var(--vp-charcoal) !important; }
.vp-gold-band{ background:linear-gradient(135deg,var(--vp-gold) 0%,var(--vp-gold-dark) 100%) !important; }
.vp-gold-band .elementor-heading-title{ color:#fff !important; }
.vp-gold-band p{ color:#fff8ec !important; }

/* trust strip */
.vp-trust .elementor-heading-title{ font-size:1.02rem !important; color:var(--vp-charcoal) !important; text-transform:none; letter-spacing:0; }
.vp-trust-emoji .elementor-heading-title{ font-size:2.2rem !important; margin-bottom:.15em; }
.vp-trust-col{ border-right:1px solid var(--vp-kraft-soft); }
.vp-trust-col:last-child{ border-right:none; }
@media (max-width:767px){ .vp-trust-col{ border-right:none; } }

/* ingredient list */
.vp-ing ul{ list-style:none; margin:.4em 0 1.4em; padding:0; }
.vp-ing li{ padding:.7em 0 .7em 2.1em; position:relative; border-bottom:1px solid var(--vp-kraft-soft);
  font-weight:700; font-family:var(--vp-font-head); color:var(--vp-charcoal); font-size:1.08rem; }
.vp-ing li{ padding-left:2.4em; }
.vp-ing li::before{ content:""; position:absolute; left:.1em; top:50%; transform:translateY(-50%); width:1.25em; height:1.25em;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23C8992F"><circle cx="6.2" cy="10.2" r="2"/><circle cx="10" cy="6.6" r="2.05"/><circle cx="14" cy="6.6" r="2.05"/><circle cx="17.8" cy="10.2" r="2"/><ellipse cx="12" cy="16" rx="4.3" ry="3.5"/></svg>') no-repeat center/contain; }

/* cards */
.vp-card{ border-radius:var(--vp-radius-lg); overflow:hidden; box-shadow:var(--vp-shadow); background:#fff; transition:transform .18s ease, box-shadow .18s ease; }
.vp-card:hover{ transform:translateY(-5px); box-shadow:var(--vp-shadow-lg); }
.vp-card .elementor-widget-image{ margin:0; }
.vp-card .elementor-widget-image img{ border-radius:0 !important; width:100%; height:250px; object-fit:cover; display:block; }
.vp-card .elementor-heading-title{ font-size:1.5rem !important; }
.vp-round .elementor-widget-container>img,.vp-round img{ border-radius:var(--vp-radius-lg) !important; box-shadow:var(--vp-shadow-lg); }

/* video band */
.vp-video-band video,.vp-video-band .elementor-background-video-container{ filter:saturate(1.05); }

/* ==========================================================================
   WOOCOMMERCE — shop & product cards
   ========================================================================== */
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{
  background:#fff; border:1px solid var(--vp-kraft-soft); border-radius:var(--vp-radius);
  padding:14px 14px 22px; box-shadow:var(--vp-shadow); transition:transform .18s ease,box-shadow .18s ease; text-align:center;
}
.woocommerce ul.products li.product:hover{ transform:translateY(-5px); box-shadow:var(--vp-shadow-lg); }
.woocommerce ul.products li.product img{ border-radius:12px; margin-bottom:14px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--vp-font-head); font-weight:700; font-size:1.08rem; color:var(--vp-charcoal); padding:.2em 0 .3em;
}
.woocommerce ul.products li.product .price{ color:var(--vp-green); font-weight:800; font-family:var(--vp-font-head); }
.woocommerce ul.products li.product .price del{ color:#aaa; font-weight:400; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; }
.woocommerce span.onsale{ background:var(--vp-rust) !important; color:#fff !important; border-radius:999px;
  font-family:var(--vp-font-head); font-weight:700; min-height:auto; min-width:auto; padding:.4em 1em; line-height:1; top:14px; left:14px; }
.woocommerce div.product .product_title{ font-family:var(--vp-font-head); }
.woocommerce div.product p.price,.woocommerce div.product span.price{ color:var(--vp-green); font-weight:800; font-family:var(--vp-font-head); }
.woocommerce .star-rating span::before,.woocommerce p.stars a::before{ color:var(--vp-gold); }
.woocommerce-message,.woocommerce-info{ border-top-color:var(--vp-gold) !important; }
.woocommerce-message::before{ color:var(--vp-gold) !important; }

/* ==========================================================================
   FOOTER  (dark) — .vp-footer
   ========================================================================== */
.vp-footer{ background:var(--vp-charcoal) !important; }
.vp-footer,.vp-footer p,.vp-footer li,.vp-footer a,.vp-footer span{ color:#CFC6B6 !important; }
.vp-footer .elementor-heading-title{ color:var(--vp-cream) !important; font-size:.98rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; margin-bottom:.5em; }
.vp-footer a:hover{ color:var(--vp-gold-soft) !important; }
.vp-footer ul.vp-flinks{ list-style:none; margin:0; padding:0; }
.vp-footer ul.vp-flinks li{ margin:.4em 0; }
.vp-footer .elementor-widget-image img{ border-radius:0 !important; }
.vp-footer-bottom{ border-top:1px solid rgba(255,255,255,.12); }
.vp-footer-bottom p{ font-size:.85rem; color:#8F8779 !important; margin:0; }

/* legacy helper classes still referenced */
.vp-charcoal-bg{ background:var(--vp-charcoal) !important; }
.vp-charcoal-bg .elementor-heading-title,.vp-charcoal-bg p{ color:#fff !important; }

/* ==========================================================================
   v8 POLISH — header fit, buttons, cards, rhythm
   ========================================================================== */
/* keep nav on one line, sized to fit */
.vp-header .hfe-nav-menu{ flex-wrap:nowrap !important; }
.vp-header .hfe-nav-menu li.menu-item{ white-space:nowrap; }
.vp-header .hfe-nav-menu a.hfe-menu-item{ padding:6px 15px !important; font-size:14px !important; letter-spacing:.02em; }
.vp-header .elementor-widget-image img{ max-height:44px; width:auto !important; }
.vp-header .elementor-widget-hfe-cart{ margin-left:6px; }

/* product loop: refined add-to-cart */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  padding:.6em 1.35em !important; font-size:.9rem !important; box-shadow:0 5px 14px rgba(200,153,47,.26);
}
.woocommerce ul.products li.product .price{ display:block; margin-bottom:12px; font-size:1.12rem; }

/* category cards: single-line buttons, comfortable body */
.vp-card .elementor-button{ white-space:nowrap; padding:.72em 1.5em !important; font-size:.92rem !important; }
.vp-card .elementor-widget-text-editor{ min-height:96px; }

/* boxed content sections (splits stay full-bleed) */
.vp-boxed>.elementor-container{ max-width:var(--vp-container); margin-left:auto; margin-right:auto; }

/* eyebrow spacing */
.vp-eyebrow .elementor-heading-title{ margin-bottom:.5rem; }
.vp-title .elementor-heading-title,.vp-title-xl .elementor-heading-title{ margin-bottom:.2rem; }

/* section intro heading block centered with breathing room */
.vp-intro{ margin-bottom:14px; }

/* mobile: stack splits cleanly, restore image height */
@media (max-width:1024px){
  .vp-hero-split .vp-hero-copy{ padding:48px 28px !important; }
  .vp-hero-photo{ min-height:360px !important; }
}
@media (max-width:767px){
  .vp-header .hfe-nav-menu a.hfe-menu-item{ font-size:15px !important; }
  .vp-card .elementor-widget-image img{ height:210px; }
}

/* pillars (values / delivery) */
.vp-pillar h4.elementor-heading-title{ font-size:1.3rem !important; margin-bottom:.35em; }
.vp-pillar .vp-trust-emoji .elementor-heading-title{ font-size:2.4rem !important; }

/* rounded framed images */
.vp-round img,.vp-round .elementor-widget-container>img{ border-radius:var(--vp-radius-lg) !important; box-shadow:var(--vp-shadow-lg); }

/* page hero titles a touch smaller than home hero */
.vp-page-hero .vp-title-xl .elementor-heading-title{ font-size:clamp(2.3rem,5vw,3.6rem); }

/* ---- Contact Form 7 ---- */
.vp-form .wpcf7 .wpcf7-form{ max-width:660px; margin:0 auto; }
.vp-form .wpcf7-form p{ margin:0 0 16px; }
.vp-form input.wpcf7-form-control:not(.wpcf7-submit),
.vp-form textarea.wpcf7-form-control,
.vp-form select.wpcf7-form-control{
  width:100%; padding:14px 16px; border:1px solid var(--vp-kraft-soft); border-radius:12px;
  background:#fff; font-family:var(--vp-font-body); font-size:1rem; color:var(--vp-ink); box-sizing:border-box;
}
.vp-form textarea.wpcf7-form-control{ min-height:150px; resize:vertical; }
.vp-form input.wpcf7-form-control:focus,.vp-form textarea.wpcf7-form-control:focus{
  outline:none; border-color:var(--vp-gold); box-shadow:0 0 0 3px rgba(200,153,47,.15);
}
.vp-form input.wpcf7-submit{
  background:var(--vp-gold) !important; color:#fff !important; border:none !important; border-radius:999px !important;
  padding:.9em 2.4em !important; font-family:var(--vp-font-head) !important; font-weight:600 !important; font-size:1rem !important;
  box-shadow:0 8px 22px rgba(200,153,47,.30); cursor:pointer; transition:transform .15s ease,background-color .2s ease;
}
.vp-form input.wpcf7-submit:hover{ background:var(--vp-gold-dark) !important; transform:translateY(-2px); }

/* WooCommerce shop archive polish */
.woocommerce .woocommerce-products-header{ text-align:center; padding:40px 0 6px; }
.woocommerce .woocommerce-products-header__title.page-title{ font-family:var(--vp-font-head); font-size:clamp(2rem,4vw,2.8rem); }
.woocommerce .term-description,.woocommerce-shop .woocommerce-breadcrumb{ text-align:center; }
.woocommerce-breadcrumb{ color:#8F8779; font-size:.9rem; margin-bottom:24px; }

/* ==========================================================================
   SVG ICON BADGES + header hamburger control (v9)
   ========================================================================== */
.vp-ic-wrap{ margin-bottom:8px; }
.vp-ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:66px; height:66px; border-radius:50%;
  background:rgba(200,153,47,.12); color:var(--vp-gold-dark);
}
.vp-trust-col .vp-ic{ width:58px; height:58px; }
.vp-pillar .vp-ic{ width:70px; height:70px; }
.vp-hero-badge svg{ color:var(--vp-gold-dark); }

/* hamburger: hide only on desktop; let HFE handle the mobile open/close natively */
@media (min-width:1025px){
  .vp-header .hfe-nav-menu__toggle{ display:none !important; }
}

/* ==========================================================================
   v10 — shop hero, reviews, single product, refinements
   ========================================================================== */
/* Shop / category hero banner */
.vp-shop-hero{ background:var(--vp-charcoal); background-size:cover; background-position:center;
  color:#fff; text-align:center; padding:88px 20px; margin:0 0 8px; border-radius:0; }
.vp-shop-hero__eyebrow{ color:var(--vp-gold-soft) !important; text-transform:uppercase; letter-spacing:.26em; font-size:.78rem; font-weight:700; font-family:var(--vp-font-head); margin:0 0 6px; }
.vp-shop-hero__title{ color:#fff !important; font-family:var(--vp-font-head); font-weight:800; font-size:clamp(2.2rem,5vw,3.4rem); margin:0 0 10px; }
.vp-shop-hero__sub{ color:#EDE6D6 !important; max-width:600px; margin:0 auto; font-size:1.08rem; }
.woocommerce .products,.woocommerce-page .products{ max-width:1200px; margin-left:auto; margin-right:auto; }
.woocommerce ul.products{ padding-top:16px; gap:6px; }

/* Reviews / social proof */
.vp-review{ background:#fff; border:1px solid var(--vp-kraft-soft); border-radius:var(--vp-radius);
  padding:30px 28px; box-shadow:var(--vp-shadow); text-align:left; }
.vp-stars{ display:flex; gap:3px; margin-bottom:14px; color:var(--vp-gold); }
.vp-quote{ font-size:1.12rem !important; line-height:1.6; color:var(--vp-ink) !important; font-weight:500; margin:0 0 16px !important; }
.vp-review-name strong{ font-family:var(--vp-font-head); color:var(--vp-charcoal); }
.vp-review-name span{ color:#8F8779; font-size:.9rem; }

/* Reviews hidden pending client feedback (section still built in Elementor) */
.vp-reviews-hidden{ display:none !important; }

/* Product grid: responsive columns, centred — works for 1 product or many (side by side) */
.woocommerce ul.products,
.hfe-woo-product-grid ul.products{ display:grid !important; grid-template-columns:repeat(auto-fit, minmax(230px, 270px)) !important; justify-content:center !important; gap:26px !important; width:100%; }
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.hfe-woo-product-grid ul.products::before,
.hfe-woo-product-grid ul.products::after{ content:none !important; display:none !important; }
.woocommerce ul.products li.product,
.woocommerce ul.products li.product-category,
.hfe-woo-product-grid ul.products li{ float:none !important; clear:none !important; width:auto !important; max-width:none !important; margin:0 !important; }

/* Category filter dropdown — sits inline next to the WooCommerce sorting dropdown */
.vp-cat-filter{ float:right; display:inline-flex; align-items:center; gap:8px; margin:0 14px 22px 0; font-family:var(--vp-font-head); }
.vp-cat-filter label{ font-weight:600; color:var(--vp-charcoal); font-size:.95rem; white-space:nowrap; }
.vp-cat-filter select{ padding:9px 14px; border:1px solid var(--vp-kraft-soft); border-radius:10px; background:#fff; color:var(--vp-ink); font-size:.95rem; cursor:pointer; }
@media (max-width:600px){ .vp-cat-filter{ float:none; width:100%; margin:0 0 14px; justify-content:space-between; } .vp-cat-filter select{ flex:1 1 auto; } }

/* Single product page */
.woocommerce div.product{ max-width:1200px; margin:0 auto; }
.woocommerce div.product div.images img{ border-radius:var(--vp-radius); box-shadow:var(--vp-shadow); }
.woocommerce div.product .product_title{ font-size:clamp(1.8rem,3.5vw,2.6rem); }
.woocommerce div.product .woocommerce-product-details__short-description{ font-size:1.08rem; line-height:1.7; color:var(--vp-ink); }
.woocommerce div.product form.cart div.quantity input{ border:1px solid var(--vp-kraft-soft); border-radius:10px; padding:10px; }
.woocommerce .woocommerce-tabs ul.tabs li.active{ border-bottom-color:var(--vp-gold); }
.woocommerce .related.products,.woocommerce .upsells.products{ border-top:1px solid var(--vp-kraft-soft); padding-top:30px; margin-top:40px; }

/* Refinements: eyebrow accent line + tighter hero */
.vp-title-xl .elementor-heading-title{ line-height:1.0; }
.vp-hero-copy{ position:relative; }
.vp-hero-badge svg{ color:var(--vp-gold-dark); }
.vp-review .vp-stars svg{ width:18px; height:18px; }

/* breadcrumb tidy */
.woocommerce nav.woocommerce-breadcrumb{ max-width:1200px; margin:18px auto 0; padding:0 16px; }

/* Mobile refinements */
@media (max-width:767px){
  .vp-shop-hero{ padding:60px 18px; }
  .vp-hero-split .vp-hero-copy .elementor-widget-wrap{ text-align:left; }
  .vp-review{ padding:24px 22px; }
}

/* v11 — announcement top bar */
.vp-topbar{ background:var(--vp-gold) !important; }
.vp-topbar p{ margin:0; text-align:center; color:#fff !important; font-family:var(--vp-font-head);
  font-weight:600; font-size:.8rem; letter-spacing:.04em; }
.vp-topbar .elementor-widget-html{ margin:0; }
@media (max-width:767px){ .vp-topbar p{ font-size:.68rem; } }

/* ==========================================================================
   v12 — LAYOUT / OVERFLOW / RESPONSIVE FINISHING
   ========================================================================== */
/* kill all horizontal overflow */
html, body{ overflow-x:hidden; max-width:100%; }
.elementor-section.elementor-section-stretched{ max-width:100vw; }
.elementor-column, .elementor-widget-wrap, .elementor-widget{ min-width:0; }

/* Even, responsive product grid EVERYWHERE (overrides Woo floats) */
.woocommerce ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:22px; margin:0 auto !important; padding:16px 0 0; }
.woocommerce ul.products::before,.woocommerce ul.products::after{ content:none !important; display:none !important; }
.woocommerce ul.products li.product{ width:auto !important; margin:0 !important; float:none !important; clear:none !important; }
@media (max-width:1024px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); gap:16px; } }
@media (max-width:420px){  .woocommerce ul.products{ gap:12px; } }

/* hero photo fills its side properly */
.vp-hero-photo{ min-height:470px !important; }
@media (max-width:1024px){ .vp-hero-photo{ min-height:320px !important; } }
.vp-hero-copy .elementor-widget-container{ max-width:100%; }
.vp-hero-copy p, .elementor-widget-text-editor p{ overflow-wrap:break-word; }

/* consistent vertical rhythm on the split/photo panels */
@media (max-width:1024px){
  .vp-hero-split .vp-hero-copy{ padding:44px 24px !important; }
  .vp-soft .elementor-column .elementor-widget-wrap,
  .vp-white .elementor-column .elementor-widget-wrap{ }
}

/* pillars/reviews stack cleanly on mobile with spacing */
@media (max-width:767px){
  .vp-pillar, .vp-review, .vp-trust-col{ margin-bottom:22px; }
  .vp-card{ margin-bottom:22px; }
  .vp-title-xl .elementor-heading-title{ font-size:2.5rem; }
}

/* ==========================================================================
   v14 — mobile dropdown nav + readable content/policy pages
   ========================================================================== */
@media (max-width:1024px){
  .vp-header .hfe-nav-menu__toggle{ display:flex !important; cursor:pointer; align-items:center; }
  .vp-header .hfe-nav-menu ul, .vp-header ul.hfe-nav-menu{
    display:none !important; position:absolute; top:100%; left:0; right:0;
    background:#161310; flex-direction:column; padding:6px 0 12px; margin:0;
    box-shadow:0 18px 34px rgba(0,0,0,.42); border-top:2px solid var(--vp-gold); z-index:1000;
  }
  .vp-header.vp-open .hfe-nav-menu ul, .vp-header.vp-open ul.hfe-nav-menu{ display:flex !important; }
  .vp-header .hfe-nav-menu ul li{ width:100%; }
  .vp-header .hfe-nav-menu ul a.hfe-menu-item{ display:block; padding:14px 26px !important; font-size:16px !important; }
}

/* Readable content / policy pages (Refund, T&C, Cookies, Privacy, etc.) */
.page .entry-header, .page-header{ text-align:center; padding:56px 20px 6px; background:var(--vp-cream-2); }
.page .entry-title, .entry-title{ font-family:var(--vp-font-head); font-size:clamp(2rem,4.4vw,3rem); margin:0; }
.page .entry-content, .entry-content, .page-content{
  max-width:800px; margin:0 auto; padding:44px 22px 72px;
  font-size:1.07rem; line-height:1.85; color:var(--vp-ink);
}
.entry-content h2, .entry-content h3, .entry-content h4{ font-family:var(--vp-font-head); margin:1.7em 0 .5em; line-height:1.25; }
.entry-content h2{ font-size:1.6rem; } .entry-content h3{ font-size:1.3rem; }
.entry-content p{ margin:0 0 1.15em; }
.entry-content ul, .entry-content ol{ margin:0 0 1.3em 1.3em; }
.entry-content li{ margin:.4em 0; }
.entry-content a{ color:var(--vp-gold-dark); text-decoration:underline; }
.entry-content a:hover{ color:var(--vp-gold); }
.entry-content hr{ border:none; border-top:1px solid var(--vp-kraft-soft); margin:2em 0; }
.entry-content strong{ color:var(--vp-charcoal); }

/* ==========================================================================
   v15 — PREMIUM PRODUCT CARDS (overrides earlier product styles)
   ========================================================================== */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  background:#fff !important; border:none !important; border-radius:20px !important;
  padding:0 0 20px !important; overflow:hidden; text-align:left !important;
  box-shadow:0 6px 20px rgba(21,19,16,.07) !important;
  display:flex !important; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease;
}
.woocommerce ul.products li.product:hover{ transform:translateY(-6px); box-shadow:var(--vp-shadow-lg) !important; }
.woocommerce ul.products li.product a{ display:block; }
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product a img{
  border-radius:0 !important; margin:0 0 16px !important; width:100% !important;
  aspect-ratio:1/1; object-fit:cover; background:var(--vp-cream-2); display:block;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  padding:0 20px !important; font-size:1.12rem !important; font-weight:700 !important; color:var(--vp-charcoal) !important; line-height:1.3;
}
.woocommerce ul.products li.product .price{
  padding:4px 20px 0 !important; font-size:1.18rem !important; color:var(--vp-charcoal) !important; display:block; margin:0 !important;
}
.woocommerce ul.products li.product .price del{ color:#b3ab9c; font-weight:400; margin-right:6px; }
.woocommerce ul.products li.product .price ins{ color:var(--vp-rust); text-decoration:none; }
.woocommerce ul.products li.product .star-rating{ margin:8px 20px 0 !important; font-size:.85rem; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  margin:14px 20px 0 !important; text-align:center; font-size:.9rem !important; padding:.72em 1.4em !important; width:auto;
}
.woocommerce ul.products li.product .onsale{ margin:0; top:14px; left:14px; z-index:2; }

/* ==========================================================================
   v17 — HEADER spacing & alignment + container consistency
   ========================================================================== */
/* header content aligned to the page container, with vertical breathing room */
.vp-header > .elementor-container{ max-width:var(--vp-container); margin:0 auto; align-items:center; min-height:96px; }
.vp-topbar > .elementor-container{ max-width:var(--vp-container); margin:0 auto; }
.vp-header .elementor-widget-image img{ max-height:46px; width:auto !important; }
.vp-header .elementor-column > .elementor-element-populated,
.vp-header .elementor-column > .elementor-widget-wrap{ padding-top:8px; padding-bottom:8px; }
.vp-header .hfe-nav-menu a.hfe-menu-item{ padding:10px 22px !important; }
.vp-header .elementor-widget-hfe-cart{ padding-right:2px; }
@media (max-width:1024px){
  .vp-header > .elementor-container{ min-height:70px; }
  .vp-topbar p{ font-size:.66rem; letter-spacing:.02em; }
}

/* consistent content container across boxed sections */
.vp-boxed > .elementor-container{ max-width:var(--vp-container); margin-left:auto; margin-right:auto; }

/* ==========================================================================
   v18 — UNIFORM CONTENT CONTAINER (every section's content aligns to one grid)
   Backgrounds stay full-width (set on the section); only inner content is boxed.
   ========================================================================== */
.elementor-section > .elementor-container{
  max-width:var(--vp-container) !important; margin-left:auto !important; margin-right:auto !important;
  padding-left:24px; padding-right:24px;
}
/* split image panels: contained + rounded now that sections are boxed */
.vp-hero-photo{ border-radius:18px; overflow:hidden; }
.vp-hero-split .vp-hero-photo{ margin:18px 0; }
/* text panels in splits align to the container's left edge */
.vp-hero-split .vp-hero-copy .elementor-widget-wrap{ padding-left:0; }
@media (max-width:1024px){
  .elementor-section > .elementor-container{ padding-left:18px; padding-right:18px; }
  .vp-hero-photo{ margin:0 !important; border-radius:0; }
}

/* ==========================================================================
   v19 — MOTION DESIGN (scroll reveal, header condense, micro-interactions)
   ========================================================================== */
/* reveal animation REMOVED — layout must never depend on JS timing.
   .vp-anim kept as no-op for back-compat. */
.vp-anim{ opacity:1; transform:none; }

/* header condenses on scroll */
.vp-header{ transition:box-shadow .25s ease; }
.vp-header.vp-scrolled > .elementor-container{ min-height:76px; transition:min-height .25s ease; }
.vp-header.vp-scrolled{ box-shadow:0 10px 34px rgba(0,0,0,.34); }

/* hero image gentle Ken-Burns on load */
@keyframes vpKen{ from{ transform:scale(1.06); } to{ transform:scale(1); } }
.vp-hero-photo{ animation:vpKen 1.8s ease both; }

/* smooth anchors + tactile buttons + image hover */
html{ scroll-behavior:smooth; }
.elementor-button:active,.woocommerce .button:active,.wpcf7-submit:active{ transform:translateY(0) scale(.98) !important; }
.vp-card .elementor-widget-image, .woocommerce ul.products li.product a img{ overflow:hidden; transition:transform .4s ease; }
.woocommerce ul.products li.product:hover a img{ transform:scale(1.05); }
.vp-round img{ transition:transform .5s ease; }
.vp-round:hover img{ transform:scale(1.02); }

/* ==========================================================================
   v20 — LAYOUT INTEGRITY: columns keep their row on desktop/tablet
   ========================================================================== */
@media (min-width:768px){
  .elementor-section > .elementor-container{ flex-wrap:nowrap; }
  .elementor-column{ min-width:0; }
}

/* ==========================================================================
   v21 — PIXEL ALIGNMENT: one left edge for every section + equal-height buttons
   ========================================================================== */
/* Every top-level section's first/last column starts exactly at the container
   edge (kills Elementor's per-section gap-padding jitter), inner gaps kept. */
@media (min-width:768px){
  .elementor-top-section > .elementor-container > .elementor-column:first-child > .elementor-element-populated{ padding-left:0; }
  .elementor-top-section > .elementor-container > .elementor-column:last-child  > .elementor-element-populated{ padding-right:0; }
}

/* Buttons: identical box model for filled + outline (transparent border keeps
   heights equal), centered label, consistent baseline everywhere. */
.elementor-button,.wp-element-button,.wpcf7-submit,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{
  display:inline-flex !important; align-items:center; justify-content:center;
  line-height:1.2 !important; border:2px solid transparent !important;
  min-height:52px; box-sizing:border-box !important;
}
.vp-btn-outline .elementor-button{ border:2px solid var(--vp-charcoal) !important; }
.vp-btn-ghost .elementor-button{ border:2px solid rgba(255,255,255,.65) !important; }
.vp-btn-light .elementor-button{ border:2px solid #fff !important; }
/* smaller buttons inside cards keep proportion */
.vp-card .elementor-button,
.woocommerce ul.products li.product .button{ min-height:44px; }

/* product cards: pin Add-to-Cart to the bottom so buttons align across the row */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{ margin-top:auto !important; align-self:flex-start; margin-left:20px !important; }

/* cta rows share exact vertical rhythm */
.vp-cta-row .elementor-widget-wrap{ align-items:stretch; }
.vp-cta-row .elementor-widget-button .elementor-widget-container,
.vp-cta-row .elementor-widget-button .elementor-button-wrapper{ height:100%; display:flex; align-items:center; }

/* ==========================================================================
   v22 — VERTICAL RHYTHM (bottom padding), WOO PAGES, BRAND FINISH
   ========================================================================== */
/* Shop/archive: air above and below the grid, never touch the footer */
.woocommerce ul.products{ margin-bottom:84px !important; }
.post-type-archive-product #content.site-main, .tax-product_cat #content.site-main{ padding-bottom:40px; }
.woocommerce .woocommerce-result-count{ margin:6px 0 0; color:#8F8779; }
.woocommerce .woocommerce-ordering select{ border:1px solid var(--vp-kraft-soft); border-radius:10px; padding:10px 14px; background:#fff; }

/* Single product: breathing room + tidy tabs */
.single-product #content.site-main{ padding:40px 24px 96px; }
.woocommerce div.product{ margin-top:26px; }
.woocommerce div.product .woocommerce-tabs{ margin-top:44px; }
.woocommerce div.product form.cart{ margin:26px 0 32px; }

/* Cart / Checkout / Account: contained, padded, branded */
.woocommerce-cart #content.site-main, .woocommerce-checkout #content.site-main, .woocommerce-account #content.site-main{
  max-width:1200px; margin:0 auto; padding:56px 24px 110px;
}
.woocommerce-cart h1, .woocommerce-checkout h1, .woocommerce-account h1{ margin-bottom:26px; }
.woocommerce table.shop_table{ border:1px solid var(--vp-kraft-soft); border-radius:var(--vp-radius); overflow:hidden; background:#fff; }
.woocommerce table.shop_table th{ background:var(--vp-cream-2); font-family:var(--vp-font-head); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .cart .quantity input{
  border:1px solid var(--vp-kraft-soft) !important; border-radius:10px !important; padding:12px 14px !important; background:#fff;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus{
  outline:none; border-color:var(--vp-gold) !important; box-shadow:0 0 0 3px rgba(200,153,47,.15);
}
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment{ background:var(--vp-cream-2); border-radius:var(--vp-radius); }

/* Generic page bottom air (policies, misc) */
.page:not(.woocommerce-page) #content.site-main{ padding-bottom:48px; }

/* Every last top-level section on Elementor pages carries closing air */
[data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-section:last-child,
[data-elementor-type="wp-page"] > .elementor-section:last-child{ padding-bottom:96px !important; }

/* BRAND FINISH — texture & confidence */
/* gold underline accent under section titles */
.vp-title .elementor-heading-title::after{
  content:""; display:block; width:56px; height:4px; border-radius:2px;
  background:linear-gradient(90deg,var(--vp-gold),var(--vp-gold-soft)); margin-top:14px;
}
.vp-intro .vp-title .elementor-heading-title::after,
.elementor-widget-heading[class*="vp-title"] .elementor-heading-title[style*="center"]::after{ margin-left:auto; margin-right:auto; }
.vp-intro .elementor-heading-title::after{ margin-left:auto; margin-right:auto; }
.vp-on-dark.vp-title .elementor-heading-title::after{ background:linear-gradient(90deg,var(--vp-gold-soft),#fff3d6); }
/* topbar refined */
.vp-topbar{ background:linear-gradient(90deg,var(--vp-gold-dark),var(--vp-gold)) !important; }
/* footer heading accents */
.vp-footer .elementor-heading-title{ position:relative; padding-bottom:10px; }
.vp-footer .elementor-heading-title::after{ content:""; position:absolute; left:0; bottom:0; width:26px; height:3px; border-radius:2px; background:var(--vp-gold); }
/* selection color */
::selection{ background:var(--vp-gold-soft); color:var(--vp-charcoal); }

/* v23 — title underline follows alignment (centered by default, left in splits) */
.vp-title .elementor-heading-title::after{ margin-left:auto; margin-right:auto; }
.elementor-col-50 .vp-title .elementor-heading-title::after{ margin-left:0; margin-right:0; }


/* v24 — logged-in admins: keep sticky header below the WP admin bar */
body.admin-bar .vp-header{ top:32px; }
@media (max-width:782px){ body.admin-bar .vp-header{ top:46px; } }

/* v24 — POLICY / CONTENT PAGES: branded, welcoming */
.page:not(.woocommerce-page):not(.elementor-page) .entry-header, .page-header{
  position:relative; overflow:hidden; text-align:center;
  background:linear-gradient(135deg,#1c1813 0%, #2a231a 100%);
  padding:74px 22px 66px;
}
.page:not(.woocommerce-page):not(.elementor-page) .entry-header::before{
  content:""; position:absolute; right:-40px; top:-30px; width:280px; height:280px; opacity:.12;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23C8992F"><circle cx="6.2" cy="10.2" r="2"/><circle cx="10" cy="6.6" r="2.05"/><circle cx="14" cy="6.6" r="2.05"/><circle cx="17.8" cy="10.2" r="2"/><ellipse cx="12" cy="16" rx="4.3" ry="3.5"/></svg>') no-repeat center/contain;
  transform:rotate(18deg);
}
.page:not(.woocommerce-page):not(.elementor-page) .entry-header::after{
  content:"The important stuff — in plain language"; display:block; margin-top:12px;
  color:#E8CE86; font-family:var(--vp-font-head); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; font-size:.74rem;
}
.page:not(.woocommerce-page):not(.elementor-page) .entry-title{ color:#FAF5EC !important; position:relative; z-index:1; }
/* first paragraph reads as a friendly intro */
.page:not(.woocommerce-page):not(.elementor-page) .entry-content > p:first-child{
  font-size:1.22rem; line-height:1.75; color:var(--vp-charcoal);
  border-left:4px solid var(--vp-gold); padding-left:18px; margin-bottom:1.6em;
}
/* branded headings + paw list bullets inside policy content */
.entry-content h2{ position:relative; padding-bottom:10px; }
.entry-content h2::after{ content:""; position:absolute; left:0; bottom:0; width:34px; height:3px; border-radius:2px; background:var(--vp-gold); }
.entry-content ul{ list-style:none; margin-left:0 !important; }
.entry-content ul li{ position:relative; padding-left:1.9em; }
.entry-content ul li::before{
  content:""; position:absolute; left:0; top:.35em; width:1.05em; height:1.05em;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23C8992F"><circle cx="6.2" cy="10.2" r="2"/><circle cx="10" cy="6.6" r="2.05"/><circle cx="14" cy="6.6" r="2.05"/><circle cx="17.8" cy="10.2" r="2"/><ellipse cx="12" cy="16" rx="4.3" ry="3.5"/></svg>') no-repeat center/contain;
}

/* v25 — branded policy intro card */
.vp-page-band{ position:relative; overflow:hidden; background:linear-gradient(135deg,#1C1813,#2A231A);
  border-radius:20px; padding:52px 42px 46px; margin:6px 0 46px; }
.vp-page-band::before{ content:""; position:absolute; right:-36px; top:-28px; width:230px; height:230px; opacity:.13; transform:rotate(18deg);
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23C8992F"><circle cx="6.2" cy="10.2" r="2"/><circle cx="10" cy="6.6" r="2.05"/><circle cx="14" cy="6.6" r="2.05"/><circle cx="17.8" cy="10.2" r="2"/><ellipse cx="12" cy="16" rx="4.3" ry="3.5"/></svg>') no-repeat center/contain; }
.vp-page-band__eyebrow{ color:#E8CE86 !important; font-family:var(--vp-font-head); font-weight:700;
  letter-spacing:.26em; text-transform:uppercase; font-size:.74rem; margin:0 0 8px; }
.vp-page-band__title{ color:#FAF5EC !important; margin:0 0 8px; font-size:clamp(1.9rem,4vw,2.7rem); position:relative; z-index:1; }
.vp-page-band__sub{ color:#CFC6B8 !important; margin:0; font-size:1.02rem; }

/* ==========================================================================
   v26 — CINEMATIC HERO, MARQUEE, JUNCTION FIX, SAFE MOTION
   ========================================================================== */
/* video hero: readable gradient, generous type */
.vp-vhero .elementor-background-overlay{
  background:linear-gradient(90deg, rgba(15,12,7,.84) 0%, rgba(15,12,7,.5) 55%, rgba(15,12,7,.18) 100%) !important;
  opacity:1 !important;
}
.vp-vhero .vp-lead p{ max-width:520px; }
/* badge now lives INSIDE the button row (.vp-cta-row) — wraps to its own line, compact pill, always aligned to the buttons' left edge */
.vp-cta-row .vp-badge-row{ flex:0 0 100%; margin-top:16px; display:flex; }
.vp-hero-badge-dark{ display:inline-flex; align-items:center; gap:6px; box-sizing:border-box; width:fit-content; max-width:100%;
  background:rgba(255,255,255,.93); color:#2C2823 !important; font-weight:700; font-family:var(--vp-font-head); font-size:.85rem;
  padding:.55em 1.2em; border-radius:999px; line-height:1.35; white-space:nowrap; margin:0; }
.vp-hero-badge-dark svg{ color:var(--vp-gold-dark); vertical-align:-3px; }

/* ===== Complianz consent banner — VeldPaws branding, centred bottom, mobile-friendly ===== */
.cmplz-cookiebanner{ left:50% !important; right:auto !important; transform:translateX(-50%) !important; bottom:22px !important;
  max-width:560px !important; width:calc(100% - 36px) !important; background:#141414 !important; color:#f5f0e6 !important;
  border:1px solid rgba(200,153,47,.35) !important; border-radius:16px !important; box-shadow:0 14px 44px rgba(0,0,0,.5) !important; }
.cmplz-cookiebanner .cmplz-title{ color:#ffffff !important; font-family:var(--vp-font-head) !important; }
.cmplz-cookiebanner .cmplz-body, .cmplz-cookiebanner .cmplz-message, .cmplz-cookiebanner p,
.cmplz-cookiebanner .cmplz-category-title, .cmplz-cookiebanner .cmplz-always-active{ color:#e8e1d3 !important; }
.cmplz-cookiebanner .cmplz-description, .cmplz-cookiebanner .cmplz-description *{ color:#c4bdae !important; }
.cmplz-cookiebanner .cmplz-close{ color:#f5f0e6 !important; }
.cmplz-cookiebanner a{ color:#E0B54A !important; text-decoration:underline !important; }
.cmplz-cookiebanner .cmplz-divider{ border-color:rgba(245,240,230,.15) !important; }
.cmplz-cookiebanner .cmplz-btn{ border-radius:9px !important; font-weight:700 !important; font-family:inherit !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept{ background:#C8992F !important; color:#141414 !important; border:0 !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover{ background:#d8a838 !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-deny, .cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences{ background:transparent !important; color:#f5f0e6 !important; border:1px solid rgba(245,240,230,.5) !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences, .cmplz-cookiebanner .cmplz-btn.cmplz-manage-options{ background:transparent !important; color:#E0B54A !important; border:1px solid rgba(200,153,47,.5) !important; }
.cmplz-cookiebanner .cmplz-slider{ background:rgba(245,240,230,.28) !important; }
.cmplz-cookiebanner input:checked + .cmplz-label .cmplz-slider,
.cmplz-cookiebanner .cmplz-consent-checkbox input:checked ~ .cmplz-slider{ background:#C8992F !important; }
@media (max-width:600px){
  .cmplz-cookiebanner{ width:calc(100% - 20px) !important; max-width:none !important; bottom:10px !important; }
  .cmplz-cookiebanner .cmplz-buttons{ display:flex !important; flex-direction:column !important; gap:8px !important; }
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn{ width:100% !important; margin:0 !important; }
}
/* persistent "Manage consent" revoke button — subtle branded tab, not a white block */
.cmplz-btn.cmplz-manage-consent{ background:#141414 !important; color:#E0B54A !important; border:1px solid rgba(200,153,47,.45) !important;
  border-radius:8px 0 0 8px !important; font-size:.78rem !important; font-weight:600 !important; padding:8px 14px !important; width:auto !important;
  box-shadow:0 4px 14px rgba(0,0,0,.28) !important; opacity:.85; }
.cmplz-btn.cmplz-manage-consent:hover{ opacity:1 !important; background:#1e1a15 !important; }

/* ===== Paystack "pay for order" receipt page — stack buttons, no overlap, mobile-friendly ===== */
#wc-paystack-form{ max-width:460px; margin:8px auto 44px; padding:0 18px; text-align:center; box-sizing:border-box; }
#wc-paystack-form > p{ margin:0 0 22px !important; font-size:1rem; line-height:1.55; }
#paystack_form{ display:flex; flex-direction:column; align-items:center; gap:14px; }
#paystack_form > form#order_review{ display:none !important; }
#paystack-payment-button,
#paystack-cancel-payment-button{
  display:block !important; width:100% !important; max-width:420px !important; margin:0 !important;
  box-sizing:border-box !important; text-align:center !important; float:none !important; }
/* keep the cancel action visually secondary */
#paystack-cancel-payment-button.button.cancel{ background:transparent !important; color:#141414 !important;
  border:1.5px solid rgba(20,20,20,.30) !important; box-shadow:none !important; }
#paystack-cancel-payment-button.button.cancel:hover{ background:rgba(20,20,20,.05) !important; }

/* brand marquee */
.vp-marquee-sec > .elementor-container{ max-width:100% !important; padding:0 !important; }
.vp-marquee-sec .elementor-widget-html{ margin:0; }
.vp-marquee{ overflow:hidden; padding:15px 0; }
.vp-marquee__track{ display:inline-flex; align-items:center; gap:36px; white-space:nowrap;
  animation:vpMarq 32s linear infinite; will-change:transform; padding-left:36px; }
.vp-marquee__track span{ color:#EDE6D6 !important; font-family:var(--vp-font-head); font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; font-size:.76rem; }
.vp-marquee__track i{ width:7px; height:7px; border-radius:50%; background:var(--vp-gold); display:inline-block; flex:none; }
@keyframes vpMarq{ from{ transform:translateX(0); } to{ transform:translateX(-25%); } }
@media (prefers-reduced-motion: reduce){ .vp-marquee__track{ animation:none; } }

/* header/topbar junction: no gaps, ever */
.vp-topbar, .vp-header{ margin:0 !important; }
.vp-topbar .elementor-element-populated, .vp-topbar .elementor-widget-wrap{ padding-top:0 !important; padding-bottom:0 !important; }
.vp-topbar .elementor-widget-html, .vp-topbar .elementor-widget{ margin:0 !important; }
.ehf-header .elementor-section, [data-elementor-type="wp-post"] > .elementor-section-wrap > .elementor-section{ margin:0 !important; }

/* safe progressive motion: visible by default, animates only once JS confirms */
.vp-m-init{ opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.vp-m-in{ opacity:1 !important; transform:none !important; }

/* v27 — button label spans must inherit the button's color (fixes ghost/dark labels) */
.elementor-button span, .elementor-button .elementor-button-text,
.woocommerce .button span, .wp-element-button span{ color:inherit !important; }

/* ==========================================================================
   v28 — CARD ARCHITECTURE: gutters between cards (card = inner wrap, not column)
   ========================================================================== */
/* category / feature cards */
.vp-card{ background:transparent !important; box-shadow:none !important; border-radius:0 !important; overflow:visible !important; }
.vp-card:hover{ transform:none !important; }
.vp-card > .elementor-element-populated{
  background:#fff; border-radius:22px; overflow:hidden; box-shadow:var(--vp-shadow);
  margin:0 16px !important; padding:0 !important; height:100%;
  display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
}
.vp-card:hover > .elementor-element-populated{ transform:translateY(-6px); box-shadow:var(--vp-shadow-lg); }
.vp-card .elementor-widget-image img{ height:232px; }

/* review cards — same fix */
.vp-review{ background:transparent !important; border:none !important; box-shadow:none !important; padding:0 !important; }
.vp-review > .elementor-element-populated{
  background:#fff; border:1px solid var(--vp-kraft-soft); border-radius:16px;
  box-shadow:var(--vp-shadow); padding:30px 28px !important; margin:0 12px !important; height:100%;
  transition:transform .2s ease, box-shadow .2s ease;
}
.vp-review:hover > .elementor-element-populated{ transform:translateY(-4px); box-shadow:var(--vp-shadow-lg); }

/* mobile: stack with vertical spacing instead of side margins */
@media (max-width:767px){
  .vp-card > .elementor-element-populated{ margin:0 0 22px !important; }
  .vp-review > .elementor-element-populated{ margin:0 0 18px !important; }
}

/* laptop widths: more generous page gutters so content never feels edge-to-edge */
@media (min-width:768px) and (max-width:1366px){
  .elementor-section > .elementor-container{ padding-left:44px; padding-right:44px; }
}

/* ==========================================================================
   v28b — GLOBAL BREATHING ROOM: no image edge ever touches another element
   ========================================================================== */
/* every split photo panel: rounded, inset from section edges */
.vp-hero-photo{
  border-radius:20px; overflow:hidden;
  margin:40px 0 !important; min-height:440px !important;
  box-shadow:var(--vp-shadow);
}
@media (max-width:1024px){
  .vp-hero-photo{ margin:0 0 10px !important; min-height:320px !important; border-radius:14px; }
}
/* splits: text column separated from photo by real space */
.elementor-col-50 > .elementor-element-populated{ min-width:0; }

/* fitted images: consistent crops everywhere */
.vp-round img{ width:100%; height:420px; object-fit:cover; }
.vp-card .elementor-widget-image img{ height:232px; object-fit:cover; }
.woocommerce ul.products li.product img{ aspect-ratio:1/1; object-fit:cover; }

/* contact page: photo aligns with info block height */
.vp-round .elementor-widget-container{ line-height:0; }

/* v28c — kill theme masthead remnants (white bar above header) */
#masthead .main-title, .bhf-hidden{ display:none !important; visibility:hidden !important; height:0 !important; margin:0 !important; padding:0 !important; }
#masthead{ margin:0 !important; padding:0 !important; background:transparent !important; }
body{ margin:0 !important; }

/* ==========================================================================
   v29 — contact cards, robust admin-bar offset, checkout branding
   ========================================================================== */
/* contact info card rows */
.vp-contact-card{ background:#fff; border:1px solid var(--vp-kraft-soft); border-radius:16px;
  box-shadow:var(--vp-shadow); padding:10px 22px; margin:18px 0 22px; max-width:460px; }
.vp-crow{ display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px dashed var(--vp-kraft-soft); }
.vp-crow:last-child{ border-bottom:none; }
.vp-crow__ic{ flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; border-radius:50%; background:rgba(200,153,47,.12); color:var(--vp-gold-dark); }
.vp-crow__txt{ line-height:1.5; }
.vp-crow__txt strong{ font-family:var(--vp-font-head); color:var(--vp-charcoal); }

/* header offset uses WP's own admin-bar height variable (32/46px safe) */
body.admin-bar .vp-header{ top:var(--wp-admin--admin-bar--height, 32px); }
html{ background:var(--vp-cream); }
.hfe-skip-link{ position:absolute !important; left:-9999px !important; top:auto !important; }
.hfe-skip-link:focus{ left:12px !important; top:12px !important; z-index:100000; background:#fff; padding:8px 14px; border-radius:8px; }

/* cart/checkout/account: hide duplicate page titles (band supplies the H1) */
.woocommerce-cart #content.site-main > .entry-title,
.woocommerce-checkout #content.site-main > .entry-title,
.woocommerce-cart h1.entry-title, .woocommerce-checkout h1.entry-title{ display:none; }
.woocommerce-cart .vp-page-band, .woocommerce-checkout .vp-page-band, .woocommerce-account .vp-page-band{ margin-top:20px; }

/* v30 — contact form card beside info */
.vp-form-card > .elementor-element-populated{
  background:#fff; border:1px solid var(--vp-kraft-soft); border-radius:20px;
  box-shadow:var(--vp-shadow); padding:34px 34px 28px !important;
}
.vp-form-card .wpcf7 .wpcf7-form{ max-width:100%; }
.vp-form-card h3.elementor-heading-title{ font-size:1.5rem !important; margin-bottom:2px; }

/* v30 — footer social icons */
.vp-social{ display:flex; gap:12px; margin-top:16px; }
.vp-social a{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px;
  border-radius:50%; border:1px solid rgba(255,255,255,.22); color:#CFC6B6 !important; transition:all .2s ease; }
.vp-social a:hover{ background:var(--vp-gold); border-color:var(--vp-gold); color:#fff !important; transform:translateY(-2px); }

/* ==========================================================================
   v31 — MOBILE HEADER ROW, CUSTOM CART ICON
   ========================================================================== */
/* mobile header: one clean row — logo left, hamburger + cart right */
@media (max-width:767px){
  .vp-header > .elementor-container{ flex-wrap:nowrap !important; flex-direction:row !important; align-items:center; min-height:64px; }
  .vp-header .elementor-column{ width:auto !important; }
  .vp-header .elementor-column:first-child{ flex:1 1 auto; }
  .vp-header .elementor-column:nth-child(2), .vp-header .elementor-column:last-child{ flex:0 0 auto; }
  .vp-header .elementor-widget-image img{ max-height:36px; }
  .vp-header .hfe-nav-menu__toggle{ padding:10px; margin-right:2px; }
  .vp-header .elementor-widget-hfe-cart .elementor-widget-container{ justify-content:flex-end; }
}

/* custom cart icon: paw shopping bag (mask over currentColor) */
.vp-header .elementor-widget-hfe-cart .elementor-button-icon svg,
.vp-header .elementor-widget-hfe-cart .elementor-button-icon i,
.vp-header .hfe-cart-container > svg, .vp-header .hfe-cart-container > i{ display:none !important; }
.vp-header .hfe-cart-container .elementor-button-icon{ position:relative; display:inline-flex; align-items:center; justify-content:center; }
.vp-header .hfe-cart-container .elementor-button-icon::before{
  content:""; display:block; width:26px; height:26px; background:currentColor;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7"><path d="M5.8 8.3h12.4l-1 11.2a1.4 1.4 0 0 1-1.4 1.2H8.2a1.4 1.4 0 0 1-1.4-1.2z"/><path d="M9 10.2V7a3 3 0 0 1 6 0v3.2" stroke-linecap="round"/><g fill="black" stroke="none"><circle cx="10.4" cy="13.4" r=".8"/><circle cx="13.6" cy="13.4" r=".8"/><circle cx="9.4" cy="14.9" r=".7"/><circle cx="14.6" cy="14.9" r=".7"/><ellipse cx="12" cy="16.3" rx="1.6" ry="1.3"/></g></svg>') no-repeat center/contain;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7"><path d="M5.8 8.3h12.4l-1 11.2a1.4 1.4 0 0 1-1.4 1.2H8.2a1.4 1.4 0 0 1-1.4-1.2z"/><path d="M9 10.2V7a3 3 0 0 1 6 0v3.2" stroke-linecap="round"/><g fill="black" stroke="none"><circle cx="10.4" cy="13.4" r=".8"/><circle cx="13.6" cy="13.4" r=".8"/><circle cx="9.4" cy="14.9" r=".7"/><circle cx="14.6" cy="14.9" r=".7"/><ellipse cx="12" cy="16.3" rx="1.6" ry="1.3"/></g></svg>') no-repeat center/contain;
}
.vp-header .hfe-cart-count{ position:absolute; top:-7px; right:-9px; min-width:18px; height:18px; line-height:18px;
  border-radius:999px; font-size:11px; text-align:center; padding:0 4px; }

/* v32 — cart icon v2: HFE draws its bag from .hfe-cart-count + :after handle.
   Replace with paw-bag mask + small count badge. */
.vp-header .hfe-menu-cart__toggle .elementor-button{
  background:transparent !important; box-shadow:none !important; border:none !important;
  padding:6px !important; min-height:0 !important; position:relative; color:#F3ECDD !important;
}
.vp-header .hfe-menu-cart__toggle .elementor-button:hover{ color:var(--vp-gold-soft) !important; transform:none; }
.vp-header .hfe-menu-cart__toggle .elementor-button::before{
  content:""; display:block; width:27px; height:27px; background:currentColor;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7"><path d="M5.8 8.3h12.4l-1 11.2a1.4 1.4 0 0 1-1.4 1.2H8.2a1.4 1.4 0 0 1-1.4-1.2z"/><path d="M9 10.2V7a3 3 0 0 1 6 0v3.2" stroke-linecap="round"/><g fill="black" stroke="none"><circle cx="10.4" cy="13.4" r=".8"/><circle cx="13.6" cy="13.4" r=".8"/><circle cx="9.4" cy="14.9" r=".7"/><circle cx="14.6" cy="14.9" r=".7"/><ellipse cx="12" cy="16.3" rx="1.6" ry="1.3"/></g></svg>') no-repeat center/contain;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.7"><path d="M5.8 8.3h12.4l-1 11.2a1.4 1.4 0 0 1-1.4 1.2H8.2a1.4 1.4 0 0 1-1.4-1.2z"/><path d="M9 10.2V7a3 3 0 0 1 6 0v3.2" stroke-linecap="round"/><g fill="black" stroke="none"><circle cx="10.4" cy="13.4" r=".8"/><circle cx="13.6" cy="13.4" r=".8"/><circle cx="9.4" cy="14.9" r=".7"/><circle cx="14.6" cy="14.9" r=".7"/><ellipse cx="12" cy="16.3" rx="1.6" ry="1.3"/></g></svg>') no-repeat center/contain;
}
.vp-header .hfe-cart-count{
  position:absolute !important; top:-3px; right:-7px;
  background:var(--vp-gold) !important; color:#fff !important; border:none !important;
  min-width:17px; height:17px; line-height:17px !important; font-size:10px !important;
  border-radius:999px !important; padding:0 4px !important; text-align:center;
  font-family:var(--vp-font-head); font-weight:700;
}
.vp-header .hfe-cart-count:after{ display:none !important; content:none !important; border:none !important; }

/* v33 — mobile polish: buttons, trust grid, badge */
@media (max-width:767px){
  /* single-line Add To Cart */
  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product .added_to_cart{
    white-space:nowrap; font-size:.8rem !important; padding:.66em 1.05em !important;
    margin:12px 14px 0 !important; min-height:40px;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size:1rem !important; padding:0 14px !important; }
  .woocommerce ul.products li.product .price{ padding:2px 14px 0 !important; font-size:1.05rem !important; }
  /* trust strip: 2×2 grid */
  .vp-trust-col{ width:50% !important; }
  .vp-trust-col .vp-ic{ width:50px; height:50px; }
  .vp-trust-col{ border-right:none; margin-bottom:14px; }
  /* hero badge tighter */
  .vp-hero-badge-dark{ font-size:.72rem; padding:.5em 1em; }
}

/* ==========================================================================
   v35 — SMOOTH MOBILE MENU (animated slide-down, refined styling)
   ========================================================================== */
@media (max-width:1024px){
  .vp-header .hfe-nav-menu ul, .vp-header ul.hfe-nav-menu{
    display:flex !important; flex-direction:column;
    position:absolute; top:100%; left:0; right:0; z-index:1000;
    background:#171310; margin:0; padding:6px 0 10px;
    border-top:2px solid var(--vp-gold);
    box-shadow:0 22px 40px rgba(0,0,0,.45);
    max-height:0; opacity:0; overflow:hidden; visibility:hidden; pointer-events:none;
    transition:max-height .34s cubic-bezier(.25,.8,.35,1), opacity .26s ease, visibility 0s .34s;
  }
  .vp-header.vp-open .hfe-nav-menu ul, .vp-header.vp-open ul.hfe-nav-menu{
    max-height:320px; opacity:1; visibility:visible; pointer-events:auto;
    transition:max-height .34s cubic-bezier(.25,.8,.35,1), opacity .26s ease, visibility 0s;
  }
  .vp-header .hfe-nav-menu ul li{ width:100%; }
  .vp-header .hfe-nav-menu ul a.hfe-menu-item{
    display:block; padding:15px 26px !important; font-size:16px !important;
    border-bottom:1px solid rgba(255,255,255,.07); border-left:3px solid transparent;
    transition:border-color .2s ease, background .2s ease;
  }
  .vp-header .hfe-nav-menu ul li:last-child a.hfe-menu-item{ border-bottom:none; }
  .vp-header .hfe-nav-menu ul a.hfe-menu-item:active,
  .vp-header .hfe-nav-menu ul .current-menu-item > a.hfe-menu-item{
    border-left-color:var(--vp-gold); background:rgba(200,153,47,.08);
  }
  /* hamburger rotates into place when open */
  .vp-header .hfe-nav-menu-icon{ transition:transform .3s ease; display:inline-flex; }
  .vp-header.vp-open .hfe-nav-menu-icon{ transform:rotate(90deg); }
}

/* v36 — mobile menu: HFE hides the parent nav at its breakpoint (opacity/visibility/height),
   which suppresses painting of our dropdown. Force the nav shell visible; the UL controls open/close. */
@media (max-width:1024px){
  .vp-header nav.hfe-nav-menu__layout-horizontal{
    display:block !important; visibility:visible !important; opacity:1 !important;
    height:auto !important; min-height:0; position:static !important;
    overflow:visible !important; pointer-events:none;
  }
  .vp-header nav.hfe-nav-menu__layout-horizontal ul{ pointer-events:none; }
  .vp-header.vp-open nav.hfe-nav-menu__layout-horizontal ul{ pointer-events:auto; }
}

/* v36 — mobile checkout/cart items: compact, readable order summary */
@media (max-width:767px){
  .wc-block-components-order-summary-item{ align-items:flex-start !important; padding:14px 0 !important; }
  .wc-block-components-order-summary-item__image{ width:54px !important; min-width:54px; }
  .wc-block-components-order-summary-item__image img{ border-radius:10px; }
  .wc-block-components-order-summary-item__description{ padding-left:12px !important; }
  .wc-block-components-order-summary-item__description p,
  .wc-block-components-order-summary-item__description .wc-block-components-product-metadata{ display:none !important; }
  .wc-block-components-product-name{ font-size:.95rem !important; font-weight:700 !important; color:var(--vp-charcoal) !important; }
  .wc-block-components-order-summary-item__total-price{ font-weight:800 !important; }
  .wc-block-components-totals-item{ font-size:.95rem; }
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ font-size:1.15rem; font-weight:800; }
  /* cart page line items */
  .wc-block-cart-item__image img{ border-radius:10px; }
  .wc-block-cart-item__product .wc-block-components-product-metadata{ display:none !important; }
  .wc-block-cart .wc-block-cart-item__quantity{ margin-top:6px; }
}



/* ==========================================================================
   v38 — mobile dropdown: FIXED full-width panel under the header (bulletproof)
   ========================================================================== */
@media (max-width:1024px){
  .vp-header .elementor-widget-navigation-menu ul.hfe-nav-menu,
  .vp-header .hfe-nav-menu ul, .vp-header ul.hfe-nav-menu{
    position:fixed !important; top:var(--vp-menu-top, 104px) !important;
    left:0 !important; right:0 !important; width:100% !important; min-width:0 !important;
    background:#171310 !important; border-top:2px solid var(--vp-gold) !important;
    box-shadow:0 22px 40px rgba(0,0,0,.45) !important; z-index:1200 !important;
  }
  .vp-header .hfe-nav-menu ul a.hfe-menu-item,
  .vp-header ul.hfe-nav-menu a.hfe-menu-item{
    color:#F3ECDD !important; background:transparent !important;
  }
  .vp-header .hfe-nav-menu ul .current-menu-item > a.hfe-menu-item{ color:var(--vp-gold-soft) !important; }
}

/* ==========================================================================
   v39 — cart icon (encoded masks): bag when empty, PAW + gold when items in.
   Overrides the earlier unencoded mask that failed to render.
   ========================================================================== */
.vp-header .hfe-menu-cart__toggle .elementor-button::before{
  content:""; display:block; width:26px; height:26px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%3E%3Cpath%20d%3D%22M5.8%208.3h12.4l-1%2011.2a1.4%201.4%200%200%201-1.4%201.2H8.2a1.4%201.4%200%200%201-1.4-1.2z%22%2F%3E%3Cpath%20d%3D%22M9%2010.2V7a3%203%200%200%201%206%200v3.2%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%3E%3Cpath%20d%3D%22M5.8%208.3h12.4l-1%2011.2a1.4%201.4%200%200%201-1.4%201.2H8.2a1.4%201.4%200%200%201-1.4-1.2z%22%2F%3E%3Cpath%20d%3D%22M9%2010.2V7a3%203%200%200%201%206%200v3.2%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
}
.vp-header .hfe-menu-cart__toggle .elementor-button.vp-has-items{ color:var(--vp-gold) !important; }
.vp-header .hfe-menu-cart__toggle .elementor-button.vp-has-items::before{
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22black%22%3E%3Ccircle%20cx%3D%226.2%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2217.8%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2216%22%20rx%3D%224.3%22%20ry%3D%223.5%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22black%22%3E%3Ccircle%20cx%3D%226.2%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2217.8%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2216%22%20rx%3D%224.3%22%20ry%3D%223.5%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
}

/* v39 — compact contact form card */
.vp-form-card > .elementor-element-populated{ padding:26px 26px 22px !important; }
.vp-form-card h3.elementor-heading-title{ font-size:1.3rem !important; }
.vp-form-card .wpcf7-form p{ margin:0 0 10px; }
.vp-form-card input.wpcf7-form-control:not(.wpcf7-submit),
.vp-form-card select.wpcf7-form-control{ padding:10px 12px; font-size:.95rem; }
.vp-form-card textarea.wpcf7-form-control{ min-height:110px; padding:10px 12px; font-size:.95rem; }
.vp-form-card input.wpcf7-submit{ padding:.7em 1.8em !important; font-size:.95rem !important; min-height:44px; }

/* ==========================================================================
   v40 — cart icon on the REAL HFE markup (a.hfe-cart-container, no button el)
   ========================================================================== */
.vp-header a.hfe-cart-container{
  position:relative !important; display:inline-flex !important; align-items:center; justify-content:center;
  width:42px; height:42px; color:#F3ECDD !important; background:transparent !important; border:none !important;
  transition:color .2s ease;
}
.vp-header a.hfe-cart-container::before{
  content:""; display:block; width:26px; height:26px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%3E%3Cpath%20d%3D%22M5.8%208.3h12.4l-1%2011.2a1.4%201.4%200%200%201-1.4%201.2H8.2a1.4%201.4%200%200%201-1.4-1.2z%22%2F%3E%3Cpath%20d%3D%22M9%2010.2V7a3%203%200%200%201%206%200v3.2%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%3E%3Cpath%20d%3D%22M5.8%208.3h12.4l-1%2011.2a1.4%201.4%200%200%201-1.4%201.2H8.2a1.4%201.4%200%200%201-1.4-1.2z%22%2F%3E%3Cpath%20d%3D%22M9%2010.2V7a3%203%200%200%201%206%200v3.2%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
}
.vp-header a.hfe-cart-container:hover{ color:var(--vp-gold-soft) !important; }
.vp-header a.hfe-cart-container.vp-has-items{ color:var(--vp-gold) !important; }
.vp-header a.hfe-cart-container.vp-has-items::before{
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22black%22%3E%3Ccircle%20cx%3D%226.2%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2217.8%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2216%22%20rx%3D%224.3%22%20ry%3D%223.5%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22black%22%3E%3Ccircle%20cx%3D%226.2%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%226.6%22%20r%3D%222.05%22%2F%3E%3Ccircle%20cx%3D%2217.8%22%20cy%3D%2210.2%22%20r%3D%222%22%2F%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2216%22%20rx%3D%224.3%22%20ry%3D%223.5%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
}
.vp-header .hfe-cart-menu-wrap-default{ position:static !important; border:none !important; background:transparent !important; padding:0 !important; }
.vp-header .hfe-cart-count{
  position:absolute !important; top:1px; right:-2px;
  background:var(--vp-charcoal) !important; color:#fff !important; border:1.5px solid var(--vp-gold) !important;
  min-width:17px; height:17px; line-height:14px !important; font-size:10px !important;
  border-radius:999px !important; padding:0 4px !important; text-align:center;
  font-family:var(--vp-font-head); font-weight:700; width:auto !important;
}

/* ==========================================================================
   v42 — cart/checkout blocks: kill alignwide/alignfull negative margins
   (they shifted the cart off the left edge on phones)
   ========================================================================== */
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout,
.woocommerce-account .wp-block-woocommerce-classic-shortcode,
.entry-content .alignwide, .entry-content .alignfull,
#content.site-main .alignwide, #content.site-main .alignfull{
  margin-left:0 !important; margin-right:0 !important;
  max-width:100% !important; width:auto !important;
}
.woocommerce-cart #content.site-main,
.woocommerce-checkout #content.site-main,
.woocommerce-account #content.site-main{ overflow-x:clip; }
@media (max-width:767px){
  .woocommerce-cart #content.site-main,
  .woocommerce-checkout #content.site-main,
  .woocommerce-account #content.site-main{ padding-left:16px; padding-right:16px; }
  .vp-page-band{ padding:38px 26px 34px; margin-bottom:30px; }
}

/* ==========================================================================
   v43 — cart/account icons as INLINE SVG (iOS-safe, no CSS masks)
   ========================================================================== */
/* neutralise the old mask ::before that failed on Safari */
.vp-header a.hfe-cart-container::before{ content:none !important; display:none !important; }
.vp-header .hfe-menu-cart__toggle .elementor-button::before{ content:none !important; display:none !important; }

.vp-header .elementor-widget-hfe-cart .elementor-widget-container{
  display:flex !important; align-items:center; justify-content:flex-end; gap:6px;
}
.vp-header a.hfe-cart-container{
  position:relative !important; display:inline-flex !important; align-items:center; justify-content:center;
  width:40px; height:40px; color:#F3ECDD !important; background:transparent !important; border:none !important;
  transition:color .2s ease;
}
.vp-header a.hfe-cart-container:hover{ color:var(--vp-gold-soft) !important; }
.vp-header a.hfe-cart-container.vp-has-items{ color:var(--vp-gold) !important; }
.vp-cart-ico{ display:inline-flex; }
.vp-cart-ico svg{ width:26px; height:26px; display:block; }

.vp-account-link{
  display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  color:#F3ECDD !important; transition:color .2s ease;
}
.vp-account-link:hover{ color:var(--vp-gold-soft) !important; }
.vp-account-link svg{ width:24px; height:24px; display:block; }

/* count badge sits on the cart icon */
.vp-header .hfe-cart-menu-wrap-default{ position:static !important; border:none !important; background:transparent !important; padding:0 !important; }
.vp-header .hfe-cart-count{
  position:absolute !important; top:0; right:-3px;
  background:var(--vp-charcoal) !important; color:#fff !important; border:1.5px solid var(--vp-gold) !important;
  min-width:17px; height:17px; line-height:14px !important; font-size:10px !important;
  border-radius:999px !important; padding:0 4px !important; text-align:center;
  font-family:var(--vp-font-head); font-weight:700; width:auto !important;
}
.vp-header .hfe-cart-count:after{ content:none !important; display:none !important; }

/* ==========================================================================
   v44 — BRANDED LOGIN / MY ACCOUNT PAGE
   ========================================================================== */
.woocommerce-account:not(.logged-in) .vp-page-band{ display:none; }
/* two-column auth layout on a warm canvas */
.woocommerce-account:not(.logged-in) #content.site-main{ max-width:1040px; }
.woocommerce-account .u-columns.col2-set,
.woocommerce-account .woocommerce > .u-columns{ display:grid !important; grid-template-columns:1fr 1fr; gap:26px; width:100%; margin:0; float:none; }
.woocommerce-account .col-1, .woocommerce-account .col-2{ width:auto !important; float:none !important; }
.woocommerce-account form.login, .woocommerce-account form.register{
  border:1px solid var(--vp-kraft-soft) !important; border-radius:20px; background:#fff;
  box-shadow:var(--vp-shadow); padding:32px 30px 26px !important; margin:0 !important;
}
.woocommerce-account .col-1 > h2, .woocommerce-account .col-2 > h2,
.woocommerce-account .u-column1 > h2, .woocommerce-account .u-column2 > h2{
  font-family:var(--vp-font-head); font-size:1.5rem; margin:0 0 4px; color:var(--vp-charcoal);
}
.woocommerce-account form.login::before, .woocommerce-account form.register::before{
  content:""; display:block; width:56px; height:56px; margin:0 auto 14px;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23C8992F"><circle cx="6.2" cy="10.2" r="2"/><circle cx="10" cy="6.6" r="2.05"/><circle cx="14" cy="6.6" r="2.05"/><circle cx="17.8" cy="10.2" r="2"/><ellipse cx="12" cy="16" rx="4.3" ry="3.5"/></svg>') no-repeat center/contain;
}
.woocommerce-account .woocommerce-form-row label{ font-family:var(--vp-font-head); font-weight:600; font-size:.9rem; }
.woocommerce-account input.input-text, .woocommerce-account input.woocommerce-Input{
  width:100%; padding:13px 14px !important; border:1px solid var(--vp-kraft-soft) !important; border-radius:12px !important; background:#fff;
}
.woocommerce-account input.input-text:focus{ outline:none; border-color:var(--vp-gold) !important; box-shadow:0 0 0 3px rgba(200,153,47,.15); }
.woocommerce-account form.login .button, .woocommerce-account form.register .button{ width:100%; justify-content:center; margin-top:6px; }
.woocommerce-account .woocommerce-LostPassword a{ color:var(--vp-gold-dark); font-size:.9rem; }
/* logged-in: branded account nav */
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; border:1px solid var(--vp-kraft-soft); border-radius:16px; overflow:hidden; background:#fff; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li{ border-bottom:1px solid var(--vp-kraft-soft); }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li:last-child{ border-bottom:none; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a{ display:block; padding:14px 20px; font-family:var(--vp-font-head); font-weight:600; color:var(--vp-ink); }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a{ background:rgba(200,153,47,.1); color:var(--vp-gold-dark); border-left:3px solid var(--vp-gold); }
@media (max-width:767px){
  .woocommerce-account .u-columns.col2-set, .woocommerce-account .woocommerce > .u-columns{ grid-template-columns:1fr; }
}
/* ===== v73 — logged-in My Account: mobile-friendly (nav + content full width, no narrow float) ===== */
@media (max-width:900px){
  .woocommerce-account.logged-in .woocommerce{ display:block !important; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
  .woocommerce-account.logged-in .woocommerce-MyAccount-content{
    width:100% !important; float:none !important; max-width:100% !important; margin:0 0 22px !important; padding:0 !important; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul{ margin-bottom:0; }
  /* orders / downloads / addresses tables: full width + comfortable stacked rows */
  .woocommerce-account.logged-in table.shop_table{ width:100% !important; display:block; }
  .woocommerce-account.logged-in table.shop_table thead{ display:none; }
  .woocommerce-account.logged-in table.shop_table tbody,
  .woocommerce-account.logged-in table.shop_table tr{ display:block; width:100%; }
  .woocommerce-account.logged-in table.shop_table tr{ border:1px solid var(--vp-kraft-soft); border-radius:14px; margin:0 0 14px; padding:6px 4px; background:#fff; }
  .woocommerce-account.logged-in table.shop_table td{ display:flex; justify-content:space-between; align-items:center; gap:14px;
    text-align:right; border:none; border-bottom:1px solid var(--vp-cream-2); padding:11px 16px; }
  .woocommerce-account.logged-in table.shop_table td:last-child{ border-bottom:none; }
  .woocommerce-account.logged-in table.shop_table td::before{ content:attr(data-title); font-family:var(--vp-font-head); font-weight:700;
    color:var(--vp-ink); text-align:left; flex:0 0 auto; }
  /* order actions: centered, wrapping button group — never overflow / cut off */
  .woocommerce-account.logged-in table.shop_table td.woocommerce-orders-table__cell-order-actions{
    flex-wrap:wrap; justify-content:center; gap:8px; padding-top:14px; padding-bottom:14px; }
  .woocommerce-account.logged-in table.shop_table td.woocommerce-orders-table__cell-order-actions::before{ display:none !important; }
  .woocommerce-account.logged-in table.shop_table td .button{
    margin:0 !important; padding:.62em 1.1em !important; font-size:.88rem !important;
    min-width:0 !important; flex:0 1 auto; text-align:center; box-shadow:none !important; }
}

/* ==========================================================================
   v45 — login / register clearly SEPARATED
   ========================================================================== */
.woocommerce-account:not(.logged-in) .u-columns.col2-set{
  display:grid !important; grid-template-columns:1fr 1fr; gap:56px; position:relative; align-items:start;
}
/* vertical divider with "or" on desktop */
.woocommerce-account:not(.logged-in) .u-columns.col2-set::before{
  content:"or"; position:absolute; left:50%; top:60px; transform:translateX(-50%);
  width:44px; height:44px; border-radius:50%; background:var(--vp-charcoal); color:var(--vp-gold-soft);
  display:flex; align-items:center; justify-content:center; font-family:var(--vp-font-head);
  font-weight:700; font-size:.85rem; z-index:2; box-shadow:var(--vp-shadow);
}
.woocommerce-account:not(.logged-in) .u-column1.col-1,
.woocommerce-account:not(.logged-in) .u-column2.col-2{ width:auto !important; float:none !important; margin:0 !important; }
.woocommerce-account:not(.logged-in) .u-columns.col2-set > .u-column1::after{
  content:""; position:absolute; left:50%; top:0; bottom:0; width:1px; background:var(--vp-kraft-soft); transform:translateX(-50%);
}
/* section labels above each card */
.woocommerce-account:not(.logged-in) .u-column1 > h2::before{ content:"Returning customer"; }
.woocommerce-account:not(.logged-in) .u-column2 > h2::before{ content:"New here?"; }
.woocommerce-account:not(.logged-in) .u-column1 > h2,
.woocommerce-account:not(.logged-in) .u-column2 > h2{ font-size:0 !important; margin-bottom:14px; }
.woocommerce-account:not(.logged-in) .u-column1 > h2::before,
.woocommerce-account:not(.logged-in) .u-column2 > h2::before{
  display:block; font-family:var(--vp-font-head); font-weight:800; font-size:1.55rem; color:var(--vp-charcoal);
}
@media (max-width:767px){
  .woocommerce-account:not(.logged-in) .u-columns.col2-set{ grid-template-columns:1fr; gap:40px; }
  .woocommerce-account:not(.logged-in) .u-columns.col2-set::before{ top:auto; left:50%;
    top:calc(50% - 22px); }
  .woocommerce-account:not(.logged-in) .u-columns.col2-set > .u-column1::after{ left:0; right:0; top:auto; bottom:-20px; width:auto; height:1px; transform:none; }
}

/* v46 — paw turns GOLD when cart has items (clear highlight) */
.vp-header a.hfe-cart-container.vp-has-items .vp-cart-ico svg{ fill:var(--vp-gold) !important; }
.vp-header a.hfe-cart-container.vp-has-items{ color:var(--vp-gold) !important; }

/* ==========================================================================
   v48 — OFFICIAL stacked logo sizing + hero button size
   ========================================================================== */
.vp-header > .elementor-container{ min-height:100px; }
.vp-header .elementor-widget-image img{ max-height:66px !important; width:auto !important; }
body.admin-bar .vp-header{ }
.vp-footer .elementor-widget-image img{ max-height:96px !important; width:auto !important; }
@media (max-width:767px){
  .vp-header > .elementor-container{ min-height:72px; }
  .vp-header .elementor-widget-image img{ max-height:48px !important; }
}
/* hero CTA buttons: equal, well-proportioned */
.vp-vhero .vp-cta-row .elementor-button{ min-width:172px; padding:.85em 1.9em !important; font-size:1rem !important; }
@media (max-width:767px){
  .vp-vhero .vp-cta-row{ width:100%; }
  .vp-vhero .vp-cta-row .elementor-widget-button{ flex:1 1 auto; }
  .vp-vhero .vp-cta-row .elementor-button{ min-width:0; width:100%; }
}

/* ==========================================================================
   v49 — SEPARATE login & register pages + newsletter band
   ========================================================================== */
/* login page: show login only, single column, centered */
.vp-login-page .u-column2.col-2{ display:none !important; }
.vp-register-page .u-column1.col-1{ display:none !important; }
.vp-login-page .u-columns.col2-set,
.vp-register-page .u-columns.col2-set{ grid-template-columns:1fr !important; max-width:460px; margin:0 auto; gap:0; }
.vp-login-page .u-columns.col2-set::before,
.vp-register-page .u-columns.col2-set::before,
.vp-login-page .u-column1::after,
.vp-register-page .u-column1::after{ display:none !important; content:none !important; }
.vp-login-page .u-column1 > h2::before{ content:"Log in" !important; }
.vp-register-page .u-column2 > h2::before{ content:"Create your account" !important; }
.vp-cross-link{ text-align:center; margin:20px auto 0; max-width:460px; font-family:var(--vp-font-body); }
.vp-cross-link a{ font-family:var(--vp-font-head); font-weight:700; color:var(--vp-gold-dark); text-decoration:underline; }
.vp-cross-link a:hover{ color:var(--vp-gold); }

/* newsletter band */
.vp-newsletter .mc4wp-form{ max-width:520px; margin:0 auto; display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.vp-newsletter .mc4wp-form input[type="email"]{
  flex:1 1 260px; padding:14px 16px; border-radius:999px; border:1px solid rgba(255,255,255,.2);
  background:#111; color:#fff; font-size:1rem; min-width:0;
}
.vp-newsletter .mc4wp-form input[type="email"]::placeholder{ color:#9c9485; }
.vp-newsletter .mc4wp-form input[type="submit"]{
  background:var(--vp-gold) !important; color:#fff !important; border:none; border-radius:999px;
  padding:14px 28px; font-family:var(--vp-font-head); font-weight:700; cursor:pointer; transition:background .2s ease;
}
.vp-newsletter .mc4wp-form input[type="submit"]:hover{ background:var(--vp-gold-dark) !important; }
.vp-newsletter .mc4wp-response{ width:100%; text-align:center; color:#E8CE86; margin-top:10px; }
