/** Shopify CDN: Minification failed

Line 1085:10 Expected identifier but found whitespace
Line 1085:11 Unexpected "0"

**/
/* START_SECTION:footer (INDEX:10) */
.kk-footer {
  border-top: 1px solid rgba(var(--color-foreground-rgb,0,0,0),0.1);
  background: rgb(var(--color-background-rgb, var(--color-background)));
}
.kk-footer__band {
  border-bottom: 1px solid rgba(var(--color-foreground-rgb,0,0,0),0.1);
  padding: 64px 24px;
}
@media screen and (min-width:1024px){ .kk-footer__band { padding: 80px 48px; } }
.kk-footer__band-inner {
  max-width: 1600px; margin-inline: auto; display: grid; gap: 40px;
}
@media screen and (min-width:1024px){
  .kk-footer__band-inner { grid-template-columns: 1fr 1fr; align-items: end; }
}
.kk-footer__eyebrow {
  font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb,0,0,0),.5); margin: 0 0 12px;
}
.kk-footer__nl-heading {
  font-family: var(--font-heading--family,"Playfair Display",serif);
  font-weight: 400; font-size: clamp(1.75rem,4vw,3rem);
  line-height: 1.1; color: var(--color-foreground); margin: 0 0 16px;
}
.kk-footer__nl-body {
  font-size: .875rem; line-height: 1.7;
  color: rgba(var(--color-foreground-rgb,0,0,0),.6); margin: 0; max-width: 420px;
}
.kk-footer__nl-field {
  position: relative; display: flex; align-items: center;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb,0,0,0),.3);
  transition: border-color .2s;
}
.kk-footer__nl-field:focus-within { border-color: var(--color-foreground); }
.kk-footer__nl-input {
  flex: 1; background: transparent; border: none; outline: none;
  padding: 16px 48px 16px 0; font-size: .875rem;
  color: var(--color-foreground); font-family: var(--font-body--family);
}
.kk-footer__nl-input::placeholder { color: rgba(var(--color-foreground-rgb,0,0,0),.4); }
.kk-footer__nl-btn {
  position: absolute; right: 0; background: none; border: none; cursor: pointer;
  width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
  color: rgba(var(--color-foreground-rgb,0,0,0),.6); transition: color .15s, transform .2s;
}
.kk-footer__nl-btn:hover { color: var(--color-foreground); transform: translateX(2px); }
.kk-footer__nl-note {
  margin: 12px 0 0; font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb,0,0,0),.45);
}
.kk-footer__main { padding: 64px 24px; }
@media screen and (min-width:1024px){ .kk-footer__main { padding: 80px 48px; } }
.kk-footer__main-inner {
  max-width: 1600px; margin-inline: auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 40px;
}
@media screen and (min-width:1024px){
  .kk-footer__main-inner { grid-template-columns: 1.6fr 1fr 1fr 1fr; }
}
.kk-footer__brand-col { grid-column: 1 / -1; }
@media screen and (min-width:1024px){ .kk-footer__brand-col { grid-column: auto; } }
.kk-footer__brand-name {
  font-family: var(--font-heading--family,"Playfair Display",serif);
  font-size: 1.15rem; letter-spacing: .3em; color: var(--color-foreground); margin: 0 0 20px;
}
.kk-footer__brand-blurb {
  font-size: .875rem; line-height: 1.7;
  color: rgba(var(--color-foreground-rgb,0,0,0),.6); margin: 0 0 24px; max-width: 280px;
}
.kk-footer__socials { display: flex; align-items: center; gap: 20px; }
.kk-footer__social {
  color: rgba(var(--color-foreground-rgb,0,0,0),.5); text-decoration: none;
  transition: color .15s; display: flex;
}
.kk-footer__social:hover { color: var(--color-foreground); }
.kk-footer__col-heading {
  font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--color-foreground); margin: 0 0 20px;
}
.kk-footer__link-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.kk-footer__link {
  position: relative; font-size: .875rem;
  color: rgba(var(--color-foreground-rgb,0,0,0),.6); text-decoration: none;
  transition: color .2s; display: inline-block;
}
.kk-footer__link::after {
  content: ''; position: absolute; bottom: -1px; left: 0;
  height: 1px; width: 0; background: var(--color-foreground); transition: width .3s;
}
.kk-footer__link:hover { color: var(--color-foreground); }
.kk-footer__link:hover::after { width: 100%; }
.kk-footer__contact-email { margin-top: 16px; }
.kk-footer__bottom {
  border-top: 1px solid rgba(var(--color-foreground-rgb,0,0,0),.1); padding: 20px 24px;
}
@media screen and (min-width:1024px){ .kk-footer__bottom { padding: 20px 48px; } }
.kk-footer__bottom-inner {
  max-width: 1600px; margin-inline: auto;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
}
.kk-footer__legal {
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px;
  font-size: .75rem; color: rgba(var(--color-foreground-rgb,0,0,0),.5);
}
.kk-footer__legal-link { color: inherit; text-decoration: none; transition: color .15s; }
.kk-footer__legal-link:hover { color: var(--color-foreground); }
.kk-footer__payment { display: flex; align-items: center; gap: 8px; }
.kk-footer__payment-label {
  font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb,0,0,0),.45); margin-right: 4px;
}
.kk-footer__payment-badge {
  border: 1px solid rgba(var(--color-foreground-rgb,0,0,0),.18);
  padding: 4px 8px; font-size: .625rem; font-weight: 600; letter-spacing: .08em;
  color: rgba(var(--color-foreground-rgb,0,0,0),.5);
}
/* END_SECTION:footer */
/* START_SECTION:header (INDEX:12) */
/* ── Announcement bar ────────────────────────────────────────── */
.kk-announce {
  background: rgb(var(--color-background-rgb));
  color: var(--color-foreground);
  text-align: center;
  padding: 10px 16px;
}
.kk-announce__inner {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: inherit;
  display: block;
  margin: 0;
}

/* ── Header shell ────────────────────────────────────────────── */
.kk-header {
  position: sticky;
  top: 0;
  z-index: 300;
  background: rgb(var(--color-background-rgb) / 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.08);
}

.kk-header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  max-width: 1600px;
  margin-inline: auto;
  padding: 12px 16px;
}
@media screen and (min-width: 1024px) {
  .kk-header__inner { gap: 16px; padding: 20px 40px; }
}

/* ── Left ────────────────────────────────────────────────────── */
.kk-header__left {
  display: flex;
  align-items: center;
  gap: 24px;
}

/* Hamburger — mobile only */
.kk-header__burger { display: flex !important; }
@media screen and (min-width: 1024px) {
  .kk-header__burger { display: none !important; }
}

/* Desktop search icon */
.kk-header__search-desktop { display: none !important; }
@media screen and (min-width: 1024px) {
  .kk-header__search-desktop { display: flex !important; }
}

/* Desktop nav */
.kk-header__nav {
  display: none !important;
  align-items: center;
  gap: 28px;
}
@media screen and (min-width: 1024px) {
  .kk-header__nav { display: flex !important; }
}

.kk-header__nav-item { position: relative; }

.kk-header__nav-link,
.kk-header__nav-btn {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px 0;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s;
  font-family: var(--font-body--family);
  white-space: nowrap;
}
.kk-header__nav-link:hover,
.kk-header__nav-btn:hover,
.kk-header__nav-link.is-active { color: var(--color-foreground); }

.kk-header__caret { transition: transform 0.2s; flex-shrink: 0; }
.kk-header__has-sub.is-open .kk-header__caret { transform: rotate(180deg); }

/* Dropdown sub */
.kk-header__sub {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  min-width: 180px;
  background: var(--color-background);
  border: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  display: flex;
  flex-direction: column;
  padding: 8px 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity 0.2s, transform 0.2s;
  z-index: 10;
}
.kk-header__has-sub.is-open .kk-header__sub {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.kk-header__sub-link {
  padding: 10px 20px;
  font-size: 0.8125rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.7);
  text-decoration: none;
  transition: color 0.15s, background 0.15s;
  white-space: nowrap;
}
.kk-header__sub-link:hover {
  color: var(--color-foreground);
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.04);
}

/* ── Logo (centre) ───────────────────────────────────────────── */
.kk-header__logo {
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kk-header__logo-img { height: 48px; width: auto; display: block; }
@media screen and (min-width: 1024px) { .kk-header__logo-img { height: 56px; } }

.kk-header__logo-text {
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-size: 1.1rem;
  letter-spacing: 0.3em;
  color: var(--color-foreground);
  white-space: nowrap;
}
@media screen and (min-width: 640px)  { .kk-header__logo-text { font-size: 1.25rem; } }
@media screen and (min-width: 1024px) { .kk-header__logo-text { font-size: 1.5rem;  } }

/* ── Right ───────────────────────────────────────────────────── */
.kk-header__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
@media screen and (min-width: 768px) {
  .kk-header__right { gap: 16px; }
}
@media screen and (min-width: 1024px) { 
  .kk-header__right { gap: 20px; } 
}

/* Account — hidden on mobile */
.kk-header__account { display: none !important; }
@media screen and (min-width: 640px) {
  .kk-header__account { display: flex !important; }
}

/* Mobile search — hidden on desktop */
.kk-header__search-mobile { display: flex !important; }
@media screen and (min-width: 1024px) {
  .kk-header__search-mobile { display: none !important; }
}

/* Icon buttons */
.kk-header__icon-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  text-decoration: none;
  position: relative;
  transition: color 0.15s;
  flex-shrink: 0;
}
@media screen and (min-width: 1024px) {
  .kk-header__icon-btn { padding: 8px; gap: 6px; }
}
.kk-header__icon-btn:hover { color: var(--color-foreground); }
/* Force consistent SVG icon size in all header icon buttons */
.kk-header__icon-btn > svg,
.kk-header__icon-btn svg:first-of-type {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
@media screen and (min-width: 1024px) {
  .kk-header__icon-btn > svg,
  .kk-header__icon-btn svg:first-of-type { width: 22px; height: 22px; }
}

.kk-header__cart-count {
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media screen and (max-width: 380px) {
  .kk-header__cart-count { display: none; }
}

.kk-header__badge {
  position: absolute;
  top: 0px;
  right: -4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  background: var(--color-foreground);
  color: var(--color-background);
  font-size: 9px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  border-radius: 10px;
}
@media screen and (min-width: 1024px) {
  .kk-header__badge { top: -2px; right: -6px; padding: 0 5px; }
}

/* ── Mobile overlay ──────────────────────────────────────────── */
.kk-mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(2px);
  z-index: 398;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.kk-mobile-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* ── Mobile drawer ───────────────────────────────────────────── */
.kk-mobile-menu {
  position: fixed;
  inset: 0 auto 0 0;
  width: min(340px, 85vw);
  background: var(--color-background);
  border-right: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  z-index: 399;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
}
.kk-mobile-menu.is-open { transform: translateX(0); }

.kk-mobile-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  flex-shrink: 0;
}

.kk-mobile-menu__brand {
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-size: 1rem;
  letter-spacing: 0.3em;
  color: var(--color-foreground);
}

.kk-mobile-menu__close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.6);
  display: flex;
  align-items: center;
  transition: color 0.15s;
}
.kk-mobile-menu__close:hover { color: var(--color-foreground); }

.kk-mobile-menu__body {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding: 8px 0;
}

.kk-mobile-menu__link {
  display: block;
  padding: 18px 24px;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.07);
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-size: 1.35rem;
  color: var(--color-foreground);
  text-decoration: none;
  transition: opacity 0.15s;
}
.kk-mobile-menu__link:hover { opacity: 0.65; }
.kk-mobile-menu__link.is-active { opacity: 1; }

.kk-mobile-menu__group { border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.07); }
.kk-mobile-menu__group summary { list-style: none; }
.kk-mobile-menu__group summary::-webkit-details-marker { display: none; }
.kk-mobile-menu__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  border-bottom: none;
}
.kk-mobile-menu__caret { flex-shrink: 0; transition: transform 0.2s; }
.kk-mobile-menu__group[open] .kk-mobile-menu__caret { transform: rotate(180deg); }

.kk-mobile-menu__child {
  display: block;
  padding: 12px 24px 12px 36px;
  font-size: 0.875rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  text-decoration: none;
  transition: color 0.15s;
}
.kk-mobile-menu__child:hover { color: var(--color-foreground); }

.kk-mobile-menu__account {
  display: block;
  padding: 16px 24px;
  margin-top: auto;
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.55);
  text-decoration: none;
  transition: color 0.15s;
}
.kk-mobile-menu__account:hover { color: var(--color-foreground); }

/* ═══════════════════════════════════════════════════════
   Search Overlay
═══════════════════════════════════════════════════════ */
.kk-search-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  z-index: 498;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.kk-search-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.kk-search-overlay {
  position: fixed;
  inset: 0 0 auto 0;
  background: var(--color-background);
  z-index: 499;
  transform: translateY(-100%);
  transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  max-height: 90vh;
  overflow-y: auto;
}
.kk-search-overlay.is-open { transform: translateY(0); }

.kk-search-overlay__inner {
  max-width: 1600px;
  margin-inline: auto;
  padding: 28px 20px 40px;
}
@media screen and (min-width: 1024px) {
  .kk-search-overlay__inner { padding: 36px 40px 56px; }
}

.kk-search-overlay__input-row {
  display: flex;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.15);
  padding-bottom: 16px;
  margin-bottom: 32px;
}
.kk-search-overlay__icon {
  flex-shrink: 0;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
}
.kk-search-overlay__input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  color: var(--color-foreground);
  letter-spacing: 0.01em;
}
.kk-search-overlay__input::placeholder {
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.28);
}
.kk-search-overlay__input::-webkit-search-cancel-button { display: none; }
.kk-search-overlay__close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.6);
  display: flex;
  align-items: center;
  transition: color 0.15s;
  flex-shrink: 0;
}
.kk-search-overlay__close:hover { color: var(--color-foreground); }

.kk-search-overlay__body {
  display: grid;
  gap: 40px;
}
@media screen and (min-width: 768px) {
  .kk-search-overlay__body { grid-template-columns: 1fr 2fr; gap: 60px; }
}

.kk-search-overlay__eyebrow {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.45);
  margin: 0 0 20px;
}

.kk-search-overlay__quick-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 10px;
}
.kk-search-overlay__quick-link {
  font-family: var(--font-body--family, sans-serif);
  font-size: 0.8125rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.75);
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.05);
  padding: 10px 18px;
  border-radius: 30px;
  text-decoration: none;
  transition: all 0.2s ease;
  display: inline-block;
}
.kk-search-overlay__quick-link:hover { 
  background: var(--color-foreground);
  color: var(--color-background);
  transform: translateY(-1px);
}

.kk-search-overlay__grid {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 20px;
}
@media screen and (min-width: 640px) {
  .kk-search-overlay__grid { grid-template-columns: repeat(3, 1fr); }
}
.kk-search-overlay__no-results {
  grid-column: 1 / -1;
  font-size: 0.875rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.55);
}
.kk-search-overlay__product-link {
  display: block; text-decoration: none; color: inherit;
}
.kk-search-overlay__product-img-wrap {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.04);
  margin-bottom: 10px;
}
.kk-search-overlay__product-img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.5s ease; display: block;
}
.kk-search-overlay__product-link:hover .kk-search-overlay__product-img {
  transform: scale(1.03);
}
.kk-search-overlay__product-meta {
  display: flex; align-items: flex-start;
  justify-content: space-between; gap: 8px;
}
.kk-search-overlay__product-title {
  font-size: 0.8125rem; color: var(--color-foreground); flex: 1;
}
.kk-search-overlay__product-price {
  font-size: 0.8125rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  white-space: nowrap;
}
/* END_SECTION:header */
/* START_SECTION:kk-newsletter (INDEX:20) */
/* ── Newsletter Strip ──────────────────────────────────────────── */
.kk-newsletter {
  border-top: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  background: rgb(var(--color-background-rgb, var(--color-background)));
  padding: 96px 24px;
}

.kk-newsletter__inner {
  max-width: 480px;
  margin-inline: auto;
  text-align: center;
}

.kk-newsletter__eyebrow {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
  margin: 0 0 24px;
}

.kk-newsletter__heading {
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-weight: var(--font-heading--weight, 400);
  font-style: var(--font-heading--style, normal);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.15;
  color: var(--color-foreground);
  margin: 0 0 20px;
}

.kk-newsletter__body {
  font-size: 0.875rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.6);
  margin: 0 0 40px;
}

/* Form */
.kk-newsletter__form {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--color-foreground);
  gap: 0;
}

.kk-newsletter__input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 12px 0;
  font-size: 0.875rem;
  color: var(--color-foreground);
  font-family: var(--font-body--family);
}
.kk-newsletter__input::placeholder {
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.4);
}

.kk-newsletter__submit {
  background: none;
  border: none;
  cursor: pointer;
  padding: 12px 0;
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-foreground);
  white-space: nowrap;
  transition: opacity 0.2s;
  font-family: var(--font-body--family);
}
.kk-newsletter__submit:hover { opacity: 0.55; }

.kk-newsletter__message {
  margin-top: 20px;
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
}
.kk-newsletter__message--success {
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.6);
}
.kk-newsletter__message--error {
  color: #d93025; /* Red color for error */
}
/* END_SECTION:kk-newsletter */
/* START_SECTION:kk-wishlist-drawer (INDEX:25) */
/* ── Body lock when drawer open ────────────────────────────── */
body.kk-drawer-lock { overflow: hidden; }

/* ── Backdrop ──────────────────────────────────────────────── */
.kk-wishlist-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(2px);
  z-index: 399;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
#kk-wishlist-drawer.is-open ~ .kk-wishlist-overlay,
.kk-wishlist-overlay:has(+ #kk-wishlist-drawer.is-open) { opacity: 1; pointer-events: auto; }

/* Sibling selector workaround — overlay is BEFORE drawer in DOM */
body:has(#kk-wishlist-drawer.is-open) .kk-wishlist-overlay {
  opacity: 1;
  pointer-events: auto;
}

/* ── Drawer panel ──────────────────────────────────────────── */
.kk-wishlist-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 420px;
  background: var(--color-background);
  border-left: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  z-index: 400;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.kk-wishlist-drawer.is-open {
  transform: translateX(0);
}

/* Drawer header */
.kk-wishlist-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  padding: 20px 24px;
  flex-shrink: 0;
}

.kk-wishlist-drawer__label {
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-foreground);
  margin: 0;
}

.kk-wishlist-drawer__count {
  font-size: 0.75rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
  margin: 4px 0 0;
}

.kk-wishlist-drawer__close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.6);
  transition: color 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kk-wishlist-drawer__close:hover { color: var(--color-foreground); }

/* Drawer body */
.kk-wishlist-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 8px 0;
}

/* ── Empty state ───────────────────────────────────────────── */
.kk-wishlist-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 64px 32px;
  height: 100%;
  min-height: 60vh;
}

.kk-wishlist-empty__icon {
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.3);
  margin-bottom: 24px;
}

.kk-wishlist-empty__title {
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-size: 1.5rem;
  color: var(--color-foreground);
  margin: 0 0 12px;
}

.kk-wishlist-empty__body {
  font-size: 0.8125rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.55);
  line-height: 1.6;
  margin: 0 0 32px;
}

.kk-wishlist-empty__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  border: 1px solid var(--color-foreground);
  background: var(--color-foreground);
  color: var(--color-background);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.kk-wishlist-empty__cta:hover {
  background: transparent;
  color: var(--color-foreground);
}

/* ── Wishlist item list ────────────────────────────────────── */
.kk-wishlist-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.kk-wishlist-item {
  display: flex;
  gap: 16px;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.08);
}

.kk-wishlist-item__img-wrap {
  display: block;
  width: 80px;
  height: 112px;
  flex-shrink: 0;
  overflow: hidden;
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.06);
}

.kk-wishlist-item__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.kk-wishlist-item__img-placeholder {
  width: 100%;
  height: 100%;
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.06);
}

.kk-wishlist-item__details {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.kk-wishlist-item__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.kk-wishlist-item__title {
  font-size: 0.875rem;
  color: var(--color-foreground);
  text-decoration: none;
  line-height: 1.4;
  font-family: var(--font-heading--family, "Playfair Display", serif);
}
.kk-wishlist-item__title:hover { text-decoration: underline; }

.kk-wishlist-item__price {
  font-size: 0.875rem;
  color: var(--color-foreground);
  white-space: nowrap;
}

.kk-wishlist-item__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 12px;
}

.kk-wishlist-item__shop {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-foreground);
  text-decoration: none;
  border-bottom: 1px solid var(--color-foreground);
  padding-bottom: 2px;
  transition: opacity 0.15s;
}
.kk-wishlist-item__shop:hover { opacity: 0.55; }

.kk-wishlist-item__remove {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.45);
  transition: color 0.15s;
  padding: 0;
  font-family: var(--font-body--family);
}
.kk-wishlist-item__remove:hover { color: var(--color-foreground); }

/* ── Heart button (on product cards) ──────────────────────── */
.kk-heart-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  background: rgb(var(--color-background-rgb) / 0.85);
  border: none;
  border-radius: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background 0.15s, transform 0.15s;
  backdrop-filter: blur(4px);
}
@media (hover: hover) {
  .kk-heart-btn:hover { background: rgb(var(--color-background-rgb)); }
}

.kk-heart-icon {
  display: block;
  color: var(--color-foreground);
  transition: fill 0.2s;
}

.kk-heart-btn.is-active .kk-heart-icon {
  fill: var(--color-foreground);
}

/* Pop animation on toggle */
@keyframes kk-heart-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.35); }
  70%  { transform: scale(0.9); }
  100% { transform: scale(1); }
}
.kk-heart-btn--pop { animation: kk-heart-pop 0.35s ease; }

/* ── Header wishlist icon + badge ─────────────────────────── */
[data-kk-wishlist-trigger] {
  position: relative;
}
[data-kk-wishlist-count] {
  position: absolute;
  top: -6px;
  right: -8px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  background: var(--color-foreground);
  color: var(--color-background);
  font-size: 9px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
/* END_SECTION:kk-wishlist-drawer */
/* START_SECTION:kk-you-may-also-like (INDEX:27) */
.kk-recs {
  border-top: 1px solid rgba(var(--color-foreground-rgb,0,0,0), 0.1);
  background: rgb(var(--color-background-rgb, var(--color-background)));
  padding: 64px 24px;
}
@media screen and (min-width: 1024px) { .kk-recs { padding: 96px 48px; } }

.kk-recs__inner { max-width: 1600px; margin-inline: auto; }

.kk-recs__header { margin-bottom: 48px; }

/* Grid */
.kk-recs__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 16px;
}
@media screen and (min-width: 768px) {
  .kk-recs__grid { grid-template-columns: repeat(4, 1fr); gap: 20px 20px; }
}

/* Skeleton loaders */
.kk-recs__skeleton {
  aspect-ratio: 3/4;
  background: rgba(var(--color-foreground-rgb,0,0,0), 0.05);
  animation: kk-pulse 1.5s ease infinite;
}
@keyframes kk-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

/* Card */
.kk-recs__card { position: relative; }

/* Image container */
.kk-recs__card-img-wrap {
  display: block;
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: rgba(var(--color-foreground-rgb,0,0,0), 0.04);
}

/* Primary image */
.kk-recs__card-img--primary {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s ease;
}
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 1;
}

@media (hover: hover) {
  .kk-recs__card:hover .kk-recs__card-img--primary {
    transform: scale(1.02);
  }
  .kk-recs__card:hover .kk-recs__card-img--hover {
    opacity: 1;
  }
}

/* Sold Out Badge (Lovable style) */
.kk-recs__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 10;
  background: var(--color-background, #fff);
  color: var(--color-foreground, #000);
  font-size: 0.625rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 10px;
  font-weight: 500;
  pointer-events: none;
}

/* Placeholder when no image */
.kk-recs__card-placeholder {
  position: absolute;
  inset: 0;
  background: rgba(var(--color-foreground-rgb,0,0,0), 0.06);
}

/* Wishlist heart on card */
.kk-recs__heart {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--color-background), 0.85);
  backdrop-filter: blur(4px);
  border: none;
  cursor: pointer;
  color: var(--color-foreground);
  transition: background 0.15s;
}
@media (hover: hover) {
  .kk-recs__heart:hover { background: var(--color-background); }
}
.kk-recs__heart.is-active svg { fill: currentColor; }

/* Card info */
.kk-recs__card-info {
  margin-top: 14px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.kk-recs__card-title {
  margin: 0;
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-weight: 400;
  font-size: 0.9375rem;
  color: var(--color-foreground);
}
.kk-recs__card-title-link {
  color: inherit;
  text-decoration: none;
}
.kk-recs__card-title-link:hover { text-decoration: underline; }
.kk-recs__card-price {
  font-size: 0.875rem;
  color: var(--color-foreground);
  margin: 0;
  flex-shrink: 0;
}
/* END_SECTION:kk-you-may-also-like */
/* START_SECTION:main-product (INDEX:37) */
/* ── Design tokens (K|KASA palette) ───────────────── */
.kk-pdp,
.kk-pdp * {
  box-sizing: border-box;
}

/* ── Breadcrumb ─────────────────────────────────────── */
.kk-breadcrumb {
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  background: transparent;
  padding: 14px 24px;
}
@media screen and (min-width: 1024px) {
  .kk-breadcrumb { padding: 14px 48px; }
}
.kk-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
}
.kk-breadcrumb__link {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s;
}
.kk-breadcrumb__link:hover { color: var(--color-foreground); }
.kk-breadcrumb__current { color: var(--color-foreground); }
.kk-breadcrumb__sep { user-select: none; }

/* ── Two-column PDP grid ───────────────────────────── */
.kk-pdp {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 1024px) {
  .kk-pdp { grid-template-columns: 1.15fr 1fr; }
}

/* ── LEFT: Gallery column ───────────────────────────── */
.kk-pdp__gallery-col {
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.03);
}
@media screen and (min-width: 1024px) {
  .kk-pdp__gallery-col {
    position: sticky;
    top: var(--header-group-height, 88px);
    height: calc(100vh - var(--header-group-height, 88px));
    overflow: hidden;
  }
}

.kk-pdp__gallery-inner {
  display: flex;
  flex-direction: column-reverse;
  gap: 12px;
  height: 100%;
}
@media screen and (min-width: 1024px) {
  .kk-pdp__gallery-inner {
    flex-direction: row;
    gap: 16px;
    padding: 24px;
  }
}

/* Thumbnail rail */
.kk-gallery__thumbs {
  display: flex;
  flex-shrink: 0;
  gap: 10px;
  overflow-x: auto;
  padding: 0 24px 16px;
  scrollbar-width: none;
  position: relative;
  scroll-behavior: smooth;
}
.kk-gallery__thumbs::-webkit-scrollbar { display: none; }
@media screen and (min-width: 1024px) {
  .kk-gallery__thumbs {
    flex-direction: column;
    overflow-x: visible;
    overflow-y: auto;
    padding: 0;
  }
}

.kk-gallery__thumb {
  position: relative;
  flex-shrink: 0;
  width: 64px;
  height: 80px;
  overflow: hidden;
  border: 1px solid transparent;
  background: none;
  padding: 0;
  cursor: pointer;
  transition: border-color 0.2s, opacity 0.2s;
  opacity: 0.55;
}
@media screen and (min-width: 1024px) {
  .kk-gallery__thumb { width: 80px; height: 100px; }
}
.kk-gallery__thumb.is-active {
  border-color: var(--color-foreground);
  opacity: 1;
}
.kk-gallery__thumb:hover { opacity: 1; }
.kk-gallery__thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Main image slot */
.kk-gallery__main {
  position: relative;
  flex: 1;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: transparent;
}
@media screen and (min-width: 1024px) {
  .kk-gallery__main { aspect-ratio: unset; height: 100%; }
}

.kk-gallery__scroller {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none; /* Hide scrollbar Firefox */
  -ms-overflow-style: none;  /* Hide scrollbar IE/Edge */
  width: 100%;
  height: 100%;
}
.kk-gallery__scroller::-webkit-scrollbar {
  display: none; /* Hide scrollbar Chrome/Safari/Opera */
}

.kk-gallery__slide {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: block;
}

.kk-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.4s ease;
}

@media screen and (min-width: 1024px) {
  .kk-gallery__slide {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .kk-gallery__img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
  }
}

/* Navigation Arrows */
.kk-gallery__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgb(var(--color-background-rgb, 255, 255, 255));
  color: rgb(var(--color-foreground-rgb, 0, 0, 0));
  border: 1px solid rgba(var(--color-foreground-rgb, 0, 0, 0), 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.05);
  transition: opacity 0.25s ease, transform 0.2s ease, background-color 0.2s ease;
  z-index: 10;
  opacity: 0.8;
  padding: 0;
}
.kk-gallery__arrow:hover {
  opacity: 1;
  background: rgb(var(--color-background-rgb, 255, 255, 255));
  transform: translateY(-50%) scale(1.05);
}
.kk-gallery__arrow--prev {
  left: 16px;
}
.kk-gallery__arrow--next {
  right: 16px;
}
.kk-gallery__arrow svg {
  width: 18px;
  height: 18px;
}

@media screen and (min-width: 1024px) {
  .kk-gallery__arrow {
    opacity: 0;
    pointer-events: none;
  }
  .kk-gallery__main:hover .kk-gallery__arrow {
    opacity: 0.8;
    pointer-events: auto;
  }
  .kk-gallery__main:hover .kk-gallery__arrow:hover {
    opacity: 1;
  }
}

/* Progress bar indicator */
.kk-gallery__progress {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 2px;
  background: rgba(var(--color-foreground-rgb, 0, 0, 0), 0.15);
  border-radius: 1px;
  overflow: hidden;
  z-index: 10;
}
.kk-gallery__progress-bar {
  height: 100%;
  width: 0%;
  background: rgb(var(--color-foreground-rgb, 0, 0, 0));
  transition: width 0.2s ease;
}

/* ── RIGHT: Details column ───────────────────────────── */
.kk-pdp__details-col {
  background: transparent;
  padding: 40px 24px;
}
@media screen and (min-width: 1024px) {
  .kk-pdp__details-col { padding: 64px; }
}

.kk-pdp__details-inner {
  max-width: 460px;
}

/* Title row — title takes full width, heart floats right */
.kk-pdp__title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

/* Title */
.kk-pdp__title {
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: 400;
  font-style: var(--font-heading--style, normal);
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin: 0;
  color: var(--color-foreground);
  flex: 1;
}

/* PDP heart — static position (not absolute) in the title row */
.kk-pdp__heart {
  position: static !important;
  flex-shrink: 0;
  margin-top: 6px;
  background: transparent !important;
  backdrop-filter: none !important;
  width: 40px;
  height: 40px;
}

/* Price */
.kk-pdp__price {
  margin-top: 16px;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  color: var(--color-foreground);
}

/* Short description */
.kk-pdp__short-desc {
  margin-top: 24px;
  font-size: 0.875rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.6);
  white-space: pre-line;
}

/* Rule */
.kk-pdp__rule {
  border: none;
  border-top: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.12);
  margin: 28px 0;
}

/* Variant options */
.kk-pdp__options {
  margin-top: 0;
}

/* Size guide link */
.kk-pdp__size-guide {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 10px;
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.55);
  transition: color 0.15s;
}
.kk-pdp__size-guide:hover { color: var(--color-foreground); }

/* Qty + Wishlist row */
.kk-pdp__qty-row {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-top: 24px;
}
.kk-pdp__qty-wrap { flex: 0 0 auto; }

/* ATC */
.kk-pdp__atc-wrap {
  margin-top: 10px;
}

/* Dynamic checkout */
.kk-pdp__dynamic-checkout {
  margin-top: 8px;
}

/* ── Accordion ──────────────────────────────────────── */
.kk-pdp__accordion {
  margin-top: 8px;
}

.kk-accordion__item {
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.12);
}
.kk-accordion__item:first-child {
  border-top: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.12);
}

.kk-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.kk-accordion__trigger::-webkit-details-marker { display: none; }

.kk-accordion__label {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-foreground);
}

.kk-accordion__icon {
  flex-shrink: 0;
  transition: transform 0.25s var(--ease-out-quad, ease);
  color: var(--color-foreground);
}
details[open] .kk-accordion__icon {
  transform: rotate(180deg);
}

.kk-accordion__body {
  padding-bottom: 18px;
}

/* Description body */
.kk-pdp__description {
  font-size: 0.875rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.6);
  white-space: pre-line;
}
.kk-pdp__description p { margin: 0 0 12px; }
.kk-pdp__description p:last-child { margin-bottom: 0; }

/* ── Variant option blocks ───────────────────────── */
.kk-option {
  margin-top: 24px;
}
.kk-option__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.kk-option__label {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-foreground);
  margin: 0;
}
.kk-option__selected {
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
  text-transform: none;
  letter-spacing: 0;
}

/* Size guide trigger */
.kk-size-guide-trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
  transition: color 0.15s;
}
.kk-size-guide-trigger:hover { color: var(--color-foreground); }

/* Swatch grid — 5-col for ≤5 values, 4-col for more (Lovable logic) */
.kk-option__swatches {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(5, 1fr);
}
.kk-option__swatches--many {
  grid-template-columns: repeat(4, 1fr);
}
.kk-option__swatches--color {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
@media screen and (max-width: 479px) {
  .kk-option__swatches:not(.kk-option__swatches--color) { grid-template-columns: repeat(4, 1fr); }
  .kk-option__swatches--many:not(.kk-option__swatches--color) { grid-template-columns: repeat(3, 1fr); }
}

/* Square swatch label */
.kk-swatch {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.2);
  padding: 10px 6px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
  min-height: 44px;
}
.kk-swatch:hover {
  border-color: var(--color-foreground);
}
.kk-swatch.is-selected {
  border-color: var(--color-foreground);
  background: var(--color-foreground);
  color: var(--color-background);
}
/* Color swatch override */
.kk-swatch--color {
  border-radius: 50%;
  min-height: unset;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.2);
  background-size: cover;
  background-position: center;
}
.kk-swatch--color.is-selected {
  border: 2px solid var(--color-foreground);
  background: inherit; /* Prevent overriding the inline style */
  color: transparent;
  box-shadow: inset 0 0 0 2px var(--color-background);
}
.kk-swatch--color.is-selected:hover {
  background: inherit;
}
.kk-pdp-section-wrapper {
  transition: opacity 0.25s ease-in-out;
}
/* Sibling swatches styling */
.kk-swatch--sibling {
  display: inline-flex;
  text-decoration: none;
}
.kk-swatch--sibling.is-selected {
  border: 2px solid var(--color-foreground) !important;
  box-shadow: inset 0 0 0 2px var(--color-background) !important;
}
.kk-sibling-more-btn {
  background: none;
  border: none;
  padding: 0;
  margin: 0 0 0 4px;
  color: var(--color-foreground);
  font-family: inherit;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  text-decoration: underline;
  cursor: pointer;
  align-self: center;
  transition: opacity 0.2s;
  height: 28px;
  display: inline-flex;
  align-items: center;
}
.kk-sibling-more-btn:hover {
  opacity: 0.7;
}
.kk-swatch.is-unavailable {
  opacity: 0.45;
  cursor: default;
}
.kk-swatch__radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.kk-swatch__text {
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.2;
  pointer-events: none;
}
/* Diagonal strikethrough on OOS */
.kk-swatch__strike {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.kk-swatch__strike::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.3);
  transform: rotate(-45deg);
  transform-origin: center;
}

/* ── Qty + ATC action row — Lovable flex layout ───── */
.kk-pdp__action-row {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-top: 32px;
}
.kk-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.2);
  flex-shrink: 0;
}
.kk-qty__btn {
  background: none;
  border: none;
  padding: 10px 14px;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  color: var(--color-foreground);
  transition: background 0.15s;
}
.kk-qty__btn:hover { background: rgba(var(--color-foreground-rgb, 0,0,0), 0.06); }
.kk-qty__val {
  min-width: 32px;
  text-align: center;
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
}

/* ── ATC button ──────────────────────────────────── */
.kk-atc-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 24px;
  border: 1px solid var(--color-foreground);
  background: var(--color-foreground);
  color: var(--color-background);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.kk-atc-btn:hover:not(:disabled) {
  background: transparent;
  color: var(--color-foreground);
}
.kk-atc-btn:disabled {
  border-color: rgba(var(--color-foreground-rgb, 0,0,0), 0.2);
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.06);
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.4);
  cursor: not-allowed;
}

/* Premium Added State */
.kk-atc-btn[data-added="true"] {
  background: var(--color-foreground) !important;
  color: var(--color-background) !important;
  border-color: var(--color-foreground) !important;
  pointer-events: none;
  font-size: 0;
  transition: all 0.2s ease-in-out;
}
.kk-atc-btn[data-added="true"]::before {
  content: "Added to bag \2713";
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ── Size Guide Modal ────────────────────────────── */
.kk-sg-modal {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(720px, 95vw);
  max-height: 88vh;
  border: none;
  padding: 0;
  background: var(--color-background);
  overflow: hidden;
}
.kk-sg-modal::backdrop {
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(4px);
}
.kk-sg-modal__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 88vh;
}
.kk-sg-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 28px;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  flex-shrink: 0;
}
.kk-sg-modal__title {
  font-family: var(--font-heading--family, "Playfair Display", serif);
  font-size: 1.35rem;
  font-weight: 400;
  margin: 0;
  color: var(--color-foreground);
  letter-spacing: 0.01em;
}
.kk-sg-modal__sub {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
}
.kk-sg-modal__close {
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--color-foreground);
  opacity: 0.55;
  transition: opacity 0.15s;
}
.kk-sg-modal__close:hover { opacity: 1; }

.kk-sg-modal__body {
  overflow-y: auto;
  flex: 1;
  padding: 0 28px 28px;
}

/* ── Tabs ──────────────────────────────────────── */
.kk-sg-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  margin-bottom: 24px;
  position: sticky;
  top: 0;
  background: var(--color-background);
  z-index: 1;
  padding-top: 20px;
}
.kk-sg-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 10px 20px 12px;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.45);
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
  margin-bottom: -1px;
}
.kk-sg-tab.is-active {
  color: var(--color-foreground);
  border-bottom-color: var(--color-foreground);
}
.kk-sg-tab:hover { color: var(--color-foreground); }

/* ── Panels ────────────────────────────────────── */
.kk-sg-panel { display: none; }
.kk-sg-panel.is-active { display: block; }

/* ── Size table ────────────────────────────────── */
.kk-sg-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 20px;
  border: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
}
.kk-sg-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 480px;
}
.kk-sg-table thead tr {
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.04);
}
.kk-sg-table th {
  padding: 12px 14px;
  text-align: left;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  white-space: nowrap;
}
.kk-sg-table td {
  padding: 12px 14px;
  font-size: 0.8125rem;
  color: var(--color-foreground);
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.07);
}
.kk-sg-table tbody tr:last-child td { border-bottom: none; }
.kk-sg-table tbody tr:hover td {
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.02);
}
.kk-sg-table td:first-child { font-weight: 600; }

.kk-sg-note {
  font-size: 0.75rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.5);
  margin: 0;
}

/* Page-sourced size guide: style injected HTML tables identically to the hardcoded chart */
.kk-sg-page-content { padding-top: 4px; }
.kk-sg-page-content table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  margin-bottom: 16px;
  overflow-x: auto;
  display: block;
}
.kk-sg-page-content thead tr {
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.04);
}
.kk-sg-page-content th {
  padding: 12px 14px;
  text-align: left;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.1);
  white-space: nowrap;
}
.kk-sg-page-content td {
  padding: 12px 14px;
  font-size: 0.8125rem;
  color: var(--color-foreground);
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.07);
}
.kk-sg-page-content tbody tr:last-child td { border-bottom: none; }
.kk-sg-page-content tbody tr:hover td {
  background: rgba(var(--color-foreground-rgb, 0,0,0), 0.02);
}
.kk-sg-page-content td:first-child,
.kk-sg-page-content th:first-child { font-weight: 600; }
.kk-sg-page-content p {
  font-size: 0.8125rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  line-height: 1.6;
  margin: 0 0 12px;
}


/* ── How to measure ────────────────────────────── */
.kk-sg-how-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.kk-sg-how-item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid rgba(var(--color-foreground-rgb, 0,0,0), 0.08);
}
.kk-sg-how-item:last-child { border-bottom: none; }
.kk-sg-how-label {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--color-foreground);
}
.kk-sg-how-desc {
  font-size: 0.8125rem;
  color: rgba(var(--color-foreground-rgb, 0,0,0), 0.65);
  line-height: 1.6;
}


/* ── Product listing titles: force Playfair Display ───────── */
/*
  Theme uses --font-body--family (Montserrat) for product-title
  web components. Override to --font-heading--family (Playfair).
*/
product-title,
product-title *,
[data-block-type="product-title"],
[data-block-type="product-title"] *,
.product-card-gallery__title-placeholder,
.kk-main-product-section .kk-pdp__title {
  font-family: var(--font-heading--family) !important;
  font-style: var(--font-heading--style) !important;
}
/* END_SECTION:main-product */
/* START_SNIPPET:background-media (INDEX:205) */
@media (prefers-reduced-motion: reduce) {
    video-background-component video {
      display: none;
    }
  }
/* END_SNIPPET:background-media */
/* START_SNIPPET:buy-buttons-styles (INDEX:210) */
.buy-buttons-block {
    --buy-button-preferred-width: 185px;

    width: 100%;
  }

  .product-form-buttons {
    display: flex;
    flex-wrap: wrap;
  }

  .product-form-buttons:not(:has(.quantity-rules)) {
    gap: calc(var(--gap-sm) / 2);

    @media screen and (min-width: 750px) {
      gap: var(--gap-sm);
    }
  }

  .product-form-buttons
    > *:not(.quantity-selector-wrapper, .quantity-rules, .quantity-label, .volume-pricing, .product-form-text__error) {
    flex: 1 1 var(--buy-button-preferred-width, 0);
    min-width: fit-content;
  }

  .product-form-buttons--stacked
    > *:not(.quantity-selector-wrapper, .quantity-rules, .quantity-label, .volume-pricing, .product-form-text__error) {
    flex-basis: 51%;
  }

  .product-form-buttons button {
    width: 100%;
    padding-block: var(--padding-lg);
  }

  .quantity-selector {
    flex-grow: 0;
    flex-shrink: 0;
    height: var(--height-buy-buttons);
  }

  .quantity-label {
    flex: 1 0 100%;
    width: 100%;
    font-size: var(--font-size--sm);
    margin-block-end: var(--gap-xs);
  }

  .quantity-label__cart-count {
    color: var(--color-foreground-secondary);
  }

  .quantity-rules {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    row-gap: calc(var(--gap-xs) / 2);
    flex: 1 0 100%;
    width: 100%;
    font-size: var(--font-size--xs);
    color: var(--color-foreground-secondary);
    margin-block-start: var(--gap-xs);
    margin-block-end: var(--gap);
  }

  .product-form-buttons:has(~ .volume-pricing .volume-pricing__title) .quantity-rules {
    margin-block-end: var(--gap-md);
  }

  .quantity-rules__item {
    position: relative;
    display: inline-block;
    color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
  }

  .quantity-rules__item:not(:last-child) {
    padding-right: var(--padding-xl);
    margin-right: var(--margin-2xs);
  }

  .quantity-rules__item:not(:last-child)::after {
    content: '•';
    position: absolute;
    inset-inline-end: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.5em;
    line-height: 0;
  }

  .add-to-cart-button {
    height: var(--height-buy-buttons);
    text-transform: var(--button-text-case-primary);
  }

  .add-to-cart-button.button-secondary {
    text-transform: var(--button-text-case-secondary);
  }

  .product-form-text__error {
    display: flex;
    flex: 1 0 100%;
    align-items: flex-start;
    gap: var(--gap-xs);
    margin-block-end: var(--gap-xs);
  }

  .product__pickup-availabilities {
    width: 100%;
  }

  .pickup-availability__column {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .pickup-availability__row {
    display: flex;
    gap: var(--padding-xs);
  }

  .pickup-availability__dialog-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }

  .pickup-availability__header-container {
    padding-block-end: var(--padding-2xl);
  }

  .pickup-location__wrapper {
    display: flex;
    flex-direction: column;
    padding-block: var(--padding-2xl);
    border-top: 1px solid var(--color-border);
    gap: var(--padding-xs);
  }

  .pickup-location__address-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--padding-md);
  }

  .pickup-location__dialog {
    padding: var(--padding-2xl);
    position: fixed;
    border-radius: 0;
    width: var(--sidebar-width);
    max-width: 95vw;
    height: 100%;
    margin: 0 0 0 auto;
    border: var(--style-border-drawer);
    box-shadow: var(--shadow-drawer);
    background-color: var(--color-background);
  }

  .pickup-location__dialog:modal {
    max-height: 100dvh;
  }

  .pickup-location__text-sm {
    font-size: var(--font-size--sm);
    margin: 0;
  }

  .pickup-location__text-xs {
    font-size: var(--font-size--xs);
    margin: 0;
  }

  .pickup-location__button {
    width: fit-content;
    color: var(--color-primary);
    font-size: var(--font-size--xs);
    font-family: var(--font-body--family);
    padding: 0;
    cursor: pointer;
    margin-block: var(--margin-xs);
  }

  .pickup-location__button:hover {
    color: var(--color-primary-hover);
  }

  .pickup-location__h4 {
    margin: 0;
  }

  .pickup-location__text-bold {
    font-size: var(--font-size--md);
    font-weight: 600;
    margin: 0;
  }

  .pickup-location__availability-wrapper {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
    font-family: var(--font-paragraph--family);
  }

  .pickup-location__address {
    font-style: normal;
  }

  .pickup-location__close-button {
    top: calc(var(--padding-2xl) - (var(--icon-size-xs) / 2));
    right: calc(var(--padding-2xl) - var(--icon-size-xs));
  }

  .volume-pricing {
    display: block;
    width: 100%;
    margin-bottom: var(--gap);
  }

  .volume-pricing:not(:has(.volume-pricing__title)) {
    margin-top: 0;
    margin-bottom: 0;
  }

  .volume-pricing__title {
    display: block;
    margin-block-end: var(--gap-sm);
    font-size: var(--font-size--sm);
    font-weight: var(--font-body--weight);
    color: var(--color-foreground);
  }

  .volume-pricing__table {
    width: 100%;
  }

  .volume-pricing__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-block: var(--padding-sm);
    padding-inline: var(--padding-md);
    font-size: var(--font-size--sm);
  }

  .volume-pricing__row--even {
    background: rgb(var(--color-foreground-rgb) / var(--opacity-5));
  }

  .volume-pricing__row--odd {
    background: var(--color-background);
  }

  .volume-pricing__collapsible-wrapper {
    block-size: 0;
    overflow-y: clip;
    opacity: 0;
    interpolate-size: allow-keywords;
    transition: opacity var(--animation-speed-slow) var(--animation-easing),
      block-size var(--animation-speed-slow) var(--animation-easing);
  }

  .volume-pricing__toggle {
    width: 100%;
    padding-bottom: 0;
    padding-inline: 0;
    text-align: left;
    color: var(--color-foreground-secondary);
    font-size: var(--font-size--xs);
    cursor: default;
    margin-block-start: 0;
    pointer-events: none;
  }

  button.volume-pricing__toggle {
    /* Need the extra specificity to override .product-form-buttons button */
    padding-block: var(--padding-sm);
  }

  .volume-pricing__toggle-text {
    cursor: pointer;
    display: inline-block;
    pointer-events: auto;
  }

  .volume-pricing__show-less {
    display: none;
  }

  .volume-pricing--expanded .volume-pricing__collapsible-wrapper {
    opacity: 1;
    block-size: auto;

    @starting-style {
      block-size: 0;
      opacity: 0;
      overflow-y: clip;
    }
  }

  .volume-pricing--expanded .volume-pricing__show-more {
    display: none;
  }

  .volume-pricing--expanded .volume-pricing__show-less {
    display: inline;
  }

  /* Accelerated checkout styles — co-located here so they compile on pages
     where the quick-add modal can display buy buttons (e.g. collection pages). */
  .accelerated-checkout-block[data-shopify-visual-preview] {
    width: 300px;
  }

  more-payment-options-link {
    font-size: smaller;
  }

  more-payment-options-link a {
    --button-color: var(--color-primary);
  }

  more-payment-options-link a:hover {
    --button-color: var(--color-primary-hover);
  }

  .shopify-payment-button__more-options[aria-hidden='true'] {
    display: none;
  }
/* END_SNIPPET:buy-buttons-styles */
/* START_SNIPPET:cart-bubble (INDEX:212) */
.cart-bubble {
    --cart-padding: 0.2em;

    position: relative;
    width: 20px;
    aspect-ratio: 1;
    border-radius: 50%;
    border-width: 0;
    display: flex;
    line-height: normal;
    align-items: center;
    justify-content: center;
    color: var(--color-primary-button-text);
    padding-inline: var(--cart-padding);
  }

  .cart-bubble[data-maintain-ratio] {
    aspect-ratio: 1;
  }

  .cart-bubble[data-maintain-ratio] .cart-bubble__background {
    border-radius: var(--style-border-radius-50);
  }

  .cart-bubble__background {
    position: absolute;
    inset: 0;
    background-color: var(--color-primary-button-background);
    border-radius: var(--style-border-radius-lg);
  }

  .cart-bubble__text {
    font-size: var(--font-size--3xs);
    z-index: var(--layer-flat);
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }
/* END_SNIPPET:cart-bubble */
/* START_SNIPPET:cart-items-component (INDEX:213) */
.cart-items-component {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  @media screen and (prefers-reduced-motion: no-preference) {
    html:active-view-transition-type(empty-cart-drawer) {
      .cart-items-component {
        view-transition-name: cart-drawer-content;
      }
    }

    html:active-view-transition-type(empty-cart-page) {
      .cart-items-component {
        view-transition-name: cart-page-content;
      }
    }
  }

  ::view-transition-old(cart-page-content) {
    animation: cart-page-content-old var(--animation-speed-fast) var(--animation-easing) forwards;
  }

  @keyframes cart-page-content-old {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
      filter: blur(4px);
    }
  }

  ::view-transition-old(cart-drawer-content) {
    transform-origin: 50% 33%;
    animation: cart-contents-old var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  ::view-transition-new(cart-drawer-content) {
    transform-origin: top center;
    animation: cart-contents-new var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  @keyframes cart-contents-old {
    to {
      scale: 0.92;
      opacity: 0;
    }
  }

  @keyframes cart-contents-new {
    from {
      scale: 1.05;
      translate: 0 128px;
      filter: blur(1px);
      opacity: 0;
    }
  }
/* END_SNIPPET:cart-items-component */
/* START_SNIPPET:cart-products (INDEX:214) */
.cart-items {
    --cart-item-media-width-min: 2.5rem;
    --cart-item-media-width-max: 7.5rem;

    container-name: cart-items;
    container-type: inline-size;
    width: 100%;
  }

  .cart-items-disabled {
    pointer-events: none;
  }

  .cart-page--empty .cart-items__wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-block-start: 0;
    text-align: center;
  }

  .cart-drawer:not(:has(.cart-form)) .cart-items__wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .cart-items__table {
    width: 100%;
    border-spacing: 0;
  }

  .cart-items__table * {
    margin: 0;
  }

  .cart-items__table-row {
    --cart-item-price-width: 6rem;

    display: grid;
    grid-template-columns: clamp(2.5rem, 15cqi, 7.5rem) minmax(0, 1fr) minmax(var(--cart-item-price-width), auto);
    grid-template-areas:
      'media details price'
      'media quantity price'
      'media error error';
    column-gap: var(--gap-md);
    align-items: start;
    padding-bottom: var(--cart-items-gap);
    margin-bottom: var(--margin-lg);
  }

  /* Cart drawer: separate grid areas for variants and unit price */
  .cart-drawer .cart-items__table-row--full-width-variants {
    grid-template-columns: clamp(2.5rem, 15cqi, 7.5rem) minmax(0, 1fr) auto;
    grid-template-rows: repeat(4, min-content) 1fr;
    grid-template-areas:
      'media details price'
      'media variants variants'
      'media unit_price unit_price'
      'media quantity quantity'
      'media error error';

    .cart-items__details {
      display: contents;
    }

    .cart-items__product-info {
      grid-area: details;
    }

    .cart-items__variants-wrapper {
      grid-area: variants;

      &:empty {
        display: none;
      }

      p {
        margin: 0;
      }
    }

    .cart-items__unit-price-wrapper {
      grid-area: unit_price;
      font-size: var(--font-size--sm);
    }

    .cart-items__price {
      min-width: auto;
      width: max-content;
    }
  }

  .cart-items__table-row.cart-items__nested-line td:first-child {
    width: 60%;
    justify-self: right;
  }

  html:active-view-transition-type(page-navigation) .cart-items__table-row {
    /* stylelint-disable-next-line declaration-no-important */
    view-transition-name: none !important;
  }

  .cart-items__table-row.removing {
    overflow: hidden;
    animation: removeRow calc(var(--animation-speed) * 2) var(--animation-easing) forwards;
    animation-delay: var(--animation-speed);
  }

  @keyframes removeRow {
    0% {
      height: var(--row-height);
    }

    100% {
      opacity: 0;
      height: 0;
      padding-bottom: 0;
      margin-bottom: 0;
      border-color: transparent;
    }
  }

  .cart-items__table-row:last-child {
    padding-bottom: 0;
  }

  .cart-items--dividers .cart-items__table-row {
    border-bottom: 1px solid var(--color-border);
    margin-bottom: var(--cart-items-gap);
  }

  .cart-items--dividers .cart-items__table-row:has(+ .cart-items__nested-line) {
    border-bottom: none;
    margin-bottom: 0;
  }

  .cart-items--dividers .cart-items__table-row:last-of-type {
    border-block-end: none;
    padding-block-end: 0;
    margin-bottom: 0;
  }

  .cart-items__details {
    grid-area: details;
    color: rgb(var(--color-foreground-rgb) / var(--opacity-70));
  }

  .cart-items__details > * + *,
  .cart-items__bundle li {
    margin-block-start: var(--margin-3xs);
  }

  .cart-items__details * {
    font-size: var(--font-size--sm);
  }

  .cart-items__details a {
    text-decoration: none;
  }

  .cart-items__title {
    font-size: var(--font-size--md);
    color: var(--color-foreground);
    text-transform: var(--product-title-case);
    display: block;
    margin-block-start: calc((var(--font-size--md) - 1lh) / 2);
  }

  .cart-items__variants {
    display: block;
  }


  .cart-items__variant {
    display: inline;
  }

  .cart-items__variant dt,
  .cart-items__variant dd {
    display: inline;
    margin: 0;
  }

  .cart-items__quantity {
    grid-area: quantity;
    margin-block-start: var(--margin-xs);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--gap-xs);
    width: fit-content;
  }

  .cart-items__quantity-controls {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--gap-xs);
    width: fit-content;
  }

  .cart-items__quantity-controls > .volume-pricing-info {
    margin-inline-start: calc(-1 * var(--minimum-touch-target) - var(--gap-xs));
  }

  .cart-items__quantity .quantity-selector {
    display: inline-flex;
    font-size: var(--font-size--sm);
    height: auto;
  }

  .cart-items__remove {
    background-color: transparent;
    color: var(--color-foreground);
    width: var(--minimum-touch-target);
    height: var(--minimum-touch-target);
    justify-content: center;
    box-shadow: none;
    padding: 0;
  }

  .cart-items__media {
    grid-area: media;
    padding: 0;
  }

  .cart-items__price {
    grid-area: price;
    min-height: unset;
    min-width: var(--cart-item-price-width);
    text-align: end;
    display: block;
    font-size: var(--font-size--sm);
    line-height: var(--line-height);
  }


  .cart-items__price-unit {
    font-size: var(--font-size--xs);
    padding-block-start: var(--padding-2xs);
  }

  .cart-items__media-container {
    display: flex;
    aspect-ratio: var(--ratio);
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .cart-items__media-image {
    aspect-ratio: inherit;
    object-fit: cover;
    object-position: center center;
    width: 100%;
    height: auto;
  }

  .cart-items__empty-button {
    margin-top: var(--margin-md);
    padding-inline: var(--padding-4xl);
    padding-block: var(--padding-lg);
  }

  /* Error message */
  .cart-items__error {
    display: flex;
    align-items: flex-start;
    width: 100%;
    grid-area: error;
    margin-block-start: var(--margin-xs);
    opacity: 1;
    overflow: hidden;
    transform: translateY(0);
    transition: opacity var(--drawer-animation-speed) var(--animation-easing),
      transform var(--drawer-animation-speed) var(--animation-easing);

    @starting-style {
      opacity: 0;
      transform: translateY(-0.5rem);
    }
  }

  .cart-item__error {
    display: flex;
    align-items: flex-start;
    width: 100%;
    font-size: var(--font-size--sm);
    padding-block: var(--padding-2xs);
  }

  .cart-item__error .svg-wrapper {
    flex-shrink: 0;
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
    margin-inline: var(--margin-3xs) var(--margin-xs);
    margin-block-start: var(--margin-3xs);
  }

  @container cart-items (min-width: 720px) {
    /* Cart page: original layout */
    .cart-items__table-row {
      --cart-item-price-width: 6rem;

      grid-template-columns: 7.5rem 1fr 1fr minmax(var(--cart-item-price-width), auto);
      grid-template-rows: min-content 1fr;
      grid-template-areas:
        'media details quantity price'
        'media details error error';
    }

    .cart-items__quantity,
    .cart-items__price {
      grid-area: initial;
    }

    .cart-items__quantity {
      margin-top: 0;
    }

    .cart-items__price {
      min-height: var(--minimum-touch-target);
      display: flex;
      flex-direction: column;
      align-items: flex-end;
    }

    /* Cart drawer: separate areas for variants and unit price */
    .cart-drawer .cart-items__table-row--full-width-variants {
      grid-template-rows: min-content min-content min-content 1fr;
      grid-template-areas:
        'media details quantity price'
        'media variants variants variants'
        'media unit_price unit_price unit_price'
        'media error error error';

      .cart-items__quantity,
      .cart-items__price {
        grid-area: initial;
      }
    }
  }

  .cart__subtotal-container,
  .cart__total-container {
    display: flex;
    flex-direction: column;
  }

  .cart__total-container {
    row-gap: var(--gap-2xs);

    &.cart__total-container--has-installments {
      row-gap: var(--gap-xs);
    }
  }

  .cart__subtotal-container:empty {
    display: none;
  }

  .cart__summary-totals {
    display: flex;
    flex-direction: column;
    gap: var(--gap-xl);
    width: 100%;
    border-block-start: none;

    &:has(> :first-child:not(.cart__subtotal-container, .cart__total-container)) {
      padding-block-start: 0;
      border-block-start: none;
    }

    @media screen and (min-width: 750px) {
      padding-block-start: 0;
    }
  }

  .cart__subtotal-container,
  .cart__subtotal-container * {
    font-size: var(--font-size--sm);
  }

  .cart__total {
    font-weight: var(--font-weight-bold);
  }

  .cart__total-label {
    font-size: var(--font-size--sm);
  }

  .cart__total-value {
    font-size: var(--font-size--xl);

    @media screen and (max-width: 749px) {
      font-size: var(--font-size--lg);
    }
  }

  .cart-primary-typography {
    font-family: var(--cart-primary-font-family);
    font-style: var(--cart-primary-font-style);
    font-weight: var(--cart-primary-font-weight);
  }

  .cart-secondary-typography {
    font-family: var(--cart-secondary-font-family);
    font-style: var(--cart-secondary-font-style);
    font-weight: var(--cart-secondary-font-weight);
  }

  .cart__ctas {
    width: 100%;
    display: grid;
    gap: var(--checkout-button-gap);
    grid-auto-flow: row;
    grid-template-columns: 1fr;
  }

  .cart__additional-checkout-buttons {
    width: 100%;
  }

  shopify-accelerated-checkout-cart {
    --shopify-accelerated-checkout-inline-alignment: center;
    --shopify-accelerated-checkout-button-border-radius: var(--style-border-radius-buttons-primary);
    --shopify-accelerated-checkout-row-gap: var(--checkout-button-gap, 10px);
  }

  /* Remove animation */
  .remove-icon-bottom,
  .remove-icon-top {
    transition: transform var(--animation-speed) var(--animation-easing);
  }

  .cart-items__remove:hover .remove-icon-top {
    transform: translate(calc(-1 * var(--icon-stroke-width)), var(--icon-stroke-width)) rotate(-15deg);
  }

  .cart-items__remove:is(:hover, :active) .remove-icon-bottom {
    transform: translateY(var(--icon-stroke-width));
  }

  .cart-items__table-row.removing .remove-icon-bottom {
    transform: translateY(0);
  }

  .cart-items__table-row.removing .remove-icon-top {
    animation: removeButtonClickedIconTop var(--animation-speed) var(--animation-easing) forwards;
  }

  @keyframes removeButtonClickedIconTop {
    50% {
      transform: translate(0, calc(-1 * var(--icon-stroke-width)));
    }

    100% {
      transform: translate(0, 0);
    }
  }

  .cart-items__properties {
    display: block;
    margin-block-start: var(--margin-2xs);
  }

  .cart-items__property {
    display: block;
  }

  .cart-items__properties dt,
  .cart-items__properties dd {
    display: inline;
    margin: 0;
    overflow-wrap: break-word;
  }

  @media screen and (min-width: 750px) {
    .cart-items .quantity-selector {
      --quantity-selector-width: 105px;
      height: var(--button-size-md);
      width: var(--quantity-selector-width);
    }

    .cart-items .quantity-selector button {
      width: var(--button-size-md);
      height: var(--button-size-md);
    }

    .cart-items .quantity-selector input {
      max-width: calc(var(--quantity-selector-width) - var(--button-size-md) * 2);
    }
  }

  @media screen and (prefers-reduced-motion: no-preference) {
    html:active-view-transition-type(empty-cart-drawer) {
      .cart-items__empty-button,
      .cart__checkout-button {
        view-transition-name: cart-drawer-primary-action;

        & > .button-text {
          view-transition-name: cart-drawer-primary-action-text;
        }
      }
    }
  }

  ::view-transition-old(cart-drawer-primary-action-text),
  ::view-transition-new(cart-drawer-primary-action-text) {
    height: 100%;
    object-fit: none;
    overflow: clip;
    overflow-clip-margin: 1em;
  }

  ::view-transition-old(cart-drawer-primary-action-text) {
    animation: cart-drawer-primary-action-text var(--animation-speed) var(--animation-easing) reverse forwards;
  }
  ::view-transition-new(cart-drawer-primary-action-text) {
    animation: cart-drawer-primary-action-text var(--animation-speed) var(--animation-easing) forwards;
  }

  ::view-transition-old(cart-drawer-primary-action),
  ::view-transition-new(cart-drawer-primary-action) {
    height: 100%;
  }

  ::view-transition-group(cart-drawer-primary-action-text),
  ::view-transition-group(cart-drawer-primary-action) {
    animation-duration: var(--spring-d300-b0-duration);
    animation-timing-function: var(--spring-d300-b0-easing);
  }

  @keyframes cart-drawer-primary-action-text {
    from {
      filter: blur(3px);
      opacity: 0;
    }
    to {
      filter: none;
      opacity: 1;
    }
  }
/* END_SNIPPET:cart-products */
/* START_SNIPPET:divider (INDEX:219) */
.divider {
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: var(--divider-justify-content);
  }

  .divider__line {
    border-bottom: var(--divider-border-thickness) solid var(--color-border);
    border-right: var(--divider-border-thickness) solid var(--color-border);
    border-radius: calc(var(--style-border-radius-sm) * var(--divider-border-rounded));
    flex-basis: var(--divider-flex-basis);
    min-height: var(--divider-flex-basis);
  }
/* END_SNIPPET:divider */
/* START_SNIPPET:header-actions (INDEX:231) */
.header {
    --account-offset-top: calc(
      var(--header-group-height) + (var(--header-height) * var(--transparent-header-offset-boolean))
    );

    &[data-sticky-state='active'] {
      --account-offset-top: calc(var(--header-height) - 1px);
    }
  }

  .account-button {
    /* Remove the background color from the color scheme, we want to inherit the color of the header */
    background: transparent;
  }

  .account-button__icon,
  .account-button__text {
    color: var(--color-account-icon);
    transition: color var(--header-content-transition-timing);
    -webkit-font-smoothing: antialiased;
  }

  shopify-account {
    --shopify-account-font-heading: var(--font-heading--family);
    --shopify-account-font-heading-weight: var(--font-heading--weight);
    --shopify-account-font-body: var(--font-body--family);
    --shopify-account-font-body-weight: var(--font-body--weight);
    --shopify-account-radius-base: var(--style-border-radius-popover);
    --shopify-account-radius-button: var(--style-border-radius-buttons-primary);
    --shopify-account-radius-button-small: var(--style-border-radius-buttons-primary);
    --shopify-account-radius-input: var(--style-border-radius-buttons-primary);
    --shopify-account-color-background: var(--color-background);
    --shopify-account-color-text: var(--color-foreground);
    --shopify-account-color-accent: var(--color-primary-button-background);
    --shopify-account-color-accent-text: var(--color-primary-button-text);
    --shopify-account-dialog-position-top: var(--account-offset-top);

    &:not(:defined) {
      min-width: 44px;
      height: 44px;
      display: flex;
      justify-content: center;
      align-items: center;
      /* Match the line height of the other buttons */
      line-height: normal;
    }
  }

  .account-button__fallback {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: var(--shopify-account-color-accent, #0a142f);
  }

  .account-button--text shopify-account {
    color: inherit;
  }

  .cart-drawer {
    --cart-drawer-padding: var(--padding-xl) var(--padding-xl);
    --cart-drawer-padding-desktop: var(--padding-xl) var(--padding-2xl);

    @media screen and (min-width: 750px) {
      margin-inline-end: calc(var(--gap-xs) * -1);
    }
  }

  @media screen and (min-width: 750px) {
    .cart-drawer--text {
      display: flex;
      align-items: center;
    }
  }

  .cart-drawer__dialog {
    position: fixed;
    overflow: hidden;
    border-radius: 0;
    width: 100%;
    height: 100%;
    margin: 0 0 0 auto;
    padding: 0;
    border-left: var(--style-border-drawer);
    box-shadow: var(--shadow-drawer);
    background-color: var(--color-background);

    @media screen and (min-width: 750px) {
      width: var(--sidebar-width);
      max-width: 95vw;
    }
  }

  /* Needed to ensure the drawer is full height */
  .cart-drawer__dialog:modal {
    max-height: 100dvh;
    overflow-y: hidden;
  }

  .cart-drawer__inner {
    height: 100%;
    overflow: hidden;
  }

  .cart-drawer__content {
    height: calc(100% - var(--header-height));
    display: flex;
    flex-direction: column;
    padding: 0;
    background-color: var(--color-background);
    flex-grow: 1;
    overflow-y: auto;
  }

  .cart-drawer__heading {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
    margin-bottom: 0;
  }

  .cart-drawer__close-button {
    margin-right: calc(var(--padding-sm) * -1);
    top: var(--margin-sm);

    @media screen and (max-width: 749px) {
      top: var(--margin-2xs);
    }
  }

  .cart-drawer--empty .cart-drawer__content {
    text-align: center;
    min-height: auto;
  }

  .cart-drawer--empty .cart-drawer__heading {
    margin-bottom: var(--margin-md);
  }

  .cart-drawer__items .cart-items__table-row {
    padding-bottom: var(--gap-xl);
    border-bottom: var(--style-border-width) solid var(--color-border);
    margin-bottom: var(--gap-xl);
  }

  .cart-drawer__items .cart-items__table-row:has(+ .cart-items__nested-line) {
    border-bottom: none;
    margin-bottom: 0;
  }

  .cart-drawer__items .cart-items__table-row:last-child {
    border-bottom: none;
  }

  .cart-drawer__summary {
    --cart-drawer-summary-padding: var(--padding-lg);

    position: sticky;
    bottom: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--gap-xl);
    padding: var(--cart-drawer-summary-padding);
    margin-top: auto;
    background-color: var(--color-background);
    /* stylelint-disable-next-line color-named */
    mask-image: linear-gradient(to bottom, transparent, black var(--cart-drawer-summary-padding));

    @media screen and (min-width: 750px) {
      --cart-drawer-summary-padding: var(--padding-2xl);
    }
  }

  .cart-drawer__dialog[cart-summary-sticky='false'] .cart-drawer__summary {
    position: static;
    mask-image: none;
  }

  .cart-drawer__dialog[cart-summary-sticky='false'] .cart-drawer__items {
    overflow: unset;
  }

  .cart-actions summary {
    padding-inline: 0;
    padding-block: var(--padding-sm);
    line-height: 1.2;
    min-height: var(--minimum-touch-target);
  }

  .cart-drawer__summary .cart__summary-totals:not(:has(.cart__subtotal-container:empty)) {
    border-block-start: var(--style-border-width) solid var(--color-border);
    padding-block-start: var(--padding-2xl);
  }

  .cart-drawer__summary .cart-note {
    @media screen and (min-width: 750px) {
      margin-block-start: var(--margin-3xs);
    }
  }

  .cart-drawer__heading--empty {
    display: flex;
    justify-content: center;
  }

  .cart-drawer__items {
    display: flex;
    flex-direction: column;
    padding-inline: var(--cart-drawer-padding);
    overflow-y: auto;

    @media screen and (min-width: 750px) {
      padding-inline: var(--cart-drawer-padding-desktop);
    }
  }

  .cart-drawer__items .cart-items__table-row {
    padding-bottom: var(--gap-xl);
    border-bottom: var(--style-border-width) solid var(--color-border);
    margin-bottom: var(--gap-xl);
  }

  .cart-drawer__items .cart-items__table-row:last-child {
    border-bottom: none;
    padding-block-end: 0;
    margin-block-end: 0;
  }

  .cart-drawer--empty .cart-drawer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100dvh;
    margin-top: 0;
  }

  .cart-drawer:not(:has(.cart-form)) .cart-drawer__content {
    justify-content: center;
  }

  .cart-drawer__header {
    background-color: var(--color-background);
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: var(--cart-drawer-padding);
    border-bottom: var(--style-border-width) solid none;
    position: sticky;
    top: 0;
    z-index: 1;

    @media screen and (min-width: 750px) {
      padding-inline: var(--cart-drawer-padding-desktop);
    }
  }

  .cart-drawer--empty .cart-drawer__header {
    justify-content: right;
    border-bottom: none;
    padding-bottom: 0;
  }

  .cart-drawer--empty .cart-drawer__heading {
    text-align: center;
  }

  header-actions {
    display: flex;

    @media screen and (max-width: 749px) {
      justify-self: flex-end;
    }
  }

  @media screen and (min-width: 750px) {
    .header-actions--text {
      gap: var(--gap-xl);
    }

    .header-actions__text-style {
      font-size: var(--header-actions-font-size);
      font-family: var(--header-actions-font-family);
      font-weight: var(--header-actions-font-weight);
      text-transform: var(--header-actions-text-case);
    }
  }

  #header-component[data-menu-style='drawer'] header-actions {
    justify-self: flex-end;
  }

  .header__column--right header-actions {
    margin-inline-start: calc(var(--gap-md) * -1);
  }

  .header-actions__cart-icon {
    --cart-bubble-size: 20px;
    --cart-bubble-top: 4.5px;
    --cart-bubble-right: 2.5px;

    position: relative;
  }

  .header-actions__cart-icon .cart-bubble {
    position: absolute;
    width: var(--cart-bubble-size, 20px);
    top: var(--cart-bubble-top);
    right: var(--cart-bubble-right);
  }

  @media screen and (min-width: 750px) {
    .header-actions__cart-icon--text.header-actions__cart-icon .cart-bubble {
      position: relative;
      top: 0;
    }
  }

  .cart-drawer__heading .cart-bubble {
    width: fit-content;
    border-radius: var(--style-border-radius-buttons-primary);
    aspect-ratio: auto;
    padding: var(--cart-padding);
  }

  .cart-drawer__heading .cart-bubble[data-maintain-ratio] {
    width: min(1lh, 22px);
    height: min(1lh, 22px);
  }

  .header-actions__cart-icon .cart-bubble__text,
  .cart-drawer__heading .cart-bubble__text {
    font-family: var(--font-paragraph--family);
    font-weight: var(--font-paragraph--weight);
  }

  .header-actions__cart-icon.header-actions__cart-icon--has-cart svg {
    /* Create donut mask where the cart bubble sits */
    mask: radial-gradient(
      calc(var(--cart-bubble-size) + 2px) at calc(100% - var(--cart-bubble-right)) var(--cart-bubble-top),
      transparent 45.45%,
      #fff 45.45%,
      #fff 100%
    );
  }

  .cart-drawer__heading .cart-bubble .cart-bubble__background {
    background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25));
  }

  .cart-drawer__heading .cart-bubble__text {
    color: var(--color-foreground);
    font-size: clamp(var(--font-size--3xs), 0.75em, var(--font-size--xs));
  }

  .cart-bubble.cart-bubble--animating .cart-bubble__background {
    animation: grow var(--animation-speed) var(--animation-easing);
  }

  .cart-bubble--animating .cart-bubble__text {
    --start-y: -1em;
    --start-opacity: 1;
    /* Set initial transform state before animation starts */
    transform: translate(0, var(--start-y, -1em));
    opacity: var(--start-opacity, 1);
    animation: move-and-fade var(--animation-speed) var(--animation-easing);
  }

  cart-icon:has(.cart-bubble__text-count:empty) {
    --cart-bubble-size: 10px;
    --cart-bubble-top: 9px;
    --cart-bubble-right: 9px;

    .svg-wrapper {
      --cart-bubble-top: 4px;
      --cart-bubble-right: 4px;
    }
  }

  @media screen and (min-width: 750px) {
    cart-icon.header-actions__cart-icon--text:has(.cart-bubble__text-count:empty) {
      --cart-bubble-right: 2.5px;
    }
  }

  @media screen and (prefers-reduced-motion: no-preference) {
    html:active-view-transition-type(empty-cart-drawer) {
      .cart-drawer__close-button {
        view-transition-name: cart-drawer-close-button;
      }
    }
  }

  :active-view-transition {
    .cart-drawer__header,
    .cart-drawer__content {
      background: transparent;
    }
  }

  ::view-transition-old(cart-drawer-content) {
    transform-origin: 50% 33%;
    animation: cart-contents-old var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  ::view-transition-new(cart-drawer-content) {
    transform-origin: top center;
    animation: cart-contents-new var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  @keyframes cart-contents-old {
    to {
      scale: 0.92;
      opacity: 0;
    }
  }

  @keyframes cart-contents-new {
    from {
      scale: 1.05;
      translate: 0 128px;
      filter: blur(1px);
      opacity: 0;
    }
  }
  .header-actions__text {
    display: flex;
    align-items: center;
  }

  @media screen and (min-width: 750px) {
    .header-actions__cart-icon--text {
      display: flex;
      align-items: center;
      gap: var(--gap-xs);
    }

    .header__column--right .header-actions--text {
      margin-inline-start: 0;
    }
  }
/* END_SNIPPET:header-actions */
/* START_SNIPPET:product-badges-styles (INDEX:257) */
.product-badges {
    --badge-inset: max(var(--padding-xs), calc((var(--border-radius) + var(--padding-xs)) * (1 - cos(45deg))));

    position: absolute;
    z-index: var(--layer-flat);
  }

  .product-badges--bottom-left {
    bottom: calc(var(--badge-inset) + var(--padding-block-start));
    left: calc(var(--badge-inset) + var(--padding-inline-start));
  }

  .product-badges--top-left {
    top: calc(var(--badge-inset) + var(--padding-block-start));
    left: calc(var(--badge-inset) + var(--padding-inline-start));
  }

  .product-badges--top-right {
    top: calc(var(--badge-inset) + var(--padding-block-start));
    /* Forced to the left to avoid clashing with the wishlist button on the right */
    left: calc(var(--badge-inset) + var(--padding-inline-start));
    right: auto;
  }

  .product-badges__badge {
    --badge-font-size: var(--font-size--xs);

    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-foreground);
    background: var(--color-background);
    font-size: var(--badge-font-size);
    font-family: var(--badge-font-family);
    font-weight: var(--badge-font-weight);
    text-transform: var(--badge-text-transform);
    border-radius: var(--badge-border-radius);
  }

  .product-badges__badge--rectangle {
    padding-block: var(--badge-rectangle-padding-block);
    padding-inline: var(--badge-rectangle-padding-inline);
  }
/* END_SNIPPET:product-badges-styles */
/* START_SNIPPET:product-media-gallery-content-styles (INDEX:261) */
media-gallery:where(.media-gallery--grid) .media-gallery__grid {
    display: none;
  }

  media-gallery.media-gallery--grid .media-gallery__grid .product-media-container {
    /* Needed for safari to stretch to full grid height */
    height: 100%;
  }

  @media screen and (min-width: 750px) {
    .media-gallery--two-column .media-gallery__grid {
      grid-template-columns: repeat(2, 1fr);
    }

    /* Display grid view as a carousel on mobile, grid on desktop */
    media-gallery:is(.media-gallery--grid) slideshow-component {
      display: none;
    }

    media-gallery:where(.media-gallery--grid) .media-gallery__grid {
      display: grid;
    }
  }

  .product-media-container__zoom-button {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: var(--layer-flat);
    cursor: zoom-in;
    background-color: transparent;

    &:hover {
      background-color: transparent;
    }
  }

  slideshow-slide.product-media-container--tallest {
    content-visibility: visible;
  }

  .product-media__drag-zoom-wrapper {
    aspect-ratio: inherit;
    min-height: inherit;
    min-width: inherit;
    display: inherit;
    flex: inherit;
  }

  .media-gallery__mobile-controls {
    grid-area: auto;
  }

  .product-media-container--zoomable.product-media-container--image {
    cursor: zoom-in;
  }
/* END_SNIPPET:product-media-gallery-content-styles */
/* START_SNIPPET:quick-add-modal-styles (INDEX:265) */
#quick-add-dialog {
    display: contents;
  }

  @media screen and (min-width: 750px) {
    .quick-add-modal {
      width: var(--quick-add-modal-width);
      height: var(--quick-add-modal-height);
      max-width: none;
    }
  }

  .quick-add-modal {
    padding: 0;
    border: var(--style-border-popover);
    overflow: hidden;
    box-shadow: 0 5px 30px rgb(0 0 0 / var(--opacity-15));

    @media screen and (max-width: 749px) {
      position: fixed;
      margin: auto 0 0 0;
      min-height: unset;
      max-width: 100%;
      border-radius: 0;
      overflow: clip;
      height: fit-content;
    }
  }

  .quick-add-modal[open] {
    @media screen and (max-width: 750px) {
      border-top-left-radius: var(--style-border-radius-popover);
      border-top-right-radius: var(--style-border-radius-popover);
    }
  }

  .quick-add-modal[open] {
    @media screen and (min-width: 750px) {
      display: flex;
    }
  }

  .quick-add-modal .view-more-details__wrapper {
    @media screen and (max-width: 749px) {
      display: none;
    }
  }

  .quick-add-modal[open] {
    animation: modalSlideInTop var(--animation-speed) var(--animation-easing) forwards;
  }

  .quick-add-modal.dialog-closing {
    animation: modalSlideOutTop var(--animation-speed) var(--animation-easing) forwards;
  }

  .quick-add-modal__close {
    position: absolute;
    top: var(--margin-2xs);
    right: var(--margin-2xs);
    transition: transform 0.15s var(--animation-timing-bounce);
    z-index: var(--layer-raised);
    overflow: visible;
    transform-origin: center;
  }

  .quick-add-modal__close:active {
    transform: scale(0.99) translateY(1px);
  }

  .quick-add-modal__close {
    &:focus-visible {
      outline: none;
    }

    &:focus-visible::after {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: calc(var(--style-border-radius-popover) - var(--margin-2xs));
      outline: var(--focus-outline-width) solid currentColor;
    }
  }

  .quick-add-modal__content {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: 100% 1fr;
    position: relative;
    overflow-y: auto;
    max-height: 100vh;
    flex-grow: 1;

    @media screen and (max-width: 749px) {
      grid-template-columns: repeat(4, 1fr);
      grid-template-rows: auto;
      padding-inline: var(--padding-xl);
      padding-block: var(--padding-xl);
      gap: var(--gap-lg);
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      height: auto; /* Prevent a bug in Safari where height:fit-content is not respected */
      max-height: 100vh;
    }
  }

  .quick-add-modal__content .media-gallery--grid .media-gallery__grid {
    grid-template-columns: 1fr;
  }

  .quick-add-modal__content .media-gallery--grid.media-gallery--two-column .product-media-container:first-child {
    grid-column: auto;
  }

  .quick-add-modal__content {
    /* One column */
    .media-gallery--grid:not(.media-gallery--two-column) .product-media > *,
      /* Two column, small first image */
      .media-gallery--grid.media-gallery--two-column:not(.media-gallery--large-first-image)
      .product-media-container:nth-of-type(odd)
      .product-media > *,
      /* Two column, large first image */
      .media-gallery--grid.media-gallery--two-column.media-gallery--large-first-image
        .product-media-container:is(:first-of-type, :nth-of-type(even))
        .product-media > *,
        /* Carousel */
      .media-gallery--carousel slideshow-container {
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
    }
  }

  .quick-add-modal__content .view-more-details__wrapper {
    display: flex;
    justify-content: flex-start;
    width: 100%;
  }

  .view-more-details__wrapper .view-more-details {
    display: flex;
    align-items: center;
    width: fit-content;
  }

  .quick-add-modal__content .product-header {
    @media screen and (max-width: 749px) {
      display: flex;
      flex-direction: column;
      grid-column: 2 / -1;
      grid-row: 1;
      padding-right: var(--padding-2xl);
    }
  }

  .quick-add-modal__content .product-header a:not(product-price *) {
    @media screen and (max-width: 749px) {
      font-size: var(--font-size--md);
      font-weight: 500;
      color: inherit;
      width: fit-content;
    }
  }

  .quick-add-modal__content variant-picker,
  .quick-add-modal__content product-form-component {
    @media screen and (max-width: 749px) {
      grid-column: 1 / -1;
    }
  }

  .quick-add-modal__content .product-media-container__zoom-button {
    cursor: default;
  }

  .quick-add-modal__content .product-details {
    grid-column: 4 / -1;
    grid-row: 1 / span 2;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    position: relative;

    dialog[open] & {
      animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
      animation-delay: 0.1s;
    }

    @media screen and (max-width: 749px) {
      grid-column: 2 / span 2;
      grid-row: span 1;
      max-height: 100%;
      height: 100%;
    }
  }

  @property --quick-add-modal-mask-start {
    syntax: '<length>';
    initial-value: 0px;
    inherits: false;
  }

  @property --quick-add-modal-mask-end {
    syntax: '<length>';
    initial-value: 0px;
    inherits: true;
  }

  @keyframes detect-scroll {
    from,
    to {
      --can-scroll: ;
    }
  }

  @supports (animation-timeline: scroll(self)) {
    dialog[open] .quick-add-modal__content .product-details {
      mask-image: linear-gradient(to bottom, transparent 0%, #000 var(--quick-add-modal-mask-start), #000 100%);
      animation: 0.3s var(--animation-timing-fade-in) 0.1s both fadeSlideIn, scrollStart 1s linear both,
        scrollEnd 1s linear both, detect-scroll 1ms linear none;
      animation-timeline: auto, scroll(self), scroll(self), scroll(self);
      animation-range: normal, 0px 48px, calc(100% - 48px) 100%, 0% 100%;
    }
  }

  @keyframes scrollStart {
    from {
      --quick-add-modal-mask-start: 0px;
    }
    to {
      --quick-add-modal-mask-start: 48px;
    }
  }

  @keyframes scrollEnd {
    from {
      --quick-add-modal-mask-end: 0px;
    }
    to {
      --quick-add-modal-mask-end: 48px;
    }
  }

  .quick-add-modal__content .product-details > .group-block {
    flex-grow: 1;
    width: auto;
  }

  .quick-add-modal__content > * {
    min-height: 0;
  }

  .quick-add-modal__content .product-details :is(.view-product-title, .buy-buttons-block) {
    flex: 0 0 auto;
  }
  .quick-add-modal__content .product-details :is(.buy-buttons-block) {
    margin-top: auto;
    position: sticky;
    bottom: 0;
    padding-bottom: var(--padding-3xl);
    background-color: var(--color-background);
    z-index: var(--layer-raised);

    &::before {
      --quick-add-modal-mask-end-progressive-enhanced: 0px;

      position: absolute;
      content: '';
      display: block;
      inset: auto 0 100% 0;
      pointer-events: none;
      height: min(var(--gap-2xl), var(--gap));
      background-color: inherit;
      mask-image: linear-gradient(
        to top,
        #000 0%,
        #000 calc(var(--gap-2xs)),
        transparent calc(100% - var(--quick-add-modal-mask-end-progressive-enhanced)),
        transparent
      );
    }
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form) {
    position: static;
    padding-bottom: 0;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form) > product-form-component {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form) form {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form)::before {
    display: none;
  }

  .quick-add-modal__content .product-details .buy-buttons-block__bar {
    display: block;
    position: sticky;
    bottom: 0;
    margin-top: auto;
    padding-block: var(--gap-md) var(--padding-3xl);
    background-color: var(--color-background);
    z-index: var(--layer-raised);

    &::before {
      --quick-add-modal-mask-end-progressive-enhanced: 0px;

      position: absolute;
      content: '';
      display: block;
      inset: auto 0 100% 0;
      pointer-events: none;
      height: min(var(--gap-2xl), var(--gap));
      background-color: inherit;
      mask-image: linear-gradient(
        to top,
        #000 0%,
        #000 calc(var(--gap-2xs)),
        transparent calc(100% - var(--quick-add-modal-mask-end-progressive-enhanced)),
        transparent
      );
    }
  }

  @supports (animation-timeline: scroll(self)) {
    .quick-add-modal__content .product-details :is(.buy-buttons-block)::before,
    .quick-add-modal__content .product-details .buy-buttons-block__bar::before {
      --mask-if-scroll: var(--can-scroll) var(--quick-add-modal-mask-end);
      --mask-if-no-scroll: 48px;
      --quick-add-modal-mask-end-progressive-enhanced: var(--mask-if-scroll, var(--mask-if-no-scroll));
      height: calc(var(--gap-2xs) + 48px);
    }
  }

  .quick-add-modal__content .product-details .variant-picker {
    flex: 0 0 auto;

    padding-block: min(var(--gap-2xl), var(--gap));
    margin-block-end: calc(var(--focus-outline-offset) + var(--focus-outline-width));
  }

  .quick-add-modal__content .variant-option--swatches {
    padding-inline-start: var(--padding-2xs);
  }

  .quick-add-modal__content .variant-option--swatches legend {
    margin-inline-start: calc(-1 * var(--padding-2xs));
  }

  .quick-add-modal__content:not(:has(.product-information__media)) .product-details {
    grid-column: 1 / -1;
  }

  .quick-add-modal__content .view-product-title {
    display: flex;
    padding-block: 0;
    margin-block-end: 12px;

    /* Prevent overlap between title and close button */
    padding-inline-end: calc(var(--padding-2xl) + calc(var(--minimum-touch-target) / 2));
  }

  .quick-add-modal__content .view-product-title a {
    color: inherit;
    text-decoration: none;
    text-align: left;
    font-size: var(--font-size--2xl);
    font-weight: 600;
    line-height: 1.2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.2s var(--animation-easing);
  }

  .quick-add-modal__content .product-details product-price {
    --text-align: left;
  }

  .quick-add-modal__content .product-details product-price.text-block--align-center {
    margin-inline: 0;
  }

  .quick-add-modal__content .product-details product-price.text-center {
    --text-align: left;
  }

  .quick-add-modal__content .product-details product-price > * {
    text-align: left;
  }

  .quick-add-modal__content
    .product-details
    *:not(
      .group-block,
      .group-block-content,
      .buy-buttons-block,
      .buy-buttons-block *,
      .view-product-title,
      .view-product-title *,
      variant-picker,
      variant-picker *,
      product-price,
      product-price *,
      product-inventory,
      product-inventory *,
      .view-more-details__wrapper,
      .view-more-details__wrapper *
    ) {
    @media screen and (min-width: 750px) {
      /* stylelint-disable-next-line declaration-no-important */
      display: none !important;
    }
  }

  .quick-add-modal__content
    .group-block:not(
      :has(
          .buy-buttons-block,
          .buy-buttons-block *,
          .view-product-title,
          .view-product-title *,
          variant-picker,
          variant-picker *,
          product-price,
          product-price *,
          product-inventory,
          product-inventory *,
          .view-more-details__wrapper,
          .view-more-details__wrapper *
        ),
      .buy-buttons-block
    ) {
    display: none;
  }

  @media screen and (min-width: 750px) {
    .quick-add-modal__content .group-block-content {
      gap: 0;
    }

    .quick-add-modal__content .media-gallery__grid {
      gap: min(var(--gap-2xs), var(--image-gap));
      border-radius: var(--style-border-radius-popover, 0);
    }

    .quick-add-modal__content .media-gallery--grid .product-media img {
      border-radius: 0;
    }
  }

  .quick-add-modal__content .product-details > .group-block {
    padding-block: var(--padding-3xl) 0;
  }

  .quick-add-modal__content :where(.product-details > .group-block > .group-block-content > *) {
    padding-inline: var(--padding-3xl);
  }

  .quick-add-modal__content slideshow-slide:not([aria-hidden='false']) {
    content-visibility: auto;
  }

  .quick-add-modal__content .product-information__media {
    width: 100%;
    grid-column: 1 / span 1;
    grid-row: 1;
    position: relative;
    top: 0;
    animation: fadeIn 0.4s var(--animation-timing-fade-in) both;

    @media screen and (min-width: 750px) {
      position: sticky;
      grid-column: 1 / 4;
      width: var(--quick-add-modal-gallery-width);
      overflow-y: auto;
      -ms-overflow-style: none;
      scrollbar-width: none;
    }

    &::-webkit-scrollbar {
      display: none;
    }
  }

  .quick-add-modal__content .product-information__media media-gallery {
    pointer-events: none;

    @media screen and (min-width: 750px) {
      position: absolute;
      inset: 0;
    }
  }

  .quick-add-modal media-gallery {
    padding: 0;
  }

  .quick-add-modal__content .product-information__media slideshow-arrows {
    display: none;
  }

  .quick-add-modal__content .product-information__media slideshow-container {
    display: block;
  }

  .quick-add-modal__content .product-information__media slideshow-slides {
    display: flex;
    flex-direction: column;
    gap: var(--gap-2xs);
    overflow: visible;
    scroll-snap-type: none;
  }

  .quick-add-modal__content .product-information__media slideshow-slide {
    width: 100%;
    flex: none;
    scroll-snap-align: unset;
    position: relative;
    transform: none;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s var(--animation-easing);
  }

  .quick-add-modal__content .product-information__media slideshow-slide[aria-hidden='true'] {
    @media screen and (max-width: 749px) {
      display: none;
    }
  }

  .quick-add-modal__content .product-information__media slideshow-slide:nth-child(1) {
    animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
  }

  .quick-add-modal__content .product-information__media slideshow-slide:nth-child(2) {
    animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
    animation-delay: 0.05s;
  }

  .quick-add-modal__content .product-information__media slideshow-slide:nth-child(3) {
    animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
    animation-delay: 0.1s;
  }

  .quick-add-modal__content .product-information__media :is(slideshow-controls, slideshow-controls[thumbnails]) {
    display: none;
  }

  .quick-add-modal__content .sticky-content,
  .quick-add-modal__content .sticky-content--desktop {
    top: 0;
  }

  .quick-add-modal__content .text-block.rte:not(product-price),
  .quick-add-modal__content .view-more-details__wrapper {
    display: none;
  }

  @keyframes fadeSlideIn {
    from {
      opacity: 0;
      transform: translateY(10px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
/* END_SNIPPET:quick-add-modal-styles */
/* START_SNIPPET:quick-add-styles (INDEX:267) */
/* Quick Add */
  .quick-add {
    --quick-add-offset: var(--padding-sm);
    --quick-add-right: calc(var(--quick-add-offset) + var(--padding-inline-end));
    --quick-add-bottom: calc(var(--quick-add-offset) + var(--padding-block-end));

    position: absolute;
    inset: 0;
    z-index: var(--layer-raised);
    pointer-events: none;

    @media screen and (min-width: 750px) {
      --quick-add-offset: var(--padding-md);
    }
  }

  .quick-add .variant-option__button-label input[data-option-available='false'] {
    cursor: not-allowed;
  }

  .quick-add[class*='color-scheme-'] {
    background-color: #0000;
  }

  product-card:is(:hover, :focus-within) .quick-add__button {
    opacity: 1;
  }

  .quick-add__button {
    display: var(--quick-add-mobile-display, none);
    align-items: center;
    background: linear-gradient(var(--color-background) 0 100%) padding-box;
    padding: 0;
    border-radius: 50px;
    border: 2px solid hsl(0 0% 0% / 0.15);
    height: var(--button-size-md);
    cursor: pointer;
    opacity: var(--quick-add-mobile-opacity, 0);
    overflow: hidden;
    color: var(--color-foreground);
    pointer-events: all;
    position: absolute;
    right: max(var(--quick-add-right), calc((var(--border-radius) + var(--quick-add-right)) * (1 - cos(45deg))));
    bottom: max(var(--quick-add-bottom), calc((var(--border-radius) + var(--quick-add-bottom)) * (1 - cos(45deg))));
    backdrop-filter: blur(20px) saturate(180%);

    &:hover {
      scale: 1.03;

      /* Hover stabilizer: extends hit area to maintain hover state */
      &::before {
        content: '';
        position: absolute;
        inset: -10px;
        z-index: -1;
      }
    }

    &:active {
      scale: 0.99;
    }

    .quick-add[stay-visible] & {
      display: grid;
    }

    @media screen and (min-width: 750px) {
      display: var(--quick-add-display, flex);
      opacity: 0;
    }
  }

  .quick-add__button.add-to-cart-button {
    height: var(--button-size-md);
  }

  .quick-add__button .add-to-cart-text {
    background: var(--color-background);
    overflow: hidden;
    border-radius: 50px;
    height: 100%;
    gap: 0;
  }

  .quick-add__button .svg-wrapper .checkmark-burst {
    width: 22px;
    height: 22px;
  }

  .quick-add__button .add-to-cart-icon {
    /* account for border width */
    height: 100%;
    width: calc(var(--button-size-md) - 4px);
  }

  .quick-add__button .add-to-cart-text__content {
    display: grid;
    grid-template-columns: 0fr;

    & > span {
      min-width: 0;

      span {
        padding-right: var(--padding-sm);
        opacity: 0;
        display: inline-block;
        filter: blur(2px);
        translate: 0.5ch 0;
      }
    }
  }

  .quick-add__button[data-added='true'] .add-to-cart-text {
    animation-name: atc-fade-out;
  }

  .quick-add__button[data-added='true'] .add-to-cart-text--added {
    translate: 0 0;
    animation-name: atc-fade-in;
  }

  .quick-add__product-form-component {
    height: 100%;
  }

  .quick-add__product-form-component .shopify-product-form {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    container-type: inline-size;
    height: 100%;
  }

  .quick-add-modal .product-media {
    width: 100%;
    height: 100%;
  }

  .quick-add-modal deferred-media {
    display: none;
  }

  .quick-add-modal .media-gallery--carousel slideshow-component {
    --cursor: default;
  }

  .quick-add__button:is(:hover, :focus-visible) {
    .add-to-cart-text__content {
      grid-template-columns: 1fr;

      span span {
        opacity: 1;
        translate: 0 0;
        filter: blur(0);
      }
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .quick-add__button .add-to-cart-text__content {
      grid-template-columns: 1fr;

      span span {
        opacity: 1;
        translate: 0 0;
        filter: blur(0);
      }
    }
  }

  @media (prefers-reduced-motion: no-preference) {
    .quick-add__button {
      transition-property: scale, translate, opacity;
      transition-duration: var(--animation-speed);
      transition-timing-function: var(--ease-out-cubic);
    }

    .quick-add__button:is(:hover, :focus-visible) {
      .add-to-cart-text__content,
      .add-to-cart-text__content span span {
        transition-delay: var(--animation-speed);
      }
    }

    .quick-add__button .add-to-cart-text__content {
      transition-property: grid-template-columns;
      transition-duration: var(--animation-speed);
      transition-timing-function: var(--ease-out-cubic);

      span span {
        transition-property: opacity, filter, translate;
        transition-duration: var(--animation-speed-slow);
        transition-timing-function: var(--ease-out-quad);
      }
    }
  }
/* END_SNIPPET:quick-add-styles */
/* START_SNIPPET:section (INDEX:276) */
.section-wrapper {
    --section-height-offset: 0px;
  }

  .section[data-shopify-visual-preview] {
    min-height: var(--section-preview-height);
    padding-top: 0;
  }

  .section[data-shopify-visual-preview] .custom-section-background {
    display: none;
  }

  body:has(> #header-group > .header-section > #header-component[transparent]):not(
      :has(> #header-group > .header-section + .shopify-section)
    )
    > main
    > .section-wrapper:first-child {
    --section-height-offset: var(--header-group-height, 0);
  }

  .custom-section-background {
    grid-column: 1 / -1;
  }

  .custom-section-content {
    z-index: var(--layer-flat);
  }
/* END_SNIPPET:section */
/* START_SNIPPET:skip-to-content-link (INDEX:278) */
.skip-to-content-link {
    position: absolute;
    left: -99999px;
  }

  .skip-to-content-link:focus {
    z-index: var(--layer-temporary);
    overflow: auto;
    width: auto;
    height: auto;
    padding: var(--padding-lg) var(--padding-4xl);
    left: var(--margin-lg);
    top: var(--margin-lg);
    background-color: var(--color-background);
    box-shadow: 0 0 0 var(--focus-outline-offset) var(--color-background);
  }
/* END_SNIPPET:skip-to-content-link */
