/* ============================================================
   ASAMIMICHAN SHOP — custom stylesheet (clean build)
   Kadence + WooCommerce + Kadence Blocks + WPForms + VI Swatches
   [!] marks !important needed to beat theme/plugin CSS.
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root {
  --brand-blush: #f7dede;
  --brand-blush-soft: #fdf4f4;
  --brand-pink: #e98cb0;
  --brand-pink-deep: #d86c97;
  --brand-ink: #2b2229;
  --brand-ink-muted: #6f6169;
  --brand-line: #f0e2e6;
  --brand-sale: #e0447a;
  --field-line: #d6bfc8;

  --grad-brand: linear-gradient(100deg, #ffc9dd 0%, #e98cb0 45%, #d86c97 100%);
  --grad-cta: linear-gradient(100deg, #e05a91 0%, #c33a72 55%, #a82d63 100%); /* WCAG-safe on white */
  --grad-sale: linear-gradient(135deg, #ff5f9e 0%, #e0447a 100%);
  --grad-candy: linear-gradient(100deg, #ffd9a8, #ffb3d1 20%, #e98cb0 40%, #c48bd8 60%, #ffb3d1 80%, #ffd9a8);
  --grad-glass: linear-gradient(160deg, rgb(255 255 255 / 92%), rgb(253 244 244 / 72%));
  --grad-sheen: linear-gradient(105deg, transparent 35%, rgb(255 255 255 / 55%) 50%, transparent 65%);
  --grad-hero: radial-gradient(90% 120% at 12% 0%, rgb(255 201 221 / 65%), transparent 62%),
               radial-gradient(80% 110% at 88% 100%, rgb(214 186 245 / 58%), transparent 60%),
               linear-gradient(120deg, #fdeef4 0%, #f7dede 52%, #f0e6fa 100%);

  --shadow-xs: 0 1px 2px rgb(216 108 151 / 8%);
  --shadow-sm: 0 4px 12px -4px rgb(216 108 151 / 18%);
  --shadow-md: 0 12px 24px -12px rgb(216 108 151 / 28%);
  --shadow-lg: 0 24px 40px -20px rgb(216 108 151 / 35%);

  --radius-sm: 8px; --radius-md: 14px; --radius-lg: 22px; --radius-pill: 999px;

  --space-3xs: clamp(.25rem,.2rem + .2vw,.375rem);
  --space-2xs: clamp(.5rem,.4rem + .3vw,.75rem);
  --space-xs: clamp(.75rem,.6rem + .5vw,1rem);
  --space-sm: clamp(1rem,.8rem + .8vw,1.5rem);
  --space-md: clamp(1.5rem,1.2rem + 1.2vw,2.5rem);
  --space-lg: clamp(2rem,1.4rem + 2.4vw,4rem);

  --step-xs: clamp(.75rem,.72rem + .15vw,.8125rem);
  --step-sm: clamp(.8125rem,.78rem + .2vw,.9375rem);
  --step-0: clamp(.9375rem,.9rem + .25vw,1.0625rem);

  --ease-out: cubic-bezier(.22,.61,.36,1);
  --ease-spring: cubic-bezier(.34,1.3,.64,1);
  --dur-fast: 140ms; --dur-base: 260ms; --dur-slow: 620ms;
  --tap: 44px;
}

@view-transition { navigation: auto; }

/* ---------- 2. BASE ---------- */
html { -webkit-text-size-adjust: 100%; scrollbar-color: var(--brand-pink) var(--brand-blush-soft); }
body { overflow-x: clip; }
::selection { background: var(--brand-pink); color: #fff; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--brand-blush-soft); }
::-webkit-scrollbar-thumb { background: var(--grad-brand); border-radius: var(--radius-pill); border: 3px solid var(--brand-blush-soft); }

img, svg, video, canvas, embed, object { max-width: 100%; height: auto; }
iframe { max-width: 100%; } /* height untouched: PayPal iframe */

h1,h2,h3,h4,h5,h6 { overflow-wrap: normal; word-break: normal; hyphens: manual; text-wrap: balance; }
p, li, td, th { overflow-wrap: break-word; hyphens: manual; text-wrap: pretty; }

.wp-site-blocks .kb-row-layout-wrap { padding-block: var(--space-lg); }

/* line-items tables scroll on phones; summary tables stay tables (sec 9) */
.woocommerce-cart-form table.shop_table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (min-width: 782px) { .woocommerce-cart-form table.shop_table { display: table; } }

/* accessibility floor */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid var(--brand-pink-deep); outline-offset: 2px; border-radius: var(--radius-sm); }
:where(a,button):focus:not(:focus-visible) { outline: none; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wp-block-button__link, .kb-button, .menu-toggle-open, .menu-toggle-close { min-height: var(--tap); display: inline-flex; align-items: center; justify-content: center; }
.mobile-navigation ul li a { min-height: var(--tap); display: flex; align-items: center; }
.site-footer, .kadence-scroll-to-top-wrap { padding-bottom: env(safe-area-inset-bottom, 0); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } /* [!] beats inline/plugin animation */
}

/* ---------- 3. HEADER / NAV ---------- */
#masthead, .site-header-wrap { position: relative; z-index: 999; transform: none; filter: none; }
.site-header-inner-wrap { background: #fff; border-bottom: 1px solid var(--brand-line); }

.site-branding a.brand img, .site-branding img.custom-logo {
  width: clamp(140px, 38vw, 260px) !important; max-width: 260px !important; height: auto !important; /* [!] Kadence mobile logo width */
  transition: transform var(--dur-base) var(--ease-out);
}
@media (min-width: 768px) { .site-branding a.brand img { width: clamp(160px, 18vw, 260px) !important; } }
.site-branding a.brand:hover img { transform: scale(1.03); }
@media (max-width: 767px) { .site-branding .site-title { display: none; } }

/* scroll progress bar */
@keyframes progress-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.site-header-wrap::before {
  content: ""; position: fixed; inset-block-start: 0; inset-inline: 0; height: 4px; z-index: 1001;
  background: var(--grad-candy); background-size: 300% 100%;
  transform-origin: left center; transform: scaleX(0);
  box-shadow: 0 1px 10px rgb(216 108 151 / 45%); pointer-events: none;
}
@supports (animation-timeline: scroll()) { .site-header-wrap::before { animation: progress-fill linear both; animation-timeline: scroll(root block); } }
@supports not (animation-timeline: scroll()) { .site-header-wrap::before { transform: scaleX(1); height: 3px; opacity: .85; } }
@media (prefers-reduced-motion: reduce) { .site-header-wrap::before { transform: scaleX(1); animation: none; } }

/* condense on scroll */
@keyframes header-condense { to { background-color: rgb(255 255 255 / 82%); box-shadow: var(--shadow-md); border-bottom-color: transparent; } }
@supports (animation-timeline: scroll()) { @media (prefers-reduced-motion: no-preference) {
  .site-header-inner-wrap { animation: header-condense linear both; animation-timeline: scroll(root block); animation-range: 0 180px; }
} }

/* announcement bar */
.site-top-header-wrap { background: var(--grad-candy); background-size: 300% 100%; color: #4a2b3a; font-weight: 600; font-size: var(--step-xs); letter-spacing: .02em; text-align: center; }

/* nav underline */
.header-navigation ul li.menu-item > a, .main-navigation ul li.menu-item > a { position: relative; }
.header-navigation ul li.menu-item > a::after, .main-navigation ul li.menu-item > a::after {
  content: ""; position: absolute; left: 0; bottom: .35em; width: 100%; height: 2px; border-radius: 2px;
  background: var(--grad-brand); transform: scaleX(0); transform-origin: right center; transition: transform var(--dur-base) var(--ease-out);
}
.header-navigation ul li.menu-item > a:hover::after, .header-navigation ul li.current-menu-item > a::after, .main-navigation ul li.menu-item > a:hover::after { transform: scaleX(1); transform-origin: left center; }

/* currency switcher */
.site-header-item .kadence-currency-switcher { display: inline-flex; align-items: center; gap: .4rem; margin-block: var(--space-3xs); }
.site-header-item .kadence-currency-switcher .widget { margin: 0; }
.site-header-item .kadence-currency-switcher::before { content: "Currency"; font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--brand-ink-muted); white-space: nowrap; }
@media (max-width: 767px) { .site-header-item .kadence-currency-switcher::before { display: none; } }
.kadence-currency-switcher select {
  appearance: none; -webkit-appearance: none; min-width: 5rem; min-height: 36px;
  padding: .35rem 2rem .35rem .75rem; font-size: var(--step-sm); font-weight: 600; color: var(--brand-ink);
  background-color: var(--brand-blush-soft); border: 1px solid var(--field-line); border-radius: var(--radius-pill); cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--brand-ink-muted) 50%), linear-gradient(135deg, var(--brand-ink-muted) 50%, transparent 50%);
  background-position: calc(100% - 15px) 50%, calc(100% - 10px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
}
.kadence-currency-switcher select:hover { border-color: var(--brand-pink); box-shadow: var(--shadow-xs); }

/* ---------- 4. HERO / BREADCRUMBS ---------- */
.wp-site-blocks .hero-section-overlay { background: var(--brand-blush) !important; } /* [!] Kadence inline overlay */
.hero-section-overlay { position: relative; overflow: hidden; isolation: isolate; }
.hero-section-overlay::before, .hero-section-overlay::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; filter: blur(70px); opacity: .55; pointer-events: none; }
.hero-section-overlay::before { width: clamp(220px,42vw,620px); aspect-ratio: 1; top: -12%; left: -8%; background: radial-gradient(circle, #ffb3d1, transparent 70%); }
.hero-section-overlay::after { width: clamp(180px,34vw,520px); aspect-ratio: 1; bottom: -18%; right: -6%; background: radial-gradient(circle, #c9a7f0, transparent 70%); }
@keyframes rise-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .entry-hero h1 { animation: rise-in var(--dur-slow) var(--ease-out) backwards 60ms; }
  .entry-hero .kb-button, .entry-hero .wp-block-button__link { animation: rise-in var(--dur-slow) var(--ease-out) backwards 220ms; }
}

/* replace the blue tile pattern everywhere */
.wp-site-blocks .entry-hero-container-inner { background-image: var(--grad-hero) !important; background-size: cover; background-repeat: no-repeat; } /* [!] Customizer bg image */
.entry-hero.product-archive-hero-section .hero-section-overlay { background: transparent !important; } /* [!] paired */
header .archive-description { font-size: var(--step-sm); color: var(--brand-ink-muted); max-width: 60ch; margin-inline: auto; }

/* mobile: no viewport-tall rows, content centred */
@media (max-width: 767px) {
  .wp-site-blocks .kb-row-layout-wrap, .wp-site-blocks .kb-row-layout-wrap > .kt-row-column-wrap,
  .entry-hero, .entry-hero .entry-hero-container-inner {
    min-height: 0 !important; height: auto !important; /* [!] Kadence row min-height */
  }
  .kb-row-layout-wrap > .kt-row-column-wrap { align-content: center; }
  .entry-hero .entry-hero-container-inner { padding-block: var(--space-md); }
  .entry-hero .kt-row-column-wrap { grid-template-columns: minmax(0,1fr); text-align: center; }
  .entry-hero h1, .page-title h1 { font-size: clamp(1.7rem, 7.2vw, 2.4rem); line-height: 1.15; } /* only heading size set: brand name must fit */
  .wp-block-kadence-advancedbtn .kb-button { width: 100%; }
}

/* breadcrumb pill */
.woocommerce .woocommerce-breadcrumb, .kadence-breadcrumbs {
  position: relative; z-index: 1; display: inline-flex; flex-wrap: wrap; align-items: center; gap: .15rem .35rem;
  margin-bottom: var(--space-sm); padding: .45rem 1.1rem; line-height: 1.6;
  border: 1px solid rgb(216 108 151 / 22%); border-radius: var(--radius-pill);
  background-image: linear-gradient(100deg, rgb(255 201 221 / 55%), rgb(247 222 222 / 55%) 45%, rgb(224 214 250 / 55%));
  box-shadow: var(--shadow-xs); color: #6b5560; font-size: var(--step-sm);
}
.woocommerce .woocommerce-breadcrumb a, .kadence-breadcrumbs a { color: var(--brand-pink-deep); font-weight: 600; text-decoration: none; }
.woocommerce .woocommerce-breadcrumb a:hover { text-decoration: underline; }
@media (max-width: 767px) { .woocommerce .woocommerce-breadcrumb, .kadence-breadcrumbs { display: block; padding: .55rem .9rem; border-radius: var(--radius-md); line-height: 1.5; } }

/* opt-in gradient heading colour (add class in editor) */
.gradient-title { background: var(--grad-brand); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; }

/* trust badge cards */
.wp-block-kadence-column:has(img[src*="guaranteed"]), .wp-block-kadence-column:has(img[src*="five-stars"]),
.wp-block-kadence-column:has(img[src*="airplane"]), .wp-block-kadence-column:has(img[src*="online-chat"]) {
  border-left: none; border-radius: var(--radius-md); padding: var(--space-xs);
  background: rgb(255 255 255 / 60%); box-shadow: var(--shadow-xs);
}
.kb-row-layout-wrap .kt-inside-inner-col img[src*="guaranteed"], .kb-row-layout-wrap .kt-inside-inner-col img[src*="five-stars"],
.kb-row-layout-wrap .kt-inside-inner-col img[src*="airplane"], .kb-row-layout-wrap .kt-inside-inner-col img[src*="online-chat"] { width: clamp(38px,6vw,56px); height: auto; }

/* ---------- 5. BUTTONS ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wp-block-button__link, .kb-button {
  border-radius: var(--radius-pill); font-weight: 600; letter-spacing: .01em;
  padding-inline: clamp(1rem,3vw,1.75rem); border: none;
  transition: background-position var(--dur-slow) var(--ease-out), transform var(--dur-fast) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out);
}
.single_add_to_cart_button, .checkout-button, #place_order, .wp-block-button__link, .kb-button,
.woocommerce ul.products li.product .button, .wpforms-container .wpforms-form button[type="submit"] {
  position: relative; overflow: hidden; isolation: isolate;
  background-color: #c33a72 !important; background-image: var(--grad-cta) !important; color: #fff !important; /* [!] Kadence generated button colours */
  background-size: 200% 100%; background-position: 0% 50%;
}
.single_add_to_cart_button:hover, .checkout-button:hover, #place_order:hover, .wp-block-button__link:hover, .kb-button:hover,
.woocommerce ul.products li.product .button:hover { background-position: 100% 50%; transform: translateY(-2px); box-shadow: 0 10px 24px -10px rgb(216 108 151 / 65%); }
.single_add_to_cart_button:active, .checkout-button:active, #place_order:active { transform: translateY(0); }
.single_add_to_cart_button::before, .checkout-button::before, #place_order::before, .kb-button::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--grad-sheen); transform: translateX(-120%); transition: transform 650ms var(--ease-out);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .single_add_to_cart_button:hover::before, .checkout-button:hover::before, #place_order:hover::before, .kb-button:hover::before { transform: translateX(120%); }
}
.single_add_to_cart_button { width: 100%; font-size: var(--step-0); padding-block: .9rem; min-height: 48px; }
@media (min-width: 600px) { .single_add_to_cart_button { width: auto; min-width: 16rem; } }

/* ---------- 6. PRODUCT GRID ---------- */
.woocommerce ul.products:not(.products-list-view), .wp-site-blocks .wc-block-grid__products, .wc-block-product-template {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--space-xs);
  align-items: stretch; margin: 0; padding: 0; list-style: none;
}
@media (min-width: 600px) { .woocommerce ul.products:not(.products-list-view), .wp-site-blocks .wc-block-grid__products, .wc-block-product-template { grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--space-sm); } }
@media (min-width: 1024px) { .woocommerce ul.products:not(.products-list-view), .wp-site-blocks .wc-block-grid__products, .wc-block-product-template { grid-template-columns: repeat(4, minmax(0,1fr)); } }
@media (min-width: 1800px) { .woocommerce ul.products:not(.products-list-view), .wc-block-product-template { grid-template-columns: repeat(5, minmax(0,1fr)); } }

/* card: gradient border via stacked backgrounds; 2px in both states = no jump */
.woocommerce ul.products li.product, .wc-block-product-template__responsive > li, .wc-block-grid__product {
  position: relative; display: flex; flex-direction: column; height: 100%; width: auto; margin: 0;
  padding: 10px 10px 14px; border: 2px solid transparent; border-radius: var(--radius-md);
  background-image: linear-gradient(#fff,#fff), linear-gradient(var(--brand-line),var(--brand-line));
  background-origin: border-box; background-clip: padding-box, border-box;
  box-shadow: var(--shadow-sm); overflow: visible;
  transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
@media (hover: hover) {
  .woocommerce ul.products li.product:hover, .wc-block-product-template__responsive > li:hover {
    transform: translateY(-4px); box-shadow: var(--shadow-lg);
    background-image: linear-gradient(#fff,#fff), var(--grad-brand);
  }
}
@media (max-width: 480px) { .woocommerce ul.products li.product { padding: 7px 7px 11px; } }

/* kill Kadence's hover-overlay layout: everything in normal flow */
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-details,
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .product-action-wrap {
  position: static !important; transform: none !important; opacity: 1 !important; inset: auto !important; /* [!] theme animates this block over the image */
  width: 100%; padding: 0; margin: 0; background: none; transition: none;
}

/* image: square frame on the IMG only (never on the wrapping link) */
.woocommerce ul.products li.product img, .wc-block-grid__product-image img, .wc-block-components-product-image img {
  display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover;
  border-radius: var(--radius-sm); background-color: var(--brand-blush-soft);
  margin-bottom: var(--space-2xs); transition: filter var(--dur-base) var(--ease-out);
}
@media (hover: hover) { .woocommerce ul.products li.product:hover img { filter: brightness(1.045) saturate(1.06); } }

/* full titles: release theme's fixed height, never clamp */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2, .woocommerce ul.products li.product h3,
.wc-block-grid__product-title, .wc-block-components-product-name {
  display: block !important; overflow: visible !important; height: auto !important; max-height: none !important; min-height: 0 !important; /* [!] theme fixed title height + fade mask */
  -webkit-line-clamp: unset !important; -webkit-mask-image: none; mask-image: none;
  line-height: 1.32; margin: 0 0 var(--space-2xs); padding: 0;
}

/* price big, pinned above button, never wraps inside an amount */
.woocommerce .amount, .woocommerce-Price-amount { white-space: nowrap; }
.woocommerce ul.products li.product .price, .wc-block-components-product-price {
  display: block; margin-top: auto !important; margin-bottom: var(--space-2xs); /* [!] pin to bottom over theme margin */
  font-size: clamp(1.05rem,.9rem + .6vw,1.4rem) !important; font-weight: 800; letter-spacing: -.01em; line-height: 1.25; color: var(--brand-ink); /* [!] Kadence sizing */
}
.woocommerce ul.products li.product .price del { font-size: .68em; font-weight: 500; opacity: .7; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--brand-sale); }
.woocommerce ul.products li.product .button { width: 100%; margin-top: 0; font-size: var(--step-sm); padding: .7rem 1rem; }

/* sale badge */
.woocommerce span.onsale, .wc-block-components-product-sale-badge, .woocommerce ul.products li.product .onsale {
  position: absolute; top: 10px; right: 10px; left: auto; z-index: 4; margin: 0;
  min-width: 0; min-height: 0; padding: .25rem .6rem;
  font-size: var(--step-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; line-height: 1.4;
  color: #fff; background: var(--grad-sale); border: none; border-radius: var(--radius-pill); box-shadow: var(--shadow-xs);
}

/* archive toolbar */
.woocommerce .woocommerce-ordering select { border-radius: var(--radius-pill); border: 1px solid var(--brand-line); padding: .45rem 1rem; background-color: #fff; font-size: var(--step-sm); }
.woocommerce-result-count { font-size: var(--step-sm); }

/* scroll reveal */
@keyframes reveal-up { from { opacity: 0; transform: translateY(28px) scale(.97); } to { opacity: 1; transform: none; } }
@supports (animation-timeline: view()) { @media (prefers-reduced-motion: no-preference) {
  .woocommerce ul.products li.product, .wc-block-product-template__responsive > li, .kt-testimonial-item-wrap {
    animation: reveal-up linear both; animation-timeline: view(); animation-range: entry 0% cover 26%;
  }
} }

/* ---------- 7. SINGLE PRODUCT ---------- */
.single-product div.product .product_title { text-wrap: balance; }
.single-product span.onsale { top: 12px !important; left: 12px !important; right: auto !important; z-index: 6 !important; padding: .3rem .85rem; } /* [!] theme pins it under the breadcrumb */

/* gallery */
.woocommerce div.product .woocommerce-product-gallery__wrapper, .woocommerce div.product .woocommerce-product-gallery__image { border-radius: var(--radius-lg); overflow: hidden; }
.single-product .woocommerce-product-gallery__image img { aspect-ratio: 1/1; object-fit: cover; }
.woocommerce div.product .woocommerce-product-gallery__trigger { top: 12px; right: 12px; z-index: 5; width: 38px; height: 38px; display: grid; place-items: center; background: rgb(255 255 255 / 88%); border-radius: 50%; box-shadow: var(--shadow-sm); }
@media (min-width: 1024px) { .woocommerce div.product .woocommerce-product-gallery { position: sticky; top: 96px; align-self: start; } }
.single-product .woocommerce-product-gallery { position: relative; }
.single-product .woocommerce-product-gallery::before { content: ""; position: absolute; inset: 8% 8% -4%; z-index: -1; border-radius: 50%; filter: blur(48px); opacity: .5; background: radial-gradient(circle,#ffb3d1,transparent 68%); }

/* thumbnails — ROOT CAUSE FIX (verified against Kadence's woocommerce.min.css):
   Kadence centres .flex-control-thumbs natively via `left:50% + translate(-50%)`.
   An earlier rule here set position:static, which disabled the left:50% while
   the translate kept applying — shifting the list half its width LEFT. That
   was the "left-aligned carousel" the whole time. So: keep Kadence's centring
   pair intact, and only replace its -32px overlap margin, fixed 60px li
   widths, and 5px-white-border spacing hack with our styling. */
.woocommerce div.product div.images .flex-control-thumbs,
.woocommerce div.product .flex-control-thumbs {
  position: relative !important; left: 50% !important; transform: translate(-50%, 0) !important; /* [!] restore the pair my old rule half-broke */
  display: inline-flex !important; flex-wrap: wrap !important; justify-content: center !important;
  width: 100% !important; max-width: 100% !important; height: auto !important;
  margin: var(--space-2xs) 0 0 !important; /* [!] replaces Kadence's -32px pull-up over the photo */
  padding: 0; overflow: visible !important; list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li,
.woocommerce div.product .flex-control-thumbs li {
  width: auto !important; height: auto !important; /* [!] Kadence fixes 60x65px + nth-child width hacks */
  margin: 3px !important; padding: 0 !important; background: none;
  display: inline-flex; float: none;
}
.woocommerce div.product .flex-control-thumbs li img {
  width: clamp(64px,11vw,92px); aspect-ratio: 1/1; height: auto; object-fit: cover; border-radius: 8px;
  border: 2px solid transparent !important; /* [!] Kadence uses 5px white borders as fake gaps */
  opacity: .75; cursor: pointer;
  transition: opacity var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.woocommerce div.product .flex-control-thumbs li img:hover { opacity: 1; }
.woocommerce div.product .flex-control-thumbs li img.flex-active { opacity: 1; border-color: var(--brand-pink-deep); }

/* summary */
.single-product div.product .summary { padding: var(--space-sm); border: 1px solid var(--brand-line); border-radius: var(--radius-lg); background: var(--grad-glass); box-shadow: var(--shadow-xs); }
@media (max-width: 767px) { .single-product div.product .summary { padding: var(--space-xs); border: none; background: none; box-shadow: none; } }
.single-product div.product .summary > .price, .single-product div.product .summary p.price, .single-product div.product .woocommerce-variation-price .price {
  font-size: clamp(1.6rem,1.2rem + 1.6vw,2.4rem) !important; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; /* [!] Kadence sizing */
  padding-bottom: var(--space-xs); border-bottom: 1px solid var(--brand-line);
}
.single-product div.product .summary .price del { font-size: .5em; font-weight: 500; }
.single-product div.product .summary .price ins { text-decoration: none; }
.single-product div.product .summary .price ins .amount { background: var(--grad-sale); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* stock badge */
.single-product .stock.in-stock {
  display: inline-flex; align-items: center; gap: .45rem; margin: var(--space-2xs) 0; padding: .3rem .8rem;
  border-radius: var(--radius-pill); background: rgb(57 160 108 / 12%); color: #2c7a52 !important; font-weight: 600; font-size: var(--step-sm); /* [!] theme paints it pink */
}
.single-product .stock.in-stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #39a06c; box-shadow: 0 0 0 3px rgb(57 160 108 / 22%); }
.single-product .stock.out-of-stock { display: inline-flex; padding: .3rem .8rem; border-radius: var(--radius-pill); background: rgb(224 68 122 / 12%); color: var(--brand-sale); font-weight: 600; }

/* variation label + clear */
.woocommerce div.product form.cart .variations label { font-weight: 700; letter-spacing: .02em; margin-bottom: .4rem; }
.woocommerce div.product form.cart .reset_variations { font-size: var(--step-sm); color: var(--brand-ink-muted); text-decoration: underline; }

/* image swatches */
.vi-wpvs-variation-wrap.vi-wpvs-variation-wrap-vi_wpvs_image_design { display: flex !important; flex-flow: row wrap !important; gap: 8px !important; } /* [!] plugin grid */
.vi-wpvs-variation-wrap-vi_wpvs_image_design .vi-wpvs-option-wrap, .vi-wpvs-variation-wrap-vi_wpvs_image_design .vi-wpvs-variation-button-select {
  width: clamp(52px,12vw,68px) !important; height: clamp(52px,12vw,68px) !important; /* [!] plugin inline size */
  border-radius: var(--radius-sm); overflow: hidden;
}
.vi-wpvs-option-wrap { border: 2px solid var(--brand-line); transition: border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-spring); }
.vi-wpvs-option-wrap:hover { transform: translateY(-1px); border-color: var(--brand-pink); }
.vi-wpvs-option-wrap.vi-wpvs-option-wrap-selected { border-color: var(--brand-pink-deep) !important; box-shadow: 0 0 0 2px rgb(216 108 151 / 38%); } /* [!] plugin inline border */

/* text/size options: landscape chips that wrap */
.vi-wpvs-variation-wrap:not(.vi-wpvs-variation-wrap-vi_wpvs_image_design) {
  display: flex !important; flex-flow: row wrap !important; gap: 8px !important; grid-template-columns: none !important; width: 100%; margin-bottom: var(--space-xs); /* [!] plugin layout */
}
.vi-wpvs-variation-wrap:not(.vi-wpvs-variation-wrap-vi_wpvs_image_design) > * {
  display: inline-flex !important; width: auto !important; min-width: 0 !important; max-width: 100%; flex: 0 0 auto !important; margin: 0 !important; float: none !important; /* [!] plugin full-width row wrappers */
}
.vi-wpvs-variation-wrap:not(.vi-wpvs-variation-wrap-vi_wpvs_image_design) .vi-wpvs-option-wrap {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: auto !important; min-width: 88px; min-height: 42px; padding: .45rem 1.05rem !important; /* [!] plugin sizing */
  border-radius: var(--radius-pill); border: 1.5px solid var(--field-line); background: #fff;
  font-size: var(--step-sm); white-space: nowrap; cursor: pointer;
}
.vi-wpvs-variation-wrap:not(.vi-wpvs-variation-wrap-vi_wpvs_image_design) .vi-wpvs-option-wrap-selected,
.vi-wpvs-variation-wrap:not(.vi-wpvs-variation-wrap-vi_wpvs_image_design) .vi-wpvs-option-wrap-selected * {
  background-image: var(--grad-cta) !important; background-color: transparent !important; color: #fff !important; border-color: transparent; /* [!] plugin selected paint */
}
/* all variation options visible in full — no inner scroller */
form.cart .variations .vi-wpvs-variation-wrap { max-height: none; overflow: visible; padding: 2px; }

/* quantity pill (product + cart pages only; never the mini-cart drawer) */
.woocommerce div.product form.cart .quantity, .woocommerce-cart .quantity {
  display: inline-flex !important; align-items: center; height: 48px; /* [!] theme block display */
  background: #fff; border: 1.5px solid var(--field-line); border-radius: var(--radius-pill); overflow: hidden;
}
.woocommerce div.product form.cart .quantity button, .woocommerce div.product form.cart .quantity .kadence-quantity-button,
.woocommerce div.product form.cart .quantity .minus, .woocommerce div.product form.cart .quantity .plus,
.woocommerce-cart .quantity button, .woocommerce-cart .quantity .minus, .woocommerce-cart .quantity .plus {
  width: 44px; height: 46px; padding: 0; border: none; background: transparent; color: var(--brand-ink); font-size: 1.15rem; line-height: 1; cursor: pointer;
}
.woocommerce div.product form.cart .quantity button:hover { background: var(--brand-blush-soft); color: var(--brand-pink-deep); }
.woocommerce div.product form.cart .quantity input.qty, .woocommerce-cart .quantity input.qty {
  width: 3rem !important; height: 46px; min-height: 0; border: none !important; border-radius: 0; background: transparent; text-align: center; font-weight: 700; /* [!] Woo inline width/border */
}

/* cart form: qty + add-to-cart on one row; PayPal always full-width below */
.single-product div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2xs); width: 100%; }
.single-product div.product form.cart .variations, .single-product div.product form.cart .woocommerce-variation-description,
.single-product div.product form.cart .woocommerce-variation-price, .single-product div.product form.cart .woocommerce-variation-availability { order: 0; flex: 1 0 100%; width: 100%; }
.single-product div.product form.cart .quantity { order: 1; flex: 0 0 auto; }
.single-product div.product form.cart .single_add_to_cart_button { order: 2; flex: 1 1 12rem; margin: 0; }
.single-product div.product form.cart .wc-ppcp-product-payments__container, .single-product div.product form.cart [id*="paypal"],
.single-product div.product form.cart [id^="ppcp"], .single-product div.product .wc-ppcp-product-payments__container {
  order: 10; flex: 1 0 100%; width: 100%; max-width: 100%; margin: var(--space-2xs) 0 0; clear: both; /* position/width only; PayPal internals untouched */
}
.single-product form.cart > .woocommerce-message, .single-product form.cart > a.added_to_cart { order: 9; flex: 1 0 100%; }
a.added_to_cart, .single-product .woocommerce-message a.button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: .4rem 1.1rem;
  background: #fff !important; background-image: none !important; color: var(--brand-pink-deep) !important; /* [!] theme button paint */
  border: 1.5px solid var(--brand-pink-deep); border-radius: var(--radius-pill); font-weight: 700; white-space: nowrap;
}

/* tabs, meta, description lists */
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin-bottom: var(--space-sm); border: none; }
.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 { margin: 0; padding: 0; background: var(--brand-blush-soft); border: 1px solid var(--brand-line); border-radius: var(--radius-pill); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .5rem 1.25rem; color: var(--brand-ink-muted); font-weight: 600; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background-image: var(--grad-cta); border-color: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.single-product .product_meta { margin-top: var(--space-sm); padding-top: var(--space-xs); border-top: 1px solid var(--brand-line); font-size: var(--step-sm); color: var(--brand-ink-muted); }
.single-product .product_meta a { display: inline-block; padding: .1rem .55rem; margin: .15rem .1rem; border-radius: var(--radius-pill); background: var(--brand-blush-soft); color: var(--brand-pink-deep); text-decoration: none; }
.single-product .product_meta a:hover { background: var(--brand-blush); }
.single-content ul, .single-content ol { padding-inline-start: 1.4em; margin-block: var(--space-xs); }
.single-content li { margin-block: .35em; }
.single-product .summary ul.asami-chips { display: flex; flex-wrap: wrap; gap: .4rem; padding-left: 0; margin: var(--space-xs) 0; }
.single-product .summary ul.asami-chips li { list-style: none; padding: .3rem .75rem; border-radius: var(--radius-pill); background: var(--brand-blush-soft); border: 1px solid var(--brand-line); font-size: var(--step-sm); }

/* fieldset trust box */
.woocommerce div.product fieldset { border: 1px solid var(--brand-line); border-radius: var(--radius-lg); background: var(--grad-glass); padding: var(--space-xs); box-shadow: var(--shadow-xs); }

/* currency under price (element output by functions.php hook) */
.asami-price-currency { display: inline-flex; align-items: center; gap: .5rem; margin: .6rem 0 0; padding: .35rem .35rem .35rem .9rem; border: 1px solid var(--brand-line); border-radius: var(--radius-pill); background: var(--brand-blush-soft); }
.asami-price-currency::before { content: "Show price in"; font-size: var(--step-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--brand-ink-muted); white-space: nowrap; }
.asami-price-currency select { min-height: 34px; padding: .25rem 2rem .25rem .75rem; border-radius: var(--radius-pill); border: 1px solid var(--field-line); background-color: #fff; font-weight: 600; cursor: pointer; }
.asami-price-currency .widget, .asami-price-currency .kadence-currency-switcher { margin: 0; }

/* ---------- 8. FORMS ---------- */
.wpforms-container .wpforms-form input[type="text"], .wpforms-container .wpforms-form input[type="email"],
.wpforms-container .wpforms-form input[type="tel"], .wpforms-container .wpforms-form input[type="number"],
.wpforms-container .wpforms-form select, .wpforms-container .wpforms-form textarea {
  width: 100%; max-width: 100%; min-width: 0; min-height: var(--tap); padding: .7rem 1rem;
  font-size: max(16px, var(--step-0)); /* 16px stops iOS focus zoom */
  color: var(--brand-ink); background: #fff; border: 1.5px solid var(--field-line); border-radius: var(--radius-md);
}
.wpforms-container .wpforms-form input:focus, .wpforms-container .wpforms-form select:focus, .wpforms-container .wpforms-form textarea:focus {
  border-color: var(--brand-pink); box-shadow: 0 0 0 3px rgb(233 140 176 / 25%); outline: none;
}
.wpforms-container .wpforms-form input[type="checkbox"], .wpforms-container .wpforms-form input[type="radio"] { width: 1.15rem; height: 1.15rem; min-height: 0; accent-color: var(--brand-pink-deep); }
.wpforms-container ::placeholder { color: #8a7d84; opacity: 1; }
.wpforms-container .wpforms-form button[type="submit"] { width: 100%; min-height: var(--tap); border-radius: var(--radius-pill); border: none; font-weight: 600; }
@media (min-width: 600px) { .wpforms-container .wpforms-form button[type="submit"] { width: auto; min-width: 12rem; } }
@media (min-width: 640px) {
  .wpforms-container .wpforms-form.wpforms-inline .wpforms-field-container { display: flex; gap: var(--space-2xs); align-items: end; flex-wrap: wrap; }
  .wpforms-container .wpforms-form.wpforms-inline .wpforms-field { flex: 1 1 14rem; }
}
.widget-title { text-align: left; letter-spacing: .08em; }

/* ---------- 9. CART & CHECKOUT ---------- */
/* billing/shipping full width at every viewport (Woo hard-codes 47%) */
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-1, .woocommerce-page .col2-set .col-2,
#customer_details .col-1, #customer_details .col-2 { width: 100% !important; float: none !important; max-width: 100%; margin: 0 0 var(--space-sm); } /* [!] Woo 47% */

.woocommerce form .woocommerce-billing-fields__field-wrapper, .woocommerce form .woocommerce-shipping-fields__field-wrapper,
.woocommerce form .woocommerce-additional-fields__field-wrapper {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,230px),1fr)); gap: var(--space-2xs) var(--space-sm); align-items: start;
}
.woocommerce form .form-row { width: 100% !important; float: none !important; margin: 0 0 var(--space-2xs); padding: 0; } /* [!] Woo -first/-last 47% */
.woocommerce form .form-row-wide, .woocommerce form #billing_country_field, .woocommerce form #billing_address_1_field,
.woocommerce form #billing_address_2_field, .woocommerce form #shipping_country_field, .woocommerce form #shipping_address_1_field,
.woocommerce form #shipping_address_2_field, .woocommerce form #order_comments_field, .woocommerce form #billing_company_field,
.woocommerce form #shipping_company_field { grid-column: 1 / -1; }

.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
  width: 100% !important; min-height: 46px; padding: .65rem .9rem; font-size: max(16px, var(--step-0)); /* [!] Woo explicit widths */
  color: var(--brand-ink); background: #fff; border: 1.5px solid var(--field-line); border-radius: var(--radius-md); box-shadow: none;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus {
  border-color: var(--brand-pink-deep); box-shadow: 0 0 0 3px rgb(216 108 151 / 22%); outline: none;
}
.woocommerce form .form-row label { display: block; margin-bottom: .3rem; font-weight: 600; font-size: var(--step-sm); }
.woocommerce form .form-row .required { color: var(--brand-sale); text-decoration: none; }
.woocommerce form .form-row textarea, #order_comments { min-height: 110px; resize: vertical; line-height: 1.5; }
.select2-container--default .select2-selection--single { height: 46px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 30px; padding-left: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 8px; }

/* review + totals stay real tables */
.woocommerce-checkout-review-order-table, .woocommerce .cart_totals table.shop_table, .woocommerce-checkout table.shop_table {
  display: table !important; width: 100% !important; border-collapse: collapse; /* [!] overrides the mobile block/scroll rule */
}
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td,
.woocommerce .cart_totals table.shop_table th, .woocommerce .cart_totals table.shop_table td {
  display: table-cell; padding: .7rem .5rem; vertical-align: top; font-size: var(--step-sm); border-bottom: 1px solid var(--brand-line);
}
.woocommerce-checkout-review-order-table .product-name { width: 62%; }
.woocommerce-checkout-review-order-table .product-total, .woocommerce .cart_totals table.shop_table td { text-align: right; }
.woocommerce-checkout-review-order-table tfoot .order-total th, .woocommerce-checkout-review-order-table tfoot .order-total td { font-size: var(--step-0); font-weight: 800; border-bottom: none; }

/* order column buttons (incl. upsell plugin) never break mid-word */
#order_review button, #order_review a.button, #order_review input[type="submit"], #order_review [class*="remove" i],
.woocommerce-checkout-review-order button, .woocommerce a.remove, .woocommerce button.remove {
  white-space: nowrap !important; width: auto !important; min-width: 0 !important; word-break: keep-all !important; /* [!] upsell plugin sizing */
  padding: .45rem .9rem; border-radius: var(--radius-pill); line-height: 1.2;
}
.woocommerce a.remove { display: inline-grid; place-items: center; width: 26px; height: 26px; padding: 0; border-radius: 50%; line-height: 1; }

/* panels */
.cart_totals, .woocommerce-checkout-review-order, #order_review {
  padding: var(--space-sm); border: 1px solid rgb(233 140 176 / 28%); border-radius: var(--radius-lg);
  background: var(--grad-glass);
}
#payment { background: transparent; border-radius: var(--radius-lg); }
#payment ul.payment_methods { padding: var(--space-xs); border: 1px solid var(--brand-line); border-radius: var(--radius-md); background: #fff; }
#payment ul.payment_methods li { padding: .5rem 0; list-style: none; }
#payment div.payment_box { padding: var(--space-xs); border-radius: var(--radius-md); background: var(--brand-blush-soft); font-size: var(--step-sm); line-height: 1.55; }
#payment div.payment_box::before { display: none; }
#place_order { width: 100%; margin-top: var(--space-xs); }
.wc-ppcp-express-checkout, .woocommerce-checkout .express-checkout-wrap { width: 100%; max-width: 100%; padding: var(--space-xs); border: 1px solid var(--brand-line); border-radius: var(--radius-md); background: #fff; }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border: 1px solid var(--brand-line); border-top: 3px solid var(--brand-pink-deep); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }

/* cart page */
@media (max-width: 767px) {
  .woocommerce-cart-form table.shop_table thead { display: none; }
  .woocommerce-cart-form table.shop_table tbody tr.cart_item {
    display: grid; grid-template-columns: 72px 1fr; gap: var(--space-2xs) var(--space-xs); align-items: center;
    padding: var(--space-xs); margin-bottom: var(--space-xs); border: 1px solid var(--brand-line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm);
  }
  .woocommerce-cart-form table.shop_table tbody td { display: block; border: none; padding: 0; text-align: left; }
  .woocommerce-cart-form td.product-thumbnail { grid-row: 1 / span 2; }
  .woocommerce-cart-form td.product-remove { grid-column: 2; justify-self: end; }
  .woocommerce-cart-form td.actions { grid-column: 1 / -1; }
}
.woocommerce-cart-form td.product-thumbnail img { width: 72px; border-radius: var(--radius-sm); }
.woocommerce-cart-form td.product-name { font-weight: 600; line-height: 1.4; text-align: left; }
.woocommerce-cart-form td.product-price, .woocommerce-cart-form td.product-subtotal { white-space: nowrap; }
.woocommerce-cart td.actions { display: flex !important; flex-wrap: wrap; gap: var(--space-2xs); align-items: center; } /* [!] overrides the mobile grid cell */
.woocommerce-cart td.actions .coupon { display: flex; flex: 1 1 100%; gap: var(--space-2xs); }
.woocommerce-cart td.actions .coupon .input-text { flex: 1 1 auto; min-width: 0; width: auto !important; min-height: 46px; border: 1.5px solid var(--field-line); border-radius: var(--radius-pill); padding: .5rem 1rem; } /* [!] Woo fixed width */
.woocommerce-cart td.actions .coupon .button, .woocommerce-cart td.actions > .button { flex: 0 0 auto; min-height: 46px; padding-inline: 1.4rem; opacity: 1; }
.woocommerce-cart td.actions .button:disabled, .woocommerce-cart td.actions .button[disabled] {
  background-image: none !important; background-color: var(--brand-blush) !important; color: var(--brand-ink-muted) !important; cursor: not-allowed; opacity: 1; /* [!] over gradient paint */
}
@media (max-width: 600px) {
  .woocommerce-cart td.actions .coupon { flex-wrap: wrap; }
  .woocommerce-cart td.actions .coupon .input-text, .woocommerce-cart td.actions .coupon .button, .woocommerce-cart td.actions > .button { flex: 1 1 100%; }
}
.woocommerce-cart .cart-collaterals { margin-top: var(--space-md); }
.woocommerce-cart .cart_totals { max-width: 480px; margin-left: auto; }

/* AJAX spinner */
@keyframes spin { to { transform: rotate(1turn); } }
.blockUI.blockOverlay::before, .woocommerce .loader::before {
  content: ""; position: absolute; top: 50%; left: 50%; width: 42px; height: 42px; margin: -21px 0 0 -21px; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0%, var(--brand-pink) 70%, var(--brand-pink-deep) 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 0); mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 0);
  animation: spin 800ms linear infinite;
}

/* ---------- 10. MINI-CART DRAWER ---------- */
.kadence-cart-modal .kadence-cart-modal-inner { padding: var(--space-sm); max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; border-radius: var(--radius-lg) 0 0 var(--radius-lg); }
.widget_shopping_cart .quantity, .woocommerce-mini-cart .quantity { display: inline; height: auto; min-height: 0; border: none; background: none; padding: 0; font-size: var(--step-sm); color: var(--brand-ink-muted); }
.widget_shopping_cart .cart_list li, .woocommerce-mini-cart li.mini_cart_item {
  display: grid; grid-template-columns: 64px 1fr 28px; gap: 4px 12px; align-items: start;
  padding: var(--space-2xs) 0; margin: 0; border-bottom: 1px solid var(--brand-line);
}
.widget_shopping_cart .cart_list li img, .woocommerce-mini-cart li.mini_cart_item img { grid-column: 1; grid-row: 1 / span 2; width: 64px; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-sm); margin: 0; float: none; }
.widget_shopping_cart .cart_list li a:not(.remove), .woocommerce-mini-cart li.mini_cart_item a:not(.remove) { grid-column: 2; font-size: var(--step-sm); font-weight: 600; line-height: 1.35; }
.widget_shopping_cart .cart_list li .quantity, .woocommerce-mini-cart li.mini_cart_item .quantity { grid-column: 2; }
.widget_shopping_cart .cart_list li a.remove, .woocommerce-mini-cart li.mini_cart_item a.remove {
  grid-column: 3; grid-row: 1; justify-self: end; width: 24px; height: 24px; display: grid; place-items: center;
  border-radius: 50%; color: var(--brand-sale) !important; background: rgb(224 68 122 / 10%); font-size: 1rem; line-height: 1; /* [!] Woo red */
}
.widget_shopping_cart .total, .woocommerce-mini-cart__total { display: flex; justify-content: space-between; align-items: baseline; padding: var(--space-xs) 0; font-size: var(--step-0); }
.widget_shopping_cart .total .amount, .woocommerce-mini-cart__total .amount { font-weight: 800; }
.widget_shopping_cart .buttons, .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; margin-top: var(--space-2xs); }
.widget_shopping_cart .buttons a.button:not(.checkout), .woocommerce-mini-cart__buttons a.button:not(.checkout) {
  display: flex; width: 100%; min-height: 44px; align-items: center; justify-content: center; margin: 0 0 var(--space-2xs);
  background: #fff !important; background-image: none !important; color: var(--brand-pink-deep) !important; /* [!] theme grey paint */
  border: 1.5px solid var(--brand-pink-deep); border-radius: var(--radius-pill); font-weight: 700;
}
.widget_shopping_cart .buttons a.button.checkout, .woocommerce-mini-cart__buttons a.button.checkout { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: center; border-radius: var(--radius-pill); }
.kadence-cart-total, .header-cart-total { background: var(--grad-sale); color: #fff; border-radius: var(--radius-pill); }
@keyframes pop { 0% { transform: scale(.6); } 60% { transform: scale(1.18); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: no-preference) { .kadence-cart-total { animation: pop 420ms var(--ease-spring); } }

/* ---------- 11. FOOTER & TESTIMONIALS ---------- */
.site-footer {
  position: relative; isolation: isolate; background-color: #241d22;
  background-image:
    radial-gradient(115% 90% at 8% 0%, rgb(216 108 151 / 32%), transparent 58%),
    radial-gradient(100% 85% at 92% 8%, rgb(139 92 190 / 30%), transparent 60%),
    linear-gradient(180deg, #302730 0%, #241d22 52%, #1b1519 100%);
  background-repeat: no-repeat;
}
.site-footer .site-top-footer-wrap, .site-footer .site-middle-footer-wrap, .site-footer .site-bottom-footer-wrap,
.site-footer .site-footer-row-container-inner, .site-footer .footer-widget-area { background: transparent; }
.site-footer .site-bottom-footer-wrap { border-top: 1px solid rgb(255 255 255 / 12%); }
.site-footer-wrap { position: relative; }
.site-footer-wrap::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--grad-candy); background-size: 300% 100%; }
.site-footer a { color: rgb(255 255 255 / 82%); background-image: var(--grad-brand); background-repeat: no-repeat; background-size: 0% 2px; background-position: 0 100%; transition: background-size var(--dur-base) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.site-footer a:hover { color: #ffc9dd; background-size: 100% 2px; }
.footer-widget-area .widget-title::after { content: ""; display: block; width: 42px; height: 3px; margin-top: .55rem; border-radius: var(--radius-pill); background: var(--grad-brand); }
.footer-text a { display: inline-flex; align-items: center; gap: .4em; }
.footer-widget-area .widget_product_categories ul { columns: 2; column-gap: var(--space-sm); list-style: none; padding: 0; }
.footer-widget-area .widget_product_categories li { break-inside: avoid; font-size: var(--step-sm); margin-bottom: .4em; }
.site-footer img[src*="cards"] { max-width: 240px; padding: .4rem .6rem; background: rgb(255 255 255 / 70%); border-radius: var(--radius-md); box-shadow: var(--shadow-xs); }
@media (max-width: 900px) { .site-footer { padding-bottom: calc(90px + env(safe-area-inset-bottom, 0px)); } }

.kt-testimonial-item-wrap {
  position: relative; overflow: hidden; height: 100%; padding: var(--space-md);
  background: var(--grad-glass); border: 1px solid rgb(233 140 176 / 22%); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
  transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
@media (hover: hover) { .kt-testimonial-item-wrap:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } }
.kt-testimonial-item-wrap::before {
  content: "\201C"; position: absolute; top: -.35em; right: .12em; font-size: 8rem; line-height: 1;
  font-family: Georgia, serif; background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; opacity: .28; pointer-events: none;
}
.kt-testimonial-content { font-size: var(--step-0); line-height: 1.65; }
.kt-testimonial-media-inner-wrap img { border-radius: var(--radius-pill); aspect-ratio: 1; object-fit: cover; }

.kadence-scroll-to-top { background: var(--grad-brand); color: #fff; border: none; box-shadow: var(--shadow-md); transition: transform var(--dur-fast) var(--ease-spring); }
.kadence-scroll-to-top:hover { transform: translateY(-3px); }

/* ---------- 12. FLOATING WIDGET LANES ---------- */
.ht-ctc-chat, .joinchat, .wa__floating_button, .whatsapp-chat-widget {
  bottom: calc(16px + env(safe-area-inset-bottom,0px)) !important; right: 14px !important; left: auto !important; z-index: 9998 !important; /* [!] plugin inline position */
}
.kadence-scroll-to-top-wrap, .kadence-cart-float, .xoo-wsc-basket, .wc-block-mini-cart__button, .header-cart-wrap.float-cart {
  bottom: calc(90px + env(safe-area-inset-bottom,0px)) !important; right: 14px !important; left: auto !important; z-index: 9997 !important; /* [!] same */
}
.gtranslate_wrapper, .gt_float_switcher, #gt_float_wrapper {
  bottom: calc(16px + env(safe-area-inset-bottom,0px)) !important; left: 14px !important; right: auto !important; z-index: 9996 !important; /* [!] same */
}
@media (max-width: 900px) { .gt_float_switcher { transform: scale(.85); transform-origin: left bottom; } }

/* ---------- 13. PRINT ---------- */
@media print {
  .site-header-wrap, .site-footer, .kadence-scroll-to-top-wrap, .product-action-wrap { display: none !important; } /* [!] print only */
  body { background: #fff; color: #000; }
}

/* ---------- 14. REQUESTED TWEAKS ---------- */

/* 14.1 mobile: currency chip sits lower, centred on the menu-toggle row */
@media (max-width: 767px) {
  .site-header-item .kadence-currency-switcher { margin-block: 0; align-self: center; }
  .site-header-item:has(.kadence-currency-switcher) { display: flex; align-items: center; height: 100%; }
  .kadence-currency-switcher select { min-height: 40px; margin-top: 4px; }
}

/* 14.2 mobile hero: text + button first, image below at full width */
@media (max-width: 767px) {
  .kb-row-layout-wrap:has(.hero-section-overlay) > .kt-row-column-wrap,
  .entry-hero .kt-row-column-wrap { display: flex; flex-direction: column; gap: var(--space-sm); }
  .kb-row-layout-wrap:has(.hero-section-overlay) .wp-block-kadence-column:has(img),
  .entry-hero .wp-block-kadence-column:has(img) { order: 2; width: 100%; }
  .kb-row-layout-wrap:has(.hero-section-overlay) .wp-block-kadence-column:has(img) img,
  .entry-hero .wp-block-kadence-column:has(img) img {
    width: 100% !important; max-width: 100% !important; height: auto !important; /* [!] block sets a fixed img width */
    margin-inline: auto; display: block;
  }
}

/* 14.3 gallery centred in its column (thumbnails handled in section 7) */
.woocommerce div.product .woocommerce-product-gallery { margin-inline: auto; }
.woocommerce div.product .woocommerce-product-gallery__wrapper { margin-inline: auto; }

/* 14.4 bigger variation boxes */
.vi-wpvs-variation-wrap-vi_wpvs_image_design .vi-wpvs-option-wrap,
.vi-wpvs-variation-wrap-vi_wpvs_image_design .vi-wpvs-variation-button-select {
  width: clamp(66px, 16vw, 88px) !important; height: clamp(66px, 16vw, 88px) !important; /* [!] plugin inline size */
}
.vi-wpvs-variation-wrap:not(.vi-wpvs-variation-wrap-vi_wpvs_image_design) .vi-wpvs-option-wrap {
  min-width: 104px; min-height: 48px; padding: .55rem 1.25rem !important; font-size: var(--step-0); /* [!] plugin sizing */
}

/* 14.5 floating cart directly ABOVE WhatsApp, both breakpoints.
   Extra plugin classes included; if the two still overlap, the cart widget
   uses a class not listed here — grab it from devtools and add it. */
.ht-ctc-chat, .joinchat, .wa__floating_button, .whatsapp-chat-widget, .wa-chat-box-open {
  bottom: calc(16px + env(safe-area-inset-bottom,0px)) !important; right: 14px !important; left: auto !important; z-index: 9996 !important; /* [!] plugin inline pos */
}
.kadence-scroll-to-top-wrap { bottom: calc(172px + env(safe-area-inset-bottom,0px)) !important; right: 14px !important; z-index: 9995 !important; } /* [!] own lane above cart */
.kadence-cart-float, .xoo-wsc-basket, .wc-block-mini-cart__button, .header-cart-wrap.float-cart,
.fkcart-toggler, .fkcart-mini-toggler, #woofc-area, .woofc-area, [class*="wsc-basket"] {
  position: fixed; bottom: calc(96px + env(safe-area-inset-bottom,0px)) !important; right: 14px !important; left: auto !important; top: auto !important; z-index: 9997 !important; /* [!] plugin inline pos */
}

/* 14.6 checkout/order-review: product images centre in their cells */
#order_review td.product-thumbnail, #order_review .product-thumbnail { text-align: center; }
.woocommerce-checkout #order_review img { margin-inline: auto; display: block; }

/* 14.7 checkout tip widget: buttons size to their label (no clipped text),
   wrap as chips, selected state in brand colours instead of blue.
   Plugin classes unknown, so matched on "tip"/"support" in class or id. */
.woocommerce-checkout [class*="tip" i] > div:has(button),
.woocommerce-checkout [id*="tip" i] > div:has(button) {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.woocommerce-checkout [class*="tip" i] button, .woocommerce-checkout [id*="tip" i] button,
.woocommerce-checkout [class*="tip" i] label.button, .woocommerce-checkout [class*="support" i] button {
  width: auto !important; min-width: 0 !important; max-width: none !important; flex: 0 0 auto; /* [!] plugin fixed width clips the label */
  white-space: nowrap; overflow: visible !important; text-overflow: clip;
  min-height: 44px; padding: .5rem 1.1rem !important; /* [!] plugin padding */
  background: #fff; color: var(--brand-ink); border: 1.5px solid var(--field-line);
  border-radius: var(--radius-pill); font-size: var(--step-sm); font-weight: 600; cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.woocommerce-checkout [class*="tip" i] button:hover { border-color: var(--brand-pink); }
/* selected: cover the common state markers plugins use */
.woocommerce-checkout [class*="tip" i] button[class*="selected" i],
.woocommerce-checkout [class*="tip" i] button[class*="active" i],
.woocommerce-checkout [class*="tip" i] button[aria-pressed="true"],
.woocommerce-checkout [id*="tip" i] button[class*="selected" i],
.woocommerce-checkout [id*="tip" i] button[class*="active" i],
.woocommerce-checkout [class*="tip" i] input:checked + label {
  background: var(--grad-cta) !important; color: #fff !important; border-color: transparent !important; /* [!] plugin blue */
}
/* custom tip amount field matches the other checkout inputs */
.woocommerce-checkout [class*="tip" i] input[type="number"],
.woocommerce-checkout [class*="tip" i] input[type="text"],
.woocommerce-checkout [id*="tip" i] input[type="number"] {
  min-height: 46px; padding: .6rem .9rem; border: 1.5px solid var(--field-line);
  border-radius: var(--radius-md); font-size: max(16px, var(--step-0)); background: #fff;
}

/* 14.8 cart page: column sizing, thumbnail cell, totals box */

/* desktop cart table: fixed column plan so the name gets the width and
   titles stop wrapping one word per line */
@media (min-width: 782px) {
  .woocommerce-cart table.shop_table { table-layout: fixed; }
  .woocommerce-cart table.shop_table td.product-remove,
  .woocommerce-cart table.shop_table th.product-remove { width: 44px; }
  .woocommerce-cart table.shop_table td.product-thumbnail,
  .woocommerce-cart table.shop_table th.product-thumbnail { width: 104px; }
  .woocommerce-cart table.shop_table td.product-price,
  .woocommerce-cart table.shop_table th.product-price { width: 96px; }
  .woocommerce-cart table.shop_table td.product-quantity,
  .woocommerce-cart table.shop_table th.product-quantity { width: 170px; }
  .woocommerce-cart table.shop_table td.product-subtotal,
  .woocommerce-cart table.shop_table th.product-subtotal { width: 110px; }
  /* product-name takes the remainder */
}
.woocommerce-cart table.shop_table td { vertical-align: middle; }
.woocommerce-cart-form td.product-name a { font-weight: 600; line-height: 1.4; }

/* thumbnail: keep it visible if anything is hiding it, sized and rounded */
.woocommerce-cart table.shop_table td.product-thumbnail a { display: block !important; visibility: visible !important; opacity: 1 !important; }
.woocommerce-cart table.shop_table td.product-thumbnail img {
  display: block !important; visibility: visible !important; opacity: 1 !important; /* [!] in case a lazy-loader left it hidden */
  width: 84px !important; height: 84px; aspect-ratio: 1; object-fit: cover;
  border-radius: var(--radius-sm); background: var(--brand-blush-soft); border: 1px solid var(--brand-line);
}

/* totals box: tighter rhythm, sticky on desktop, tidy shipping block */
.woocommerce-cart .cart_totals { width: 100%; }
@media (min-width: 1024px) { .woocommerce-cart .cart_totals { position: sticky; top: 110px; } }
.cart_totals h2 { margin: 0 0 var(--space-xs); }
.cart_totals table.shop_table th { width: 34%; text-align: left; padding-left: 0; }
.cart_totals table.shop_table td { padding-right: 0; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-shipping-methods li { margin: 0 0 .25rem; }
.woocommerce-shipping-destination { margin: .35rem 0 0; font-size: var(--step-sm); color: var(--brand-ink-muted); }
.woocommerce-shipping-calculator { margin: .35rem 0 0; }
.woocommerce-shipping-calculator > a { font-size: var(--step-sm); color: var(--brand-pink-deep); text-decoration: underline; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: var(--step-0); font-weight: 800; border-bottom: none; padding-top: var(--space-xs); }
.cart_totals .checkout-button { width: 100%; margin-top: var(--space-xs); min-height: 50px; }
/* the "— or —" divider between checkout and express buttons */
.cart_totals + * .wc-ppcp-cart-payments, .cart_totals .wc-ppcp-cart-payments { margin-top: var(--space-2xs); }