.yocan-product-purchase {
  color: #232323;
  font-family: "Geist", sans-serif;
  font-size: 16px;
  letter-spacing: 0;
  margin: 0 auto;
  max-width: 1680px;
  padding: 16px 0 40px;
  width: 90%;
}
.yocan-product-purchase *, .yocan-product-purchase *::before, .yocan-product-purchase *::after { box-sizing: border-box; }
.yocan-product-purchase [hidden] { display: none !important; }
.yocan-product-purchase button, .yocan-product-purchase select { font-family: inherit; letter-spacing: 0; }
.yocan-product-purchase button { box-shadow: none; cursor: pointer; }
.yocan-product-purchase button:disabled { cursor: not-allowed; opacity: .48; }
.yocan-product-purchase a { color: inherit; text-decoration: none; }
.yocan-purchase-breadcrumbs { align-items: baseline; color: #666; display: flex; flex-wrap: wrap; font-size: 14px; gap: 4px; line-height: 1.5; margin-bottom: 22px; }
.yocan-purchase-breadcrumbs a:hover { text-decoration: underline; }
.yocan-purchase-layout { align-items: start; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.yocan-purchase-gallery { align-items: start; display: grid; gap: 6px; grid-template-columns: 80px minmax(0, 1fr); min-width: 0; position: sticky; top: 24px; }
.yocan-purchase-gallery__rail { align-self: stretch; min-height: 0; position: relative; }
.yocan-purchase-gallery__thumbs { display: flex; flex-direction: column; gap: 5px; inset: 0; overflow-y: auto; overscroll-behavior: contain; position: absolute; scrollbar-width: none; }
.yocan-purchase-gallery__thumbs::-webkit-scrollbar { display: none; }
.yocan-purchase-gallery__thumbs button { background: #f5f5f5; border: 1px solid transparent; border-radius: 7px; flex: 0 0 80px; height: 80px; padding: 0; width: 80px; }
.yocan-purchase-gallery__thumbs button[aria-pressed="true"] { border-color: #555; }
.yocan-purchase-gallery__thumbs img { border-radius: 7px; display: block; height: 100%; mix-blend-mode: multiply; object-fit: contain; width: 100%; }
.yocan-purchase-gallery__more { align-items: center; background: #ffffffc9; border: 0; border-radius: 50%; bottom: 16px; color: #111; display: flex; height: 44px; justify-content: center; left: 18px; padding: 0; position: absolute; width: 44px; }
.yocan-purchase-gallery__more:hover { background: #fff; }
.yocan-purchase-icon { display: block; flex: none; height: 24px; width: 24px; }
.yocan-purchase-gallery__stage { aspect-ratio: 1; background: #f5f5f5; border-radius: 8px; min-width: 0; overflow: hidden; position: relative; }
.yocan-purchase-gallery__zoom { background: transparent; border: 0; border-radius: 0; cursor: zoom-in !important; display: block; height: 100%; overflow: hidden; padding: 0; position: relative; touch-action: pan-y pinch-zoom; width: 100%; }
.yocan-product-purchase .yocan-purchase-gallery__zoom:is(:hover, :focus, :focus-visible, :active) { background: transparent; box-shadow: none; color: inherit; }
.yocan-product-purchase .yocan-purchase-gallery__zoom:focus-visible { outline: 2px solid #555; outline-offset: -3px; }
.yocan-product-purchase .yocan-purchase-gallery__zoom > img { display: block; height: 100%; inset: 0; mix-blend-mode: multiply; object-fit: contain; position: absolute; user-select: none; width: 100%; }
.yocan-purchase-gallery__zoom.is-sliding > img, .yocan-purchase-lightbox__viewport.is-sliding > img { will-change: transform; }
.yocan-purchase-gallery__badge { height: auto; position: absolute; right: 4px; top: 4px; width: 50px; }
.yocan-purchase-summary { min-width: 0; padding: 24px 28px 0 56px; }
.yocan-purchase-materials { justify-content: flex-start; margin: 0 0 18px; }
.yocan-purchase-materials .yocan-product-card__material { height: 20px; width: 20px; }
.yocan-purchase-rating { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; line-height: 1.4; margin-bottom: 10px; }
.yocan-purchase-summary h1 { font-family: var(--yocan-heading-font); font-size: 24px; font-weight: 800; letter-spacing: 0; line-height: 1.2; margin: 0 0 10px; overflow-wrap: anywhere; }
.yocan-purchase-price { font-size: 18px; font-weight: 500; line-height: 1.4; margin-bottom: 14px; }
.yocan-purchase-stock { color: #d82a2a; font-size: 14px; font-weight: 700; line-height: 1.4; margin: 0 0 16px; }
.yocan-purchase-form { border-top: 4px solid #f5f5f5; margin: 0; padding-top: 38px; }
.yocan-purchase-stock[hidden] + .yocan-purchase-form { border-top-color: transparent; }
.yocan-purchase-option { min-width: 0; margin-bottom: 18px; }
.yocan-purchase-option label { color: #232323; display: block; font-size: 14px; font-weight: 700; line-height: 1.4; margin-bottom: 12px; }
.yocan-purchase-option label span { color: #666; font-weight: 400; margin-left: 6px; }
.yocan-purchase-option select { background-color: #fff; border: 1px solid #888; border-radius: 0; color: #232323; font-size: 14px; height: 36px; max-width: 100%; padding: 5px 30px 5px 14px; width: 100%; }
.yocan-purchase-swatches { display: none; flex-wrap: wrap; gap: 6px; }
.is-enhanced .has-swatches > select { display: none; }
.is-enhanced .yocan-purchase-swatches { display: flex; }
.yocan-purchase-swatches button { background: #f5f5f5; border: 1px solid transparent; border-radius: 7px; flex: 0 0 56px; height: 56px; padding: 0; width: 56px; }
.yocan-purchase-swatches button:hover { background: #f0f0f0; }
.yocan-purchase-swatches button[aria-pressed="true"] { border-color: #555; }
.yocan-purchase-swatches img { border-radius: 7px; display: block; height: 100%; mix-blend-mode: multiply; object-fit: contain; width: 100%; }
.yocan-purchase-points { align-items: center; background: #f3ece1; border-radius: 5px; display: flex; font-size: 12px; font-weight: 700; gap: 10px; margin: 40px 0 16px; padding: 5px 8px; width: fit-content; }
.yocan-purchase-points img { height: 40px; object-fit: contain; width: 40px; }
.yocan-purchase-add, .yocan-purchase-buy, .yocan-purchase-bundle__add, .yocan-purchase-sticky__add { border: 0; border-radius: 8px; color: #fff; display: block; font-size: 16px; font-weight: 700; line-height: 1.3; min-height: 50px; padding: 14px 20px; text-align: center; width: 100%; }
.yocan-purchase-add, .yocan-purchase-sticky__add { background: #227843; }
.yocan-purchase-add:hover { background: #19683a; }
.yocan-purchase-buy { background: #000; font-weight: 500; margin-top: 6px; min-height: 54px; }
.yocan-purchase-buy:hover { background: #191919; }
.yocan-purchase-payments { background: transparent; border: 0; color: #666; display: block; font-size: 12px !important; font-weight: 400; line-height: 1.5; margin: 12px auto 0; padding: 0; text-decoration: underline; width: fit-content; }
.yocan-purchase-payments:hover { background: transparent; color: #111; }
.yocan-purchase-message { color: #b32727; font-size: 13px; line-height: 1.5; margin: 8px 0 0; }
.yocan-purchase-message:empty { display: none; }
.yocan-purchase-trust { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 24px 0 32px; }
.yocan-purchase-trust > div { align-items: center; display: flex; flex-direction: column; gap: 12px; text-align: center; }
.yocan-purchase-trust img { height: 24px; object-fit: contain; width: 30px; }
.yocan-purchase-trust span { color: #111; font-size: 12px; font-weight: 800; line-height: 1.3; }
.yocan-purchase-features { border-block: 1px solid #555; margin: 0; padding: 20px 0 32px; }
.yocan-purchase-features summary { align-items: center; cursor: pointer; display: flex; font-size: 16px; font-weight: 700; gap: 8px; list-style: none; }
.yocan-purchase-features summary::-webkit-details-marker { display: none; }
.yocan-purchase-features__toggle { height: 16px; margin-left: auto; position: relative; width: 16px; }
.yocan-purchase-features__toggle::before, .yocan-purchase-features__toggle::after { background: currentColor; content: ""; height: 2px; left: 3px; position: absolute; top: 7px; width: 10px; }
.yocan-purchase-features:not([open]) .yocan-purchase-features__toggle::after { transform: rotate(90deg); }
.yocan-purchase-features > div { color: #666; font-size: 16px; line-height: 1.9; padding-top: 20px; }
.yocan-purchase-features ul { margin: 0; padding-left: 20px; }
.yocan-purchase-bundle { margin: 52px 0 0; }
.yocan-purchase-bundle h2 { color: #111; font-family: var(--yocan-heading-font); font-size: 20px; font-weight: 800; line-height: 1.3; margin: 0 0 24px; }
.yocan-purchase-bundle__cards { display: flex; gap: 5px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scroll-snap-type: x proximity; }
.yocan-purchase-bundle__card { flex: 0 0 38.75%; min-width: 0; padding-bottom: 8px; scroll-snap-align: start; }
.yocan-purchase-bundle__card > a { aspect-ratio: 1; background: #f5f5f5; border-radius: 8px; display: block; overflow: hidden; }
.yocan-purchase-bundle__card > a img { display: block; height: 100%; mix-blend-mode: multiply; object-fit: contain; width: 100%; }
.yocan-purchase-bundle__card h3 { font-family: "Geist", sans-serif; font-size: 14px; font-weight: 600; line-height: 1.5; margin: 10px 0 12px; }
.yocan-purchase-bundle__card .yocan-purchase-option { margin: 6px 12px 6px 0; }
.yocan-purchase-bundle__card .yocan-purchase-option label { font-size: 11px; margin-bottom: 2px; text-transform: uppercase; }
.yocan-purchase-bundle__card .yocan-purchase-option select { font-size: 13px; }
.yocan-purchase-bundle__price { font-size: 14px; font-weight: 700; line-height: 1.4; margin-top: 8px; }
.yocan-purchase-bundle__availability { color: #a92a2a; display: block; font-size: 12px; line-height: 1.4; margin-top: 4px; }
.yocan-purchase-bundle__total { align-items: baseline; display: flex; flex-wrap: wrap; font-size: 16px; gap: 8px; line-height: 1.5; margin: 20px 0 10px; }
.yocan-purchase-bundle__total del { color: #606060; font-size: 18px; font-weight: 300; }
.yocan-purchase-bundle__saving { background: #d71f21; border-radius: 6px; color: #fff; font-size: 12px; font-weight: 600; padding: 2px 5px; }
.yocan-purchase-bundle__add { background: #212121; }
.yocan-purchase-bundle__add:hover { background: #101010; }
.yocan-purchase-bundle__add span { margin-left: 5px; }
.yocan-product-purchase form[aria-busy="true"] { cursor: progress; }
.yocan-product-purchase .is-loading { position: relative; }
.yocan-product-purchase .is-loading::after { animation: yocan-purchase-spin .7s linear infinite; border: 2px solid #ffffff60; border-radius: 50%; border-top-color: #fff; content: ""; height: 18px; position: absolute; right: 14px; top: calc(50% - 9px); width: 18px; }
@keyframes yocan-purchase-spin { to { transform: rotate(360deg); } }
.yocan-purchase-lightbox { background: #fff; border: 0; border-radius: 8px; height: min(90dvh, 1000px); margin: auto; max-height: 90dvh; max-width: 94vw; padding: 32px; width: min(90dvh, 1000px); }
.yocan-purchase-lightbox::backdrop { background: #0009; }
.yocan-purchase-lightbox[open] { align-items: center; display: flex; justify-content: center; }
.yocan-purchase-lightbox__viewport { height: 100%; min-width: 0; overflow: hidden; position: relative; touch-action: pan-y pinch-zoom; width: 100%; }
.yocan-product-purchase .yocan-purchase-lightbox__viewport > img { display: block; height: 100%; inset: 0; object-fit: contain; position: absolute; user-select: none; width: 100%; }
.yocan-purchase-lightbox button { align-items: center; background: #fff; border: 0; border-radius: 50%; color: #111; display: flex; height: 40px; justify-content: center; padding: 8px; position: absolute; width: 40px; z-index: 2; }
.yocan-purchase-lightbox [data-gallery-close] { right: 8px; top: 8px; }
.yocan-purchase-lightbox [data-gallery-prev] { left: 4px; top: calc(50% - 20px); }
.yocan-purchase-lightbox [data-gallery-next] { right: 4px; top: calc(50% - 20px); }
.yocan-purchase-sticky { display: none; }
@media (min-width: 768px) and (max-width: 1100px) {
  .yocan-product-purchase { width: calc(100% - 40px); }
  .yocan-purchase-summary { padding: 12px 0 0 28px; }
  .yocan-purchase-gallery { grid-template-columns: 56px minmax(0, 1fr); }
  .yocan-purchase-gallery__thumbs button { flex-basis: 56px; height: 56px; width: 56px; }
  .yocan-purchase-gallery__more { height: 36px; left: 10px; width: 36px; }
  .yocan-purchase-trust span { font-size: 10px; }
  .yocan-purchase-bundle__card { flex-basis: 48%; }
}
@media (max-width: 767px) {
  .yocan-product-purchase { padding: 12px 0 30px; width: calc(100% - 36px); }
  .yocan-purchase-breadcrumbs { font-size: 11px; margin-bottom: 16px; }
  .yocan-purchase-layout { grid-template-columns: minmax(0, 1fr); }
  .yocan-purchase-gallery { gap: 5px; grid-template-columns: minmax(0, 1fr) 60px; position: relative; top: auto; }
  .yocan-purchase-gallery__stage { grid-column: 1; grid-row: 1; }
  .yocan-purchase-gallery__rail { grid-column: 2; grid-row: 1; }
  .yocan-purchase-gallery__thumbs button { border-radius: 5px; flex-basis: 60px; height: 60px; width: 60px; }
  .yocan-purchase-gallery__more { bottom: 8px; height: 32px; left: 14px; width: 32px; }
  .yocan-purchase-gallery__badge { width: 42px; }
  .yocan-purchase-summary { padding: 8px 0 0; }
  .yocan-purchase-summary h1 { font-size: 24px; }
  .yocan-purchase-materials { justify-content: flex-end; margin: 0 0 2px; }
  .yocan-purchase-rating { font-size: 14px; }
  .yocan-purchase-form { padding-top: 28px; }
  .yocan-purchase-points { margin-top: 30px; }
  .yocan-purchase-trust { margin-block: 24px 30px; }
  .yocan-purchase-trust span { font-size: 10px; }
  .yocan-purchase-bundle { margin-top: 36px; }
  .yocan-purchase-bundle h2 { font-size: 18px; margin-bottom: 20px; }
  .yocan-purchase-bundle__card { flex-basis: 47%; }
  .yocan-purchase-bundle__card h3 { font-size: 13px; }
  .yocan-purchase-bundle__card .yocan-purchase-option { margin-right: 6px; }
  .yocan-purchase-bundle__card .yocan-purchase-option select { font-size: 12px; padding-left: 6px; }
  .yocan-purchase-lightbox { height: min(88dvh, 94vw); padding: 24px; }
  body.single-product:has(.yocan-product-purchase.is-enhanced) { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
  .yocan-purchase-sticky { background: #fff; border-top: 1px solid #cce0d2; bottom: 0; display: block; left: 0; padding: 16px 24px calc(16px + env(safe-area-inset-bottom, 0px)); position: fixed; width: 100%; z-index: 90; }
  .yocan-product-purchase .yocan-purchase-sticky__add:is(:hover, :focus, :active) { background: #19683a; color: #fff; }
}
@media (prefers-reduced-motion: reduce) { .yocan-product-purchase .is-loading::after { animation-duration: 1.4s; } }
