/* ============================================================
   KARÈVE — global WooCommerce styling (paste in Elementor > Site Settings > Custom CSS
   or Appearance > Customize > Additional CSS). Works with Hello Elementor theme.
   ============================================================ */
:root{
  --cream:#FBF4F1; --blush:#F4E4DF; --blush-2:#EDD6D0; --white:#FFFDFC;
  --berry:#7A2F3C; --ink:#3A2A2D; --ink-soft:#75616A; --rg1:#E9C3B6; --rg2:#C0827E; --rg3:#9A5C64;
  --rgold:linear-gradient(135deg,#E9C3B6 0%,#C88A86 45%,#A8646B 100%); --line:rgba(154,92,100,.18);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif;
}

/* ---------- base ---------- */
body.kv-site{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--cream);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
body.kv-site h1,body.kv-site h2,body.kv-site h3{font-family:var(--serif);font-weight:400;color:var(--berry);line-height:1.1}
body.kv-site a{color:var(--berry)}
body .site-header,body .site-footer{display:none} /* hide theme header/footer, we inject ours */
body.kv-site .site-main,body.kv-site .page-content,body.kv-site main{max-width:1200px;margin:0 auto;padding:0 20px}
body.kv-site .page-header{display:none}

/* ---------- KARÈVE header (injected by PHP) ---------- */
.kv-header{background:var(--cream);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;font-family:var(--sans)}
.kv-header .kv-nav{max-width:1200px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:72px}
.kv-header .kv-links{display:none;gap:30px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400}
.kv-header .kv-links a{color:var(--ink);text-decoration:none}.kv-header .kv-links a:hover{color:var(--berry)}
.kv-header .kv-logo{grid-column:2;text-align:center;font-family:var(--serif);font-size:22px;letter-spacing:.22em;color:var(--berry);line-height:1;text-decoration:none}
.kv-header .kv-logo small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.26em;color:var(--rg3);margin-top:4px;font-weight:400}
.kv-header .kv-icons{grid-column:3;display:flex;justify-content:flex-end;gap:2px;align-items:center}
.kv-header .kv-icons a{display:inline-flex;align-items:center;justify-content:center;position:relative;color:var(--ink);width:44px;height:44px;margin:-11px}
.kv-header .kv-icons svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:1.5}
.kv-header .kv-bag span{position:absolute;top:-7px;right:-9px;background:var(--berry);color:#fff;font-size:10px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;font-weight:400}
.kv-header .kv-burger{grid-column:1;justify-self:start;width:26px;height:22px;display:grid;gap:6px;align-content:center;background:none;border:0;cursor:pointer;padding:0;position:relative;z-index:2}
.kv-header .kv-burger i{display:block;height:1px;background:var(--ink);transition:transform .25s,opacity .2s}
.kv-header .kv-burger[aria-expanded=true] i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.kv-header .kv-burger[aria-expanded=true] i:nth-child(2){opacity:0}
.kv-header .kv-burger[aria-expanded=true] i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.kv-mnav{position:fixed;top:72px;left:0;right:0;bottom:0;z-index:39;background:var(--cream);padding:34px 24px;display:flex;flex-direction:column;gap:22px;transform:translateX(-100%);transition:transform .3s ease;overflow:auto;font-family:var(--sans)}
.kv-mnav.open{transform:none}
.kv-mnav a{font-family:var(--serif);font-size:28px;color:var(--berry);line-height:1;padding-bottom:12px;border-bottom:1px solid var(--line);text-decoration:none}
@media(min-width:900px){.kv-header .kv-icons{gap:6px}.kv-header .kv-nav{height:92px}.kv-header .kv-links{display:flex;grid-column:1}.kv-header .kv-burger,.kv-mnav{display:none}.kv-header .kv-logo{font-size:36px;letter-spacing:.3em}.kv-header .kv-logo small{font-size:9px;letter-spacing:.32em}.kv-header .kv-icons{gap:18px}}

/* ---------- KARÈVE footer (injected by PHP) ---------- */
.kv-footer{background:var(--cream);border-top:1px solid var(--line);padding:40px 20px 60px;margin-top:80px;font-family:var(--sans)}
.kv-footer .kv-row{max-width:1200px;margin:0 auto;display:grid;gap:22px;justify-items:center;text-align:center}
.kv-footer .kv-flogo{font-family:var(--serif);font-size:24px;letter-spacing:.3em;color:var(--berry)}
.kv-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.kv-footer nav a{color:var(--ink);text-decoration:none}.kv-footer nav a:hover{color:var(--berry)}
.kv-footer .kv-tag{margin-top:26px;text-align:center;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}
.kv-footer .kv-legal{margin-top:12px;text-align:center;font-size:12px;color:var(--ink-soft)}
.kv-footer .kv-legal a{margin:0 8px;color:var(--ink-soft)}
@media(min-width:900px){.kv-footer .kv-row{grid-template-columns:1fr auto 1fr;justify-items:stretch;align-items:center;text-align:left}.kv-footer .kv-flogo{justify-self:start;padding-right:30px;border-right:1px solid var(--line)}}
.kv-wa{position:fixed;right:16px;bottom:20px;z-index:50;width:54px;height:54px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.kv-wa svg{width:28px;height:28px;fill:#fff}

/* ---------- buttons (all Woo buttons) ---------- */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,.wc-block-components-button,.kv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 28px;border-radius:0;border:0;
  background:var(--rgold);color:#fff;font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;
  box-shadow:0 12px 26px -14px rgba(154,92,100,.7);cursor:pointer;text-decoration:none;transition:filter .2s,transform .15s;line-height:1.2}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce .single_add_to_cart_button:hover,.kv-btn:hover{filter:brightness(1.05);background:var(--rgold);color:#fff}
.woocommerce a.button:active,.kv-btn:active{transform:scale(.98)}
.kv-btn.ghost,.woocommerce a.button.ghost{background:transparent;color:var(--berry);box-shadow:inset 0 0 0 1px var(--rg2)}
.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled]{opacity:.5;padding:16px 28px;color:#fff}

/* ---------- shop / category grid ---------- */
.kv-shop-head{text-align:center;padding:56px 0 34px}
.kv-shop-head .kv-eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--rg3)}
.kv-shop-head h1{font-size:clamp(36px,6vw,58px);margin:12px 0 0}
.kv-shop-head p{color:var(--ink-soft);max-width:34em;margin:12px auto 0}
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{display:none}
.woocommerce-breadcrumb{display:none}
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(2,1fr);gap:28px 18px;margin:0 0 40px!important;padding:0}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important;text-align:center;background:none}
.woocommerce ul.products li.product a img{aspect-ratio:1/0.9;object-fit:cover;width:100%;margin:0 0 16px;transition:transform .7s}
.woocommerce ul.products li.product:hover a img{transform:scale(1.03)}
.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product h2{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);font-weight:500;padding:0;margin:0 0 6px}
.woocommerce ul.products li.product .price{font-family:var(--serif);font-size:20px;color:var(--rg3);margin:0 0 10px;display:block}
.woocommerce ul.products li.product .price del{opacity:.5}
.woocommerce ul.products li.product .button{margin:0;padding:12px 22px;font-size:11px}
.woocommerce ul.products li.product .onsale,.woocommerce span.onsale{background:var(--berry);border-radius:0;min-height:0;padding:4px 10px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;line-height:1.6;left:0;top:0;right:auto;margin:0}
.woocommerce ul.products li.product .star-rating{display:none}
@media(min-width:900px){.woocommerce ul.products{grid-template-columns:repeat(4,1fr);gap:36px 24px}}
.woocommerce nav.woocommerce-pagination ul{border:0}
.woocommerce nav.woocommerce-pagination ul li{border:0}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{font-family:var(--serif);font-size:18px;color:var(--berry);padding:6px 12px}
.woocommerce nav.woocommerce-pagination ul li span.current{background:none;border-bottom:1px solid var(--berry)}

/* ---------- single product ---------- */
.woocommerce div.product{padding-top:40px}
.woocommerce div.product div.images{margin-bottom:0}
.woocommerce div.product div.images img{width:100%}
.woocommerce div.product div.images .flex-control-thumbs{display:flex;gap:8px;margin-top:8px}
.woocommerce div.product div.images .flex-control-thumbs li{width:auto;flex:1;margin:0}
.woocommerce div.product .product_title{font-size:clamp(34px,5vw,48px);margin:10px 0 6px}
.woocommerce div.product p.price,.woocommerce div.product span.price{font-family:var(--serif);font-size:26px;color:var(--rg3);margin-bottom:18px}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--ink-soft);font-size:16px;max-width:30em}
.woocommerce div.product .woocommerce-product-rating{display:none}
.kv-product-eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--rg3)}
/* variations */
.woocommerce div.product form.cart{margin:24px 0}
.woocommerce div.product form.cart table.variations{margin-bottom:12px}
.woocommerce div.product form.cart table.variations th.label{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;color:var(--ink);padding:10px 16px 10px 0;vertical-align:middle;width:1%;white-space:nowrap}
.woocommerce div.product form.cart table.variations td.value{padding:6px 0}
.woocommerce div.product form.cart .variations select{width:100%;max-width:320px;padding:12px 40px 12px 14px;border:1px solid var(--rg1);background:#fff;font-family:var(--sans);font-size:14px;color:var(--ink);border-radius:0;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A2F3C' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
.woocommerce div.product form.cart .reset_variations{font-size:12px;color:var(--ink-soft);margin-left:6px}
.woocommerce div.product form.cart .woocommerce-variation-price{margin-bottom:12px}
.woocommerce div.product form.cart div.quantity{margin-right:12px}
.woocommerce .quantity .qty{width:72px;padding:14px 8px;border:1px solid var(--rg1);border-radius:0;font-family:var(--sans);font-size:14px;background:#fff;text-align:center}
.woocommerce div.product form.cart .single_add_to_cart_button{min-width:220px}
.woocommerce div.product .product_meta{display:none}
.woocommerce div.product .woocommerce-variation-description{font-size:14px;color:var(--ink-soft)}
/* contact buttons under add to cart */
.kv-product-contact{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 0}
.kv-product-contact .kv-btn{padding:13px 22px;font-size:11px}
.kv-product-note{font-size:13px;color:var(--ink-soft);margin:12px 0 0}
/* tabs */
.woocommerce div.product .woocommerce-tabs{margin-top:60px;border-top:1px solid var(--line);padding-top:30px}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 24px;border:0}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:none;border:0;border-radius:0;margin:0 28px 0 0;padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);padding:8px 0;font-weight:400}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--berry);border-bottom:1px solid var(--berry)}
.woocommerce div.product .woocommerce-tabs .panel h2{display:none}
.woocommerce div.product .woocommerce-tabs .panel{color:var(--ink-soft);max-width:40em}
/* related */
.woocommerce .related.products,.woocommerce .upsells.products{margin-top:80px;padding-top:40px;border-top:1px solid var(--line)}
.woocommerce .related.products>h2,.woocommerce .upsells.products>h2{text-align:center;font-size:36px;margin-bottom:30px}
/* messages */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-notices-wrapper .woocommerce-message{border-top:0;border-left:2px solid var(--rg2);background:var(--blush);color:var(--ink);font-family:var(--sans);font-size:14px}
.woocommerce-message::before,.woocommerce-info::before{color:var(--berry)}
.woocommerce-message a.button{float:none;margin-right:16px}

/* ---------- cart / checkout / account ---------- */
.woocommerce-cart .site-main,.woocommerce-checkout .site-main,.woocommerce-account .site-main{padding-top:40px}
.woocommerce table.shop_table{border:0;border-collapse:collapse;font-family:var(--sans)}
.woocommerce table.shop_table th{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;color:var(--ink-soft);border-bottom:1px solid var(--line)}
.woocommerce table.shop_table td{border-top:1px solid var(--line);padding:16px 12px}
.woocommerce table.shop_table td.product-name a{color:var(--ink);text-decoration:none;font-weight:400}
.woocommerce .cart-collaterals .cart_totals h2,.woocommerce-checkout #order_review_heading,.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3,.woocommerce-additional-fields h3{font-size:28px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.select2-container--default .select2-selection--single{border:1px solid var(--rg1);border-radius:0;padding:12px 14px;font-family:var(--sans);font-size:14px;background:#fff;height:auto}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:1.6;padding:0}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}
.woocommerce form .form-row label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);font-weight:400}
.woocommerce #payment{background:var(--blush);border-radius:0}
.woocommerce #payment div.payment_box{background:#fff;border-radius:0}
.woocommerce #payment div.payment_box::before{border-bottom-color:#fff}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--line)}
.woocommerce #payment #place_order{width:100%}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--berry)}
.woocommerce-form-login,.woocommerce-form-register{border:1px solid var(--line)!important;border-radius:0!important;padding:30px!important}
/* WC Blocks (cart/checkout blocks) */
.wc-block-components-checkout-step__title,.wc-block-cart__totals-title{font-family:var(--serif);font-size:24px;color:var(--berry);letter-spacing:0;text-transform:none}
.wc-block-components-text-input input,.wc-block-components-select .components-custom-select-control__button{border-radius:0;border-color:var(--rg1);font-family:var(--sans)}
.wc-block-components-product-name{font-family:var(--sans);color:var(--ink)}
.wc-block-components-button{border-radius:0}

/* header strip + social */
.kv-strip{background:var(--blush);text-align:center;font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--berry);padding:8px 12px}
.kv-footer .kv-social{display:flex;gap:18px;justify-content:center}
.kv-footer .kv-social a{color:var(--ink);font-size:11px;letter-spacing:.22em;text-transform:uppercase;text-decoration:none}
@media(min-width:900px){.kv-footer .kv-social{justify-self:end}}
/* Hello theme container */
body.kv-site .site-main,body.kv-site main.site-main{max-width:1200px;margin:0 auto;padding:0 20px}
body.kv-site .woocommerce-store-notice{display:none}

/* =================== v1.1 polish: header, hover, motion, floating actions =================== */
/* sticky header: shrink + blur on scroll */
.kv-header{transition:box-shadow .3s,background .3s}
.kv-header .kv-nav{transition:height .3s}
.kv-header.is-stuck{background:rgba(251,244,241,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px -22px rgba(122,47,60,.45)}
@media(min-width:900px){.kv-header.is-stuck .kv-nav{height:68px}.kv-header.is-stuck .kv-logo{font-size:28px}}
.kv-header .kv-logo{transition:font-size .3s}
/* nav underline draw */
.kv-header .kv-links a{position:relative;padding:6px 0}
.kv-header .kv-links a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--berry);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.kv-header .kv-links a:hover::after,.kv-header .kv-links a.is-active::after{transform:scaleX(1);transform-origin:left}
.kv-header .kv-icons a{transition:transform .2s,color .2s}
.kv-header .kv-icons a:hover{transform:translateY(-2px);color:var(--berry)}
.kv-header .kv-icons a:hover svg{stroke:var(--berry)}
.kv-header .kv-bag span{transition:transform .25s}
.kv-header .kv-bag.bump span{animation:kvBump .5s}
@keyframes kvBump{0%{transform:scale(1)}40%{transform:scale(1.5)}100%{transform:scale(1)}}
/* mobile menu items stagger */
.kv-mnav a{opacity:0;transform:translateY(12px);transition:opacity .4s,transform .4s}
.kv-mnav.open a{opacity:1;transform:none}
.kv-mnav.open a:nth-child(1){transition-delay:.05s}.kv-mnav.open a:nth-child(2){transition-delay:.1s}.kv-mnav.open a:nth-child(3){transition-delay:.15s}.kv-mnav.open a:nth-child(4){transition-delay:.2s}.kv-mnav.open a:nth-child(5){transition-delay:.25s}.kv-mnav.open a:nth-child(6){transition-delay:.3s}.kv-mnav.open a:nth-child(7){transition-delay:.35s}.kv-mnav.open a:nth-child(8){transition-delay:.4s}.kv-mnav.open a:nth-child(9){transition-delay:.45s}.kv-mnav.open a:nth-child(10){transition-delay:.5s}.kv-mnav.open a:nth-child(11){transition-delay:.55s}

/* page hero for content pages (About, FAQ, etc.) */
.kv-page-hero{background:var(--blush);text-align:center;padding:64px 20px 56px;margin-bottom:56px;position:relative;overflow:hidden}
.kv-page-hero::before{content:'';position:absolute;inset:auto -10% -60% -10%;height:70%;background:radial-gradient(60% 60% at 50% 0%,rgba(233,195,182,.55),transparent 70%);pointer-events:none}
.kv-page-hero .kv-eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--rg3)}
.kv-page-hero h1{font-size:clamp(38px,6vw,60px);margin:12px 0 0;position:relative}
.kv-page-hero p{color:var(--ink-soft);max-width:34em;margin:12px auto 0;position:relative}
body.kv-site .entry-content,body.kv-site .page .entry-content{max-width:760px;margin:0 auto;padding:0 20px 40px;font-size:17px;color:var(--ink-soft)}
body.kv-site .entry-content h2{font-size:34px;margin:44px 0 12px;color:var(--berry)}
body.kv-site .entry-content h3{font-size:24px;margin:30px 0 8px;color:var(--ink)}
body.kv-site .entry-content ol,body.kv-site .entry-content ul{padding-left:1.2em}
body.kv-site .entry-content li{margin:6px 0}
body.kv-site .entry-content strong{color:var(--ink);font-weight:500}
body.kv-site .entry-content .kv-product-contact{margin:28px 0}
/* FAQ details */
body.kv-site .entry-content details{border-bottom:1px solid var(--line);padding:16px 0}
body.kv-site .entry-content summary{font-family:var(--serif);font-size:22px;color:var(--berry);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
body.kv-site .entry-content summary::-webkit-details-marker{display:none}
body.kv-site .entry-content summary::after{content:'+';font-family:var(--sans);font-size:22px;color:var(--rg2);transition:transform .3s}
body.kv-site .entry-content details[open] summary::after{transform:rotate(45deg)}
body.kv-site .entry-content details p{margin:10px 0 0}

/* product cards: lift, zoom, 3D tilt, quick button reveal */
.woocommerce ul.products li.product{position:relative;transition:transform .5s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d;perspective:900px}
.woocommerce ul.products li.product .kv-card-media{position:relative;overflow:hidden;margin:0 0 16px;background:var(--blush)}
.woocommerce ul.products li.product .kv-card-media img{margin:0!important;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .5s}
.woocommerce ul.products li.product .kv-card-media img.kv-hover{position:absolute;inset:0;opacity:0}
.woocommerce ul.products li.product:hover .kv-card-media img{transform:scale(1.05)}
.woocommerce ul.products li.product:hover .kv-card-media img.kv-hover{opacity:1}
.woocommerce ul.products li.product .kv-card-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(122,47,60,0) 60%,rgba(122,47,60,.18));opacity:0;transition:opacity .4s}
.woocommerce ul.products li.product:hover .kv-card-media::after{opacity:1}
.woocommerce ul.products li.product .kv-tilt{transition:transform .25s ease-out;will-change:transform}
.woocommerce ul.products li.product .button{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s,filter .2s}
.woocommerce ul.products li.product:hover .button,.woocommerce ul.products li.product:focus-within .button{opacity:1;transform:none}
@media(hover:none){.woocommerce ul.products li.product .button{opacity:1;transform:none}}
/* reveal on scroll */
.kv-reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.kv-reveal.in{opacity:1;transform:none}
.woocommerce ul.products li.product.kv-reveal:nth-child(4n+2){transition-delay:.08s}.woocommerce ul.products li.product.kv-reveal:nth-child(4n+3){transition-delay:.16s}.woocommerce ul.products li.product.kv-reveal:nth-child(4n+4){transition-delay:.24s}
/* single product: gallery tilt + sticky summary */
.woocommerce div.product div.images{perspective:1200px}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{transition:transform .3s ease-out;will-change:transform;box-shadow:0 30px 60px -40px rgba(122,47,60,.45)}
@media(min-width:900px){.woocommerce div.product div.summary{position:sticky;top:110px}}
.woocommerce div.product .single_add_to_cart_button{position:relative;overflow:hidden}
.woocommerce div.product .single_add_to_cart_button::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(105deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0));transform:skewX(-18deg);transition:left .6s}
.woocommerce div.product .single_add_to_cart_button:hover::after{left:120%}
/* all buttons: hover lift */
.kv-btn,.woocommerce a.button,.woocommerce button.button{transition:filter .2s,transform .2s,box-shadow .2s}
.kv-btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover{transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(154,92,100,.8)}

/* floating actions: WhatsApp + Instagram + share + top */
.kv-float{position:fixed;right:16px;bottom:20px;z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.kv-float a,.kv-float button{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:0;cursor:pointer;box-shadow:0 10px 24px -8px rgba(58,42,45,.35);transition:transform .25s cubic-bezier(.2,.7,.2,1),opacity .3s,box-shadow .25s;text-decoration:none}
.kv-float a:hover,.kv-float button:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 16px 30px -10px rgba(58,42,45,.45)}
.kv-float svg{width:24px;height:24px}
.kv-float .kv-f-wa{background:#25D366}.kv-float .kv-f-wa svg{fill:#fff}
.kv-float .kv-f-ig{background:var(--white)}.kv-float .kv-f-ig svg{stroke:var(--berry);fill:none;stroke-width:1.6}
.kv-float .kv-f-share{background:var(--white)}.kv-float .kv-f-share svg{stroke:var(--berry);fill:none;stroke-width:1.6}
.kv-float .kv-f-top{background:var(--berry);opacity:0;pointer-events:none;transform:translateY(10px)}
.kv-float .kv-f-top svg{stroke:#fff;fill:none;stroke-width:1.6}
.kv-float.show-top .kv-f-top{opacity:1;pointer-events:auto;transform:none}
.kv-float .kv-f-wa{position:relative}
.kv-float .kv-f-wa::before{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid #25D366;opacity:0;animation:kvPulse 2.6s ease-out infinite}
@keyframes kvPulse{0%{transform:scale(.8);opacity:.7}100%{transform:scale(1.35);opacity:0}}
.kv-float .kv-tip{position:absolute;right:60px;top:50%;transform:translateY(-50%) translateX(6px);background:var(--ink);color:#fff;font-family:var(--sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.kv-float a:hover .kv-tip,.kv-float button:hover .kv-tip{opacity:1;transform:translateY(-50%)}
.kv-share-toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(10px);background:var(--ink);color:#fff;font-family:var(--sans);font-size:12px;letter-spacing:.1em;padding:10px 16px;opacity:0;transition:opacity .3s,transform .3s;z-index:60;pointer-events:none}
.kv-share-toast.show{opacity:1;transform:translateX(-50%)}
.kv-wa{display:none} /* old single button replaced by .kv-float */

/* footer: gradient hairline + link hover */
.kv-footer{position:relative}
.kv-footer::before{content:'';position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--rg2),transparent)}
.kv-footer nav a{position:relative;transition:color .2s}
.kv-footer nav a::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--berry);transform:scaleX(0);transition:transform .3s}
.kv-footer nav a:hover::after{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){.kv-reveal{opacity:1;transform:none;transition:none}.kv-float .kv-f-wa::before{animation:none}.woocommerce ul.products li.product .kv-tilt{transform:none!important}}

/* =================== v1.2: own templates (kv-grid / kv-card / kv-product) =================== */
.kv-main{max-width:1200px;margin:0 auto;padding:0 20px 60px}
.kv-cat-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;margin-top:26px}
.kv-cat-nav a{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;padding:6px 0;position:relative}
.kv-cat-nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--berry);transform:scaleX(0);transition:transform .3s}
.kv-cat-nav a:hover::after,.kv-cat-nav a.is-active::after{transform:scaleX(1)}
.kv-cat-nav a.is-active{color:var(--berry)}
.kv-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:32px 16px}
@media(min-width:700px){.kv-grid{grid-template-columns:repeat(3,1fr);gap:36px 24px}}
@media(min-width:1000px){.kv-grid{grid-template-columns:repeat(4,1fr)}}
.kv-card{text-align:center;position:relative;perspective:900px}
.kv-card-link{text-decoration:none;color:inherit;display:block}
.kv-card .kv-card-media{position:relative;overflow:hidden;background:var(--blush);aspect-ratio:1/0.9;margin:0 0 16px;transition:transform .25s ease-out;will-change:transform;box-shadow:0 20px 40px -32px rgba(122,47,60,.5)}
.kv-card .kv-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .5s}
.kv-card .kv-card-media img.kv-hover{position:absolute;inset:0;opacity:0}
.kv-card:hover .kv-card-media img{transform:scale(1.05)}
.kv-card:hover .kv-card-media img.kv-hover{opacity:1}
.kv-card .kv-badge{position:absolute;top:12px;left:12px;background:rgba(251,244,241,.92);color:var(--berry);font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:5px 10px}
.kv-card-title{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);font-weight:500;margin:0 0 6px;line-height:1.5}
.kv-card-price{font-family:var(--serif);font-size:20px;color:var(--rg3);margin:0 0 10px}
.kv-card-price del{opacity:.5;margin-right:6px}
.kv-card-btn{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s,box-shadow .2s;padding:12px 22px;font-size:11px}
.kv-card:hover .kv-card-btn,.kv-card:focus-within .kv-card-btn{opacity:1;transform:none}
@media(hover:none){.kv-card-btn{opacity:1;transform:none}}
.kv-pagination{display:flex;justify-content:center;gap:14px;margin-top:40px;font-family:var(--serif);font-size:18px}
.kv-pagination a,.kv-pagination span{color:var(--berry);padding:4px 8px;text-decoration:none}
.kv-pagination .current{border-bottom:1px solid var(--berry)}
.kv-empty{text-align:center;color:var(--ink-soft);padding:60px 0}
/* single */
.kv-crumb{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);padding:26px 0 18px}
.kv-crumb a{color:var(--ink-soft);text-decoration:none}.kv-crumb a:hover{color:var(--berry)}.kv-crumb span{margin:0 8px}
.kv-product{display:grid;gap:36px;padding:0 0 40px}
@media(min-width:900px){.kv-product{grid-template-columns:7fr 5fr;gap:64px;align-items:start}}
.kv-product-gallery{perspective:1200px}
.kv-product-gallery .woocommerce-product-gallery{width:100%!important;float:none!important;margin:0!important}
.kv-product-gallery .woocommerce-product-gallery__wrapper{transition:transform .3s ease-out;box-shadow:0 30px 60px -40px rgba(122,47,60,.45);background:var(--blush)}
.kv-product-gallery .flex-control-thumbs{display:flex;gap:8px;margin:8px 0 0;padding:0;list-style:none}
.kv-product-gallery .flex-control-thumbs li{flex:1;margin:0;width:auto}
.kv-product-gallery .flex-control-thumbs img{opacity:.6;transition:opacity .3s}
.kv-product-gallery .flex-control-thumbs img.flex-active,.kv-product-gallery .flex-control-thumbs img:hover{opacity:1}
.kv-product-summary .product_title{font-size:clamp(34px,5vw,48px);margin:10px 0 6px;font-family:var(--serif);color:var(--berry);font-weight:400}
.kv-product-summary .price{font-family:var(--serif);font-size:26px;color:var(--rg3);margin:0 0 18px;display:block}
.kv-product-summary .woocommerce-product-details__short-description{color:var(--ink-soft);max-width:30em}
.kv-product-summary .stock{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rg3)}
.kv-product-summary form.cart{margin:24px 0}
.kv-product-summary table.variations{width:100%;border-collapse:collapse}
.kv-product-summary table.variations th{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;color:var(--ink);padding:10px 16px 10px 0;text-align:left;white-space:nowrap;width:1%}
.kv-product-summary table.variations td{padding:6px 0}
.kv-product-summary select{width:100%;max-width:320px;padding:12px 40px 12px 14px;border:1px solid var(--rg1);background:#fff;font-family:var(--sans);font-size:14px;color:var(--ink);border-radius:0;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A2F3C' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
.kv-product-summary .reset_variations{font-size:12px;color:var(--ink-soft)}
.kv-product-summary .woocommerce-variation-add-to-cart,.kv-product-summary form.cart:not(.variations_form){display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.kv-product-summary .quantity .qty{width:72px;padding:14px 8px;border:1px solid var(--rg1);border-radius:0;font-family:var(--sans);font-size:14px;background:#fff;text-align:center}
.kv-product-summary .single_add_to_cart_button{min-width:220px;position:relative;overflow:hidden}
.kv-product-summary .single_add_to_cart_button::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(105deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0));transform:skewX(-18deg);transition:left .6s}
.kv-product-summary .single_add_to_cart_button:hover::after{left:120%}
.kv-product-summary .woocommerce-variation-price .price{font-size:22px;margin:0 0 8px}
@media(min-width:900px){.kv-product-summary{position:sticky;top:110px}}
.kv-product-details .woocommerce-tabs{margin-top:20px;border-top:1px solid var(--line);padding-top:30px}
.kv-product-details .woocommerce-tabs ul.tabs{list-style:none;padding:0;margin:0 0 24px;display:flex;gap:28px}
.kv-product-details .woocommerce-tabs ul.tabs li a{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;padding:8px 0;display:inline-block}
.kv-product-details .woocommerce-tabs ul.tabs li.active a{color:var(--berry);border-bottom:1px solid var(--berry)}
.kv-product-details .woocommerce-tabs .panel h2{display:none}
.kv-product-details .woocommerce-tabs .panel{color:var(--ink-soft);max-width:40em}
.kv-product-includes{display:grid;gap:24px;margin:60px 0 0;padding:40px 0 0;border-top:1px solid var(--line)}
@media(min-width:800px){.kv-product-includes{grid-template-columns:1fr 1fr;gap:48px}}
.kv-inc{background:var(--blush);padding:28px 28px 30px;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.kv-inc:hover{transform:translateY(-4px);box-shadow:0 30px 50px -40px rgba(122,47,60,.5)}
.kv-inc h3{font-family:var(--serif);font-size:26px;color:var(--berry);margin:0 0 12px;font-weight:400}
.kv-inc ul,.kv-inc ol{margin:0 0 12px;padding-left:1.2em;color:var(--ink-soft)}
.kv-inc li{margin:4px 0}
.kv-inc p{color:var(--ink-soft);font-size:14px;margin:0}
.kv-more{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--berry);text-decoration:none;font-weight:600}
.related.products{margin-top:80px;padding-top:40px;border-top:1px solid var(--line)}
.related.products>h2{text-align:center;font-family:var(--serif);font-size:36px;color:var(--berry);font-weight:400;margin:0 0 30px}
.related.products ul.products{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:32px 16px}
@media(min-width:1000px){.related.products ul.products{grid-template-columns:repeat(4,1fr);gap:36px 24px}}
/* content pages extras */
.kv-quote{background:var(--blush);padding:34px;text-align:center;font-family:var(--serif);font-size:26px;color:var(--berry);line-height:1.4;margin:36px 0}
.kv-quote p{margin:0}
.kv-steps{counter-reset:s;display:grid;gap:0}
.kv-steps>div{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:14px;padding:22px 0;border-bottom:1px solid var(--line);transition:transform .3s}
.kv-steps>div:hover{transform:translateX(6px)}
.kv-steps>div::before{content:counter(s);font-family:var(--serif);font-size:32px;color:var(--rg2);line-height:1}
.kv-steps h3{margin:0 0 4px!important;font-size:22px!important}
.kv-steps p{margin:0;font-size:15px}
.kv-contact-lines{text-align:center;color:var(--ink-soft)}
body.kv-site .entry-content img{transition:transform .6s;box-shadow:0 30px 50px -40px rgba(122,47,60,.5)}
body.kv-site .entry-content img:hover{transform:scale(1.02)}

/* =================== v1.3: rich footer + page blocks + Fluent Forms =================== */
.kv-footer{padding:64px 20px 36px;margin-top:100px;background:linear-gradient(180deg,var(--cream) 0%,var(--blush) 100%)}
.kv-footer .kv-row{display:none}
.kv-footer-grid{max-width:1200px;margin:0 auto;display:grid;gap:36px}
@media(min-width:800px){.kv-footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px}}
.kv-f-brand .kv-flogo{font-size:28px;letter-spacing:.3em;color:var(--berry);font-family:var(--serif);line-height:1}
.kv-f-brand .kv-flogo small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.3em;color:var(--rg3);margin-top:6px}
.kv-f-brand p{font-family:var(--sans);color:var(--ink-soft);font-size:14px;max-width:30em;margin:16px 0 20px}
.kv-footer .kv-social{display:flex;gap:10px;justify-content:flex-start;justify-self:auto}
.kv-footer .kv-social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--rg1);display:grid;place-items:center;color:var(--berry);transition:transform .25s,background .25s,border-color .25s}
.kv-footer .kv-social a:hover{transform:translateY(-3px);background:var(--berry);border-color:var(--berry)}
.kv-footer .kv-social a:hover svg{stroke:#fff}
.kv-footer .kv-social svg{width:18px;height:18px;stroke:var(--berry);fill:none;stroke-width:1.5;transition:stroke .25s}
.kv-f-col h4{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--berry);margin:0 0 16px;font-weight:500}
.kv-f-col nav{display:flex;flex-direction:column;gap:9px;font-family:var(--sans);font-size:14px}
.kv-f-col nav a{color:var(--ink-soft);text-decoration:none;width:fit-content;position:relative;transition:color .2s,transform .2s}
.kv-f-col nav a::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--berry);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.kv-f-col nav a:hover{color:var(--berry);transform:translateX(3px)}
.kv-f-col nav a:hover::after{transform:scaleX(1)}
.kv-f-meta{font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin:18px 0 0;line-height:1.7}
.kv-footer-bottom{max-width:1200px;margin:44px auto 0;padding-top:22px;border-top:1px solid var(--line);text-align:center}
.kv-footer-bottom .kv-tag{margin:0 0 8px}
.kv-footer-bottom .kv-legal{margin:0}
/* ---- page blocks (HTML widget pages) ---- */
.kvp{font-family:var(--sans);color:var(--ink);font-weight:300;line-height:1.6}
.kvp *{box-sizing:border-box}
.kvp .kv-hero{background:var(--blush);text-align:center;padding:72px 20px 72px;position:relative;overflow:hidden;width:100vw;margin-left:calc(50% - 50vw)}
.kvp .kv-hero::before{content:'';position:absolute;inset:auto -10% -60% -10%;height:80%;background:radial-gradient(60% 60% at 50% 0%,rgba(233,195,182,.6),transparent 70%);pointer-events:none}
.kvp .kv-hero>*{position:relative}
.kvp .kv-eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--rg3);display:block}
.kvp .kv-hero h1{font-family:var(--serif);font-size:clamp(40px,6vw,64px);color:var(--berry);font-weight:400;margin:12px 0 0;line-height:1.05}
.kvp .kv-hero p{color:var(--ink-soft);max-width:34em;margin:14px auto 0;font-size:17px}
.kvp .kv-wrap{max-width:760px;margin:0 auto;padding:56px 20px}
.kvp .kv-wrap-wide{max-width:1100px;margin:0 auto;padding:56px 20px}
.kvp h2{font-family:var(--serif);font-size:36px;color:var(--berry);font-weight:400;margin:0 0 14px;line-height:1.1}
.kvp h3{font-family:var(--serif);font-size:24px;color:var(--ink);font-weight:400;margin:0 0 6px}
.kvp p{color:var(--ink-soft);font-size:17px;margin:0 0 18px}
.kvp .kv-lead{font-family:var(--serif);font-size:26px;color:var(--berry);line-height:1.35;margin-bottom:26px}
.kvp .kv-quote{background:var(--blush);padding:40px 34px;text-align:center;font-family:var(--serif);font-size:28px;color:var(--berry);line-height:1.4;margin:40px 0;position:relative}
.kvp .kv-quote::before,.kvp .kv-quote::after{content:'';position:absolute;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,var(--rg2),transparent)}
.kvp .kv-quote::before{top:12px}.kvp .kv-quote::after{bottom:12px}
.kvp .kv-split{display:grid;gap:30px;align-items:center;margin:40px 0}
@media(min-width:800px){.kvp .kv-split{grid-template-columns:1fr 1fr;gap:56px}}
.kvp .kv-split img{width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:0 30px 60px -40px rgba(122,47,60,.5);transition:transform .6s}
.kvp .kv-split:hover img{transform:scale(1.02)}
.kvp .kv-values{display:grid;gap:18px;margin:40px 0}
@media(min-width:700px){.kvp .kv-values{grid-template-columns:repeat(3,1fr)}}
.kvp .kv-value{background:var(--blush);padding:28px 24px;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.kvp .kv-value:hover{transform:translateY(-5px);box-shadow:0 30px 50px -40px rgba(122,47,60,.5)}
.kvp .kv-value svg{width:32px;height:32px;stroke:var(--berry);fill:none;stroke-width:1.2;margin-bottom:12px}
.kvp .kv-value p{font-size:14px;margin:0}
.kvp .kv-steps{counter-reset:s}
.kvp .kv-step{counter-increment:s;display:grid;grid-template-columns:56px 1fr;gap:18px;padding:26px 0;border-bottom:1px solid var(--line);transition:transform .3s}
.kvp .kv-step:hover{transform:translateX(6px)}
.kvp .kv-step::before{content:counter(s,decimal-leading-zero);font-family:var(--serif);font-size:34px;color:var(--rg2);line-height:1}
.kvp .kv-step p{margin:0;font-size:15px}
.kvp .kv-cta{text-align:center;margin:40px 0 0}
.kvp .kv-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:26px 0}
.kvp .kv-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;background:var(--rgold);color:#fff;font-size:12px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;box-shadow:0 12px 26px -14px rgba(154,92,100,.7);transition:transform .2s,box-shadow .2s}
.kvp .kv-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(154,92,100,.8);color:#fff}
.kvp .kv-btn.ghost{background:transparent;color:var(--berry);box-shadow:inset 0 0 0 1px var(--rg2)}
.kvp .kv-btn.ghost:hover{background:rgba(192,130,126,.08)}
.kvp ol,.kvp ul{padding-left:1.2em;color:var(--ink-soft);margin:0 0 18px}
.kvp li{margin:6px 0}
.kvp .kv-kit{display:grid;gap:14px;margin:26px 0 40px}
@media(min-width:600px){.kvp .kv-kit{grid-template-columns:repeat(3,1fr)}}
.kvp .kv-kit div{background:var(--blush);padding:18px;text-align:center;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:transform .3s,background .3s}
.kvp .kv-kit div:hover{transform:translateY(-3px);background:var(--blush-2)}
.kvp .kv-tip{border-left:2px solid var(--rg2);padding:14px 18px;background:var(--blush);color:var(--ink);font-size:15px;margin:20px 0}
.kvp details{border-bottom:1px solid var(--line);padding:18px 0}
.kvp summary{font-family:var(--serif);font-size:23px;color:var(--berry);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;transition:color .2s}
.kvp summary::-webkit-details-marker{display:none}
.kvp summary::after{content:'+';font-family:var(--sans);font-size:24px;color:var(--rg2);transition:transform .3s;flex:none}
.kvp details[open] summary::after{transform:rotate(45deg)}
.kvp details p{margin:12px 0 0;font-size:16px}
.kvp .kv-contact-grid{display:grid;gap:28px;margin:40px 0}
@media(min-width:800px){.kvp .kv-contact-grid{grid-template-columns:1fr 1.2fr;gap:56px}}
.kvp .kv-contact-card{background:var(--blush);padding:30px}
.kvp .kv-contact-card h3{margin-bottom:14px}
.kvp .kv-contact-card a.kv-line{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;transition:transform .25s,color .25s}
.kvp .kv-contact-card a.kv-line:hover{transform:translateX(4px);color:var(--berry)}
.kvp .kv-contact-card a.kv-line svg{width:20px;height:20px;stroke:var(--berry);fill:none;stroke-width:1.5;flex:none}
.kvp .kv-reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.kvp .kv-reveal.in{opacity:1;transform:none}
/* Fluent Forms in brand style */
.fluentform .ff-el-input--label label{font-family:var(--sans)!important;font-size:11px!important;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft)!important;font-weight:400!important}
.fluentform .ff-el-form-control{border:1px solid var(--rg1)!important;border-radius:0!important;padding:14px!important;font-family:var(--sans)!important;font-size:14px!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important;transition:border-color .2s}
.fluentform .ff-el-form-control:focus{border-color:var(--berry)!important}
.fluentform .ff-btn-submit{display:inline-flex!important;padding:16px 32px!important;border-radius:0!important;border:0!important;background:var(--rgold)!important;color:#fff!important;font-family:var(--sans)!important;font-size:12px!important;letter-spacing:.24em;text-transform:uppercase;font-weight:400!important;box-shadow:0 12px 26px -14px rgba(154,92,100,.7);transition:transform .2s}
.fluentform .ff-btn-submit:hover{transform:translateY(-2px)}
.fluentform .ff-message-success{background:var(--blush)!important;border:0!important;border-left:2px solid var(--rg2)!important;color:var(--ink)!important;font-family:var(--sans)}
/* v1.3.1 product summary polish */
.kv-product-summary table.variations th,.kv-product-summary table.variations td{background:none!important;border:0}
.kv-product-summary table.variations th{width:auto;padding-right:14px}
.kv-product-summary table.variations tr{display:grid;grid-template-columns:90px 1fr;align-items:center;padding:6px 0}
.kv-product-summary select{max-width:100%}
.kv-product-summary .kv-product-contact{margin-top:14px}
.kv-product-summary .kv-product-contact .kv-btn{flex:1 1 180px;justify-content:center}

/* =================== v1.4: cart / checkout / account / thank you =================== */
.kv-woo-page{max-width:1200px;margin:0 auto;padding:0 20px 80px}
.kv-woo-head{text-align:center;padding:54px 0 36px}
.kv-woo-head h1{font-family:var(--serif);font-size:clamp(36px,5vw,54px);color:var(--berry);font-weight:400;margin:10px 0 0}
.kv-steps-bar{list-style:none;display:flex;justify-content:center;gap:0;margin:28px auto 0;padding:0;max-width:640px;font-family:var(--sans)}
.kv-steps-bar li{flex:1;position:relative;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);padding-top:34px;text-align:center}
.kv-steps-bar li span{position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;border:1px solid var(--rg1);background:var(--cream);display:grid;place-items:center;font-family:var(--serif);font-size:14px;color:var(--rg3);z-index:1;transition:all .3s}
.kv-steps-bar li::before{content:'';position:absolute;top:13px;left:-50%;right:50%;height:1px;background:var(--rg1)}
.kv-steps-bar li:first-child::before{display:none}
.kv-steps-bar li.done span{background:var(--berry);border-color:var(--berry);color:#fff}
.kv-steps-bar li.done::before{background:var(--berry)}
.kv-steps-bar li.now{color:var(--berry)}
.kv-steps-bar li.now span{box-shadow:0 0 0 5px rgba(122,47,60,.12)}
.kv-woo-body{font-family:var(--sans)}
.kv-muted{color:var(--ink-soft);font-size:14px}
/* generic form controls inside woo pages */
.kv-woo-body input.input-text,.kv-woo-body textarea,.kv-woo-body select,.kv-woo-body .select2-container--default .select2-selection--single{border:1px solid var(--rg1)!important;border-radius:0!important;padding:14px 16px!important;font-family:var(--sans)!important;font-size:15px!important;font-weight:300;background:#fff!important;color:var(--ink)!important;height:auto!important;box-shadow:none!important;transition:border-color .25s,box-shadow .25s;width:100%}
.kv-woo-body input.input-text:focus,.kv-woo-body textarea:focus,.kv-woo-body select:focus{border-color:var(--berry)!important;box-shadow:0 0 0 3px rgba(122,47,60,.08)!important;outline:0}
.kv-woo-body .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:1.6!important;padding:0!important;color:var(--ink)}
.kv-woo-body .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%!important;right:12px}
.kv-woo-body .form-row label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);font-weight:400;margin-bottom:6px;display:block}
.kv-woo-body .form-row label .required{color:var(--rg2);text-decoration:none}
.kv-woo-body .form-row{margin-bottom:18px}
.kv-woo-body .woocommerce-input-wrapper{display:block}
.kv-woo-body .form-row-first,.kv-woo-body .form-row-last{width:48%}
.kv-woo-body h2,.kv-woo-body h3{font-family:var(--serif);color:var(--berry);font-weight:400}
.kv-woo-body .woocommerce-notices-wrapper{margin-bottom:20px}
.kv-woo-body .woocommerce-message,.kv-woo-body .woocommerce-info,.kv-woo-body .woocommerce-error{background:var(--blush);border:0;border-left:2px solid var(--rg2);color:var(--ink);font-size:14px;padding:14px 18px 14px 44px;margin:0 0 16px}
.kv-woo-body .woocommerce-error{border-left-color:#B23A4A}
.kv-woo-body .woocommerce-message::before,.kv-woo-body .woocommerce-info::before{color:var(--berry);top:14px}
/* CART */
.kv-cart .woocommerce{display:grid;gap:36px}
@media(min-width:900px){.kv-cart .woocommerce{grid-template-columns:1.6fr 1fr;gap:56px;align-items:start}}
.kv-cart .woocommerce-notices-wrapper{grid-column:1/-1}
.kv-cart table.shop_table{border:0;border-collapse:collapse;width:100%}
.kv-cart table.shop_table thead th{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);font-weight:400;padding:0 0 14px;border-bottom:1px solid var(--line)}
.kv-cart table.shop_table td{padding:22px 10px 22px 0;border:0;border-bottom:1px solid var(--line);vertical-align:middle}
.kv-cart td.product-thumbnail{width:96px}
.kv-cart td.product-thumbnail img{width:84px;height:84px;object-fit:cover;display:block;transition:transform .4s}
.kv-cart tr:hover td.product-thumbnail img{transform:scale(1.04)}
.kv-cart td.product-name a{color:var(--ink);text-decoration:none;font-size:15px;font-weight:400}
.kv-cart td.product-name .variation{display:block;margin:6px 0 0;font-size:12px;color:var(--ink-soft)}
.kv-cart td.product-name .variation dt,.kv-cart td.product-name .variation dd{display:inline;margin:0;font-weight:300}
.kv-cart td.product-name .variation dd p{display:inline;margin:0}
.kv-cart td.product-name .variation dd::after{content:' · '}
.kv-cart td.product-name .variation dd:last-child::after{content:''}
.kv-cart td.product-price,.kv-cart td.product-subtotal{font-family:var(--serif);font-size:18px;color:var(--rg3);white-space:nowrap}
.kv-cart td.product-remove a.remove{color:var(--ink-soft)!important;font-size:20px;width:28px;height:28px;line-height:26px;border:1px solid var(--line);border-radius:50%;transition:all .25s;font-weight:300}
.kv-cart td.product-remove a.remove:hover{background:var(--berry)!important;border-color:var(--berry);color:#fff!important}
.kv-cart .quantity .qty{width:72px;padding:12px 8px!important;text-align:center}
.kv-cart td.actions{padding-top:22px;border:0;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.kv-cart td.actions .coupon{display:flex;gap:8px;flex-wrap:wrap}
.kv-cart td.actions .coupon .input-text{width:180px!important;padding:12px 14px!important}
.kv-cart td.actions .button{background:transparent;color:var(--berry);box-shadow:inset 0 0 0 1px var(--rg2);padding:12px 20px;font-size:11px}
.kv-cart td.actions .button:hover{background:rgba(192,130,126,.08);transform:none}
.kv-cart .kv-more{display:inline-block;margin-top:18px}
.kv-cart .cart-collaterals{width:100%;float:none}
.kv-cart .cart_totals{width:100%!important;float:none!important;background:var(--blush);padding:30px 28px;position:sticky;top:110px}
.kv-cart .cart_totals h2{font-size:28px;margin:0 0 14px}
.kv-cart .cart_totals table{border:0;width:100%}
.kv-cart .cart_totals th,.kv-cart .cart_totals td{border:0;border-bottom:1px solid var(--line);padding:12px 0;font-size:14px;font-weight:300;color:var(--ink-soft);text-align:left}
.kv-cart .cart_totals td{text-align:right;color:var(--ink)}
.kv-cart .cart_totals tr.order-total th,.kv-cart .cart_totals tr.order-total td{font-family:var(--serif);font-size:22px;color:var(--berry);border:0;padding-top:16px}
.kv-cart .cart_totals .woocommerce-shipping-destination{font-size:12px;color:var(--ink-soft)}
.kv-cart .cart_totals .shipping-calculator-button{font-size:12px;color:var(--berry)}
.kv-cart .cart_totals ul#shipping_method{padding:0;margin:0;list-style:none}
.kv-cart .cart_totals ul#shipping_method li{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink);margin:6px 0}
.kv-cart .cart_totals ul#shipping_method label{font-weight:300}
.kv-cart .wc-proceed-to-checkout{padding:22px 0 0}
.kv-cart .wc-proceed-to-checkout a.checkout-button{display:flex;width:100%;font-size:12px;padding:18px}
.kv-empty-cart{grid-column:1/-1;text-align:center;padding:40px 0 20px}
.kv-empty-cart .kv-lead{font-family:var(--serif);font-size:30px;color:var(--berry);margin:0 0 6px}
.kv-empty-cart p{color:var(--ink-soft);margin:0 0 24px}
/* CHECKOUT */
.kv-checkout .woocommerce-form-coupon-toggle .woocommerce-info,.kv-checkout .woocommerce-form-login-toggle .woocommerce-info{background:transparent;border:0;padding:0 0 12px;font-size:13px}
.kv-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,.kv-checkout .woocommerce-form-login-toggle .woocommerce-info::before{display:none}
.kv-checkout form.checkout{display:grid;gap:40px}
@media(min-width:900px){.kv-checkout form.checkout{grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}}
.kv-checkout form.checkout .col2-set{width:100%;float:none}
.kv-checkout form.checkout .col2-set .col-1,.kv-checkout form.checkout .col2-set .col-2{width:100%;float:none}
.kv-checkout .woocommerce-billing-fields h3,.kv-checkout .woocommerce-shipping-fields h3,.kv-checkout .woocommerce-additional-fields h3{font-size:26px;margin:0 0 18px}
.kv-checkout .woocommerce-shipping-fields h3 label{font-family:var(--sans);font-size:13px;letter-spacing:.04em;text-transform:none;display:flex;gap:10px;align-items:center;color:var(--ink);cursor:pointer}
.kv-checkout .woocommerce-additional-fields{margin-top:30px}
.kv-checkout #order_review_heading{display:none}
.kv-checkout #order_review{background:var(--blush);padding:30px 28px;position:sticky;top:110px}
.kv-checkout #order_review::before{content:'Your order';display:block;font-family:var(--serif);font-size:28px;color:var(--berry);margin:0 0 14px}
.kv-checkout table.shop_table{border:0;width:100%;border-collapse:collapse}
.kv-checkout table.shop_table thead{display:none}
.kv-checkout table.shop_table td,.kv-checkout table.shop_table th{border:0;border-bottom:1px solid var(--line);padding:12px 0;font-size:14px;font-weight:300;color:var(--ink-soft);text-align:left;background:none}
.kv-checkout table.shop_table td.product-total,.kv-checkout table.shop_table tfoot td{text-align:right;color:var(--ink)}
.kv-checkout table.shop_table td.product-name{color:var(--ink)}
.kv-checkout table.shop_table td.product-name .product-quantity{color:var(--ink-soft);font-weight:300}
.kv-checkout table.shop_table .variation{margin:4px 0 0;font-size:12px}
.kv-checkout table.shop_table .variation dt,.kv-checkout table.shop_table .variation dd{display:inline;margin:0;font-weight:300}
.kv-checkout table.shop_table .variation dd p{display:inline;margin:0}
.kv-checkout table.shop_table tr.order-total th,.kv-checkout table.shop_table tr.order-total td{font-family:var(--serif);font-size:22px;color:var(--berry);border:0;padding-top:16px}
.kv-checkout ul#shipping_method{padding:0;margin:0;list-style:none}
.kv-checkout ul#shipping_method li{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:6px 0}
.kv-checkout #payment{background:transparent;border-radius:0;margin-top:22px}
.kv-checkout #payment ul.payment_methods{padding:0;border:0;margin:0 0 16px;list-style:none}
.kv-checkout #payment ul.payment_methods li{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.kv-checkout #payment ul.payment_methods li label{display:inline-flex;gap:10px;align-items:center;cursor:pointer;color:var(--ink)}
.kv-checkout #payment ul.payment_methods li img{max-height:22px;margin-left:8px}
.kv-checkout #payment div.payment_box{background:#fff;border-radius:0;color:var(--ink-soft);font-size:13px;padding:14px 16px;margin:12px 0 0}
.kv-checkout #payment div.payment_box::before{border-bottom-color:#fff}
.kv-checkout #payment .place-order{padding:0;margin-top:14px}
.kv-checkout #payment #place_order{width:100%;padding:18px;font-size:12px;float:none}
.kv-checkout .woocommerce-terms-and-conditions-wrapper{font-size:13px;color:var(--ink-soft);margin-bottom:12px}
.kv-checkout .woocommerce-privacy-policy-text p{margin:0 0 10px}
.kv-trust{text-align:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 0}
/* THANK YOU */
.kv-thanks .woocommerce-thankyou-order-received{font-family:var(--serif);font-size:28px;color:var(--berry);text-align:center;max-width:32em;margin:0 auto 30px}
.kv-thanks ul.woocommerce-order-overview{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:0;margin:0 auto 40px;max-width:820px}
@media(min-width:800px){.kv-thanks ul.woocommerce-order-overview{grid-template-columns:repeat(4,1fr)}}
.kv-thanks ul.woocommerce-order-overview li{border:1px solid var(--line);padding:16px;margin:0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);float:none;width:auto;background:var(--white)}
.kv-thanks ul.woocommerce-order-overview li strong{display:block;font-family:var(--serif);font-size:20px;letter-spacing:0;text-transform:none;color:var(--berry);margin-top:6px}
.kv-thanks .woocommerce-order-details,.kv-thanks .woocommerce-customer-details{max-width:820px;margin:0 auto 30px}
.kv-thanks .woocommerce-order-details__title,.kv-thanks .woocommerce-column__title{font-size:26px;margin:0 0 14px}
.kv-thanks table.shop_table{border:0;width:100%;border-collapse:collapse}
.kv-thanks table.shop_table th,.kv-thanks table.shop_table td{border:0;border-bottom:1px solid var(--line);padding:12px 0;font-size:14px;font-weight:300;text-align:left;color:var(--ink-soft)}
.kv-thanks table.shop_table thead th{font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.kv-thanks table.shop_table td.product-total,.kv-thanks table.shop_table tfoot td{text-align:right;color:var(--ink)}
.kv-thanks table.shop_table tfoot tr:last-child th,.kv-thanks table.shop_table tfoot tr:last-child td{font-family:var(--serif);font-size:20px;color:var(--berry);border:0}
.kv-thanks .woocommerce-bacs-bank-details{background:var(--blush);padding:24px;max-width:820px;margin:0 auto 30px}
.kv-thanks address{font-style:normal;color:var(--ink-soft);line-height:1.7}
/* ACCOUNT */
.kv-account .woocommerce{display:grid;gap:36px}
@media(min-width:900px){.kv-account .woocommerce{grid-template-columns:260px 1fr;gap:56px;align-items:start}}
.kv-account .woocommerce-MyAccount-navigation{width:100%;float:none}
.kv-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;background:var(--blush);padding:18px 22px}
.kv-account .woocommerce-MyAccount-navigation li a{display:block;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink-soft);text-decoration:none;font-size:11px;letter-spacing:.22em;text-transform:uppercase;transition:color .2s,transform .2s}
.kv-account .woocommerce-MyAccount-navigation li:last-child a{border:0}
.kv-account .woocommerce-MyAccount-navigation li a:hover,.kv-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--berry);transform:translateX(3px)}
.kv-account .woocommerce-MyAccount-content{width:100%;float:none;font-size:15px;color:var(--ink-soft)}
.kv-account .woocommerce-MyAccount-content a{color:var(--berry)}
.kv-account .woocommerce-MyAccount-content .button{padding:12px 20px;font-size:11px}
.kv-account table.shop_table{border:0;width:100%;border-collapse:collapse}
.kv-account table.shop_table th,.kv-account table.shop_table td{border:0;border-bottom:1px solid var(--line);padding:14px 8px;font-size:14px;font-weight:300;text-align:left}
.kv-account table.shop_table thead th{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft)}
/* login / register */
.kv-account .u-columns{display:grid;gap:36px}
@media(min-width:900px){.kv-account .u-columns{grid-template-columns:1fr 1fr;gap:56px}}
.kv-account .u-columns .col-1,.kv-account .u-columns .col-2{width:100%;float:none}
.kv-account .woocommerce-form-login,.kv-account .woocommerce-form-register{border:1px solid var(--line)!important;border-radius:0!important;padding:32px!important;background:var(--white)}
.kv-account .u-columns h2{font-size:28px;margin:0 0 14px}
.kv-account .woocommerce-form-login .button,.kv-account .woocommerce-form-register .button{width:100%;margin-top:6px}
.kv-account .woocommerce-form-login__rememberme{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink-soft);margin:0 0 12px}
.kv-account .woocommerce-LostPassword{font-size:13px}
.kv-account .woocommerce-privacy-policy-text{font-size:13px;color:var(--ink-soft)}
.kv-account .show-password-input{top:14px}

/* v1.5: plugin-rendered content pages */
.kv-content-page{max-width:none;padding:0}
.kv-content-page .kvp .kv-hero{width:100%;margin-left:0}
.kv-content-page .kvp .kv-legal-wrap{max-width:760px;margin:0 auto;padding:56px 20px 40px}

/* =================== v1.4: cart / checkout / account (classic shortcodes) =================== */
.woocommerce-cart .kv-main,.woocommerce-checkout .kv-main,.woocommerce-account .kv-main,
body.kv-site.woocommerce-cart .site-main,body.kv-site.woocommerce-checkout .site-main,body.kv-site.woocommerce-account .site-main{max-width:1200px;margin:0 auto;padding:0 20px 80px}
.woocommerce-cart .kv-shop-head,.woocommerce-checkout .kv-shop-head,.woocommerce-account .kv-shop-head{padding:48px 0 30px}
/* generic */
.woocommerce .woocommerce-notices-wrapper{margin:0 0 20px}
.woocommerce-message,.woocommerce-info,.woocommerce-error{background:var(--blush)!important;border:0!important;border-left:2px solid var(--rg2)!important;color:var(--ink);font-family:var(--sans);font-size:14px;padding:16px 20px 16px 48px!important}
.woocommerce-error{border-left-color:#B23A4A!important}
.woocommerce-message::before,.woocommerce-info::before{color:var(--berry)}
.woocommerce form .form-row label,.woocommerce-page form .form-row label{font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);font-weight:400;margin-bottom:6px}
.woocommerce form .form-row .required{color:var(--rg2);text-decoration:none}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.select2-container--default .select2-selection--single{border:1px solid var(--rg1)!important;border-radius:0!important;padding:13px 14px!important;font-family:var(--sans);font-size:14px;font-weight:300;background:#fff;height:auto!important;color:var(--ink);box-shadow:none;transition:border-color .2s,box-shadow .2s}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus{border-color:var(--berry)!important;box-shadow:0 0 0 3px rgba(122,47,60,.08);outline:0}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:1.6;padding:0;color:var(--ink)}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:10px}
.select2-dropdown{border:1px solid var(--rg1);border-radius:0;font-family:var(--sans)}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--blush);color:var(--berry)}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.woocommerce button.button.alt,.woocommerce a.button.alt{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:0;border:0;background:var(--rgold);color:#fff;font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;line-height:1.2;box-shadow:0 12px 26px -14px rgba(154,92,100,.7);transition:transform .2s,box-shadow .2s,filter .2s;cursor:pointer}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce button.button.alt:hover{background:var(--rgold);color:#fff;transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(154,92,100,.8);filter:brightness(1.05)}
.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled]{padding:15px 26px;color:#fff;opacity:.45}
/* cart */
.woocommerce-cart .woocommerce{display:grid;gap:36px}
@media(min-width:900px){.woocommerce-cart .woocommerce{grid-template-columns:1fr 380px;align-items:start}.woocommerce-cart .kv-shop-head,.woocommerce-cart .woocommerce-notices-wrapper{grid-column:1/-1}}
@media(min-width:900px){.woocommerce-cart form.woocommerce-cart-form{grid-column:1}}
@media(min-width:900px){.woocommerce-cart .cart-collaterals{grid-column:2}}
.woocommerce-cart .cart-collaterals{width:100%!important;float:none!important}
.woocommerce table.shop_table{border:0;border-collapse:collapse;font-family:var(--sans);border-radius:0;margin:0}
.woocommerce table.shop_table th{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:10px 12px 14px}
.woocommerce table.shop_table td{border-top:1px solid var(--line);padding:18px 12px;vertical-align:middle;font-size:15px}
.woocommerce table.shop_table td.product-thumbnail img{width:84px;height:96px;object-fit:cover;box-shadow:0 12px 24px -18px rgba(122,47,60,.5)}
.woocommerce table.shop_table td.product-name a{color:var(--ink);text-decoration:none;font-weight:400;font-size:15px}
.woocommerce table.shop_table td.product-name .variation{font-size:12px;color:var(--ink-soft);margin-top:6px;display:grid;grid-template-columns:auto 1fr;gap:2px 8px}
.woocommerce table.shop_table td.product-name .variation dt,.woocommerce table.shop_table td.product-name .variation dd{margin:0;font-weight:300}
.woocommerce table.shop_table td.product-price,.woocommerce table.shop_table td.product-subtotal{font-family:var(--serif);font-size:18px;color:var(--rg3)}
.woocommerce table.shop_table td.product-remove a.remove{color:var(--ink-soft)!important;font-size:20px;font-weight:300;width:28px;height:28px;line-height:26px;transition:all .2s}
.woocommerce table.shop_table td.product-remove a.remove:hover{background:var(--berry)!important;color:#fff!important}
.woocommerce .quantity .qty{width:72px;padding:12px 8px;border:1px solid var(--rg1);border-radius:0;font-family:var(--sans);font-size:14px;background:#fff;text-align:center}
.woocommerce table.shop_table td.actions{padding-top:22px;border-top:0}
.woocommerce table.shop_table td.actions .coupon{display:flex;gap:8px;float:left}
.woocommerce table.shop_table td.actions .coupon input.input-text{width:170px!important;padding:12px 14px!important;border:1px solid var(--rg1)!important;border-radius:0!important;font-family:var(--sans);font-size:13px}
.woocommerce table.shop_table td.actions .coupon .button{background:transparent;color:var(--berry);box-shadow:inset 0 0 0 1px var(--rg2)}
.woocommerce table.shop_table td.actions .coupon .button:hover{background:rgba(192,130,126,.08)}
.woocommerce table.shop_table td.actions .button[name=update_cart]{background:transparent;color:var(--ink-soft);box-shadow:none;padding:12px 0}
.kv-continue{display:inline-block;margin-top:14px;font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--berry);text-decoration:none}
.woocommerce .cart-collaterals .cart_totals{width:100%!important;float:none!important;background:var(--blush);padding:28px;position:sticky;top:110px}
.woocommerce .cart-collaterals .cart_totals h2{font-family:var(--serif);font-size:28px;color:var(--berry);font-weight:400;margin:0 0 14px}
.woocommerce .cart_totals table.shop_table th{border:0;padding:12px 0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);width:auto}
.woocommerce .cart_totals table.shop_table td{border:0;border-bottom:1px solid var(--line);padding:12px 0;text-align:right;font-family:var(--serif);font-size:18px;color:var(--ink)}
.woocommerce .cart_totals table.shop_table tr.order-total td{font-size:26px;color:var(--berry);border:0}
.woocommerce .cart_totals .woocommerce-shipping-methods{list-style:none;padding:0;margin:0;font-family:var(--sans);font-size:13px;text-align:left}
.woocommerce .cart_totals .woocommerce-shipping-methods li{margin:4px 0}
.woocommerce .cart_totals .woocommerce-shipping-destination,.woocommerce .cart_totals .shipping-calculator-button{font-family:var(--sans);font-size:12px;color:var(--ink-soft)}
.woocommerce .wc-proceed-to-checkout{padding:16px 0 0}
.woocommerce .wc-proceed-to-checkout a.checkout-button{width:100%;font-size:12px;padding:17px 26px;margin:0}
.kv-empty-cart{text-align:center;padding:30px 0 60px;grid-column:1/-1}
.kv-empty-cart p{color:var(--ink-soft);margin-bottom:22px}
/* checkout */
.woocommerce-checkout form.checkout{display:grid;gap:36px}
@media(min-width:900px){.woocommerce-checkout form.checkout{grid-template-columns:1fr 420px;align-items:start}.woocommerce-checkout form.checkout .col2-set{grid-column:1}.woocommerce-checkout form.checkout #order_review_heading,.woocommerce-checkout form.checkout #order_review{grid-column:2}.woocommerce-checkout form.checkout #order_review_heading{margin-top:0}}
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{width:100%!important;float:none!important}
.woocommerce-checkout .col2-set .col-2{margin-top:30px}
.woocommerce-checkout .woocommerce-billing-fields h3,.woocommerce-checkout .woocommerce-shipping-fields h3,.woocommerce-checkout .woocommerce-additional-fields h3,#order_review_heading{font-family:var(--serif);font-size:28px;color:var(--berry);font-weight:400;margin:0 0 18px}
.woocommerce-checkout .woocommerce-shipping-fields h3 label{font-family:var(--sans);font-size:13px;letter-spacing:.06em;text-transform:none;color:var(--ink);font-weight:300;display:flex;align-items:center;gap:10px}
.woocommerce-checkout .woocommerce-shipping-fields h3 label .input-checkbox{margin:0}
.woocommerce form .form-row{margin-bottom:16px;padding:0}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:calc(50% - 8px)}
.woocommerce-checkout .woocommerce-additional-fields{margin-top:30px}
.woocommerce-checkout #order_review{background:var(--blush);padding:28px;position:sticky;top:110px}
.woocommerce-checkout #order_review table.shop_table{background:transparent}
.woocommerce-checkout #order_review table.shop_table thead{display:none}
.woocommerce-checkout #order_review table.shop_table td{border:0;border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}
.woocommerce-checkout #order_review table.shop_table td.product-name{color:var(--ink);font-weight:400}
.woocommerce-checkout #order_review table.shop_table td.product-name .variation{font-size:12px;color:var(--ink-soft);margin-top:4px}
.woocommerce-checkout #order_review table.shop_table td.product-total,.woocommerce-checkout #order_review table.shop_table tfoot td{text-align:right;font-family:var(--serif);font-size:18px}
.woocommerce-checkout #order_review table.shop_table tfoot th{border:0;padding:12px 0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);font-weight:400}
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td{font-size:26px;color:var(--berry)}
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th,.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td{border:0}
.woocommerce-checkout #payment{background:transparent;border-radius:0;margin-top:18px}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--line);padding:0 0 12px;font-family:var(--sans);font-size:14px}
.woocommerce-checkout #payment ul.payment_methods li{padding:10px 0;border-bottom:1px solid var(--line)}
.woocommerce-checkout #payment ul.payment_methods li:last-child{border:0}
.woocommerce-checkout #payment ul.payment_methods li label{display:inline;color:var(--ink);font-weight:400}
.woocommerce-checkout #payment div.payment_box{background:#fff;border-radius:0;font-size:13px;color:var(--ink-soft);margin:10px 0 0;padding:14px 16px}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:#fff}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p{font-size:12px;color:var(--ink-soft)}
.woocommerce-checkout #payment #place_order{width:100%;margin-top:6px;font-size:12px;padding:17px 26px;float:none}
.kv-trust{list-style:none;padding:16px 0 0;margin:0;display:grid;gap:6px;font-family:var(--sans);font-size:12px;color:var(--ink-soft)}
.kv-trust li::before{content:'✦ ';color:var(--rg2)}
/* order received */
.woocommerce-order .woocommerce-notice{font-family:var(--serif);font-size:26px;color:var(--berry);margin:0 0 24px}
.woocommerce-order ul.order_details{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:0;margin:0 0 30px}
.woocommerce-order ul.order_details li{border:0;background:var(--blush);padding:16px;font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin:0;float:none;width:auto}
.woocommerce-order ul.order_details li strong{display:block;font-family:var(--serif);font-size:20px;letter-spacing:0;text-transform:none;color:var(--berry);margin-top:6px}
.woocommerce-order h2,.woocommerce-customer-details h2,.woocommerce-order-details h2{font-family:var(--serif);font-size:26px;color:var(--berry);font-weight:400;margin:30px 0 14px}
.woocommerce-order .woocommerce-customer-details address{border:0;background:var(--blush);padding:20px;border-radius:0;font-family:var(--sans);font-style:normal;color:var(--ink-soft)}
/* my account */
.woocommerce-account .woocommerce{display:grid;gap:36px}
@media(min-width:900px){.woocommerce-account.logged-in .woocommerce{grid-template-columns:260px 1fr;align-items:start}.woocommerce-account .kv-shop-head,.woocommerce-account .woocommerce-notices-wrapper{grid-column:1/-1}}
.woocommerce-account .woocommerce-MyAccount-navigation{width:100%!important;float:none!important;background:var(--blush);padding:14px 24px}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;transition:color .2s,padding-left .2s}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a{border:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--berry);padding-left:6px}
.woocommerce-account .woocommerce-MyAccount-content{width:100%!important;float:none!important;font-family:var(--sans);color:var(--ink-soft)}
.woocommerce-account .woocommerce-MyAccount-content h2,.woocommerce-account .woocommerce-MyAccount-content h3{font-family:var(--serif);color:var(--berry);font-weight:400}
.woocommerce-account .woocommerce-MyAccount-content a{color:var(--berry)}
.woocommerce-account .u-columns.col2-set{display:grid;gap:24px;grid-column:1/-1}
@media(min-width:800px){.woocommerce-account .u-columns.col2-set{grid-template-columns:1fr 1fr}}
.woocommerce-account .u-columns .col-1,.woocommerce-account .u-columns .col-2{width:100%!important;float:none!important}
.woocommerce-account .u-columns h2{font-family:var(--serif);font-size:28px;color:var(--berry);font-weight:400;margin:0 0 16px}
.woocommerce form.login,.woocommerce form.register,.woocommerce form.lost_reset_password{border:1px solid var(--line)!important;border-radius:0!important;padding:30px!important;background:#fff;margin:0}
.woocommerce form.login .woocommerce-form-login__rememberme{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin:6px 0 0}
.woocommerce form.login .lost_password{font-size:13px}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td{font-size:14px}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button{padding:10px 16px;font-size:10px}

/* =================== v1.5: notes =================== */
.kv-notes{list-style:none;padding:18px 0 0;margin:6px 0 0;border-top:1px solid var(--line);display:grid;gap:8px;font-family:var(--sans);font-size:13px;color:var(--ink-soft);line-height:1.5}
.kv-notes li{padding-left:18px;position:relative}
.kv-notes li::before{content:'✦';position:absolute;left:0;top:0;color:var(--rg2);font-size:11px}
.kv-notes b{color:var(--ink);font-weight:500}
.kv-shop-note{font-family:var(--sans);font-size:13px;color:var(--ink-soft);max-width:44em;margin:14px auto 0;padding:10px 16px;background:var(--blush);display:inline-block}

/* footer newsletter (Fluent Forms) */
.kv-newsletter{max-width:1200px;margin:48px auto 0;padding:34px 0 0;border-top:1px solid var(--line);display:grid;gap:22px;align-items:center}
@media(min-width:800px){.kv-newsletter{grid-template-columns:1fr 1fr;gap:48px}}
.kv-newsletter .kv-eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--rg3)}
.kv-newsletter h3{font-family:var(--serif);font-size:32px;color:var(--berry);font-weight:400;margin:8px 0 6px}
.kv-newsletter p{font-family:var(--sans);font-size:14px;color:var(--ink-soft);margin:0}
.kv-newsletter-form .fluentform{margin:0}
.kv-newsletter-form .ff-el-group{margin:0!important}
.kv-newsletter-form .ff-el-input--label{display:none!important}
.kv-newsletter-form .ff-t-container{display:flex!important;gap:0!important;align-items:stretch}
.kv-newsletter-form .ff-t-cell{flex:1}
.kv-newsletter-form .ff-t-cell:last-child{flex:0 0 auto}
.kv-newsletter-form .ff-el-form-control{border:1px solid var(--rg1)!important;border-right:0!important;border-radius:0!important;padding:16px 18px!important;font-family:var(--sans)!important;font-size:14px!important;background:#fff!important;height:52px;box-shadow:none!important}
.kv-newsletter-form .ff-el-form-control:focus{border-color:var(--berry)!important}
.kv-newsletter-form .ff-btn-submit{height:52px;padding:0 26px!important;border-radius:0!important;border:0!important;background:var(--rgold)!important;color:#fff!important;font-family:var(--sans)!important;font-size:11px!important;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;box-shadow:none;transition:filter .2s}
.kv-newsletter-form .ff-btn-submit:hover{filter:brightness(1.06)}
.kv-newsletter-form .ff-message-success{background:transparent!important;border:0!important;padding:10px 0!important;font-family:var(--serif);font-size:20px;color:var(--berry)}
.kv-newsletter-form .error{font-family:var(--sans);font-size:12px;color:#B23A4A}

/* =================== v1.7: reviews =================== */
.kv-reviews{display:grid;gap:18px;margin:10px 0 40px}
@media(min-width:700px){.kv-reviews{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.kv-reviews{grid-template-columns:repeat(3,1fr)}}
.kv-review{background:#fff;border:1px solid var(--line);padding:24px;font-family:var(--sans);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.kv-review:hover{transform:translateY(-4px);box-shadow:0 30px 50px -40px rgba(122,47,60,.5)}
.kv-review-stars{color:var(--rg2);letter-spacing:.1em;font-size:14px;margin-bottom:10px}
.kv-review p{font-family:var(--serif);font-size:19px;color:var(--ink);line-height:1.4;margin:0 0 12px}
.kv-review-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 12px}
.kv-review-imgs img{aspect-ratio:1;object-fit:cover;width:100%}
.kv-review footer{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.kv-review footer a{color:var(--berry);text-decoration:none}
/* product reviews tab */
.kv-product-details #reviews .woocommerce-Reviews-title{font-family:var(--serif);font-size:26px;color:var(--berry);font-weight:400}
.kv-product-details .commentlist{list-style:none;padding:0;margin:0 0 30px}
.kv-product-details .commentlist li{border-bottom:1px solid var(--line);padding:16px 0}
.kv-product-details .commentlist .avatar{display:none}
.kv-product-details .commentlist .comment-text{margin:0!important;border:0!important;padding:0!important}
.kv-product-details .star-rating span::before,.kv-product-details .star-rating::before{color:var(--rg2)}
.kv-product-details .comment-reply-title{font-family:var(--serif);font-size:24px;color:var(--berry);font-weight:400}
.kv-product-details #review_form .comment-form-rating p.stars a{color:var(--rg2)}
.kv-product-details #review_form textarea,.kv-product-details #review_form input.input-text{border:1px solid var(--rg1)!important;border-radius:0!important;padding:12px 14px!important;font-family:var(--sans)}
.kv-product-details #review_form .form-submit .submit{display:inline-flex;padding:14px 26px;border-radius:0;border:0;background:var(--rgold);color:#fff;font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase}

/* =================== v1.7.1: checkout tidy =================== */
/* Stripe Link / express checkout: hidden, brand-consistent checkout only */
.woocommerce-checkout #wc-stripe-payment-request-wrapper,.woocommerce-checkout #wc-stripe-payment-request-button-separator,
.woocommerce-checkout .wc-stripe-payment-request-wrapper,.wc-block-components-express-payment,.wc-block-components-express-payment-continue-rule,
#wcpay-payment-request-wrapper,#wcpay-express-checkout-element,.woocommerce-checkout .wc-stripe-link-payment-request-button{display:none!important}
/* field grid: predictable two-column layout */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide,.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row-wide{grid-column:1/-1}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;float:none;margin-right:0}
.woocommerce form .form-row::after,.woocommerce form .form-row::before{content:none}
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row{width:100%}
@media(max-width:600px){.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{grid-template-columns:1fr}}
/* coupon notice */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{background:var(--blush)!important;font-size:13px;padding:12px 18px 12px 44px!important}
.woocommerce-checkout form.checkout_coupon{border:1px solid var(--rg1)!important;border-radius:0!important;padding:20px!important}

/* v1.7.3: mobile overflow on cart (table wider than screen) */
@media(max-width:600px){
  body.kv-site .woocommerce table.shop_table_responsive,body.kv-site .woocommerce-page table.shop_table_responsive{display:block;width:100%}
  body.kv-site .woocommerce table.shop_table_responsive thead{display:none}
  body.kv-site .woocommerce table.shop_table_responsive tbody tr{display:grid;grid-template-columns:76px 1fr;gap:0 14px;padding:16px 0;border-top:1px solid var(--line);position:relative}
  body.kv-site .woocommerce table.shop_table_responsive tbody td{display:block;border:0;padding:2px 0;text-align:left!important;width:auto}
  body.kv-site .woocommerce table.shop_table_responsive td.product-thumbnail{grid-row:1/5;grid-column:1}
  body.kv-site .woocommerce table.shop_table_responsive td.product-thumbnail img{width:76px;height:88px}
  body.kv-site .woocommerce table.shop_table_responsive td.product-remove{position:absolute;top:14px;right:0;grid-column:2}
  body.kv-site .woocommerce table.shop_table_responsive td::before{content:attr(data-title) ": ";font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-weight:400}
  body.kv-site .woocommerce table.shop_table_responsive td.product-name::before,body.kv-site .woocommerce table.shop_table_responsive td.product-thumbnail::before,body.kv-site .woocommerce table.shop_table_responsive td.product-remove::before{content:none}
  body.kv-site .woocommerce table.shop_table_responsive td.actions{grid-column:1/-1;display:block;padding-top:16px}
  body.kv-site .woocommerce table.shop_table_responsive td.actions .coupon{float:none;display:flex;gap:8px;margin-bottom:10px}
  body.kv-site .woocommerce table.shop_table_responsive td.actions .coupon input.input-text{width:100%!important}
  body.kv-site .woocommerce .cart-collaterals,body.kv-site .woocommerce .cart_totals{width:100%!important}
  body.kv-site .kv-shop-head h1{font-size:clamp(32px,9vw,44px);word-break:break-word}
  body.kv-site .woocommerce,body.kv-site .page-content,body.kv-site .site-main{max-width:100%;overflow-x:hidden}
}

/* v1.7.4: cart on mobile — the grid must beat WooCommerce's own responsive table CSS */
@media(max-width:600px){
  body.kv-site .woocommerce table.cart,body.kv-site .woocommerce table.shop_table_responsive{display:block!important;border:0!important}
  body.kv-site .woocommerce table.cart thead,body.kv-site .woocommerce table.shop_table_responsive thead{display:none!important}
  body.kv-site .woocommerce table.cart tbody,body.kv-site .woocommerce table.shop_table_responsive tbody{display:block!important;width:100%}
  body.kv-site .woocommerce table.cart tbody tr.cart_item{display:grid!important;grid-template-columns:84px 1fr;column-gap:14px;row-gap:2px;padding:18px 0;border-top:1px solid var(--line);position:relative;width:100%}
  body.kv-site .woocommerce table.cart tbody tr.cart_item td{display:block!important;width:auto!important;border:0!important;padding:1px 0!important;text-align:left!important;float:none!important}
  body.kv-site .woocommerce table.cart td.product-thumbnail{grid-column:1;grid-row:1/6;display:block!important}
  body.kv-site .woocommerce table.cart td.product-thumbnail img{width:84px!important;height:96px!important;object-fit:cover}
  body.kv-site .woocommerce table.cart td.product-name{grid-column:2;padding-right:26px!important}
  body.kv-site .woocommerce table.cart td.product-price,body.kv-site .woocommerce table.cart td.product-quantity,body.kv-site .woocommerce table.cart td.product-subtotal{grid-column:2}
  body.kv-site .woocommerce table.cart td.product-remove{position:absolute;top:16px;right:0;grid-column:2;padding:0!important}
  body.kv-site .woocommerce table.cart td::before{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
  body.kv-site .woocommerce table.cart td.product-name::before,body.kv-site .woocommerce table.cart td.product-thumbnail::before,body.kv-site .woocommerce table.cart td.product-remove::before{content:none!important}
  body.kv-site .woocommerce table.cart td.product-price{display:none!important}
  body.kv-site .woocommerce table.cart .quantity{margin:6px 0}
  body.kv-site .woocommerce table.cart td.actions{grid-column:1/-1!important;padding-top:18px!important}
  body.kv-site .woocommerce table.cart td.actions .coupon{float:none!important;display:flex;gap:8px;margin-bottom:12px}
  body.kv-site .woocommerce table.cart td.actions .coupon input.input-text{width:100%!important;min-width:0}
  body.kv-site .woocommerce table.cart td.actions .button{width:100%;margin:4px 0}
  body.kv-site.woocommerce-cart .woocommerce{display:block!important}
  body.kv-site .woocommerce .cart-collaterals,body.kv-site .woocommerce .cart_totals{width:100%!important;float:none!important;position:static!important;margin-top:24px}
  body.kv-site .woocommerce .cart_totals table.shop_table{display:table!important;width:100%}
  body.kv-site .woocommerce .cart_totals table.shop_table tbody{display:table-row-group!important}
  body.kv-site .woocommerce .cart_totals table.shop_table tr{display:table-row!important}
  body.kv-site .woocommerce .cart_totals table.shop_table th,body.kv-site .woocommerce .cart_totals table.shop_table td{display:table-cell!important;padding:12px 0!important}
  body.kv-site .kv-shop-head h1{white-space:normal}
}

/* v1.7.5 */
@media(max-width:899px){
  body.kv-site.woocommerce-cart .woocommerce{display:block!important}
  body.kv-site.woocommerce-cart .cart-collaterals{width:100%!important;float:none!important;margin-top:26px}
  body.kv-site.woocommerce-cart .cart_totals{position:static!important}
  body.kv-site.woocommerce-checkout form.checkout{display:block!important}
  body.kv-site.woocommerce-checkout #order_review,body.kv-site.woocommerce-checkout #order_review_heading{position:static!important;margin-top:22px}
}
/* phone is required: hide WooCommerce's "(optional)" on that row */
#billing_phone_field label .optional{display:none}
#billing_phone_field label::after{content:' *';color:var(--rg2)}

/* v1.7.6: mobile cart polish — WooCommerce injects data-title labels; keep ours only */
@media(max-width:899px){
  body.kv-site.woocommerce-cart table.cart tbody tr.cart_item td::before{content:attr(data-title);display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:2px}
  body.kv-site.woocommerce-cart table.cart tbody tr.cart_item td.product-name::before,
  body.kv-site.woocommerce-cart table.cart tbody tr.cart_item td.product-thumbnail::before,
  body.kv-site.woocommerce-cart table.cart tbody tr.cart_item td.product-remove::before{content:none!important}
  body.kv-site.woocommerce-cart table.cart tbody tr.cart_item td.product-price{display:none!important}
  body.kv-site.woocommerce-cart table.cart tbody tr.cart_item td.product-subtotal{font-family:var(--serif);font-size:19px;color:var(--rg3);margin-top:4px}
  body.kv-site.woocommerce-cart table.cart tbody tr.cart_item td.product-name{font-size:15px;color:var(--ink)}
  body.kv-site.woocommerce-cart .cart_totals table.shop_table th{display:block!important;width:100%;padding:10px 0 0!important;border:0!important}
  body.kv-site.woocommerce-cart .cart_totals table.shop_table td{display:block!important;width:100%;padding:0 0 10px!important;text-align:left!important;border-bottom:1px solid var(--line)!important}
  body.kv-site.woocommerce-cart .cart_totals table.shop_table tr.order-total td{border:0!important}
  body.kv-site.woocommerce-cart .cart_totals table.shop_table tbody,body.kv-site.woocommerce-cart .cart_totals table.shop_table tr{display:block!important}
  body.kv-site.woocommerce-cart td.actions .coupon input.input-text{flex:1}
  body.kv-site.woocommerce-cart td.actions .coupon .button{white-space:nowrap;padding:12px 16px;font-size:10px}
}
/* phone: WooCommerce prints its own "(optional)"; ours wins */
#billing_phone_field label .optional,#shipping_phone_field label .optional{display:none!important}
#billing_phone_field label::after{content:" *";color:var(--rg2)}

/* =================== v1.8: extras =================== */
/* size guide */
.kv-size-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:14px 0 0;font-family:var(--sans);font-size:12px}
.kv-size-open{background:none;border:0;padding:12px 2px;margin:-12px 0;min-height:44px;color:var(--berry);font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid var(--rg2)}
.kv-size-help{display:inline-block;padding:12px 0;margin:-12px 0;color:var(--ink-soft);font-size:13px;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
.kv-size-help:hover{color:var(--berry);border-color:var(--rg1)}
.kv-modal{position:fixed;inset:0;z-index:1000;background:rgba(58,42,45,.45);display:grid;place-items:center;padding:20px;backdrop-filter:blur(3px);animation:kvFade .25s ease}
@keyframes kvFade{from{opacity:0}to{opacity:1}}
.kv-modal[hidden]{display:none}
.kv-modal-box{background:var(--cream);max-width:560px;width:100%;padding:34px 30px;position:relative;max-height:88vh;overflow:auto;animation:kvUpIn .35s cubic-bezier(.2,.7,.2,1)}
@keyframes kvUpIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.kv-modal-box h3{font-family:var(--serif);font-size:32px;color:var(--berry);font-weight:400;margin:8px 0 10px}
.kv-modal-box p{font-family:var(--sans);font-size:14px;color:var(--ink-soft);margin:0 0 16px}
.kv-modal-close{position:absolute;top:12px;right:16px;background:none;border:0;font-size:26px;line-height:1;color:var(--ink-soft);cursor:pointer;transition:color .2s}
.kv-modal-close:hover{color:var(--berry)}
.kv-size-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14px;margin:0 0 14px}
.kv-size-table th{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-weight:400;padding:10px 6px;border-bottom:1px solid var(--line);text-align:center}
.kv-size-table tbody th{color:var(--berry);font-family:var(--serif);font-size:18px;letter-spacing:0;text-transform:none}
.kv-size-table td{padding:10px 6px;text-align:center;border-bottom:1px solid var(--line);color:var(--ink)}
.kv-size-table tbody tr:hover{background:var(--blush)}
.kv-size-note{font-size:13px!important}
/* free delivery bar */
.kv-freeship{background:var(--blush);padding:14px 18px;margin:0 0 20px;font-family:var(--sans);font-size:13px;color:var(--ink)}
.kv-freeship p{margin:0 0 8px}
.kv-freeship .kv-bar{height:4px;background:rgba(255,255,255,.7);overflow:hidden}
.kv-freeship .kv-bar span{display:block;height:100%;background:var(--rgold);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.kv-freeship.is-done{background:var(--blush-2)}
.kv-freeship.is-done p{color:var(--berry)}

.kv-launch-banner{background:var(--rgold);padding:12px 18px;margin:0 0 12px;font-family:var(--sans);font-size:12px;letter-spacing:.04em;color:#fff;text-align:center}
.kv-launch-banner p{margin:0}

.kv-set-options{margin:18px 0}
.kv-set-photographed{font-family:var(--sans);font-size:12px;color:var(--ink-soft);margin:0 0 12px}
.kv-set-photographed strong{color:var(--berry)}
.kv-set-option-row{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 18px}
.kv-set-option-row label{flex:1 1 140px;display:flex;flex-direction:column;gap:6px;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.kv-set-option-row select{padding:11px 12px;border:1px solid var(--rg2);background:var(--white);font-family:var(--sans);font-size:13px;letter-spacing:normal;text-transform:none;color:var(--ink)}

/* cart totals: keep shipping rows from overlapping the subtotal box */
.woocommerce-cart .cart_totals table tr{position:relative}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td{vertical-align:top;padding:14px 16px;line-height:1.6}
.woocommerce-cart .cart_totals .woocommerce-shipping-totals td{overflow:visible}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods{margin:0;padding:0;list-style:none}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li{margin:0 0 6px}
/* sticky add to cart */
.kv-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;align-items:center;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(251,244,241,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.kv-sticky-atc.show{transform:none}
.kv-sticky-info{flex:1;min-width:0;font-family:var(--sans);line-height:1.3}
.kv-sticky-info strong{display:block;font-size:13px;font-weight:400;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv-sticky-price{font-family:var(--serif);font-size:17px;color:var(--rg3)}
.kv-sticky-price .amount{font-size:17px}
.kv-sticky-btn{padding:13px 20px;font-size:11px;white-space:nowrap}
@media(max-width:899px){.kv-sticky-atc{display:flex}.kv-float{bottom:96px;right:12px;gap:12px}
/* four buttons covered the product cards and the add to basket button on a phone.
   Share and Instagram stay reachable in the footer. */
.kv-float .kv-f-share,.kv-float .kv-f-ig{display:none}
.kv-float a,.kv-float button{width:46px;height:46px}
.kv-float svg{width:21px;height:21px}}
body.kv-site .kv-intl-note{background:var(--blush,#F4E4DF);padding:16px 18px;margin:0 0 22px}
body.kv-site .kv-intl-note p{margin:0;font-size:13.5px;line-height:1.75;color:var(--ink,#3A2A2D)}
body.kv-site .kv-no-ship{font-size:13.5px;line-height:1.75}
body.kv-site .kv-no-ship a{color:var(--berry,#7A2F3C)}
.kvp h1.kv-balance{text-wrap:balance}
.kvp .kv-coin{margin:22px 0 0}
.kvp .kv-coin img{max-width:320px;width:100%;height:auto;display:block}
/* recently viewed */
.kv-viewed{margin-top:70px;padding-top:40px;border-top:1px solid var(--line)}
.kv-viewed h2{text-align:center;font-family:var(--serif);font-size:32px;color:var(--berry);font-weight:400;margin:0 0 26px}
/* thank you */
.kv-next{margin:40px 0;padding:30px;background:var(--blush)}
.kv-next h2{font-family:var(--serif);font-size:30px;color:var(--berry);font-weight:400;margin:0 0 18px}
.kv-next-steps{counter-reset:n;list-style:none;padding:0;margin:0 0 18px;display:grid;gap:14px}
.kv-next-steps li{counter-increment:n;display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;font-family:var(--sans)}
.kv-next-steps li::before{content:counter(n,decimal-leading-zero);font-family:var(--serif);font-size:24px;color:var(--rg2);line-height:1.1}
.kv-next-steps strong{display:block;font-weight:400;color:var(--ink);font-size:15px}
.kv-next-steps span{grid-column:2;font-size:14px;line-height:1.7;color:var(--ink-soft)}
.kv-next-help{font-family:var(--sans);font-size:14px;color:var(--ink-soft)}
/* sold out */
.kv-soldout{background:var(--blush);padding:22px;margin:16px 0 0;font-family:var(--sans)}
.kv-soldout strong{display:block;color:var(--berry);font-weight:400;font-size:16px;margin-bottom:4px}
.kv-soldout p{font-size:14px;color:var(--ink-soft);margin:0 0 14px}

.kv-set-blurb{margin:18px 0 0;padding:16px 18px;background:var(--cream);border-left:2px solid var(--rg2)}
.kv-set-blurb p{margin:0 0 10px;font-family:var(--sans);font-size:13px;line-height:1.75;color:var(--ink-soft)}
.kv-set-blurb p:last-child{margin:0}
.kv-set-blurb-tag{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--berry)}

.kv-collection-intro{max-width:720px;margin:0 auto 34px;text-align:center}
.kv-collection-intro p{font-family:var(--sans);font-size:14px;line-height:1.85;color:var(--ink-soft);margin:0 0 12px}
.kv-collection-intro p:last-child{margin:0}
.kv-collection-intro .kv-ci-lead{font-family:var(--serif);font-size:19px;font-style:italic;color:var(--berry)}

/* ===== footer v7: quiet columns, then the wordmark ===== */
.kv-footer{padding:clamp(70px,8vw,110px) clamp(20px,5vw,64px) 28px;margin-top:0;background:var(--cream);border-top:1px solid rgba(154,92,100,.16)}
.kv-footer::before{display:none}
.kv-footer-grid{max-width:1240px;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(30px,4vw,60px);align-items:start}
@media(max-width:900px){.kv-footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.kv-footer-grid{grid-template-columns:1fr}}
.kv-f-brand .kv-flogo{font-size:22px;letter-spacing:.32em}
.kv-f-brand p{font-size:14.5px;line-height:1.8;max-width:34ch;font-weight:300}
.kv-f-col h4{font-family:var(--serif);font-size:20px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:400;margin:0 0 14px}
.kv-f-col nav{gap:10px;font-size:14.5px;font-weight:300}
.kv-f-col nav a{color:var(--ink-soft)}
.kv-f-col nav a:hover{transform:none;color:var(--berry)}
.kv-f-meta{font-weight:300}
.kv-newsletter{max-width:1240px;margin:clamp(40px,5vw,64px) auto 0;padding:clamp(28px,3vw,40px) 0 0;border-top:1px solid rgba(154,92,100,.16)}
.kv-newsletter .kv-eyebrow{display:none}
.kv-newsletter h3{font-size:clamp(26px,3vw,36px);color:var(--ink);margin:0 0 6px}
.kv-footer-mark{max-width:1240px;margin:clamp(50px,7vw,90px) auto 0;overflow:hidden;line-height:.8;pointer-events:none;user-select:none}
.kv-footer-mark span{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(88px,19.5vw,268px);letter-spacing:.06em;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(122,47,60,.32);background:linear-gradient(180deg,rgba(122,47,60,.10),rgba(122,47,60,0));-webkit-background-clip:text;background-clip:text;transform:translateY(12%)}
.kv-footer-bottom{max-width:1240px;margin:0 auto;padding-top:22px;border-top:1px solid rgba(154,92,100,.16);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;text-align:left}
.kv-footer-bottom .kv-tag{margin:0;font-size:11px;letter-spacing:.2em;color:var(--ink-soft)}
.kv-footer-bottom .kv-legal{margin:0;font-size:12px;color:var(--ink-soft)}
@media(max-width:560px){.kv-footer-bottom{flex-direction:column;text-align:center}}
.kv-footer nav,.kv-f-col nav{text-transform:none;letter-spacing:0;font-size:14.5px}
.kv-footer .kv-social a{font-size:0}

/* ===== mobile tap targets: 44px minimum, most traffic is a phone ===== */
@media(max-width:900px){
  .kv-head .kv-icons a,.kv-head .kv-icons button,.kv-burger{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .kv-head .kv-nav a{padding-top:11px;padding-bottom:11px}
  .kv-footer nav a,.kv-f-col nav a{display:block;padding:11px 0;min-height:44px;line-height:1.5}
  .kv-footer .kv-social a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .kv-mnav a{padding-top:14px;padding-bottom:14px}
  .kvh .ledger a{padding-top:22px;padding-bottom:22px}
}

/* ---------- 2.3.2 shape guide (sizing page + product modal) ---------- */
.kv-guide{margin:26px 0 0}
.kv-guide-tabs{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);margin:0 0 26px;-webkit-overflow-scrolling:touch}
.kv-guide-tabs::-webkit-scrollbar{display:none}
.kv-guide-tab{flex:0 0 auto;background:none;border:0;padding:14px 18px 16px;font-family:var(--sans);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;position:relative;transition:color .25s;white-space:nowrap}
.kv-guide-tab::after{content:'';position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:var(--rgold);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.kv-guide-tab:hover,.kv-guide-tab.is-on{color:var(--berry)}
.kv-guide-tab.is-on::after{transform:scaleX(1)}
.kv-guide-tab:focus-visible{outline:2px solid var(--berry);outline-offset:-2px}
.kv-guide-panel{animation:kvGuideIn .45s cubic-bezier(.2,.7,.2,1)}
.kv-guide-panel[hidden]{display:none}
@keyframes kvGuideIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* 2.3.18, Karen's call: the nail-number table sits under the chart instead of
   beside it, so the chart is read at full width and nothing is crowded. */
.kv-guide-grid{display:grid;grid-template-columns:1fr;gap:26px;align-items:start}
.kv-guide-chart img{width:100%;height:auto;display:block;margin:0 auto;max-width:620px}
.kv-guide-grid.no-chart{grid-template-columns:1fr}
@media(max-width:820px){.kv-guide-grid{grid-template-columns:1fr;gap:22px}}
.kv-guide-chart{margin:0;background:var(--blush);padding:14px}
.kv-guide-chart a{display:block;position:relative;overflow:hidden}
.kv-guide-chart img{display:block;width:100%;height:auto;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.kv-guide-chart a:hover img{transform:scale(1.025)}
.kv-zoom-hint{position:absolute;right:10px;bottom:10px;background:rgba(58,42,45,.72);color:#fff;font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:7px 10px;backdrop-filter:blur(3px)}
.kv-guide-lead{font-family:var(--sans);font-size:14.5px;line-height:1.8;color:var(--ink-soft);margin:0 0 14px}
.kv-guide-note{font-family:var(--sans);font-size:13px;line-height:1.75;color:var(--ink-soft);margin:14px 0 0;padding:14px 16px;background:var(--blush);border-left:2px solid #C0827E}
.kv-size-table td b{display:block;font-family:var(--serif);font-size:22px;color:var(--ink);line-height:1.1}
.kv-size-table td small{display:block;font-size:11px;color:var(--ink-soft);margin-top:3px;letter-spacing:.02em}
.kv-size-table.is-compact td b{font-size:19px}
.kv-size-table.is-compact td small{font-size:10px}
.kv-size-table tbody tr.is-hit{background:var(--blush-2)}
.kv-size-table tbody tr.is-hit th{color:var(--berry)}
.kv-modal-box.kv-modal-wide{max-width:760px}
.kv-modal-box .kv-guide-tabs{margin-bottom:18px}
.kv-modal-box .kv-guide-grid{grid-template-columns:1fr;gap:16px}
.kv-modal-box .kv-guide-chart{padding:8px}
.kv-modal-box .kv-guide-chart img{max-height:240px;width:auto;margin:0 auto}
.kv-modal-box .kv-guide-lead{display:none}
/* nail numbers field */
.kv-nails{margin:-8px 0 18px;font-family:var(--sans)}
.kv-nails summary{cursor:pointer;list-style:none;font-size:12px;letter-spacing:.06em;color:var(--berry);padding:6px 0;display:inline-flex;align-items:center;gap:8px}
.kv-nails summary::-webkit-details-marker{display:none}
.kv-nails summary::before{content:'+';font-family:var(--serif);font-size:18px;line-height:1;transition:transform .3s}
.kv-nails[open] summary::before{transform:rotate(45deg)}
.kv-nails summary span{color:var(--ink-soft);letter-spacing:0}
.kv-nails label{display:flex;flex-direction:column;gap:8px;margin-top:8px;animation:kvGuideIn .35s cubic-bezier(.2,.7,.2,1)}
.kv-nails input{padding:11px 12px;border:1px solid var(--rg2);background:var(--white);font-family:var(--sans);font-size:13px;color:var(--ink)}
.kv-nails input:focus{outline:none;border-color:var(--berry)}
.kv-nails small{font-size:12px;color:var(--ink-soft);line-height:1.6}
.kv-nails small a{color:var(--berry)}
/* chart lightbox */
.kv-lightbox{position:fixed;inset:0;z-index:1100;background:rgba(58,42,45,.86);display:grid;place-items:center;padding:16px;animation:kvFade .25s ease;cursor:zoom-out}
.kv-lightbox[hidden]{display:none}
.kv-lightbox img{max-width:min(100%,900px);max-height:92vh;width:auto;height:auto;box-shadow:0 30px 80px rgba(0,0,0,.4);animation:kvUpIn .4s cubic-bezier(.2,.7,.2,1)}
.kv-lightbox button{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer}
@media(prefers-reduced-motion:reduce){.kv-guide-panel,.kv-nails label,.kv-lightbox img{animation:none}.kv-guide-chart img,.kv-guide-tab::after{transition:none}}
.kv-modal-box .kv-size-table th,.kv-modal-box .kv-size-table td,.kvp .kv-size-table th,.kvp .kv-size-table td{border-left:0;border-right:0;border-top:0}

/* ---------- 2.3.12 order confirmed: seal, then the steps arrive in sequence ---------- */
.kv-ty{position:relative;overflow:hidden}
.kv-seal{position:relative;width:104px;height:104px;margin:0 auto 46px;display:grid;place-items:center}
.kv-seal svg{position:absolute;inset:0;width:100%;height:100%;fill:none;overflow:visible}
.kv-seal-ring{stroke:var(--rg2);stroke-width:1.5;stroke-dasharray:327;stroke-dashoffset:327;transform-origin:60px 60px;transform:rotate(-90deg);animation:kvSealRing 1.1s cubic-bezier(.4,0,.2,1) .15s forwards}
.kv-seal-tick{stroke:#7A2F3C;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:64;stroke-dashoffset:64;animation:kvSealTick .55s cubic-bezier(.3,0,.2,1) .95s forwards}
.kv-seal-word{position:absolute;left:50%;top:calc(100% + 14px);transform:translate(-50%,6px);white-space:nowrap;font-family:'Homemade Apple',cursive;font-size:15px;color:var(--rg1,#C88A86);opacity:0;animation:kvSealWord .7s cubic-bezier(.2,.7,.2,1) 1.35s forwards}
@keyframes kvSealRing{to{stroke-dashoffset:0}}
@keyframes kvSealTick{to{stroke-dashoffset:0}}
@keyframes kvSealWord{to{opacity:1;transform:translate(-50%,0)}}
.kv-ty h2{opacity:0;animation:kvTyUp .7s cubic-bezier(.2,.7,.2,1) 1.5s forwards}
.kv-ty .kv-next-steps li{opacity:0;animation:kvTyUp .7s cubic-bezier(.2,.7,.2,1) forwards}
.kv-ty .kv-next-steps li:nth-child(1){animation-delay:1.7s}
.kv-ty .kv-next-steps li:nth-child(2){animation-delay:1.9s}
.kv-ty .kv-next-steps li:nth-child(3){animation-delay:2.1s}
.kv-ty .kv-next-help,.kv-ty .kv-btn{opacity:0;animation:kvTyUp .7s cubic-bezier(.2,.7,.2,1) 2.35s forwards}
@keyframes kvTyUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* a slow blush wash across the panel, once */
.kv-ty::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,253,252,.55) 50%,transparent 70%);transform:translateX(-120%);animation:kvTyWash 2.2s cubic-bezier(.4,0,.2,1) .5s 1}
@keyframes kvTyWash{to{transform:translateX(120%)}}
@media(prefers-reduced-motion:reduce){.kv-seal-ring,.kv-seal-tick,.kv-seal-word,.kv-ty h2,.kv-ty .kv-next-steps li,.kv-ty .kv-next-help,.kv-ty .kv-btn{animation:none;opacity:1;stroke-dashoffset:0;transform:none}.kv-ty::after{display:none}}

/* ---------- 2.3.13 client walkthrough fixes ---------- */
/* WooCommerce clearfix pseudo-elements became grid items and left an empty first cell */
.woocommerce ul.products::before,.woocommerce ul.products::after,
.related.products ul.products::before,.related.products ul.products::after{content:none;display:none}
/* Cormorant's default numerals read as letters (1 as I, 0 as O): force lining figures everywhere */
:root{font-variant-numeric:lining-nums tabular-nums}
h1,h2,h3,h4,.kvp,.kvp *,.kv-size-table,.kv-size-table *,.woocommerce-Price-amount,.kv-next-steps li::before,.kv-guide *{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1,"tnum" 0}
/* the intro line under a page title needs room before the panel ends */
.kvp .kv-hero p{max-width:34ch;margin-left:auto;margin-right:auto;padding-bottom:6px}
/* the collections image is sticky: keep the promise line above it */
.kvh .kvh-usp{position:relative;z-index:3}
.kvh .ledger .stage{z-index:1}

/* ================= 2.3.14 motion pass: basket, checkout, order ================= */

/* --- basket: rows arrive one after another, totals settle after them --- */
.kv-cart .woocommerce-cart-form__cart-item{animation:kvRowIn .6s cubic-bezier(.2,.7,.2,1) both}
.kv-cart .woocommerce-cart-form__cart-item:nth-child(1){animation-delay:.05s}
.kv-cart .woocommerce-cart-form__cart-item:nth-child(2){animation-delay:.13s}
.kv-cart .woocommerce-cart-form__cart-item:nth-child(3){animation-delay:.21s}
.kv-cart .woocommerce-cart-form__cart-item:nth-child(n+4){animation-delay:.28s}
@keyframes kvRowIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.kv-cart .cart_totals{animation:kvRowIn .7s cubic-bezier(.2,.7,.2,1) .34s both}
/* the free-delivery bar fills on arrival, then a soft shimmer travels once */
.kv-freeship{position:relative;overflow:hidden}
.kv-freeship .kv-bar span{animation:kvBarFill 1.1s cubic-bezier(.2,.7,.2,1) .5s both}
@keyframes kvBarFill{from{transform:scaleX(.02);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
.kv-freeship::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);animation:kvSheen 2.4s cubic-bezier(.4,0,.2,1) 1.1s 1}
@keyframes kvSheen{to{transform:translateX(120%)}}
/* quantity stepper and the remove cross answer the touch */
.kv-cart .quantity input{transition:border-color .25s,box-shadow .25s}
.kv-cart .quantity input:focus{border-color:var(--berry);box-shadow:0 0 0 3px rgba(122,47,60,.08);outline:none}
.kv-cart a.remove{transition:transform .25s cubic-bezier(.2,.7,.2,1),color .2s}
.kv-cart a.remove:hover{transform:rotate(90deg) scale(1.1)}
/* WooCommerce dims the block while it recalculates: make that look deliberate */
.woocommerce .blockUI.blockOverlay{background:var(--cream)!important;opacity:.6!important}
.woocommerce .blockUI.blockOverlay::after{content:"";position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border:1.5px solid var(--rg2);border-top-color:var(--berry);border-radius:50%;animation:kvSpin .8s linear infinite}
@keyframes kvSpin{to{transform:rotate(360deg)}}

/* --- primary buttons: a slow sheen on hover, a press that feels physical --- */
.kv-btn,.woocommerce .button,.woocommerce button.button,.woocommerce a.button,#place_order,.checkout-button{position:relative;overflow:hidden}
.kv-btn::after,.woocommerce .button::after,#place_order::after,.checkout-button::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-130%);transition:transform .9s cubic-bezier(.4,0,.2,1);pointer-events:none}
.kv-btn:hover::after,.woocommerce .button:hover::after,#place_order:hover::after,.checkout-button:hover::after{transform:translateX(130%)}
.kv-btn:active,.woocommerce .button:active,#place_order:active,.checkout-button:active{transform:translateY(1px) scale(.994)}

/* --- checkout: the three panels arrive in order, fields answer the focus --- */
body.kv-site.woocommerce-checkout .woocommerce-billing-fields{animation:kvRowIn .65s cubic-bezier(.2,.7,.2,1) .1s both}
body.kv-site.woocommerce-checkout .woocommerce-additional-fields{animation:kvRowIn .65s cubic-bezier(.2,.7,.2,1) .2s both}
body.kv-site.woocommerce-checkout #order_review_heading,body.kv-site.woocommerce-checkout #order_review{animation:kvRowIn .7s cubic-bezier(.2,.7,.2,1) .3s both}
body.kv-site.woocommerce-checkout .form-row input.input-text,body.kv-site.woocommerce-checkout .form-row textarea,body.kv-site.woocommerce-checkout .select2-selection{transition:border-color .25s,box-shadow .25s,background .25s}
body.kv-site.woocommerce-checkout .form-row input.input-text:focus,body.kv-site.woocommerce-checkout .form-row textarea:focus{border-color:var(--berry);box-shadow:0 0 0 3px rgba(122,47,60,.08);outline:none}
/* a field WooCommerce marks as valid gets a quiet tick, an invalid one a soft shake */
body.kv-site.woocommerce-checkout .form-row.woocommerce-validated input.input-text{border-color:#B7C4A8}
body.kv-site.woocommerce-checkout .form-row.woocommerce-invalid input.input-text{animation:kvShake .4s cubic-bezier(.36,.07,.19,.97)}
@keyframes kvShake{10%,90%{transform:translateX(-1px)}30%,70%{transform:translateX(2px)}50%{transform:translateX(-2px)}}
/* chosen payment method lifts out of the list */
body.kv-site.woocommerce-checkout .wc_payment_method{transition:background .3s}
body.kv-site.woocommerce-checkout .wc_payment_method .payment_box{animation:kvBoxIn .45s cubic-bezier(.2,.7,.2,1) both}
@keyframes kvBoxIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* the order review lines settle in */
body.kv-site.woocommerce-checkout #order_review tbody tr{animation:kvRowIn .5s cubic-bezier(.2,.7,.2,1) both}
body.kv-site.woocommerce-checkout #order_review tbody tr:nth-child(2){animation-delay:.06s}
body.kv-site.woocommerce-checkout #order_review tbody tr:nth-child(3){animation-delay:.12s}
body.kv-site.woocommerce-checkout #order_review tbody tr:nth-child(n+4){animation-delay:.18s}
/* while the payment is being taken, the button reads as working */
body.kv-site.woocommerce-checkout form.processing #place_order{color:transparent!important;pointer-events:none}
body.kv-site.woocommerce-checkout form.processing #place_order::before{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:1.5px solid rgba(255,253,252,.45);border-top-color:#FFFDFC;border-radius:50%;animation:kvSpin .8s linear infinite}

/* --- empty basket and account: same quiet arrival --- */
.kv-empty-cart,.kv-account .woocommerce{animation:kvRowIn .7s cubic-bezier(.2,.7,.2,1) .08s both}

/* --- every page: the content settles instead of snapping in --- */
body.kv-site main,body.kv-site .kvp{animation:kvPageIn .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes kvPageIn{from{opacity:0}to{opacity:1}}

@media(prefers-reduced-motion:reduce){
  .kv-cart .woocommerce-cart-form__cart-item,.kv-cart .cart_totals,.kv-freeship .kv-bar span,.kv-empty-cart,.kv-account .woocommerce,
  body.kv-site.woocommerce-checkout .woocommerce-billing-fields,body.kv-site.woocommerce-checkout .woocommerce-additional-fields,
  body.kv-site.woocommerce-checkout #order_review_heading,body.kv-site.woocommerce-checkout #order_review,
  body.kv-site.woocommerce-checkout #order_review tbody tr,body.kv-site.woocommerce-checkout .wc_payment_method .payment_box,
  body.kv-site main,body.kv-site .kvp{animation:none;opacity:1;transform:none}
  .kv-freeship::after,.kv-btn::after,.woocommerce .button::after,#place_order::after,.checkout-button::after{display:none}
}

/* ================= Karève assistant ================= */
.kv-ai-open{position:fixed;right:18px;bottom:calc(18px + 4*50px + 4*10px);z-index:60;width:50px;height:50px;border-radius:50%;border:1px solid var(--rg2);background:var(--berry);color:#FFFDFC;display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 30px -14px rgba(58,42,45,.6);transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.kv-ai-open svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.kv-ai-open:hover{transform:translateY(-2px) scale(1.04)}
.kv-ai-open .kv-tip{position:absolute;right:60px;white-space:nowrap;background:var(--ink);color:#fff;font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:7px 10px;opacity:0;transform:translateX(6px);transition:opacity .25s,transform .25s;pointer-events:none}
.kv-ai-open:hover .kv-tip{opacity:1;transform:none}
.kv-ai-ping{position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--rg2);opacity:0;animation:kvPing 3.6s cubic-bezier(.2,.7,.2,1) 2s infinite}
@keyframes kvPing{0%{transform:scale(.9);opacity:.7}70%{transform:scale(1.35);opacity:0}100%{opacity:0}}
.kv-ai-open.is-open .kv-ai-ping{display:none}

.kv-ai{position:fixed;inset:0;z-index:1200;background:rgba(58,42,45,.38);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:flex-end;padding:0;animation:kvFadeIn .3s ease}
.kv-ai[hidden]{display:none}
@keyframes kvFadeIn{from{opacity:0}to{opacity:1}}
.kv-ai-panel{width:min(420px,100%);max-height:min(86vh,720px);background:var(--cream);display:flex;flex-direction:column;box-shadow:0 -20px 60px -30px rgba(58,42,45,.7);animation:kvPanelIn .45s cubic-bezier(.2,.7,.2,1)}
@keyframes kvPanelIn{from{transform:translateY(26px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:760px){.kv-ai{padding:0 18px 18px}.kv-ai-panel{border:1px solid var(--rg2)}}
.kv-ai-panel header{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:18px 18px 16px;background:var(--blush);border-bottom:1px solid var(--rg2)}
.kv-ai-mark{font-family:var(--serif);font-size:13px;letter-spacing:.26em;color:var(--berry);writing-mode:vertical-rl;transform:rotate(180deg);line-height:1}
.kv-ai-panel header b{display:block;font-family:var(--serif);font-size:20px;font-weight:400;color:var(--berry);line-height:1.2}
.kv-ai-panel header small{display:block;font-family:var(--sans);font-size:12px;color:var(--ink-soft);margin-top:3px}
.kv-ai-close{background:none;border:0;font-size:26px;line-height:1;color:var(--ink-soft);cursor:pointer;width:44px;height:44px}
.kv-ai-thread{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;-webkit-overflow-scrolling:touch}
.kv-ai-msg{font-family:var(--sans);font-size:14px;line-height:1.75;padding:14px 16px;max-width:88%;animation:kvMsgIn .45s cubic-bezier(.2,.7,.2,1) both}
@keyframes kvMsgIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.kv-ai-msg p{margin:0 0 9px}.kv-ai-msg p:last-child{margin:0}
.kv-ai-msg.bot{background:var(--white);border:1px solid var(--line);color:var(--ink);align-self:flex-start}
.kv-ai-msg.me{background:var(--berry);color:#FFFDFC;align-self:flex-end;border:0}
.kv-ai-msg .kv-ai-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.kv-ai-msg .kv-ai-links a{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--berry);border:1px solid var(--rg2);padding:9px 12px;text-decoration:none;transition:background .25s,color .25s}
.kv-ai-msg .kv-ai-links a:hover{background:var(--berry);color:#FFFDFC}
.kv-ai-typing{display:inline-flex;gap:4px;align-items:center;padding:4px 0}
.kv-ai-typing i{width:5px;height:5px;border-radius:50%;background:var(--rg2);animation:kvDot 1.1s infinite}
.kv-ai-typing i:nth-child(2){animation-delay:.15s}.kv-ai-typing i:nth-child(3){animation-delay:.3s}
@keyframes kvDot{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.kv-ai-chips{display:flex;gap:8px;overflow-x:auto;padding:12px 18px;border-top:1px solid var(--line);background:var(--cream);scrollbar-width:none}
.kv-ai-chips::-webkit-scrollbar{display:none}
.kv-ai-chip{flex:0 0 auto;background:var(--white);border:1px solid var(--rg2);color:var(--ink);font-family:var(--sans);font-size:12.5px;padding:11px 14px;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,transform .25s}
.kv-ai-chip:hover{background:var(--blush)}
.kv-ai-chip:active{transform:scale(.97)}
.kv-ai-panel footer{padding:14px 18px 18px;background:var(--blush);border-top:1px solid var(--rg2);text-align:center}
.kv-ai-wa,.kv-ai-wa:visited,.kv-ai-wa:hover{color:#FFFDFC!important}
.kv-ai-wa{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;box-sizing:border-box;background:var(--berry);color:#FFFDFC;text-decoration:none;font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:14px 16px;transition:opacity .25s}
.kv-ai-wa svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}
.kv-ai-wa:hover{opacity:.92}
.kv-ai-panel footer small{display:block;font-family:var(--sans);font-size:11px;line-height:1.6;color:var(--ink-soft);margin-top:10px}
@media(max-width:520px){.kv-ai-open{bottom:calc(18px + 4*46px + 4*9px);width:46px;height:46px}.kv-ai-panel{max-height:88vh}}
@media(prefers-reduced-motion:reduce){.kv-ai,.kv-ai-panel,.kv-ai-msg{animation:none}.kv-ai-ping,.kv-ai-typing i{animation:none}}

/* custom request prompt, above Add to basket (2.3.21) */
body.kv-site .kv-custom-cta{background:var(--blush,#F4E4DF);border-left:3px solid var(--berry,#7A2F3C);padding:16px 18px;margin:22px 0 24px}
body.kv-site .kv-custom-cta-t{margin:0 0 4px;font-family:var(--serif,'Cormorant Garamond',serif);font-size:21px;line-height:1.25;color:var(--berry,#7A2F3C)}
body.kv-site .kv-custom-cta-s{margin:0 0 10px;font-size:13.5px;line-height:1.7;color:var(--ink,#3A2A2D)}
body.kv-site .kv-custom-cta-a{display:inline-block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--berry,#7A2F3C);border-bottom:1px solid currentColor;padding-bottom:3px;text-decoration:none}
@media(max-width:600px){body.kv-site .kv-custom-cta{padding:14px 15px;margin:18px 0 20px}body.kv-site .kv-custom-cta-t{font-size:19px}}

/* Loved by you, Karen's own customer messages (2.3.21) */
body.kv-site .kv-tms{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px}
body.kv-site .kv-tm{margin:0;background:var(--white,#FFFDFC);border:1px solid var(--blush-2,#EDD6D0);padding:22px}
body.kv-site .kv-tm-ph{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:0 0 16px}
body.kv-site .kv-tm-ph img{width:100%;height:auto;max-height:260px;object-fit:cover;display:block;flex:1}
body.kv-site .kv-tm blockquote{margin:0;font-size:14.5px;line-height:1.85;color:var(--ink,#3A2A2D)}
body.kv-site .kv-tm figcaption{margin:14px 0 0;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--berry,#7A2F3C)}

/* where the customer is, under her name (2.3.26) */
body.kv-site .kv-tm-loc{display:block;margin-top:3px;letter-spacing:.12em;color:var(--ink-soft,#75616A)}
/* mixed sizes within one set (2.3.26) */
body.kv-site .kv-nails-help{margin:0 0 10px;font-size:13px;line-height:1.7;color:var(--ink,#3A2A2D)}
body.kv-site .kv-nails summary{font-weight:500}

/* Karen's measuring guides under Option 1 (2.3.27) */
.kvp .kv-measure-guides{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:26px 0 30px}
.kvp .kv-measure-guides img{width:100%;height:auto;display:block}

/* overseas delivery is a quote, never "free" (2.3.30) */
body.kv-site .kv-quote-note{display:block;margin-top:4px;font-size:12px;line-height:1.6;color:var(--ink-soft,#75616A);text-transform:none;letter-spacing:0}

/* product page confirmation after Add to basket (2.3.34) */
body.kv-site .kv-notices{max-width:1180px;margin:18px auto 0;padding:0 20px}
body.kv-site .kv-notices .woocommerce-message,body.kv-site .kv-notices .woocommerce-error,body.kv-site .kv-notices .woocommerce-info{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;list-style:none;margin:0 0 6px;
  padding:14px 18px;background:var(--blush,#F4E4DF);border-left:3px solid var(--berry,#7A2F3C);color:var(--ink,#3A2A2D);font-size:14px}
body.kv-site .kv-notices .woocommerce-error{background:#F7ECEE}
body.kv-site .kv-notices .woocommerce-message::before,body.kv-site .kv-notices .woocommerce-error::before,body.kv-site .kv-notices .woocommerce-info::before{display:none}
body.kv-site .kv-notices .button{order:2;background:var(--berry,#7A2F3C);color:#fff;padding:9px 16px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
/* no black focus frame around the confirmation (2.3.35) */
body.kv-site .kv-notices .woocommerce-notices-wrapper:focus,body.kv-site .kv-notices .woocommerce-message:focus,
body.kv-site .kv-notices [tabindex]:focus{outline:none;box-shadow:none}
body.kv-site .kv-notices .woocommerce-message{border:0;border-left:3px solid var(--berry,#7A2F3C)}
