/** Shopify CDN: Minification failed

Line 419:0 Unexpected "}"

**/
/* =========================================================================
   KIIVE AUDIO — v14 Enhancement layer
   Load AFTER kiive-components.css. Additive only — does not override the
   existing component/token files, so anything already working stays working.
   Backs three things every v14 section uses:
     1) A real color-scheme system  (data-scheme="light|muted|dark|charcoal")
     2) Per-section accent/text overrides via inline --kv-* vars
     3) Scroll-reveal motion + shared v14 component styles
   ========================================================================= */

/* ---------- 1. Color scheme system ----------
   A section sets:  class="kv kv-scheme" data-scheme="charcoal"
   and may override: style="--kv-accent:#C9A55E; --kv-fg:#fff;"            */
.kv-scheme{
  --kv-bg: var(--white);
  --kv-surface: var(--rack-25);
  --kv-fg: var(--rack-900);
  --kv-fg2: var(--rack-500);
  --kv-fg3: var(--rack-300);
  --kv-border: var(--rack-100);
  --kv-border-strong: var(--rack-200);
  --kv-accent: var(--teal-400);
  --kv-on-accent:#fff;
  color: var(--kv-fg);
}
.kv-scheme[data-scheme="light"]{
  --kv-bg:var(--white); --kv-surface:var(--rack-25); --kv-fg:var(--rack-900);
  --kv-fg2:var(--rack-500); --kv-fg3:var(--rack-300);
  --kv-border:var(--rack-100); --kv-border-strong:var(--rack-200);
}
.kv-scheme[data-scheme="muted"]{
  --kv-bg:var(--rack-50); --kv-surface:var(--white); --kv-fg:var(--rack-900);
  --kv-fg2:var(--rack-500); --kv-fg3:var(--rack-300);
  --kv-border:var(--rack-100); --kv-border-strong:var(--rack-200);
}
.kv-scheme[data-scheme="dark"]{
  --kv-bg:var(--rack-800); --kv-surface:var(--rack-700); --kv-fg:var(--rack-25);
  --kv-fg2:var(--rack-200); --kv-fg3:var(--rack-300);
  --kv-border:rgba(255,255,255,.08); --kv-border-strong:rgba(255,255,255,.16);
}
.kv-scheme[data-scheme="charcoal"]{
  --kv-bg:var(--rack-900); --kv-surface:var(--rack-800); --kv-fg:var(--rack-25);
  --kv-fg2:var(--rack-300); --kv-fg3:var(--rack-400);
  --kv-border:rgba(255,255,255,.07); --kv-border-strong:rgba(255,255,255,.14);
}
/* convenience text helpers that follow the scheme */
.kv-scheme .kv-fg{color:var(--kv-fg);}
.kv-scheme .kv-fg2{color:var(--kv-fg2);}
.kv-scheme .kv-accent{color:var(--kv-accent);}

/* ---------- 2. Motion: scroll reveal ----------
   Add class="kv-reveal" (+ optional kv-reveal--rise / --fade / --zoom) to any
   element. kiive-motion.js adds .is-in when it enters the viewport.
   data-kv-delay on the element staggers children.                          */
.kv-reveal{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);will-change:opacity,transform;}
.kv-reveal--rise{transform:translateY(22px);}
.kv-reveal--fade{transform:none;}
.kv-reveal--zoom{transform:scale(.96);}
.kv-reveal--left{transform:translateX(-26px);}
.kv-reveal--right{transform:translateX(26px);}
.kv-reveal.is-in{opacity:1;transform:none;}
.kv-stagger > *{opacity:0;transform:translateY(18px);transition:opacity .55s var(--ease-out), transform .55s var(--ease-out);}
.kv-stagger.is-in > *{opacity:1;transform:none;}
.kv-stagger.is-in > *:nth-child(2){transition-delay:.07s;}
.kv-stagger.is-in > *:nth-child(3){transition-delay:.14s;}
.kv-stagger.is-in > *:nth-child(4){transition-delay:.21s;}
.kv-stagger.is-in > *:nth-child(5){transition-delay:.28s;}
.kv-stagger.is-in > *:nth-child(6){transition-delay:.35s;}
@media (prefers-reduced-motion: reduce){
  .kv-reveal,.kv-stagger > *{opacity:1 !important;transform:none !important;transition:none !important;}
}

/* ---------- 3. Shared v14 component styles ---------- */

/* Quick-add button on product cards */
.kv-card{position:relative;}
.kv-card__quickadd{
  position:absolute;left:14px;right:14px;bottom:14px;z-index:2;
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--teal-400);color:#fff;border:0;border-radius:var(--r-6);
  padding:11px 14px;font:var(--fw-medium) var(--fs-14)/1 var(--font-sans);cursor:pointer;
  opacity:0;transform:translateY(8px);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),background .12s;
}
.kv-card__media{position:relative;}
.kv-card:hover .kv-card__quickadd{opacity:1;transform:none;}
.kv-card__quickadd:hover{background:var(--teal-500);}
.kv-card__quickadd[disabled]{background:var(--rack-400);cursor:default;}
@media (hover:none){ .kv-card__quickadd{position:static;left:auto;right:auto;bottom:auto;opacity:1;transform:none;margin-top:12px;} }

/* second-image hover swap */
.kv-card__media .kv-card__img2{position:absolute;inset:0;opacity:0;transition:opacity .3s var(--ease-out);}
.kv-card:hover .kv-card__media .kv-card__img2{opacity:1;}

/* card style variants */
.kv-card--flat{border-color:transparent;background:transparent;}
.kv-card--elevated{box-shadow:var(--shadow-md);border-color:transparent;}
.kv-card--elevated:hover{box-shadow:var(--shadow-lg);}

/* Sticky buy box (PDP) */
.kv-pdp__buybox--sticky{position:sticky;top:96px;align-self:start;}
@media (max-width:980px){ .kv-pdp__buybox--sticky{position:static;} }

/* PDP demo block (audio/video) */
.kv-demo{margin-top:clamp(40px,5vw,72px);border:1px solid var(--kv-border,rgba(255,255,255,.08));border-radius:var(--r-16);overflow:hidden;}
.kv-demo__head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--kv-border,rgba(255,255,255,.08));}
.kv-demo__body{padding:18px;}
.kv-demo__video{width:100%;border-radius:var(--r-10);overflow:hidden;aspect-ratio:16/9;background:#000;}
.kv-demo__video iframe,.kv-demo__video video{width:100%;height:100%;border:0;display:block;}

/* PDP feature callouts */
.kv-features{display:grid;gap:18px;margin-top:clamp(40px,5vw,72px);}
.kv-feature-callout{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:18px;border:1px solid var(--kv-border,var(--border));border-radius:var(--r-10);}
.kv-feature-callout__ico{width:42px;height:42px;border-radius:var(--r-10);background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--teal-400);}

/* Free-shipping / progress bar (cart) */
.kv-shipbar{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-10);padding:14px 16px;margin-bottom:20px;}
.kv-shipbar__track{height:6px;border-radius:999px;background:var(--rack-100);overflow:hidden;margin-top:10px;}
.kv-shipbar__fill{height:100%;background:var(--teal-400);border-radius:999px;transition:width .4s var(--ease-out);}

/* Mega-menu / dropdown nav */
.kvhdr__item{position:relative;}
.kvhdr__panel{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  min-width:220px;background:var(--rack-800);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-10);box-shadow:var(--shadow-lg);padding:10px;
  opacity:0;visibility:hidden;transition:opacity .16s var(--ease-out),transform .16s var(--ease-out),visibility .16s;z-index:60;
}
.kvhdr__item:hover > .kvhdr__panel,.kvhdr__item:focus-within > .kvhdr__panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.kvhdr__panel a{display:block;padding:9px 12px;border-radius:var(--r-6);color:var(--rack-100);font-size:var(--fs-14);text-decoration:none;}
.kvhdr__panel a:hover{background:rgba(255,255,255,.06);color:#fff;}
.kvhdr__mega{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  width:min(920px,92vw);background:var(--rack-800);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-16);box-shadow:var(--shadow-lg);padding:24px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px;
  opacity:0;visibility:hidden;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out),visibility .18s;z-index:60;
}
.kvhdr__item:hover > .kvhdr__mega,.kvhdr__item:focus-within > .kvhdr__mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.kvhdr__mega-col h4{font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.12em;color:var(--rack-300);margin:0 0 10px;}
.kvhdr__mega-col a{display:block;padding:7px 0;color:var(--rack-100);font-size:var(--fs-14);text-decoration:none;}
.kvhdr__mega-col a:hover{color:var(--teal-300);}
.kvhdr__mega-feature{background:radial-gradient(60% 60% at 50% 30%,rgba(55,171,156,.16),transparent),var(--rack-900);border-radius:var(--r-10);padding:18px;display:flex;flex-direction:column;justify-content:flex-end;min-height:180px;}
.kvhdr__caret{display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:5px;opacity:.7;vertical-align:middle;}
@media (max-width:1100px){ .kvhdr__panel,.kvhdr__mega{display:none !important;} }

/* ============================================================
   Readable static / system / account / policy pages (TEXT ONLY)
   Direct color on the actual elements, scoped to each page's real
   section class. !important so it beats the theme's inherited
   rgb(var(--text-color)). Buttons excluded so CTAs keep their style.
   ============================================================ */

/* Body copy -> near-white */
.shopify-policy__container,
.shopify-policy__container :is(p, li, span, td, dd, dt, address, blockquote, .rte, .prose),
.shopify-section--404 :is(p, li, span, .prose),
.shopify-section--main-page :is(.prose, p, li, span, td, blockquote),
.shopify-section--main-search :is(.prose, p, li, span),
.shopify-section--main-list-collections :is(.prose, p, li, span),
.shopify-section--main-password :is(.prose, p, li, span, label),
.shopify-section--contact :is(p, li, span, label, legend),
[class*="shopify-section--main-customers"] :is(p, li, span, td, label, address, .prose, dd, dt) {
  color: #ECECEC !important;
}

/* Headings + bold + table headers + collection-tile titles -> white */
.shopify-policy__container :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,strong),
.shopify-section--404 :is(h1,h2,h3,.h1,.h2,.h3,.h4,.h5,strong),
.shopify-section--main-page :is(h1,h2,h3,h4,.h1,.h2,.h3,.h4,.h5,strong),
.shopify-section--main-search :is(h1,h2,h3,.h1,.h2,.h3,.h4,.h5,strong),
.shopify-section--main-list-collections :is(h1,h2,h3,.h1,.h2,.h3,.card__heading,.card__title,strong),
.shopify-section--main-password :is(h1,h2,h3,.h1,.h2,.h3,strong),
.shopify-section--contact :is(h1,h2,h3,.h1,.h2,.h3,strong),
[class*="shopify-section--main-customers"] :is(h1,h2,h3,h4,.h1,.h2,.h3,.h4,th,strong) {
  color: #FFFFFF !important;
}

/* Links -> teal (policy, page prose, search, password, contact, customers).
   Collection tiles intentionally excluded so their titles stay white. */
.shopify-policy__container a:not(.button),
.shopify-section--404 a:not(.button),
.shopify-section--main-page .prose a,
.shopify-section--main-search a:not(.button),
.shopify-section--main-password a:not(.button),
.shopify-section--contact a:not(.button),
[class*="shopify-section--main-customers"] a:not(.button) {
  color: var(--teal-300, #5DBEB0) !important;
}

/* Inputs + placeholders (search box, contact + account forms) */
.shopify-section--main-search :is(input, textarea),
.shopify-section--contact :is(input, textarea, select),
[class*="shopify-section--main-customers"] :is(input, textarea, select) {
  color: #ECECEC !important;
}
.shopify-section--main-search input::placeholder,
.shopify-section--contact :is(input, textarea)::placeholder,
[class*="shopify-section--main-customers"] :is(input, textarea)::placeholder {
  color: rgba(236, 236, 236, 0.55) !important;
}

/* --- 404 watermark (CSS "404" pseudo-element, 70% opacity, inherits color) --- */
.shopify-section--404 .not-found {
  color: #ECECEC !important;
}

/* --- Search magnifying-glass icon (SVG currentColor inside the submit button) --- */
.shopify-section--main-search .search-input button,
.shopify-section--main-search .search-input button .icon,
.shopify-section--main-search .search-input svg {
  color: #ECECEC !important;
}

/* --- Lift the faint underline on the search field --- */
.shopify-section--main-search .search-input {
  --text-color: 236 236 236;
}
/* ===== Customer account pages — readable text on dark ===== */
.customer,
.customer__content,
.account,
[class*="customer"] {
  color: var(--rack-25, #ECECEC);
}

/* Headings */
.customer h1,
.customer h2,
.customer h3,
.customer h4,
.account h1,
.account h2,
.account h3 {
  color: #FFFFFF !important;
}

/* Body text, addresses, order details */
.customer p,
.customer span,
.customer td,
.customer th,
.customer li,
.customer dt,
.customer dd,
.customer address,
.customer label,
.account p,
.account span,
.account td,
.account th,
.account address {
  color: var(--rack-25, #ECECEC) !important;
}

/* Table header row — slightly brighter for separation */
.customer table thead th,
.account table thead th {
  color: #FFFFFF !important;
}

/* Links inside account (Edit, Delete, View order, etc.) */
.customer a,
.account a {
  color: #37AB9C !important;
}

/* Order status / muted secondary text — keep legible, not pure grey-on-black */
.customer .order-status,
.customer [class*="muted"],
.customer [class*="subdued"],
.account [class*="muted"] {
  color: #e3e3e3 !important;
}

/* Table borders so rows read as a structured table, not a cluttered blob */
.customer table,
.customer th,
.customer td,
.account table,
.account th,
.account td {
  border-color: rgba(255,255,255,.12) !important;
}

/* Currency / locale dropdown — readable options on dark theme */
select option {
  background-color: #1C1E20;
  color: #ECECEC;
}

/* ===== Stock dark system pages: account + search body text =====
   Policy / 404 / contact / password / customers / search headings + links are
   already handled in the scoped blocks above. These rules only cover the base
   text colour, the .text-subdued order-table cells, and table borders on those
   pages. Scoped to the real section wrappers (NOT global #main) so site-wide
   buttons and links are never repainted. This is what previously turned the
   teal CTA button labels teal-on-teal everywhere. */
[class*="shopify-section--main-customers"],
.shopify-section--main-search {
  color: #ECECEC;
}
[class*="shopify-section--main-customers"] .text-subdued,
.shopify-section--main-search .text-subdued {
  color: #ECECEC !important;
}
[class*="shopify-section--main-customers"] :is(table, td, th),
.shopify-section--main-search :is(table, td, th) {
  border-color: rgba(255,255,255,.12);
}

/* ===== Card audio preview button (collection + grid cards) =====
   Renders only when a product has the custom.preview_audio metafield set. */
.kv-card__audio-btn{
  position:absolute; left:12px; bottom:12px; z-index:4;
  width:40px; height:40px; padding:0; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(15,16,18,.72); border:1px solid rgba(255,255,255,.18);
  color:#fff; cursor:pointer; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.kv-card__audio-btn:hover{ transform:scale(1.06); background:rgba(55,171,156,.92); border-color:rgba(55,171,156,.92); }
.kv-card__audio-btn svg{ display:block; }
.kv-card__audio-btn .kv-ico-pause{ display:none; }
.kv-card__audio-btn.is-playing{ background:rgba(55,171,156,.92); border-color:rgba(55,171,156,.92); }
.kv-card__audio-btn.is-playing .kv-ico-play{ display:none; }
.kv-card__audio-btn.is-playing .kv-ico-pause{ display:block; }
/* ===== Cart drawer: match the dark brand + keep all text legible =====
   The .drawer base rule sets --background: var(--dialog-background) (still on
   Impact's light default) and --text-color: var(--text-primary) (light, from the
   dark rebrand), so the panel was light text on a light surface = washed out.
   Overriding both vars on #cart-drawer (ID beats the .drawer class) recolours the
   background, body text, subdued text and borders in one shot. */
#cart-drawer{
  --background: 28 30 32;       /* #1C1E20 charcoal, matches the sections */
  --text-color: 236 236 236;    /* #ECECEC light body text */
}
/* "Top Selling" recommendation cards: give them a faint surface so they read as
   cards, and force light text in case the section's card-colour settings are
   dark or left blank (the title/price read --text-color). */
#cart-drawer .horizontal-product{
  background: rgba(255,255,255,.04);
  border-radius: 10px;
  --text-color: 236 236 236;
}
/* "View cart" is a secondary button; on the dark panel its default grey fill and
   grey text wash out. Repaint it as the theme's subdued button (translucent light
   fill, light text, faint outline). Checkout stays primary teal, untouched. */
#cart-drawer .button--secondary{
  --button-background: var(--text-color) / .10;
  --button-text-color: var(--text-color);
  --button-outline-color: var(--text-color) / .35;
}

/* ===== Search drawer: same .drawer component as the cart, same washout =====
   #search-drawer is class="search-drawer ... drawer drawer--lg", so it inherits
   --background: var(--dialog-background) (light default) and --text-color:
   var(--text-primary) (light). Override both on the ID to recolour the panel,
   the typed text, the predictive results and the featured links in one shot. */
#search-drawer{
  --background: 28 30 32;       /* #1C1E20 charcoal */
  --text-color: 236 236 236;    /* #ECECEC light text + highlights */
}
/* Make the input line, the typed text and the "Search for..." placeholder all
   explicitly visible (placeholder opacity is forced to 1 so it can't fade out). */
#search-drawer .search-input{ border-bottom-color: rgb(var(--text-color) / .35); }
#search-drawer .search-input input{ color: rgb(var(--text-color)); }
#search-drawer .search-input input::placeholder{ color: rgb(var(--text-color) / .55); opacity: 1; }

/* Easy Bundle Builder — cart footer product strip was black-on-dark */
.gbbProductsFooterHTML,
.gbbProductsFooterHTML * {
  color: #ECECEC !important;
}
/* ===== Easy Bundle Builder — product-card image cells =====
   Kill the white boxes, blend to the dark card. Background-only, so zero
   layout risk. If a tight white frame still hugs each plugin after this,
   the white is baked into the source PNG and the image needs re-exporting. */
#gbbBundle img,
#gbbBundle [class*="ImageContainer"],
#gbbBundle [class*="ImageWrapper"],
#gbbBundle [class*="ProductImage"] {
  background-color: #1C1E20 !important;
}

/* ===== Easy Bundle Builder — footer button bar =====
   Pull it into the dark palette and force the Total label + amount light so
   they stop disappearing. Back/Next keep their own teal background. */
.gbbFooterButtonsContainer {
  background: #1C1E20 !important;
}
.gbbFooterButtonsContainer,
.gbbFooterButtonsContainer * {
  color: #000000ff !important;
}

/* OPTIONAL — bundle prices in brand gold instead of white, for hierarchy.
   Uncomment the rule below to turn it on. */
/*
#gbbBundle {
  --gbb-product-card-final-price-font-color: #C9A55E !important;
}
*/

/* ===== AnyFont free-tier badge =====
   Hide the "Powered by AZ Google Fonts & Custom Fonts" line site-wide. */
.sl-anyfont-footer-promo { display: none !important; }

/* ===== Easy Bundle Builder — review/summary page text ===== */
body[data-page="reviewPage"] [class*="gbb"],
body[data-page="reviewPage"] [class*="gbb"] * {
  color: #ECECEC !important;
}

}
/* ===== Easy Bundle Builder — Order Details sidebar text ===== */
html {
  --gbb-cart-footer-text-color: #ECECEC !important;
  --gbb-cart-footer-total-label-color: #ECECEC !important;
  --gbb-cart-footer-final-price-font-color: #ECECEC !important;
  --gbb-cart-footer-strikethrough-price-color: #ECECEC !important;
}
.gbbOrderDetailsHTMl {
  background: #1C1E20 !important;
}

/* ===== Collection pagination — dark-mode fix ===== */
.kv-chip,
.kv-btn--secondary.kv-btn--sm {
  color: #ECECEC !important;
  border-color: rgba(255,255,255,.16) !important;
}
.kv-chip {
  background: rgba(255,255,255,.08) !important;
}